|
8 | 8 | import net.onelitefeather.stardust.user.UserPropertyType; |
9 | 9 | import org.bukkit.Bukkit; |
10 | 10 | import org.bukkit.block.data.Powerable; |
11 | | -import org.bukkit.entity.*; |
| 11 | +import org.bukkit.entity.Entity; |
| 12 | +import org.bukkit.entity.Item; |
| 13 | +import org.bukkit.entity.Player; |
| 14 | +import org.bukkit.entity.Projectile; |
12 | 15 | import org.bukkit.event.Event; |
13 | 16 | import org.bukkit.event.EventHandler; |
14 | 17 | import org.bukkit.event.EventPriority; |
|
21 | 24 | import org.bukkit.event.entity.EntityDamageEvent.DamageCause; |
22 | 25 | import org.bukkit.event.player.PlayerDropItemEvent; |
23 | 26 | import org.bukkit.event.player.PlayerInteractEvent; |
| 27 | +import org.bukkit.event.player.PlayerItemConsumeEvent; |
24 | 28 | import org.bukkit.event.raid.RaidTriggerEvent; |
25 | 29 |
|
26 | 30 | import java.util.Arrays; |
@@ -138,16 +142,21 @@ public void onTarget(EntityTargetEvent event) { |
138 | 142 | } |
139 | 143 | } |
140 | 144 |
|
| 145 | + @EventHandler |
| 146 | + public void onItemConsume(PlayerItemConsumeEvent event) { |
| 147 | + var player = event.getPlayer(); |
| 148 | + User user = stardustPlugin.getUserService().getUser(player.getUniqueId()); |
| 149 | + if (user == null) return; |
| 150 | + if (!user.isVanished()) return; |
| 151 | + event.setCancelled(true); |
| 152 | + } |
| 153 | + |
141 | 154 | @EventHandler |
142 | 155 | public void onFoodLevelChange(FoodLevelChangeEvent event) { |
143 | | - if (event.getEntity() instanceof Player player) { |
144 | | - try { |
145 | | - User user = stardustPlugin.getUserService().getUser(player.getUniqueId()); |
146 | | - event.setCancelled(user != null && (user.isVanished() || player.isInvulnerable())); |
147 | | - } catch (Exception e) { |
148 | | - stardustPlugin.getLogger().throwing(PlayerVanishListener.class.getSimpleName(), "onFoodLevelChange", e); |
149 | | - } |
150 | | - } |
| 156 | + if (!(event.getEntity() instanceof Player player)) return; |
| 157 | + if (event.getFoodLevel() >= event.getEntity().getFoodLevel()) return; //Ignore food level increment |
| 158 | + if (!player.isInvulnerable()) return; |
| 159 | + event.setCancelled(true); |
151 | 160 | } |
152 | 161 |
|
153 | 162 | @EventHandler |
|
0 commit comments