Merge 1.12 and 1.13 adapter to one method

This commit is contained in:
Diego Arias 2018-12-16 22:20:44 -03:00
parent 6bbe77a980
commit 77a9ff1546
9 changed files with 100 additions and 94 deletions

View File

@ -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);

View File

@ -163,7 +163,7 @@ public class CmdConfig extends FCommand {
// Set<Material>
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()));

View File

@ -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;
}

View File

@ -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;

View File

@ -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);
}
}

View File

@ -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

View File

@ -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)) {

View File

@ -16,7 +16,7 @@ public class FactionMaterialAdapter extends TypeAdapter<FactionMaterial> {
@Override
public FactionMaterial read(JsonReader in) throws IOException {
return FactionMaterial.constant(in.nextString());
return FactionMaterial.from(in.nextString());
}
}

View File

@ -19,7 +19,7 @@ public class MaterialAdapter extends TypeAdapter<Material> {
@Override
public Material read(JsonReader in) throws IOException {
return FactionMaterial.constant(in.nextString()).get();
return FactionMaterial.from(in.nextString()).get();
}
}