Browse Source

Refactoring

RedstoneFuture 1 year ago
parent
commit
012defc607

+ 7 - 11
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/signs/MWSign.java

@@ -23,8 +23,7 @@ import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.configuration.Messages;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.GameManager;
-import java.util.ArrayList;
-import java.util.List;
+import de.butzlabben.missilewars.util.version.MaterialHelper;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -32,8 +31,9 @@ import org.bukkit.Bukkit;
 import org.bukkit.Location;
 import org.bukkit.block.Block;
 import org.bukkit.block.Sign;
-import org.bukkit.block.data.BlockData;
-import org.bukkit.block.data.type.WallSign;
+
+import java.util.ArrayList;
+import java.util.List;
 
 @Data
 @AllArgsConstructor
@@ -46,7 +46,7 @@ public class MWSign {
     public boolean isValid() {
         boolean worldExists = location.getWorld() != null;
         boolean lobbyValid = GameManager.getInstance().getGames().containsKey(lobby);
-        boolean blockIsSign = isSign(location.getBlock().getBlockData());
+        boolean blockIsSign = MaterialHelper.isSignMaterial(location.getBlock().getType());
 
         return worldExists && lobbyValid && blockIsSign;
     }
@@ -71,9 +71,9 @@ public class MWSign {
         Bukkit.getScheduler().runTask(MissileWars.getInstance(), () -> editSign(getLocation(), lines));
     }
 
-    public void editSign(Location location, List<String> lines) {
+    private void editSign(Location location, List<String> lines) {
         Block block = location.getBlock();
-        if (!(MWSign.isSign(block.getBlockData()))) {
+        if (!(MaterialHelper.isSignMaterial(block.getType()))) {
             Logger.WARN.log("Configured sign at: " + location + " is not a standing or wall sign");
             return;
         }
@@ -109,8 +109,4 @@ public class MWSign {
                 .replace("%max_players%", Integer.toString(maxPlayers))
                 .replace("%players%", Integer.toString(players));
     }
-    
-    public static boolean isSign(BlockData blockData) {
-        return ((blockData instanceof Sign) || (blockData instanceof WallSign));
-    }
 }

+ 0 - 10
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/GameBoundListener.java

@@ -29,10 +29,6 @@ public abstract class GameBoundListener implements Listener {
 
     private final Game game;
     
-    // https://jd.papermc.io/paper/1.20.4/org/bukkit/Tag.html#ALL_SIGNS
-    // https://minecraft.fandom.com/wiki/Tag#all_signs
-    Tag<Material> signMaterials = Bukkit.getTag(Tag.REGISTRY_BLOCKS, new NamespacedKey(NamespacedKey.MINECRAFT, "all_signs"), Material.class);
-
     protected GameBoundListener(Game game) {
         this.game = game;
     }
@@ -74,10 +70,4 @@ public abstract class GameBoundListener implements Listener {
         mwPlayer.setPlayerInteractEventCancel(true);
         Bukkit.getScheduler().runTaskLater(MissileWars.getInstance(), () -> mwPlayer.setPlayerInteractEventCancel(false), 10);
     }
-    
-    protected boolean isSignMaterial(Material material) {
-        if (signMaterials == null) return false;
-        
-        return signMaterials.isTagged(material);
-    }
 }

+ 2 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/GameListener.java

@@ -34,6 +34,7 @@ import de.butzlabben.missilewars.game.schematics.objects.Missile;
 import de.butzlabben.missilewars.listener.ShieldListener;
 import de.butzlabben.missilewars.menus.inventory.TeamSelectionMenu;
 import de.butzlabben.missilewars.player.MWPlayer;
+import de.butzlabben.missilewars.util.version.MaterialHelper;
 import org.bukkit.*;
 import org.bukkit.entity.EntityType;
 import org.bukkit.entity.Player;
@@ -81,7 +82,7 @@ public class GameListener extends GameBoundListener {
         
         // Interaction Cancelling for some objects:
         if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
-            if (isSignMaterial(event.getClickedBlock().getType())) {
+            if (MaterialHelper.isSignMaterial(event.getClickedBlock().getType())) {
                 event.setCancelled(true);
                 Logger.DEBUG.log("Cancelling of interaction with '#ALL_SIGNS' (Gamemode: " + player.getGameMode().name() + ").");
                 return;

+ 19 - 0
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/version/MaterialHelper.java

@@ -0,0 +1,19 @@
+package de.butzlabben.missilewars.util.version;
+
+import org.bukkit.Bukkit;
+import org.bukkit.Material;
+import org.bukkit.NamespacedKey;
+import org.bukkit.Tag;
+
+public class MaterialHelper {
+    
+    // https://jd.papermc.io/paper/1.20.4/org/bukkit/Tag.html#ALL_SIGNS
+    // https://minecraft.wiki/w/Tag#all_signs
+    static Tag<Material> signMaterials = Bukkit.getTag(Tag.REGISTRY_BLOCKS, new NamespacedKey(NamespacedKey.MINECRAFT, "all_signs"), Material.class);
+    
+    public static boolean isSignMaterial(Material material) {
+        if (signMaterials == null) return false;
+        
+        return signMaterials.isTagged(material);
+    }
+}