diff options
Diffstat (limited to 'src/main/java/dev/tylerm/khs/game')
3 files changed, 11 insertions, 8 deletions
diff --git a/src/main/java/dev/tylerm/khs/game/Game.java b/src/main/java/dev/tylerm/khs/game/Game.java index ac7e808..3de09ef 100644 --- a/src/main/java/dev/tylerm/khs/game/Game.java +++ b/src/main/java/dev/tylerm/khs/game/Game.java @@ -60,8 +60,6 @@ public class Game { private int gameTimer; private boolean hiderLeft; - private Random random; - public Game(Map map, Board board) { this.currentMap = map; @@ -78,8 +76,6 @@ public class Game { this.startingTimer = -1; this.gameTimer = 0; this.hiderLeft = false; - - this.random = new Random(); } public Status getStatus(){ @@ -107,7 +103,7 @@ public class Game { List<Player> pool = board.getPlayers(); for (int i = 0; i < startingSeekerCount; i++) { try { - int rand = random.nextInt(0, pool.size()); + int rand = (int)(Math.random() * pool.size()); seekers.add(pool.remove(rand)); } catch (Exception e){ Main.getInstance().getLogger().warning("Failed to select random seeker."); diff --git a/src/main/java/dev/tylerm/khs/game/listener/DisguiseHandler.java b/src/main/java/dev/tylerm/khs/game/listener/DisguiseHandler.java index 5883387..a09aded 100644 --- a/src/main/java/dev/tylerm/khs/game/listener/DisguiseHandler.java +++ b/src/main/java/dev/tylerm/khs/game/listener/DisguiseHandler.java @@ -8,7 +8,6 @@ import com.comphenix.protocol.events.PacketAdapter; import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.events.PacketEvent; import com.comphenix.protocol.wrappers.EnumWrappers; -import com.comphenix.protocol.wrappers.EnumWrappers.EntityUseAction; import dev.tylerm.khs.Main; import dev.tylerm.khs.game.util.Disguise; import org.bukkit.Bukkit; @@ -51,15 +50,19 @@ public class DisguiseHandler implements Listener { PacketContainer packet = event.getPacket(); // only left click attacks - EntityUseAction action = packet.getEntityUseActions().getValues().stream().findFirst().orElse(null); + EnumWrappers.EntityUseAction action = packet.getEntityUseActions().getValues().stream().findFirst().orElse(null); if (action == null) return; - if (action != EnumWrappers.EntityUseAction.ATTACK) return; + //noinspection ComparatorResultComparison + if (action.compareTo(EnumWrappers.EntityUseAction.INTERACT) == 2) { + return; + } Player player = event.getPlayer(); int id = packet.getIntegers().read(0); Disguise disguise = Main.getInstance().getDisguiser().getByEntityID(id); if(disguise == null) disguise = Main.getInstance().getDisguiser().getByHitBoxID(id); if(disguise == null) return; + if(disguise.getPlayer().getGameMode() == GameMode.CREATIVE) return; event.setCancelled(true); handleAttack(disguise, player); @@ -82,7 +85,9 @@ public class DisguiseHandler implements Listener { disguise.setSolidify(false); if(debounce.contains(disguise.getPlayer())) return; + debounce.add(disguise.getPlayer()); + Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), () -> { EntityDamageByEntityEvent event = new EntityDamageByEntityEvent(seeker, disguise.getPlayer(), EntityDamageEvent.DamageCause.ENTITY_ATTACK, amount); diff --git a/src/main/java/dev/tylerm/khs/game/listener/InventoryHandler.java b/src/main/java/dev/tylerm/khs/game/listener/InventoryHandler.java index bf40896..bb87a50 100644 --- a/src/main/java/dev/tylerm/khs/game/listener/InventoryHandler.java +++ b/src/main/java/dev/tylerm/khs/game/listener/InventoryHandler.java @@ -39,6 +39,7 @@ public class InventoryHandler implements Listener { @EventHandler(priority = EventPriority.HIGHEST) public void onInventoryClick(InventoryClickEvent event) { + if (event.getCurrentItem() == null) return; if (!(event.getWhoClicked() instanceof Player)) return; checkForInventoryMove(event); checkForSpectatorTeleportMenu(event); @@ -56,6 +57,7 @@ public class InventoryHandler implements Listener { Player player = (Player) event.getWhoClicked(); ItemStack item = event.getCurrentItem(); + ItemMeta meta = item.getItemMeta(); String name = meta.getDisplayName(); |