From 1483bba0ffa9804bf02df7d3dc4e9ec8f0558ac1 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sat, 30 Oct 2021 14:31:32 +0200 Subject: [PATCH 1/9] Show deprecation and use new apis Signed-off-by: Lixfel --- .../src/de/steamwar/fightsystem/utils/BlockIdWrapper8.java | 4 ++++ .../src/de/steamwar/fightsystem/commands/GUI.java | 2 +- .../src/de/steamwar/fightsystem/utils/ItemBuilder.java | 2 ++ pom.xml | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/FightSystem_8/src/de/steamwar/fightsystem/utils/BlockIdWrapper8.java b/FightSystem_8/src/de/steamwar/fightsystem/utils/BlockIdWrapper8.java index e338878..865c4a7 100644 --- a/FightSystem_8/src/de/steamwar/fightsystem/utils/BlockIdWrapper8.java +++ b/FightSystem_8/src/de/steamwar/fightsystem/utils/BlockIdWrapper8.java @@ -29,16 +29,19 @@ import java.util.Set; public class BlockIdWrapper8 implements BlockIdWrapper.IBlockIdWrapper { @Override + @SuppressWarnings("deprecation") public int blockToId(Block block) { return block.getTypeId() << 4 + block.getData(); } @Override + @SuppressWarnings("deprecation") public void setBlock(World world, int x, int y, int z, int blockState) { world.getBlockAt(x, y, z).setTypeIdAndData(blockState >> 4, (byte)(blockState & 0b1111), false); } @Override + @SuppressWarnings("deprecation") public Set getHiddenBlockIds() { Set hiddenBlockIds = new HashSet<>(); for(String tag : Config.HiddenBlocks){ @@ -48,6 +51,7 @@ public class BlockIdWrapper8 implements BlockIdWrapper.IBlockIdWrapper { } @Override + @SuppressWarnings("deprecation") public int getObfuscateWith() { return Material.matchMaterial(Config.ObfuscateWith).getId() << 4; } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/commands/GUI.java b/FightSystem_Core/src/de/steamwar/fightsystem/commands/GUI.java index a4bebff..688815c 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/commands/GUI.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/commands/GUI.java @@ -139,7 +139,7 @@ public class GUI { anvilInv.setItem(Material.LEATHER_CHESTPLATE); anvilInv.setCallback(s -> { SteamwarUser user = SteamwarUser.get(p.getUniqueId()); - if(PersonalKit.nameInUse(user.getId(), Config.SchematicType.toDB(), s)) { + if(PersonalKit.get(user.getId(), Config.SchematicType.toDB(), s).isInUse()) { msg.sendPrefixless("KITNAME_IN_USE", p, ChatMessageType.ACTION_BAR); p.closeInventory(); return; diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/utils/ItemBuilder.java b/FightSystem_Core/src/de/steamwar/fightsystem/utils/ItemBuilder.java index 1a733d0..6161ae0 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/utils/ItemBuilder.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/utils/ItemBuilder.java @@ -41,6 +41,8 @@ public class ItemBuilder { item = new ItemStack(matrial, amount); meta = item.getItemMeta(); } + + @SuppressWarnings("deprecation") public ItemBuilder(Material matrial, short subid) { item = new ItemStack(matrial, 1, subid); meta = item.getItemMeta(); diff --git a/pom.xml b/pom.xml index 99c8b1b..35a72ae 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,7 @@ 1.8 1.8 + -Xlint From 6400c960a9df5e563d8b3796ac29888781aed484 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sat, 30 Oct 2021 14:32:02 +0200 Subject: [PATCH 2/9] Only allow TNT transfers to inventories Signed-off-by: Lixfel --- .../listener/InFightInventory.java | 22 +++++-------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightInventory.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightInventory.java index 894a497..e74c13a 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightInventory.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightInventory.java @@ -29,8 +29,6 @@ import org.bukkit.event.block.BlockDispenseEvent; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryDragEvent; import org.bukkit.event.inventory.InventoryType; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; public class InFightInventory implements Listener { @@ -40,22 +38,12 @@ public class InFightInventory implements Listener { @EventHandler public void onInventoryClick(InventoryClickEvent event) { - Inventory clicked = event.getClickedInventory(); - if(event.getClick().isShiftClick()){ - ItemStack clickedOn = event.getCurrentItem(); + InventoryType top = event.getView().getTopInventory().getType(); + if(top == InventoryType.CRAFTING) + return; - if( - clickedOn != null && - event.getView().getTopInventory().getType() != InventoryType.CRAFTING && - clicked == event.getWhoClicked().getInventory()) - event.setCancelled(true); - }else if ( - clicked != event.getWhoClicked().getInventory() && - clicked != null && - clicked.getType() != InventoryType.PLAYER && - event.getCursor() != null && - event.getCursor().getType() != Material.AIR) - event.setCancelled(true); + if ((event.getCursor() != null && event.getCursor().getType() != Material.TNT) || (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.TNT)) + event.setCancelled(true); // Deny if transferred item is not TNT } @EventHandler From 2744eebb26e1eae64dac8ea959007c2219f448b6 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Fri, 5 Nov 2021 11:14:49 +0100 Subject: [PATCH 3/9] Remove fighter movement height restriction, adding block placement restriction Signed-off-by: Lixfel --- .../steamwar/fightsystem/FightSystem.properties | 4 ++-- .../fightsystem/listener/ArenaBorder.java | 2 -- .../steamwar/fightsystem/listener/TeamArea.java | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties b/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties index 0c10467..afa816a 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties +++ b/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties @@ -139,8 +139,8 @@ KIT_DELETION_DELETE= NO_ARENA_LEAVING=§cDu darfst die Arena nicht verlassen CHECK_JOIN_DENIED=§cAuf diesem Server wird momentan eine Schematic geprüft! CHECK_COMMAND_LOCKED=§cDieser Befehl ist beim Prüfen gesperrt! Admin wird benachrichtigt. -NO_BLOCK_BREAK=§cDu darfst derzeit keine Blöcke abbauen -NO_BLOCK_PLACE=§cDu darfst derzeit keine Blöcke setzen +NO_BLOCK_BREAK=§cDu darfst hier derzeit keine Blöcke abbauen +NO_BLOCK_PLACE=§cDu darfst hier derzeit keine Blöcke setzen NO_BOW_USAGE=§cDu darfst den Bogen erst nach Kampfbeginn nutzen NO_PARTICIPANT=§cDu bist kein Kampfteilnehmer NO_FRIENDLY_FIRE=§cDu darfst deinen Teamkollegen keinen Schaden zufügen diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/ArenaBorder.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/ArenaBorder.java index c51fb06..0527c5e 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/ArenaBorder.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/ArenaBorder.java @@ -63,8 +63,6 @@ public class ArenaBorder implements Listener { player.damage(2); else if(!Config.GroundWalkable) player.teleport(team.getSpawn()); - }else if(to.getY() + 1.8 > Config.ArenaRegion.getMaxY()){ - reset(event); } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/TeamArea.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/TeamArea.java index b21bafe..0afab2e 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/TeamArea.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/TeamArea.java @@ -30,9 +30,11 @@ import de.steamwar.fightsystem.utils.Region; import net.md_5.bungee.api.ChatMessageType; import org.bukkit.Bukkit; import org.bukkit.GameMode; +import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerQuitEvent; @@ -64,13 +66,24 @@ public class TeamArea implements Listener { realSpectator.remove(e.getPlayer()); } + @EventHandler + public void blockPlace(BlockPlaceEvent event) { + Player player = event.getPlayer(); + Block block = event.getBlock(); + if(Config.BlueExtendRegion.inRegion(block) || Config.RedExtendRegion.inRegion(block)) + return; + + event.setCancelled(true); + FightSystem.getMessage().sendPrefixless("NO_BLOCK_PLACE", player, ChatMessageType.ACTION_BAR); + } + private void checkInTeamRegion(PlayerMoveEvent event, FightTeam team, Player player, FightTeam playerTeam) { boolean spectator = player.getGameMode() == GameMode.SPECTATOR; if(!spectator && playerTeam != null && playerTeam.canPlayerEntern(player)) return; // Player can entern Region region = team.getExtendRegion(); - boolean inRegion = region.playerInRegion(event.getTo()); + boolean inRegion = region.in2dRegion(event.getTo()); if(team == playerTeam) { if(spectator) { realSpectator(inRegion, player); From 95a7b4fd39de4a33aea5baa7f420c8d374a68229 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Tue, 9 Nov 2021 11:05:32 +0100 Subject: [PATCH 4/9] Hotfix inventory Signed-off-by: Lixfel --- .../steamwar/fightsystem/listener/InFightInventory.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightInventory.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightInventory.java index e74c13a..eb0534a 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightInventory.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/InFightInventory.java @@ -30,8 +30,14 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryDragEvent; import org.bukkit.event.inventory.InventoryType; +import java.util.Collections; +import java.util.EnumSet; +import java.util.Set; + public class InFightInventory implements Listener { + private static final Set allowed = Collections.unmodifiableSet(EnumSet.of(Material.TNT, Material.AIR)); + public InFightInventory() { new StateDependentListener(ArenaMode.AntiReplay, FightState.Ingame, this); } @@ -42,7 +48,7 @@ public class InFightInventory implements Listener { if(top == InventoryType.CRAFTING) return; - if ((event.getCursor() != null && event.getCursor().getType() != Material.TNT) || (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.TNT)) + if ((event.getCursor() != null && !allowed.contains(event.getCursor().getType())) || (event.getCurrentItem() != null && !allowed.contains(event.getCurrentItem().getType()))) event.setCancelled(true); // Deny if transferred item is not TNT } From 84c0e727139a130cca0c5f913e7da88812f10ee6 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 10 Nov 2021 13:17:32 +0100 Subject: [PATCH 5/9] Hotfix Bar header Signed-off-by: Lixfel --- .../src/de/steamwar/fightsystem/FightSystem.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties b/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties index afa816a..5de4b8b 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties +++ b/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties @@ -188,7 +188,7 @@ BAR_PRE_LEADER= BAR_PRE_SCHEM={1} §7Schemauswahl {0} {2} BAR_PREPARE={1} {3} §7Vorbereitung {0} {4} {2} BAR_PRE_RUNNING={1} {3} §7Kampfbeginn in {0} {4} {2} -BAR_RUNNING0={1} {3} lW {0} rW {4} {2} +BAR_RUNNING0={1} {3} {0} {4} {2} BAR_RUNNING1={1} {3} {5} {0} {6} {4} {2} BAR_RUNNING2={1} {3} {5} {7} {0} {6} {8} {4} {2} BAR_RUNNING3={1} {3} {5} {7} {9} {0} {6} {8} {10} {4} {2} From cc22902ff5b1addb80b9051732c61f7874cc143a Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 10 Nov 2021 13:26:50 +0100 Subject: [PATCH 6/9] Hotfix Kampfleiterentscheidung Signed-off-by: Lixfel --- .../src/de/steamwar/fightsystem/FightSystem.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties b/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties index 5de4b8b..b165506 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties +++ b/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties @@ -205,7 +205,7 @@ BAR_WATER={0} HELLS_BELLS_COUNTDOWN=bis die Bomben fallen TECHKO_COUNTDOWN=bis {0} §7einen Schuss abgegeben haben muss -WIN_FIGHTLEADER="§7Kampfleiterentscheidung" +WIN_FIGHTLEADER=§7Kampfleiterentscheidung WIN_PERCENT={0} §7zu beschädigt WIN_OFFLINE_BOTH=§7Beide Teams offline WIN_OFFLINE={0} §7offline From c44bda92668d14009d7740410ff092ba9124ea9c Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 10 Nov 2021 13:32:10 +0100 Subject: [PATCH 7/9] Hotfix spectator above team area Signed-off-by: Lixfel --- .../src/de/steamwar/fightsystem/listener/TeamArea.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/TeamArea.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/TeamArea.java index 0afab2e..75a1fd8 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/TeamArea.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/TeamArea.java @@ -93,7 +93,7 @@ public class TeamArea implements Listener { return; // Always allowed in own region } - if(inRegion) { + if(region.playerInRegion(event.getTo())) { reset(event, "NO_TEAMAREA"); // Not allowed in region if(team.getSchemRegion().playerInRegion(event.getTo()) && Config.PreperationArea >= 5){ // Preventing false positives due to small extension player.kickPlayer(null); From 3b5a2827894a39fdcdf5527a024a4b69901ea385 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 10 Nov 2021 20:01:21 +0100 Subject: [PATCH 8/9] Improve behaviour during check session Signed-off-by: Lixfel --- .../src/de/steamwar/fightsystem/listener/HotbarGUI.java | 2 +- .../de/steamwar/fightsystem/listener/PistonListener.java | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/HotbarGUI.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/HotbarGUI.java index 2906a33..125b17f 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/HotbarGUI.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/HotbarGUI.java @@ -49,7 +49,6 @@ public class HotbarGUI implements Listener { if(event.getItem() == null) return; - event.setCancelled(true); FightTeam fightTeam = Fight.getPlayerTeam(player); if(fightTeam == null) return; @@ -60,6 +59,7 @@ public class HotbarGUI implements Listener { if(displayName == null) return; + event.setCancelled(true); onMatch(player, displayName, "CHOOSE_SCHEMATIC", () -> GUI.preSchemDialog(player), Config.GameName); onMatch(player, displayName, "INVITE_PLAYERS", () -> GUI.chooseInvitation(player)); onMatch(player, displayName, "REMOVE_PLAYERS", () -> GUI.chooseRemove(player)); diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/PistonListener.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/PistonListener.java index adb4195..8235216 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/PistonListener.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/PistonListener.java @@ -19,6 +19,7 @@ package de.steamwar.fightsystem.listener; +import de.steamwar.fightsystem.ArenaMode; import de.steamwar.fightsystem.Config; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentListener; @@ -32,8 +33,10 @@ public class PistonListener implements Listener { public PistonListener() { //Wenn Entern aktiv ist, sollen Raketen etc. entern können - new StateDependentListener(Config.EnterStages.isEmpty(), FightState.All, this); - new StateDependentListener(!Config.EnterStages.isEmpty(), FightState.Setup, this); + if(!ArenaMode.Check.contains(Config.mode)) { + new StateDependentListener(Config.EnterStages.isEmpty(), FightState.All, this); + new StateDependentListener(!Config.EnterStages.isEmpty(), FightState.Setup, this); + } } @EventHandler From faab60aad2df2c347370d0b65f6d0baa8f5ebfae Mon Sep 17 00:00:00 2001 From: Lixfel Date: Thu, 11 Nov 2021 06:58:36 +0100 Subject: [PATCH 9/9] Fix PersonalKitCreator Signed-off-by: Lixfel --- FightSystem_Core/src/de/steamwar/fightsystem/commands/GUI.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/commands/GUI.java b/FightSystem_Core/src/de/steamwar/fightsystem/commands/GUI.java index 688815c..bd9794e 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/commands/GUI.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/commands/GUI.java @@ -139,7 +139,7 @@ public class GUI { anvilInv.setItem(Material.LEATHER_CHESTPLATE); anvilInv.setCallback(s -> { SteamwarUser user = SteamwarUser.get(p.getUniqueId()); - if(PersonalKit.get(user.getId(), Config.SchematicType.toDB(), s).isInUse()) { + if(PersonalKit.get(user.getId(), Config.SchematicType.toDB(), s) != null) { msg.sendPrefixless("KITNAME_IN_USE", p, ChatMessageType.ACTION_BAR); p.closeInventory(); return;