diff --git a/src/main/java/com/massivecraft/factions/Conf.java b/src/main/java/com/massivecraft/factions/Conf.java index 7414cd1a..39ffbe25 100644 --- a/src/main/java/com/massivecraft/factions/Conf.java +++ b/src/main/java/com/massivecraft/factions/Conf.java @@ -394,91 +394,91 @@ public class Conf { territoryEnemyDenyCommands.add("tpaccept"); territoryEnemyDenyCommands.add("tpa"); - territoryProtectedMaterials.add(FactionMaterial.constant("BIRCH_DOOR").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("ACACIA_DOOR").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("IRON_DOOR").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("JUNGLE_DOOR").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("OAK_DOOR").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("SPRUCE_DOOR").get()); + territoryProtectedMaterials.add(FactionMaterial.from("BIRCH_DOOR").get()); + territoryProtectedMaterials.add(FactionMaterial.from("ACACIA_DOOR").get()); + territoryProtectedMaterials.add(FactionMaterial.from("IRON_DOOR").get()); + territoryProtectedMaterials.add(FactionMaterial.from("JUNGLE_DOOR").get()); + territoryProtectedMaterials.add(FactionMaterial.from("OAK_DOOR").get()); + territoryProtectedMaterials.add(FactionMaterial.from("SPRUCE_DOOR").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("ACACIA_TRAPDOOR").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("BIRCH_TRAPDOOR").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("DARK_OAK_TRAPDOOR").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("IRON_TRAPDOOR").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("JUNGLE_TRAPDOOR").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("OAK_TRAPDOOR").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("SPRUCE_TRAPDOOR").get()); + territoryProtectedMaterials.add(FactionMaterial.from("ACACIA_TRAPDOOR").get()); + territoryProtectedMaterials.add(FactionMaterial.from("BIRCH_TRAPDOOR").get()); + territoryProtectedMaterials.add(FactionMaterial.from("DARK_OAK_TRAPDOOR").get()); + territoryProtectedMaterials.add(FactionMaterial.from("IRON_TRAPDOOR").get()); + territoryProtectedMaterials.add(FactionMaterial.from("JUNGLE_TRAPDOOR").get()); + territoryProtectedMaterials.add(FactionMaterial.from("OAK_TRAPDOOR").get()); + territoryProtectedMaterials.add(FactionMaterial.from("SPRUCE_TRAPDOOR").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("ACACIA_FENCE").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("BIRCH_FENCE").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("DARK_OAK_FENCE").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("OAK_FENCE").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("NETHER_BRICK_FENCE").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("SPRUCE_FENCE").get()); + territoryProtectedMaterials.add(FactionMaterial.from("ACACIA_FENCE").get()); + territoryProtectedMaterials.add(FactionMaterial.from("BIRCH_FENCE").get()); + territoryProtectedMaterials.add(FactionMaterial.from("DARK_OAK_FENCE").get()); + territoryProtectedMaterials.add(FactionMaterial.from("OAK_FENCE").get()); + territoryProtectedMaterials.add(FactionMaterial.from("NETHER_BRICK_FENCE").get()); + territoryProtectedMaterials.add(FactionMaterial.from("SPRUCE_FENCE").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("DISPENSER").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("CHEST").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("FURNACE").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("REPEATER").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("JUKEBOX").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("BREWING_STAND").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("ENCHANTING_TABLE").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("CAULDRON").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("FARMLAND").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("BEACON").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("ANVIL").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("TRAPPED_CHEST").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("DROPPER").get()); - territoryProtectedMaterials.add(FactionMaterial.constant("HOPPER").get()); + territoryProtectedMaterials.add(FactionMaterial.from("DISPENSER").get()); + territoryProtectedMaterials.add(FactionMaterial.from("CHEST").get()); + territoryProtectedMaterials.add(FactionMaterial.from("FURNACE").get()); + territoryProtectedMaterials.add(FactionMaterial.from("REPEATER").get()); + territoryProtectedMaterials.add(FactionMaterial.from("JUKEBOX").get()); + territoryProtectedMaterials.add(FactionMaterial.from("BREWING_STAND").get()); + territoryProtectedMaterials.add(FactionMaterial.from("ENCHANTING_TABLE").get()); + territoryProtectedMaterials.add(FactionMaterial.from("CAULDRON").get()); + territoryProtectedMaterials.add(FactionMaterial.from("FARMLAND").get()); + territoryProtectedMaterials.add(FactionMaterial.from("BEACON").get()); + territoryProtectedMaterials.add(FactionMaterial.from("ANVIL").get()); + territoryProtectedMaterials.add(FactionMaterial.from("TRAPPED_CHEST").get()); + territoryProtectedMaterials.add(FactionMaterial.from("DROPPER").get()); + territoryProtectedMaterials.add(FactionMaterial.from("HOPPER").get()); - territoryDenyUseageMaterials.add(FactionMaterial.constant("FIRE_CHARGE").get()); - territoryDenyUseageMaterials.add(FactionMaterial.constant("FLINT_AND_STEEL").get()); - territoryDenyUseageMaterials.add(FactionMaterial.constant("BUCKET").get()); - territoryDenyUseageMaterials.add(FactionMaterial.constant("WATER_BUCKET").get()); - territoryDenyUseageMaterials.add(FactionMaterial.constant("LAVA_BUCKET").get()); + territoryDenyUseageMaterials.add(FactionMaterial.from("FIRE_CHARGE").get()); + territoryDenyUseageMaterials.add(FactionMaterial.from("FLINT_AND_STEEL").get()); + territoryDenyUseageMaterials.add(FactionMaterial.from("BUCKET").get()); + territoryDenyUseageMaterials.add(FactionMaterial.from("WATER_BUCKET").get()); + territoryDenyUseageMaterials.add(FactionMaterial.from("LAVA_BUCKET").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("DARK_OAK_DOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("BIRCH_DOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("ACACIA_DOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("IRON_DOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("JUNGLE_DOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("OAK_DOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("SPRUCE_DOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("DARK_OAK_DOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("BIRCH_DOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("ACACIA_DOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("IRON_DOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("JUNGLE_DOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("OAK_DOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("SPRUCE_DOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("ACACIA_TRAPDOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("BIRCH_TRAPDOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("DARK_OAK_TRAPDOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("IRON_TRAPDOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("JUNGLE_TRAPDOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("OAK_TRAPDOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("SPRUCE_TRAPDOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("ACACIA_TRAPDOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("BIRCH_TRAPDOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("DARK_OAK_TRAPDOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("IRON_TRAPDOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("JUNGLE_TRAPDOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("OAK_TRAPDOOR").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("SPRUCE_TRAPDOOR").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("ACACIA_FENCE").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("BIRCH_FENCE").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("DARK_OAK_FENCE").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("OAK_FENCE").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("NETHER_BRICK_FENCE").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("SPRUCE_FENCE").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("DISPENSER").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("CHEST").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("FURNACE").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("REPEATER").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("JUKEBOX").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("BREWING_STAND").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("ENCHANTING_TABLE").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("CAULDRON").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("FARMLAND").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("BEACON").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("ANVIL").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("TRAPPED_CHEST").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("DROPPER").get()); - territoryProtectedMaterialsWhenOffline.add(FactionMaterial.constant("HOPPER").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("ACACIA_FENCE").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("BIRCH_FENCE").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("DARK_OAK_FENCE").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("OAK_FENCE").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("NETHER_BRICK_FENCE").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("SPRUCE_FENCE").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("DISPENSER").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("CHEST").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("FURNACE").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("REPEATER").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("JUKEBOX").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("BREWING_STAND").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("ENCHANTING_TABLE").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("CAULDRON").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("FARMLAND").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("BEACON").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("ANVIL").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("TRAPPED_CHEST").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("DROPPER").get()); + territoryProtectedMaterialsWhenOffline.add(FactionMaterial.from("HOPPER").get()); - territoryDenyUseageMaterialsWhenOffline.add(FactionMaterial.constant("FIRE_CHARGE").get()); - territoryDenyUseageMaterialsWhenOffline.add(FactionMaterial.constant("FLINT_AND_STEEL").get()); - territoryDenyUseageMaterialsWhenOffline.add(FactionMaterial.constant("BUCKET").get()); - territoryDenyUseageMaterialsWhenOffline.add(FactionMaterial.constant("WATER_BUCKET").get()); - territoryDenyUseageMaterialsWhenOffline.add(FactionMaterial.constant("LAVA_BUCKET").get()); + territoryDenyUseageMaterialsWhenOffline.add(FactionMaterial.from("FIRE_CHARGE").get()); + territoryDenyUseageMaterialsWhenOffline.add(FactionMaterial.from("FLINT_AND_STEEL").get()); + territoryDenyUseageMaterialsWhenOffline.add(FactionMaterial.from("BUCKET").get()); + territoryDenyUseageMaterialsWhenOffline.add(FactionMaterial.from("WATER_BUCKET").get()); + territoryDenyUseageMaterialsWhenOffline.add(FactionMaterial.from("LAVA_BUCKET").get()); safeZoneNerfedCreatureTypes.add(EntityType.BLAZE); safeZoneNerfedCreatureTypes.add(EntityType.CAVE_SPIDER); diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdConfig.java b/src/main/java/com/massivecraft/factions/cmd/CmdConfig.java index c4722005..939e956b 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdConfig.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdConfig.java @@ -163,7 +163,7 @@ public class CmdConfig extends FCommand { // Set else if (innerType == Material.class) { - Material newMat = FactionMaterial.constant(value.toString().toUpperCase()).get(); + Material newMat = FactionMaterial.from(value.toString().toUpperCase()).get(); if (newMat == null || newMat == Material.AIR) { sendMessage(TL.COMMAND_CONFIG_INVALID_MATERIAL.format(fieldName, value.toString().toUpperCase())); diff --git a/src/main/java/com/massivecraft/factions/listeners/FactionsExploitListener.java b/src/main/java/com/massivecraft/factions/listeners/FactionsExploitListener.java index c5ec9dde..bb583626 100644 --- a/src/main/java/com/massivecraft/factions/listeners/FactionsExploitListener.java +++ b/src/main/java/com/massivecraft/factions/listeners/FactionsExploitListener.java @@ -44,7 +44,7 @@ public class FactionsExploitListener implements Listener { // blocks who occupy less than 1 block width or length wise need to be handled differently Material mat = event.getTo().getBlock().getType(); - if (((mat == FactionMaterial.constant("GLASS_PANE").get() || mat == FactionMaterial.constant("IRON_BARS").get()) && clippingThrough(target, from, 0.65)) || ((mat.name().toLowerCase().contains("fence")) && clippingThrough(target, from, 0.45))) { + if (((mat == FactionMaterial.from("GLASS_PANE").get() || mat == FactionMaterial.from("IRON_BARS").get()) && clippingThrough(target, from, 0.65)) || ((mat.name().toLowerCase().contains("fence")) && clippingThrough(target, from, 0.45))) { event.setTo(from); return; } diff --git a/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java b/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java index d091c73e..fe2457f5 100644 --- a/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java +++ b/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java @@ -508,7 +508,7 @@ public class FactionsPlayerListener implements Listener { // You may use any block unless it is another faction's territory... if (rel.isNeutral() || (rel.isEnemy() && Conf.territoryEnemyProtectMaterials) || (rel.isAlly() && Conf.territoryAllyProtectMaterials) || (rel.isTruce() && Conf.territoryTruceProtectMaterials)) { if (!justCheck) { - me.msg(TL.PLAYER_USE_TERRITORY, (material == FactionMaterial.constant("FARMLAND").get() ? "trample " : "use ") + TextUtil.getMaterialName(material), otherFaction.getTag(myFaction)); + me.msg(TL.PLAYER_USE_TERRITORY, (material == FactionMaterial.from("FARMLAND").get() ? "trample " : "use ") + TextUtil.getMaterialName(material), otherFaction.getTag(myFaction)); } return false; diff --git a/src/main/java/com/massivecraft/factions/util/SeeChunkUtil.java b/src/main/java/com/massivecraft/factions/util/SeeChunkUtil.java index ec72bb8f..22dc75d2 100644 --- a/src/main/java/com/massivecraft/factions/util/SeeChunkUtil.java +++ b/src/main/java/com/massivecraft/factions/util/SeeChunkUtil.java @@ -100,7 +100,7 @@ public class SeeChunkUtil extends BukkitRunnable { effect.display(color, loc, player); } } else { - Material mat = blockY % 5 == 0 ? FactionMaterial.constant("REDSTONE_LAMP").get() : FactionMaterial.constant("GLASS_PANE").get(); + Material mat = blockY % 5 == 0 ? FactionMaterial.from("REDSTONE_LAMP").get() : FactionMaterial.from("GLASS_PANE").get(); VisualizeUtil.addLocation(player, loc, mat); } } diff --git a/src/main/java/com/massivecraft/factions/util/material/FactionMaterial.java b/src/main/java/com/massivecraft/factions/util/material/FactionMaterial.java index 06964d9c..508d7958 100644 --- a/src/main/java/com/massivecraft/factions/util/material/FactionMaterial.java +++ b/src/main/java/com/massivecraft/factions/util/material/FactionMaterial.java @@ -1,15 +1,21 @@ package com.massivecraft.factions.util.material; +import com.massivecraft.factions.P; import org.bukkit.Material; +import java.util.logging.Level; + public class FactionMaterial { private String name; - private FactionMaterial(String name, boolean legacy) { - if (legacy && MaterialDb.getInstance().legacy) { - // If we are using Legacy we need to change the name to the 1.13 equivalent + private FactionMaterial(String name) { + if (MaterialDb.getInstance().provider.isLegacy(name)) { + // If the name is legacy attempt to match it to 1.13 name and store that this.name = MaterialDb.getInstance().provider.fromLegacy(name); + if (this.name == null) { + P.p.log(Level.WARNING, "Material " + name + "does not exist"); + } } else { this.name = name; } @@ -23,14 +29,9 @@ public class FactionMaterial { } } - // Build FactionMaterial with only 1.13 name - public static FactionMaterial constant(String name) { - return new FactionMaterial(name, false); - } - - // Build FactionMaterial from legacy name (if in legacy mode) - public static FactionMaterial legacy(String name) { - return new FactionMaterial(name, true); + // Build FactionMaterial with 1.13 or 1.12 name + public static FactionMaterial from(String name) { + return new FactionMaterial(name); } // Build using Material provided diff --git a/src/main/java/com/massivecraft/factions/util/material/MaterialProvider.java b/src/main/java/com/massivecraft/factions/util/material/MaterialProvider.java index 75608e26..59dd57ca 100644 --- a/src/main/java/com/massivecraft/factions/util/material/MaterialProvider.java +++ b/src/main/java/com/massivecraft/factions/util/material/MaterialProvider.java @@ -35,6 +35,11 @@ public class MaterialProvider { return material; } + public boolean isLegacy(String legacy) { + // If we don't have it as key then it is Legacy or doesn't exist + return !materialData.containsKey(legacy); + } + public String fromLegacy(String legacy) { for (MaterialData data : materialData.values()) { if (data.legacy != null && data.legacy.equalsIgnoreCase(legacy)) { diff --git a/src/main/java/com/massivecraft/factions/util/material/adapter/FactionMaterialAdapter.java b/src/main/java/com/massivecraft/factions/util/material/adapter/FactionMaterialAdapter.java index abe9967f..e6bfd407 100644 --- a/src/main/java/com/massivecraft/factions/util/material/adapter/FactionMaterialAdapter.java +++ b/src/main/java/com/massivecraft/factions/util/material/adapter/FactionMaterialAdapter.java @@ -16,7 +16,7 @@ public class FactionMaterialAdapter extends TypeAdapter { @Override public FactionMaterial read(JsonReader in) throws IOException { - return FactionMaterial.constant(in.nextString()); + return FactionMaterial.from(in.nextString()); } } diff --git a/src/main/java/com/massivecraft/factions/util/material/adapter/MaterialAdapter.java b/src/main/java/com/massivecraft/factions/util/material/adapter/MaterialAdapter.java index 2fdefbec..0e351305 100644 --- a/src/main/java/com/massivecraft/factions/util/material/adapter/MaterialAdapter.java +++ b/src/main/java/com/massivecraft/factions/util/material/adapter/MaterialAdapter.java @@ -19,7 +19,7 @@ public class MaterialAdapter extends TypeAdapter { @Override public Material read(JsonReader in) throws IOException { - return FactionMaterial.constant(in.nextString()).get(); + return FactionMaterial.from(in.nextString()).get(); } }