diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java index 8842c98..bf687ec 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java @@ -38,12 +38,18 @@ public class MinecleanerListener implements Listener { if(arena != null) { e.setCancelled(true); MinecleanerArena arenaClicked = plugin.getArenaList().getArenaAtBlock(block); + + if(arenaClicked != arena) { + return; + } + boolean hasRightClicked = false; if(e.getAction() == Action.RIGHT_CLICK_BLOCK) { hasRightClicked = true; } - if(!arenaClicked.getCurrentMinecleanerGame().gameover) { - if(arenaClicked == arena && arena.getArenaStatus() == ArenaStatus.PLAYING) { + + if(!arena.getCurrentMinecleanerGame().gameover && (arena.getArenaStatus() == ArenaStatus.PLAYING || arena.getArenaStatus() == ArenaStatus.COMPLETED)) { + if(arena.getArenaStatus() == ArenaStatus.PLAYING) { int d0x = arena.getOrientation().getModX(); int d0z = arena.getOrientation().getModZ(); int d1x = -d0z; @@ -73,14 +79,14 @@ public class MinecleanerListener implements Listener { blockx -= blockxInt; blockz -= blockzInt; - if(blockzInt < arena.getArenaWidth() && blockxInt < arenaClicked.getArenaHeight()) { + if(blockzInt < arena.getArenaWidth() && blockxInt < arena.getArenaHeight()) { plugin.getManager().handleFieldClick(e.getPlayer(), blockzInt, blockxInt, hasRightClicked); } //player.sendMessage("Arena click! " + blockxInt + " " + blockzInt + " Right Clicked: " + hasRightClicked); } } } - } else if(arenaClicked.hasPlayer() && arenaClicked.getArenaStatus() == ArenaStatus.COMPLETED && !hasRightClicked && (plugin.getManager().getSettingsValue("allowmanualreset", e.getPlayer()) == 1)) { + } else if(arena.hasPlayer() && arena.getArenaStatus() == ArenaStatus.COMPLETED && !hasRightClicked && (plugin.getManager().getSettingsValue("allowmanualreset", e.getPlayer()) == 1)) { plugin.getManager().getSchedulerGameOver().cancel(); plugin.getManager().leaveArena(arenaClicked.getCurrentPlayer(), false); } @@ -126,7 +132,6 @@ public class MinecleanerListener implements Listener { } } if(e.getInventory().equals(plugin.getManager().getSettingsInventory())) { - e.setCancelled(true); int slot = e.getRawSlot(); switch (slot) { case 10: { diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java index 5ab3c04..b6c4a7e 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java @@ -146,6 +146,7 @@ public class MinecleanerManager { MinecleanerArena arena = plugin.getArenaList().getPlayerArena(player); arena.setArenaStaus(ArenaStatus.INACTIVE); Preconditions.checkArgument(arena != null, "player is in no arena"); + player.closeInventory(); arena.removePlayer(); plugin.getArenaList().setArenaForPlayer(player, null); if(message) { @@ -386,10 +387,10 @@ public class MinecleanerManager { current = getSettingsValue("additionaldisplay", player); if(current == 0) { settingsInventory.setItem(12, - ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.NAME_TAG), ChatColor.RED + "Zusätzliche Anzeige in der Action Bar"))); + ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.NAME_TAG), ChatColor.RED + "Zusätzliche Anzeige in der Action Bar deaktiviert"))); } else { settingsInventory.setItem(12, - ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.NAME_TAG), ChatColor.GREEN + "Zusätzliche Anzeige in der Action Bar"))); + ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.NAME_TAG), ChatColor.GREEN + "Zusätzliche Anzeige in der Action Bar aktiviert"))); } @@ -397,10 +398,10 @@ public class MinecleanerManager { if(current == 0) { settingsInventory.setItem(14, - ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CLOCK), ChatColor.RED + "Timer anzeigen"))); + ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CLOCK), ChatColor.RED + "Timer wird nicht angezeigt"))); } else { settingsInventory.setItem(14, - ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CLOCK), ChatColor.GREEN + "Timer anzeigen"))); + ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.CLOCK), ChatColor.GREEN + "Timer wird angezeigt"))); } current = getSettingsValue("resettime", player);