diff --git a/ChestsPlusPlus_1_15/ChestsPlusPlus_1_15.iml b/ChestsPlusPlus_1_15/ChestsPlusPlus_1_15.iml new file mode 100644 index 0000000..5d3839d --- /dev/null +++ b/ChestsPlusPlus_1_15/ChestsPlusPlus_1_15.iml @@ -0,0 +1,40 @@ + + + + + + + SPIGOT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ChestsPlusPlus_1_15/pom.xml b/ChestsPlusPlus_1_15/pom.xml new file mode 100644 index 0000000..42e73cb --- /dev/null +++ b/ChestsPlusPlus_1_15/pom.xml @@ -0,0 +1,39 @@ + + + + ChestsPlusPlus + com.jamesdpeters.chests + 1.5-BETA-3 + ../ChestsPlusPlus_Main/pom.xml + + + 4.0.0 + pom + ChestsPlusPlus_1_15 + + + + spigotmc-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + + + com.jamesdpeters.chests + ChestsPlusPlus + 1.5-BETA-3 + + + + org.spigotmc + spigot-api + 1.15.2-R0.1-SNAPSHOT + provided + + + + + \ No newline at end of file diff --git a/ChestsPlusPlus_1_15/src/main/java/com/jamesdpeters/minecraft/chests/MaterialChecker_1_15.java b/ChestsPlusPlus_1_15/src/main/java/com/jamesdpeters/minecraft/chests/MaterialChecker_1_15.java new file mode 100644 index 0000000..f336d4e --- /dev/null +++ b/ChestsPlusPlus_1_15/src/main/java/com/jamesdpeters/minecraft/chests/MaterialChecker_1_15.java @@ -0,0 +1,26 @@ +package com.jamesdpeters.minecraft.chests; + +import com.jamesdpeters.minecraft.chests.api_interfaces.MaterialChecker; +import org.bukkit.Material; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class MaterialChecker_1_15 extends MaterialChecker { + + private List materials; + + MaterialChecker_1_15(){ + materials = new ArrayList<>(); + materials.addAll(DEFAULT_ITEMS); + materials.addAll(Arrays.asList( +// Material.DIRT + )); + } + + @Override + protected List graphically2DList() { + return materials; + } +} diff --git a/ChestsPlusPlus_1_16/ChestsPlusPlus_1_16.iml b/ChestsPlusPlus_1_16/ChestsPlusPlus_1_16.iml new file mode 100644 index 0000000..8040e34 --- /dev/null +++ b/ChestsPlusPlus_1_16/ChestsPlusPlus_1_16.iml @@ -0,0 +1,41 @@ + + + + + + + SPIGOT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ChestsPlusPlus_1_16/pom.xml b/ChestsPlusPlus_1_16/pom.xml new file mode 100644 index 0000000..b809fd5 --- /dev/null +++ b/ChestsPlusPlus_1_16/pom.xml @@ -0,0 +1,40 @@ + + + + ChestsPlusPlus + com.jamesdpeters.chests + 1.5-BETA-3 + ../ChestsPlusPlus_Main/pom.xml + + + 4.0.0 + pom + ChestsPlusPlus_1_16 + + + + spigotmc-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + + + com.jamesdpeters.chests + ChestsPlusPlus + 1.5-BETA-3 + compile + + + + org.spigotmc + spigot-api + 1.16.1-R0.1-SNAPSHOT + provided + + + + + \ No newline at end of file diff --git a/ChestsPlusPlus_1_16/src/main/java/com/jamesdpeters/minecraft/chests/MaterialChecker_1_16.java b/ChestsPlusPlus_1_16/src/main/java/com/jamesdpeters/minecraft/chests/MaterialChecker_1_16.java new file mode 100644 index 0000000..ee0986b --- /dev/null +++ b/ChestsPlusPlus_1_16/src/main/java/com/jamesdpeters/minecraft/chests/MaterialChecker_1_16.java @@ -0,0 +1,29 @@ +package com.jamesdpeters.minecraft.chests; + +import com.jamesdpeters.minecraft.chests.api_interfaces.MaterialChecker; +import org.bukkit.Material; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class MaterialChecker_1_16 extends MaterialChecker { + + private List materials; + + MaterialChecker_1_16(){ + materials = new ArrayList<>(); + materials.addAll(DEFAULT_ITEMS); + //Add previous API additions. + materials.addAll(new MaterialChecker_1_15().graphically2DList()); + materials.addAll(Arrays.asList( +// Material.DIRT + )); + } + + @Override + protected List graphically2DList() { + return materials; + } + +} diff --git a/ChestsPlusPlus_Main/pom.xml b/ChestsPlusPlus_Main/pom.xml index cde5727..53b4a77 100644 --- a/ChestsPlusPlus_Main/pom.xml +++ b/ChestsPlusPlus_Main/pom.xml @@ -86,6 +86,20 @@ 1.7 + + com.jamesdpeters.chests + ChestsPlusPlus_1_16 + 1.5-BETA-3 + compile + + + + com.jamesdpeters.chests + ChestsPlusPlus_1_15 + 1.5-BETA-3 + compile + + @@ -158,11 +172,6 @@ 3.0.0-M1 - - org.apache.maven.plugins - maven-site-plugin - 3.7.1 - diff --git a/ChestsPlusPlus_Main/src/main/java/com/jamesdpeters/minecraft/chests/api_interfaces/APISpecific.java b/ChestsPlusPlus_Main/src/main/java/com/jamesdpeters/minecraft/chests/api_interfaces/APISpecific.java new file mode 100644 index 0000000..2ac3e34 --- /dev/null +++ b/ChestsPlusPlus_Main/src/main/java/com/jamesdpeters/minecraft/chests/api_interfaces/APISpecific.java @@ -0,0 +1,40 @@ +package com.jamesdpeters.minecraft.chests.api_interfaces; + +import com.jamesdpeters.minecraft.chests.MaterialChecker_1_15; +import com.jamesdpeters.minecraft.chests.MaterialChecker_1_16; +import org.bukkit.Bukkit; + +public class APISpecific { + + private static MaterialChecker materialChecker; + private static Version version; + + static { + version = getVersion(); + } + + enum Version { + API_1_16, + API_1_15, + API_1_14; + } + + private static Version getVersion(){ + String version = Bukkit.getBukkitVersion().split("-")[0]; + switch (version){ + //Assume default API is latest. + default: return Version.API_1_16; + case "1.15": return Version.API_1_15; + case "1.14": return Version.API_1_14; + + } + } + + private MaterialChecker getMaterialChecker(Version version){ + switch (version){ + case API_1_16: return new MaterialChecker_1_16(); + case API_1_15: return new MaterialChecker_1_15(); + default: return MaterialChecker.DEFAULT; + } + } +} diff --git a/ChestsPlusPlus_Main/src/main/java/com/jamesdpeters/minecraft/chests/api_interfaces/MaterialChecker.java b/ChestsPlusPlus_Main/src/main/java/com/jamesdpeters/minecraft/chests/api_interfaces/MaterialChecker.java new file mode 100644 index 0000000..cc8a2b0 --- /dev/null +++ b/ChestsPlusPlus_Main/src/main/java/com/jamesdpeters/minecraft/chests/api_interfaces/MaterialChecker.java @@ -0,0 +1,68 @@ +package com.jamesdpeters.minecraft.chests.api_interfaces; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; + +import java.util.Arrays; +import java.util.List; + +public abstract class MaterialChecker { + + public static List DEFAULT_ITEMS = Arrays.asList( + //Signs + Material.ACACIA_SIGN, + Material.ACACIA_WALL_SIGN, + Material.BIRCH_SIGN, + Material.BIRCH_WALL_SIGN, + Material.DARK_OAK_SIGN, + Material.DARK_OAK_WALL_SIGN, + Material.JUNGLE_SIGN, + Material.JUNGLE_WALL_SIGN, + Material.OAK_SIGN, + Material.OAK_WALL_SIGN, + Material.SPRUCE_SIGN, + Material.SPRUCE_WALL_SIGN, + //Doors + Material.ACACIA_DOOR, + Material.BIRCH_DOOR, + Material.DARK_OAK_DOOR, + Material.JUNGLE_DOOR, + Material.OAK_DOOR, + Material.SPRUCE_DOOR, + Material.IRON_DOOR, + //Saplings + Material.SPRUCE_SAPLING, + Material.ACACIA_SAPLING, + Material.BAMBOO_SAPLING, + Material.BIRCH_SAPLING, + Material.DARK_OAK_SAPLING, + Material.JUNGLE_SAPLING, + Material.OAK_SAPLING + ); + + public static MaterialChecker DEFAULT = new MaterialChecker() { + @Override + protected List graphically2DList() { + return DEFAULT_ITEMS; + } + }; + + /** + * API-Specific implementation for materials checks. + * Should return a list of materials where the texture for this item is displayed as 2D rather than a 3D model. + * @return + * List of Materials. + */ + protected abstract List graphically2DList(); + + /** + * Used to test if an item is graphically a block (e.g a sign is a block but is held like an item.) + * @param itemStack + * @return + */ + public boolean isGraphically2D(ItemStack itemStack){ + return graphically2DList().contains(itemStack.getType()); + } + +}