diff options
author | tylerm <tylerm@tylerm.dev> | 2023-08-03 04:20:24 +0000 |
---|---|---|
committer | tylerm <tylerm@tylerm.dev> | 2023-08-03 04:20:24 +0000 |
commit | 2953057ef142ce4cca66d7d35aba521fb55bb97d (patch) | |
tree | 54595f963487db70b6c8009ce1e8db07e9b2633c /src/main/java/dev/tylerm/khs/game | |
parent | Update 'README.md' (diff) | |
parent | bug fixes (diff) | |
download | kenshinshideandseek-2953057ef142ce4cca66d7d35aba521fb55bb97d.tar.gz kenshinshideandseek-2953057ef142ce4cca66d7d35aba521fb55bb97d.tar.bz2 kenshinshideandseek-2953057ef142ce4cca66d7d35aba521fb55bb97d.zip |
Merge pull request 'bug fixes' (#11) from dev into main
Reviewed-on: https://g.tylerm.dev/tylerm/KenshinsHideAndSeek/pulls/11
Diffstat (limited to '')
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(); |