mirror of
https://github.com/songoda/SongodaCore.git
synced 2024-11-30 14:03:23 +01:00
BREAKING: refactored LegacyMaterials -> CompatibleMaterial
This commit is contained in:
parent
fe62b96c4a
commit
1783fa18ac
@ -7,7 +7,7 @@ import com.songoda.core.core.SongodaCoreCommand;
|
|||||||
import com.songoda.core.core.SongodaCoreDiagCommand;
|
import com.songoda.core.core.SongodaCoreDiagCommand;
|
||||||
import com.songoda.core.commands.CommandManager;
|
import com.songoda.core.commands.CommandManager;
|
||||||
import com.songoda.core.compatibility.ClientVersion;
|
import com.songoda.core.compatibility.ClientVersion;
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
@ -62,7 +62,7 @@ public class SongodaCore {
|
|||||||
return !SongodaCore.class.getPackage().getName().equals(new String(new char[]{'c','o','m','.','s','o','n','g','o','d','a','.','c','o','r','e'}));
|
return !SongodaCore.class.getPackage().getName().equals(new String(new char[]{'c','o','m','.','s','o','n','g','o','d','a','.','c','o','r','e'}));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerPlugin(JavaPlugin plugin, int pluginID, LegacyMaterials icon) {
|
public static void registerPlugin(JavaPlugin plugin, int pluginID, CompatibleMaterial icon) {
|
||||||
registerPlugin(plugin, pluginID, icon == null ? "STONE" : icon.name());
|
registerPlugin(plugin, pluginID, icon == null ? "STONE" : icon.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,61 +172,61 @@ public class SongodaCore {
|
|||||||
PluginManager pm = Bukkit.getPluginManager();
|
PluginManager pm = Bukkit.getPluginManager();
|
||||||
String p;
|
String p;
|
||||||
if (!isRegistered(p = "EpicAnchors") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "EpicAnchors") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 31, LegacyMaterials.END_PORTAL_FRAME.name());
|
register((JavaPlugin) pm.getPlugin(p), 31, CompatibleMaterial.END_PORTAL_FRAME.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "EpicBosses") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "EpicBosses") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 19, LegacyMaterials.ZOMBIE_SPAWN_EGG.name());
|
register((JavaPlugin) pm.getPlugin(p), 19, CompatibleMaterial.ZOMBIE_SPAWN_EGG.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "EpicEnchants") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "EpicEnchants") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 67, LegacyMaterials.DIAMOND_SWORD.name());
|
register((JavaPlugin) pm.getPlugin(p), 67, CompatibleMaterial.DIAMOND_SWORD.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "EpicFarming") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "EpicFarming") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 21, LegacyMaterials.WHEAT.name());
|
register((JavaPlugin) pm.getPlugin(p), 21, CompatibleMaterial.WHEAT.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "EpicFurnaces") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "EpicFurnaces") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 22, LegacyMaterials.FURNACE.name());
|
register((JavaPlugin) pm.getPlugin(p), 22, CompatibleMaterial.FURNACE.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "EpicHeads") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "EpicHeads") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 26, LegacyMaterials.PLAYER_HEAD.name());
|
register((JavaPlugin) pm.getPlugin(p), 26, CompatibleMaterial.PLAYER_HEAD.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "EpicHoppers") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "EpicHoppers") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 15, LegacyMaterials.HOPPER.name());
|
register((JavaPlugin) pm.getPlugin(p), 15, CompatibleMaterial.HOPPER.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "EpicLevels") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "EpicLevels") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 44, LegacyMaterials.NETHER_STAR.name());
|
register((JavaPlugin) pm.getPlugin(p), 44, CompatibleMaterial.NETHER_STAR.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "EpicSpawners") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "EpicSpawners") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 13, LegacyMaterials.SPAWNER.name());
|
register((JavaPlugin) pm.getPlugin(p), 13, CompatibleMaterial.SPAWNER.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "EpicVouchers") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "EpicVouchers") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 25, LegacyMaterials.EMERALD.name());
|
register((JavaPlugin) pm.getPlugin(p), 25, CompatibleMaterial.EMERALD.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "FabledSkyBlock") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "FabledSkyBlock") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 17, LegacyMaterials.GRASS_BLOCK.name());
|
register((JavaPlugin) pm.getPlugin(p), 17, CompatibleMaterial.GRASS_BLOCK.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "UltimateCatcher") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "UltimateCatcher") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 51, LegacyMaterials.EGG.name());
|
register((JavaPlugin) pm.getPlugin(p), 51, CompatibleMaterial.EGG.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "UltimateClaims") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "UltimateClaims") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 65, LegacyMaterials.CHEST.name());
|
register((JavaPlugin) pm.getPlugin(p), 65, CompatibleMaterial.CHEST.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "UltimateFishing") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "UltimateFishing") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 59, LegacyMaterials.COD.name());
|
register((JavaPlugin) pm.getPlugin(p), 59, CompatibleMaterial.COD.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "UltimateKits") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "UltimateKits") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 14, LegacyMaterials.BEACON.name());
|
register((JavaPlugin) pm.getPlugin(p), 14, CompatibleMaterial.BEACON.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "UltimateModeration") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "UltimateModeration") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 29, LegacyMaterials.DIAMOND_CHESTPLATE.name());
|
register((JavaPlugin) pm.getPlugin(p), 29, CompatibleMaterial.DIAMOND_CHESTPLATE.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "UltimateRepairing") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "UltimateRepairing") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 20, LegacyMaterials.ANVIL.name());
|
register((JavaPlugin) pm.getPlugin(p), 20, CompatibleMaterial.ANVIL.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "UltimateStacker") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "UltimateStacker") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 16, LegacyMaterials.IRON_INGOT.name());
|
register((JavaPlugin) pm.getPlugin(p), 16, CompatibleMaterial.IRON_INGOT.name());
|
||||||
}
|
}
|
||||||
if (!isRegistered(p = "UltimateTimber") && pm.isPluginEnabled(p)) {
|
if (!isRegistered(p = "UltimateTimber") && pm.isPluginEnabled(p)) {
|
||||||
register((JavaPlugin) pm.getPlugin(p), 18, LegacyMaterials.IRON_AXE.name());
|
register((JavaPlugin) pm.getPlugin(p), 18, CompatibleMaterial.IRON_AXE.name());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
* @since 2019-08-23
|
* @since 2019-08-23
|
||||||
* @author jascotty2
|
* @author jascotty2
|
||||||
*/
|
*/
|
||||||
public enum LegacyMaterials {
|
public enum CompatibleMaterial {
|
||||||
/*
|
/*
|
||||||
TODO: add another handler for getBlockItem() for materials and fallback materials
|
TODO: add another handler for getBlockItem() for materials and fallback materials
|
||||||
|
|
||||||
@ -1008,7 +1008,7 @@ public enum LegacyMaterials {
|
|||||||
ZOMBIE_WALL_HEAD("SKULL", (byte) 2),;
|
ZOMBIE_WALL_HEAD("SKULL", (byte) 2),;
|
||||||
|
|
||||||
private final String modern, modern2, legacy;
|
private final String modern, modern2, legacy;
|
||||||
private final LegacyAnalouges compatibleMaterial;
|
private final LegacyMaterialAnalouge compatibleMaterial;
|
||||||
private final boolean legacyRequiresData;
|
private final boolean legacyRequiresData;
|
||||||
// some materials (I'm looking at you, GREEN_DYE) have changed ID more than once
|
// some materials (I'm looking at you, GREEN_DYE) have changed ID more than once
|
||||||
// minVersion is the min for modern, and minVersion2 is min to use legacyCompat1
|
// minVersion is the min for modern, and minVersion2 is min to use legacyCompat1
|
||||||
@ -1019,43 +1019,43 @@ public enum LegacyMaterials {
|
|||||||
// quick test to see if our version is < 1.13
|
// quick test to see if our version is < 1.13
|
||||||
protected static final boolean useLegacy = ServerVersion.isServerVersionBelow(ServerVersion.V1_13);
|
protected static final boolean useLegacy = ServerVersion.isServerVersionBelow(ServerVersion.V1_13);
|
||||||
// map to speed up name->material lookups
|
// map to speed up name->material lookups
|
||||||
private static final Map<String, LegacyMaterials> lookupMap = new HashMap();
|
private static final Map<String, CompatibleMaterial> lookupMap = new HashMap();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
for (LegacyMaterials m : values()) {
|
for (CompatibleMaterial m : values()) {
|
||||||
lookupMap.put(m.name(), m);
|
lookupMap.put(m.name(), m);
|
||||||
if (!m.usesCompatibility()) {
|
if (!m.usesCompatibility()) {
|
||||||
lookupMap.put(m.material + ":" + (m.data == null ? "" : m.data), m);
|
lookupMap.put(m.material + ":" + (m.data == null ? "" : m.data), m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (LegacyMaterials m : values()) {
|
for (CompatibleMaterial m : values()) {
|
||||||
if (!m.usesCompatibility() && !lookupMap.containsKey(m.legacy)) {
|
if (!m.usesCompatibility() && !lookupMap.containsKey(m.legacy)) {
|
||||||
lookupMap.put(m.legacy, m);
|
lookupMap.put(m.legacy, m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LegacyMaterials() {
|
CompatibleMaterial() {
|
||||||
this(ServerVersion.UNKNOWN, null, null);
|
this(ServerVersion.UNKNOWN, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
LegacyMaterials(String legacy) {
|
CompatibleMaterial(String legacy) {
|
||||||
this(ServerVersion.V1_13, null, null, legacy, null);
|
this(ServerVersion.V1_13, null, null, legacy, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
LegacyMaterials(String legacy, byte legacyData) {
|
CompatibleMaterial(String legacy, byte legacyData) {
|
||||||
this(ServerVersion.V1_13, null, null, legacy, legacyData);
|
this(ServerVersion.V1_13, null, null, legacy, legacyData);
|
||||||
}
|
}
|
||||||
|
|
||||||
LegacyMaterials(ServerVersion modernMinimum, String legacy) {
|
CompatibleMaterial(ServerVersion modernMinimum, String legacy) {
|
||||||
this(modernMinimum, null, null, legacy, null);
|
this(modernMinimum, null, null, legacy, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
LegacyMaterials(ServerVersion modernMinimum, String legacy, Byte legacyData) {
|
CompatibleMaterial(ServerVersion modernMinimum, String legacy, Byte legacyData) {
|
||||||
this(modernMinimum, null, null, legacy, legacyData);
|
this(modernMinimum, null, null, legacy, legacyData);
|
||||||
}
|
}
|
||||||
|
|
||||||
LegacyMaterials(ServerVersion modernMinimum, String modern2, ServerVersion modern2Minimum, String legacyMaterial, Byte legacyData) {
|
CompatibleMaterial(ServerVersion modernMinimum, String modern2, ServerVersion modern2Minimum, String legacyMaterial, Byte legacyData) {
|
||||||
this.modern = name();
|
this.modern = name();
|
||||||
this.modern2 = modern2;
|
this.modern2 = modern2;
|
||||||
this.minVersion = modernMinimum;
|
this.minVersion = modernMinimum;
|
||||||
@ -1063,7 +1063,7 @@ public enum LegacyMaterials {
|
|||||||
this.legacy = legacyMaterial;
|
this.legacy = legacyMaterial;
|
||||||
this.legacyData = legacyData == null ? 0 : legacyData;
|
this.legacyData = legacyData == null ? 0 : legacyData;
|
||||||
this.legacyRequiresData = legacyData != null;
|
this.legacyRequiresData = legacyData != null;
|
||||||
this.compatibleMaterial = LegacyAnalouges.lookupAnalouge(modern);
|
this.compatibleMaterial = LegacyMaterialAnalouge.lookupAnalouge(modern);
|
||||||
|
|
||||||
if (compatibleMaterial != null && ServerVersion.isServerVersionBelow(compatibleMaterial.versionLessThan)) {
|
if (compatibleMaterial != null && ServerVersion.isServerVersionBelow(compatibleMaterial.versionLessThan)) {
|
||||||
// server older than this item: use a proxy
|
// server older than this item: use a proxy
|
||||||
@ -1157,7 +1157,7 @@ public enum LegacyMaterials {
|
|||||||
* @param name item to lookup
|
* @param name item to lookup
|
||||||
* @return LegacyMaterial or null if none found
|
* @return LegacyMaterial or null if none found
|
||||||
*/
|
*/
|
||||||
public static LegacyMaterials getMaterial(String name) {
|
public static CompatibleMaterial getMaterial(String name) {
|
||||||
return name == null ? null : lookupMap.get(name.toUpperCase());
|
return name == null ? null : lookupMap.get(name.toUpperCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1170,7 +1170,7 @@ public enum LegacyMaterials {
|
|||||||
* @param def default item if this is not a valid material
|
* @param def default item if this is not a valid material
|
||||||
* @return LegacyMaterial or null if none found
|
* @return LegacyMaterial or null if none found
|
||||||
*/
|
*/
|
||||||
public static LegacyMaterials getMaterial(String name, LegacyMaterials def) {
|
public static CompatibleMaterial getMaterial(String name, CompatibleMaterial def) {
|
||||||
return name == null ? def : lookupMap.getOrDefault(name.toUpperCase(), def);
|
return name == null ? def : lookupMap.getOrDefault(name.toUpperCase(), def);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1180,7 +1180,7 @@ public enum LegacyMaterials {
|
|||||||
* @param mat item to lookup
|
* @param mat item to lookup
|
||||||
* @return LegacyMaterial or null if none found
|
* @return LegacyMaterial or null if none found
|
||||||
*/
|
*/
|
||||||
public static LegacyMaterials getMaterial(Material mat) {
|
public static CompatibleMaterial getMaterial(Material mat) {
|
||||||
return mat == null ? null : lookupMap.get(mat.name());
|
return mat == null ? null : lookupMap.get(mat.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1190,21 +1190,21 @@ public enum LegacyMaterials {
|
|||||||
* @param item item to lookup
|
* @param item item to lookup
|
||||||
* @return LegacyMaterial or null if none found
|
* @return LegacyMaterial or null if none found
|
||||||
*/
|
*/
|
||||||
public static LegacyMaterials getMaterial(ItemStack item) {
|
public static CompatibleMaterial getMaterial(ItemStack item) {
|
||||||
if (item == null) {
|
if (item == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
String key = item.getType() + ":";
|
String key = item.getType() + ":";
|
||||||
LegacyMaterials m = lookupMap.get(key);
|
CompatibleMaterial m = lookupMap.get(key);
|
||||||
return m != null ? m : lookupMap.get(key + item.getDurability());
|
return m != null ? m : lookupMap.get(key + item.getDurability());
|
||||||
}
|
}
|
||||||
|
|
||||||
static LinkedHashSet<LegacyMaterials> all = null;
|
static LinkedHashSet<CompatibleMaterial> all = null;
|
||||||
|
|
||||||
public static Set<LegacyMaterials> getAllValidItemMaterials() {
|
public static Set<CompatibleMaterial> getAllValidItemMaterials() {
|
||||||
if (all == null) {
|
if (all == null) {
|
||||||
all = new LinkedHashSet();
|
all = new LinkedHashSet();
|
||||||
for (LegacyMaterials mat : values()) {
|
for (CompatibleMaterial mat : values()) {
|
||||||
if (mat.isValidItem() && !mat.usesCompatibility()) {
|
if (mat.isValidItem() && !mat.usesCompatibility()) {
|
||||||
all.add(mat);
|
all.add(mat);
|
||||||
}
|
}
|
||||||
@ -1226,7 +1226,7 @@ public enum LegacyMaterials {
|
|||||||
if (name == null) {
|
if (name == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
LegacyMaterials m = lookupMap.get(name.toUpperCase());
|
CompatibleMaterial m = lookupMap.get(name.toUpperCase());
|
||||||
if (m != null) {
|
if (m != null) {
|
||||||
return m.getItem();
|
return m.getItem();
|
||||||
}
|
}
|
||||||
@ -2030,14 +2030,14 @@ public enum LegacyMaterials {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LegacyMaterials getSpawnEgg(EntityType type) {
|
public static CompatibleMaterial getSpawnEgg(EntityType type) {
|
||||||
if(type == EntityType.MUSHROOM_COW) {
|
if(type == EntityType.MUSHROOM_COW) {
|
||||||
return MOOSHROOM_SPAWN_EGG;
|
return MOOSHROOM_SPAWN_EGG;
|
||||||
}
|
}
|
||||||
return lookupMap.get(type.name() + "_SPAWN_EGG");
|
return lookupMap.get(type.name() + "_SPAWN_EGG");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LegacyMaterials getGlassPaneColor(int color) {
|
public static CompatibleMaterial getGlassPaneColor(int color) {
|
||||||
switch (color) {
|
switch (color) {
|
||||||
case 0:
|
case 0:
|
||||||
return WHITE_STAINED_GLASS_PANE;
|
return WHITE_STAINED_GLASS_PANE;
|
||||||
@ -2075,7 +2075,7 @@ public enum LegacyMaterials {
|
|||||||
return WHITE_STAINED_GLASS_PANE;
|
return WHITE_STAINED_GLASS_PANE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LegacyMaterials getGlassColor(int color) {
|
public static CompatibleMaterial getGlassColor(int color) {
|
||||||
switch (color) {
|
switch (color) {
|
||||||
case 0:
|
case 0:
|
||||||
return WHITE_STAINED_GLASS;
|
return WHITE_STAINED_GLASS;
|
||||||
@ -2113,7 +2113,7 @@ public enum LegacyMaterials {
|
|||||||
return WHITE_STAINED_GLASS;
|
return WHITE_STAINED_GLASS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LegacyMaterials getDyeColor(int color) {
|
public static CompatibleMaterial getDyeColor(int color) {
|
||||||
switch (color) {
|
switch (color) {
|
||||||
case 0:
|
case 0:
|
||||||
return BLACK_DYE;
|
return BLACK_DYE;
|
@ -9,7 +9,7 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.Particle;
|
import org.bukkit.Particle;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
|
|
||||||
public class ParticleHandler {
|
public class CompatibleParticleHandler {
|
||||||
|
|
||||||
public static enum ParticleType {
|
public static enum ParticleType {
|
||||||
EXPLOSION_NORMAL(),
|
EXPLOSION_NORMAL(),
|
@ -14,7 +14,7 @@ import org.bukkit.Sound;
|
|||||||
* @since 2019-08-25
|
* @since 2019-08-25
|
||||||
* @author jascotty2
|
* @author jascotty2
|
||||||
*/
|
*/
|
||||||
public enum CompatibleSounds {
|
public enum CompatibleSound {
|
||||||
|
|
||||||
// some of these values are missing an API value..
|
// some of these values are missing an API value..
|
||||||
// would using the raw strings be better?
|
// would using the raw strings be better?
|
||||||
@ -820,7 +820,7 @@ public enum CompatibleSounds {
|
|||||||
protected /*final*/ boolean compatibilityMode;
|
protected /*final*/ boolean compatibilityMode;
|
||||||
protected static final boolean DEBUG = false;
|
protected static final boolean DEBUG = false;
|
||||||
|
|
||||||
private CompatibleSounds() {
|
private CompatibleSound() {
|
||||||
// This could get risky, since we haven't finished this
|
// This could get risky, since we haven't finished this
|
||||||
//sound = Sound.valueOf(name());
|
//sound = Sound.valueOf(name());
|
||||||
Sound find = null;
|
Sound find = null;
|
||||||
@ -838,7 +838,7 @@ public enum CompatibleSounds {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// if the sound ony ever changed from 1.8 -> 1.9
|
// if the sound ony ever changed from 1.8 -> 1.9
|
||||||
private CompatibleSounds(String compatibility_18) {
|
private CompatibleSound(String compatibility_18) {
|
||||||
try {
|
try {
|
||||||
compatibilityMode = false;
|
compatibilityMode = false;
|
||||||
if (ServerVersion.isServerVersionBelow(ServerVersion.V1_9)) {
|
if (ServerVersion.isServerVersionBelow(ServerVersion.V1_9)) {
|
||||||
@ -852,7 +852,7 @@ public enum CompatibleSounds {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private CompatibleSounds(Version... versions) {
|
private CompatibleSound(Version... versions) {
|
||||||
try {
|
try {
|
||||||
for (Version v : versions) {
|
for (Version v : versions) {
|
||||||
if (v.sound != null && ServerVersion.isServerVersionAtLeast(v.version)) {
|
if (v.sound != null && ServerVersion.isServerVersionAtLeast(v.version)) {
|
||||||
@ -880,7 +880,7 @@ public enum CompatibleSounds {
|
|||||||
compatibilityMode = find == null;
|
compatibilityMode = find == null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CompatibleSounds(ServerVersion minVersion, Version... versions) {
|
private CompatibleSound(ServerVersion minVersion, Version... versions) {
|
||||||
try {
|
try {
|
||||||
if (ServerVersion.isServerVersionAtLeast(minVersion)) {
|
if (ServerVersion.isServerVersionAtLeast(minVersion)) {
|
||||||
// should be good to use this sound
|
// should be good to use this sound
|
@ -10,7 +10,7 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
* @since 2019-08-23
|
* @since 2019-08-23
|
||||||
* @author jascotty2
|
* @author jascotty2
|
||||||
*/
|
*/
|
||||||
public enum LegacyAnalouges {
|
public enum LegacyMaterialAnalouge {
|
||||||
|
|
||||||
ACACIA_BOAT(ServerVersion.V1_9, "BOAT"),
|
ACACIA_BOAT(ServerVersion.V1_9, "BOAT"),
|
||||||
ACACIA_BUTTON(ServerVersion.V1_13, "WOOD_BUTTON"),
|
ACACIA_BUTTON(ServerVersion.V1_13, "WOOD_BUTTON"),
|
||||||
@ -486,47 +486,47 @@ public enum LegacyAnalouges {
|
|||||||
final Byte data;
|
final Byte data;
|
||||||
|
|
||||||
// map to speed up name->material lookups
|
// map to speed up name->material lookups
|
||||||
private static final Map<String, LegacyAnalouges> lookupMap = new HashMap();
|
private static final Map<String, LegacyMaterialAnalouge> lookupMap = new HashMap();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
for (LegacyAnalouges m : values()) {
|
for (LegacyMaterialAnalouge m : values()) {
|
||||||
lookupMap.put(m.name(), m);
|
lookupMap.put(m.name(), m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LegacyAnalouges lookupAnalouge(String material) {
|
public static LegacyMaterialAnalouge lookupAnalouge(String material) {
|
||||||
return lookupMap.get(material);
|
return lookupMap.get(material);
|
||||||
}
|
}
|
||||||
|
|
||||||
private LegacyAnalouges(ServerVersion versionLessThan, String legacyMaterial, byte legacyData) {
|
private LegacyMaterialAnalouge(ServerVersion versionLessThan, String legacyMaterial, byte legacyData) {
|
||||||
this(versionLessThan, null, legacyMaterial, legacyData, null, null, null);
|
this(versionLessThan, null, legacyMaterial, legacyData, null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private LegacyAnalouges(ServerVersion versionLessThan, String legacyMaterial) {
|
private LegacyMaterialAnalouge(ServerVersion versionLessThan, String legacyMaterial) {
|
||||||
this(versionLessThan, null, legacyMaterial, null, null, null, null);
|
this(versionLessThan, null, legacyMaterial, null, null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private LegacyAnalouges(ServerVersion versionLessThan, String modernAnalouge, String legacyMaterial) {
|
private LegacyMaterialAnalouge(ServerVersion versionLessThan, String modernAnalouge, String legacyMaterial) {
|
||||||
this(versionLessThan, modernAnalouge, legacyMaterial, null, null, null, null);
|
this(versionLessThan, modernAnalouge, legacyMaterial, null, null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private LegacyAnalouges(ServerVersion versionLessThan, String modernAnalouge, String legacyMaterial, byte legacyData) {
|
private LegacyMaterialAnalouge(ServerVersion versionLessThan, String modernAnalouge, String legacyMaterial, byte legacyData) {
|
||||||
this(versionLessThan, modernAnalouge, legacyMaterial, legacyData, null, null, null);
|
this(versionLessThan, modernAnalouge, legacyMaterial, legacyData, null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private LegacyAnalouges(ServerVersion versionLessThan, String legacyMaterial, byte legacyData, ServerVersion legacyMinimum, String compatMaterial, byte compatData) {
|
private LegacyMaterialAnalouge(ServerVersion versionLessThan, String legacyMaterial, byte legacyData, ServerVersion legacyMinimum, String compatMaterial, byte compatData) {
|
||||||
this(versionLessThan, null, legacyMaterial, legacyData, legacyMinimum, compatMaterial, compatData);
|
this(versionLessThan, null, legacyMaterial, legacyData, legacyMinimum, compatMaterial, compatData);
|
||||||
}
|
}
|
||||||
|
|
||||||
private LegacyAnalouges(ServerVersion versionLessThan, String legacyMaterial, ServerVersion legacyMinimum, String compatMaterial, byte compatData) {
|
private LegacyMaterialAnalouge(ServerVersion versionLessThan, String legacyMaterial, ServerVersion legacyMinimum, String compatMaterial, byte compatData) {
|
||||||
this(versionLessThan, null, legacyMaterial, null, legacyMinimum, compatMaterial, compatData);
|
this(versionLessThan, null, legacyMaterial, null, legacyMinimum, compatMaterial, compatData);
|
||||||
}
|
}
|
||||||
|
|
||||||
private LegacyAnalouges(ServerVersion versionLessThan, String legacyMaterial, byte legacyData, ServerVersion legacyMinimum, String compatMaterial) {
|
private LegacyMaterialAnalouge(ServerVersion versionLessThan, String legacyMaterial, byte legacyData, ServerVersion legacyMinimum, String compatMaterial) {
|
||||||
this(versionLessThan, null, legacyMaterial, legacyData, legacyMinimum, compatMaterial, null);
|
this(versionLessThan, null, legacyMaterial, legacyData, legacyMinimum, compatMaterial, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private LegacyAnalouges(ServerVersion versionLessThan, String legacyMaterial, ServerVersion legacyMinimum, String compatMaterial) {
|
private LegacyMaterialAnalouge(ServerVersion versionLessThan, String legacyMaterial, ServerVersion legacyMinimum, String compatMaterial) {
|
||||||
this(versionLessThan, null, legacyMaterial, null, legacyMinimum, compatMaterial, null);
|
this(versionLessThan, null, legacyMaterial, null, legacyMinimum, compatMaterial, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -537,7 +537,7 @@ public enum LegacyAnalouges {
|
|||||||
* @param legacyMaterial pre-1.13 material name
|
* @param legacyMaterial pre-1.13 material name
|
||||||
* @param legacyData data for defining specific legacy items
|
* @param legacyData data for defining specific legacy items
|
||||||
*/
|
*/
|
||||||
private LegacyAnalouges(ServerVersion versionLessThan, String modernAnalouge, String legacyMaterial, Byte legacyData, ServerVersion legacyMinimum, String compatMaterial, Byte compatData) {
|
private LegacyMaterialAnalouge(ServerVersion versionLessThan, String modernAnalouge, String legacyMaterial, Byte legacyData, ServerVersion legacyMinimum, String compatMaterial, Byte compatData) {
|
||||||
this.versionLessThan = versionLessThan;
|
this.versionLessThan = versionLessThan;
|
||||||
this.modernMaterial = modernAnalouge;
|
this.modernMaterial = modernAnalouge;
|
||||||
this.legacyMaterial = legacyMaterial;
|
this.legacyMaterial = legacyMaterial;
|
@ -6,7 +6,7 @@ import org.bukkit.Bukkit;
|
|||||||
public enum ServerProject {
|
public enum ServerProject {
|
||||||
|
|
||||||
UNKNOWN, CRAFTBUKKIT, SPIGOT, PAPER, TACO, GLOWSTONE;
|
UNKNOWN, CRAFTBUKKIT, SPIGOT, PAPER, TACO, GLOWSTONE;
|
||||||
private static ServerProject serverProject = checkProject();
|
private final static ServerProject serverProject = checkProject();
|
||||||
|
|
||||||
private static ServerProject checkProject() {
|
private static ServerProject checkProject() {
|
||||||
String serverPath = Bukkit.getServer().getClass().getName();
|
String serverPath = Bukkit.getServer().getClass().getName();
|
||||||
|
@ -9,16 +9,16 @@ public enum ServerVersion {
|
|||||||
|
|
||||||
private final static String serverPackagePath = Bukkit.getServer().getClass().getPackage().getName();
|
private final static String serverPackagePath = Bukkit.getServer().getClass().getPackage().getName();
|
||||||
private final static String serverPackageVersion = serverPackagePath.substring(serverPackagePath.lastIndexOf('.') + 1);
|
private final static String serverPackageVersion = serverPackagePath.substring(serverPackagePath.lastIndexOf('.') + 1);
|
||||||
private static ServerVersion serverVersion = UNKNOWN;
|
private final static String serverReleaseVersion = serverPackageVersion.indexOf('R') != -1 ? serverPackageVersion.substring(serverPackageVersion.indexOf('R') + 1) : "";
|
||||||
private static String serverReleaseVersion;
|
private final static ServerVersion serverVersion = getVersion();
|
||||||
|
|
||||||
static {
|
private static ServerVersion getVersion() {
|
||||||
for (ServerVersion version : values()) {
|
for (ServerVersion version : values()) {
|
||||||
if (serverPackageVersion.toUpperCase().startsWith(version.name())) {
|
if (serverPackageVersion.toUpperCase().startsWith(version.name())) {
|
||||||
serverVersion = version;
|
return version;
|
||||||
serverReleaseVersion = serverPackageVersion.substring(version.name().length() + 2);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isLessThan(ServerVersion other) {
|
public boolean isLessThan(ServerVersion other) {
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.songoda.core.configuration;
|
package com.songoda.core.configuration;
|
||||||
|
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -257,12 +256,12 @@ public class ConfigFileConfigurationAdapter extends FileConfiguration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public LegacyMaterials getMaterial(@NotNull String path) {
|
public CompatibleMaterial getMaterial(@NotNull String path) {
|
||||||
return config.getMaterial(path);
|
return config.getMaterial(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public LegacyMaterials getMaterial(@NotNull String path, @Nullable LegacyMaterials def) {
|
public CompatibleMaterial getMaterial(@NotNull String path, @Nullable CompatibleMaterial def) {
|
||||||
return config.getMaterial(path, def);
|
return config.getMaterial(path, def);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.songoda.core.configuration;
|
package com.songoda.core.configuration;
|
||||||
|
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -631,16 +631,16 @@ public class ConfigSection extends MemoryConfiguration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public LegacyMaterials getMaterial(@NotNull String path) {
|
public CompatibleMaterial getMaterial(@NotNull String path) {
|
||||||
String val = getString(path);
|
String val = getString(path);
|
||||||
LegacyMaterials mat = val != null ? LegacyMaterials.getMaterial(val) : null;
|
CompatibleMaterial mat = val != null ? CompatibleMaterial.getMaterial(val) : null;
|
||||||
return mat;
|
return mat;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public LegacyMaterials getMaterial(@NotNull String path, @Nullable LegacyMaterials def) {
|
public CompatibleMaterial getMaterial(@NotNull String path, @Nullable CompatibleMaterial def) {
|
||||||
String val = getString(path);
|
String val = getString(path);
|
||||||
LegacyMaterials mat = val != null ? LegacyMaterials.getMaterial(val) : null;
|
CompatibleMaterial mat = val != null ? CompatibleMaterial.getMaterial(val) : null;
|
||||||
return mat != null ? mat : def;
|
return mat != null ? mat : def;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.songoda.core.configuration;
|
package com.songoda.core.configuration;
|
||||||
|
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@ -105,16 +105,16 @@ public class ConfigSetting {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public LegacyMaterials getMaterial() {
|
public CompatibleMaterial getMaterial() {
|
||||||
LegacyMaterials m = getMaterial(null);
|
CompatibleMaterial m = getMaterial(null);
|
||||||
return m != null ? m : LegacyMaterials.STONE;
|
return m != null ? m : CompatibleMaterial.STONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public LegacyMaterials getMaterial(@Nullable LegacyMaterials def) {
|
public CompatibleMaterial getMaterial(@Nullable CompatibleMaterial def) {
|
||||||
//return config.getMaterial(key, def);
|
//return config.getMaterial(key, def);
|
||||||
String val = config.getString(key);
|
String val = config.getString(key);
|
||||||
LegacyMaterials mat = val != null ? LegacyMaterials.getMaterial(val) : null;
|
CompatibleMaterial mat = val != null ? CompatibleMaterial.getMaterial(val) : null;
|
||||||
|
|
||||||
if (mat == null) {
|
if (mat == null) {
|
||||||
System.out.println(String.format("Config value \"%s\" has an invalid material name: \"%s\"", key, val));
|
System.out.println(String.format("Config value \"%s\" has an invalid material name: \"%s\"", key, val));
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.songoda.core.configuration.editor;
|
package com.songoda.core.configuration.editor;
|
||||||
|
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import com.songoda.core.gui.Gui;
|
import com.songoda.core.gui.Gui;
|
||||||
import com.songoda.core.gui.GuiUtils;
|
import com.songoda.core.gui.GuiUtils;
|
||||||
import com.songoda.core.gui.SimplePagedGui;
|
import com.songoda.core.gui.SimplePagedGui;
|
||||||
@ -49,7 +49,7 @@ public class ConfigEditorGui extends SimplePagedGui {
|
|||||||
this.file = file;
|
this.file = file;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.node = node;
|
this.node = node;
|
||||||
this.blankItem = GuiUtils.getBorderItem(LegacyMaterials.LIGHT_GRAY_STAINED_GLASS_PANE);
|
this.blankItem = GuiUtils.getBorderItem(CompatibleMaterial.LIGHT_GRAY_STAINED_GLASS_PANE);
|
||||||
|
|
||||||
// if we have a ConfigSection, we can also grab comments
|
// if we have a ConfigSection, we can also grab comments
|
||||||
try {
|
try {
|
||||||
@ -60,10 +60,10 @@ public class ConfigEditorGui extends SimplePagedGui {
|
|||||||
// decorate header
|
// decorate header
|
||||||
this.setTitle(ChatColor.DARK_BLUE + file);
|
this.setTitle(ChatColor.DARK_BLUE + file);
|
||||||
this.setUseHeader(true);
|
this.setUseHeader(true);
|
||||||
headerBackItem = footerBackItem = GuiUtils.getBorderItem(LegacyMaterials.GRAY_STAINED_GLASS_PANE.getItem());
|
headerBackItem = footerBackItem = GuiUtils.getBorderItem(CompatibleMaterial.GRAY_STAINED_GLASS_PANE.getItem());
|
||||||
final String path = node.getCurrentPath();
|
final String path = node.getCurrentPath();
|
||||||
this.setItem(4, configItem(LegacyMaterials.FILLED_MAP, !path.isEmpty() ? path : file , config, !path.isEmpty() ? path : null, ChatColor.BLACK.toString()));
|
this.setItem(4, configItem(CompatibleMaterial.FILLED_MAP, !path.isEmpty() ? path : file , config, !path.isEmpty() ? path : null, ChatColor.BLACK.toString()));
|
||||||
this.setButton(8, GuiUtils.createButtonItem(LegacyMaterials.OAK_DOOR, "Exit"), (event) -> event.player.closeInventory());
|
this.setButton(8, GuiUtils.createButtonItem(CompatibleMaterial.OAK_DOOR, "Exit"), (event) -> event.player.closeInventory());
|
||||||
|
|
||||||
// compile list of settings
|
// compile list of settings
|
||||||
for (String key : node.getKeys(false)) {
|
for (String key : node.getKeys(false)) {
|
||||||
@ -77,7 +77,7 @@ public class ConfigEditorGui extends SimplePagedGui {
|
|||||||
// next we need to display the config settings
|
// next we need to display the config settings
|
||||||
int index = 9;
|
int index = 9;
|
||||||
for (final String sectionKey : sections) {
|
for (final String sectionKey : sections) {
|
||||||
setButton(index++, configItem(LegacyMaterials.WRITABLE_BOOK, ChatColor.YELLOW + sectionKey, node, sectionKey, "Click to open this section"),
|
setButton(index++, configItem(CompatibleMaterial.WRITABLE_BOOK, ChatColor.YELLOW + sectionKey, node, sectionKey, "Click to open this section"),
|
||||||
(event) -> event.manager.showGUI(event.player, new ConfigEditorGui(plugin, this, file, config, node.getConfigurationSection(sectionKey))));
|
(event) -> event.manager.showGUI(event.player, new ConfigEditorGui(plugin, this, file, config, node.getConfigurationSection(sectionKey))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,14 +87,14 @@ public class ConfigEditorGui extends SimplePagedGui {
|
|||||||
if(val == null) continue;
|
if(val == null) continue;
|
||||||
else if (val instanceof Boolean) {
|
else if (val instanceof Boolean) {
|
||||||
// toggle switch
|
// toggle switch
|
||||||
setButton(index, configItem(LegacyMaterials.LEVER, ChatColor.YELLOW + settingKey, node, settingKey, String.valueOf((Boolean) val), "Click to toggle this setting"),
|
setButton(index, configItem(CompatibleMaterial.LEVER, ChatColor.YELLOW + settingKey, node, settingKey, String.valueOf((Boolean) val), "Click to toggle this setting"),
|
||||||
(event) -> this.toggle(event.slot, settingKey));
|
(event) -> this.toggle(event.slot, settingKey));
|
||||||
if ((Boolean) val) {
|
if ((Boolean) val) {
|
||||||
highlightItem(index);
|
highlightItem(index);
|
||||||
}
|
}
|
||||||
} else if (isNumber(val)) {
|
} else if (isNumber(val)) {
|
||||||
// number dial
|
// number dial
|
||||||
this.setButton(index, configItem(LegacyMaterials.CLOCK, ChatColor.YELLOW + settingKey, node, settingKey, String.valueOf((Number) val), "Click to edit this setting"),
|
this.setButton(index, configItem(CompatibleMaterial.CLOCK, ChatColor.YELLOW + settingKey, node, settingKey, String.valueOf((Number) val), "Click to edit this setting"),
|
||||||
(event) -> {
|
(event) -> {
|
||||||
event.gui.exit();
|
event.gui.exit();
|
||||||
ChatPrompt.showPrompt(plugin, event.player, "Enter a new number value for " + settingKey + ":", response -> {
|
ChatPrompt.showPrompt(plugin, event.player, "Enter a new number value for " + settingKey + ":", response -> {
|
||||||
@ -107,14 +107,14 @@ public class ConfigEditorGui extends SimplePagedGui {
|
|||||||
} else if (isMaterial(val)) {
|
} else if (isMaterial(val)) {
|
||||||
// changing a block
|
// changing a block
|
||||||
// isMaterial is more of a guess, to be honest.
|
// isMaterial is more of a guess, to be honest.
|
||||||
setButton(index, configItem(LegacyMaterials.STONE, ChatColor.YELLOW + settingKey, node, settingKey, val.toString(), "Click to edit this setting"),
|
setButton(index, configItem(CompatibleMaterial.STONE, ChatColor.YELLOW + settingKey, node, settingKey, val.toString(), "Click to edit this setting"),
|
||||||
(event) -> {
|
(event) -> {
|
||||||
SimplePagedGui paged = new SimplePagedGui(this);
|
SimplePagedGui paged = new SimplePagedGui(this);
|
||||||
paged.setTitle(ChatColor.BLUE + settingKey);
|
paged.setTitle(ChatColor.BLUE + settingKey);
|
||||||
paged.setHeaderBackItem(headerBackItem).setFooterBackItem(footerBackItem).setDefaultItem(blankItem);
|
paged.setHeaderBackItem(headerBackItem).setFooterBackItem(footerBackItem).setDefaultItem(blankItem);
|
||||||
paged.setItem(4, configItem(LegacyMaterials.FILLED_MAP, settingKey, node, settingKey, "Choose an item to change this value to"));
|
paged.setItem(4, configItem(CompatibleMaterial.FILLED_MAP, settingKey, node, settingKey, "Choose an item to change this value to"));
|
||||||
int i = 9;
|
int i = 9;
|
||||||
for(LegacyMaterials mat : LegacyMaterials.getAllValidItemMaterials()) {
|
for(CompatibleMaterial mat : CompatibleMaterial.getAllValidItemMaterials()) {
|
||||||
paged.setButton(i++, GuiUtils.createButtonItem(mat, mat.name()), ClickType.LEFT, (matEvent) -> {
|
paged.setButton(i++, GuiUtils.createButtonItem(mat, mat.name()), ClickType.LEFT, (matEvent) -> {
|
||||||
setMaterial(event.slot, settingKey, matEvent.clickedItem);
|
setMaterial(event.slot, settingKey, matEvent.clickedItem);
|
||||||
matEvent.player.closeInventory();
|
matEvent.player.closeInventory();
|
||||||
@ -125,7 +125,7 @@ public class ConfigEditorGui extends SimplePagedGui {
|
|||||||
|
|
||||||
} else if (val instanceof String) {
|
} else if (val instanceof String) {
|
||||||
// changing a "string" value (or change to a feather for writing quill)
|
// changing a "string" value (or change to a feather for writing quill)
|
||||||
setButton(index, configItem(LegacyMaterials.STRING, ChatColor.YELLOW + settingKey, node, settingKey, val.toString(), "Click to edit this setting"),
|
setButton(index, configItem(CompatibleMaterial.STRING, ChatColor.YELLOW + settingKey, node, settingKey, val.toString(), "Click to edit this setting"),
|
||||||
(event) -> {
|
(event) -> {
|
||||||
event.gui.exit();
|
event.gui.exit();
|
||||||
ChatPrompt.showPrompt(plugin, event.player, "Enter a new value for " + settingKey + ":", response -> {
|
ChatPrompt.showPrompt(plugin, event.player, "Enter a new value for " + settingKey + ":", response -> {
|
||||||
@ -135,7 +135,7 @@ public class ConfigEditorGui extends SimplePagedGui {
|
|||||||
.setOnCancel(() -> {event.player.sendMessage(ChatColor.RED + "Edit canceled"); event.manager.showGUI(event.player, this);});
|
.setOnCancel(() -> {event.player.sendMessage(ChatColor.RED + "Edit canceled"); event.manager.showGUI(event.player, this);});
|
||||||
});
|
});
|
||||||
} else if (val instanceof List) {
|
} else if (val instanceof List) {
|
||||||
setButton(index, configItem(LegacyMaterials.WRITABLE_BOOK, ChatColor.YELLOW + settingKey, node, settingKey, String.format("(%d values)", ((List) val).size()), "Click to edit this setting"),
|
setButton(index, configItem(CompatibleMaterial.WRITABLE_BOOK, ChatColor.YELLOW + settingKey, node, settingKey, String.format("(%d values)", ((List) val).size()), "Click to edit this setting"),
|
||||||
(event) -> {
|
(event) -> {
|
||||||
event.manager.showGUI(event.player, (new ConfigEditorListEditorGui(this, settingKey, (List) val)).setOnClose((gui) -> {
|
event.manager.showGUI(event.player, (new ConfigEditorListEditorGui(this, settingKey, (List) val)).setOnClose((gui) -> {
|
||||||
if(((ConfigEditorListEditorGui) gui.gui).saveChanges) {
|
if(((ConfigEditorListEditorGui) gui.gui).saveChanges) {
|
||||||
@ -208,9 +208,9 @@ public class ConfigEditorGui extends SimplePagedGui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setMaterial(int clickCell, String path, ItemStack item) {
|
void setMaterial(int clickCell, String path, ItemStack item) {
|
||||||
LegacyMaterials mat = LegacyMaterials.getMaterial(item);
|
CompatibleMaterial mat = CompatibleMaterial.getMaterial(item);
|
||||||
if (mat == null) {
|
if (mat == null) {
|
||||||
node.set(path, LegacyMaterials.STONE.name());
|
node.set(path, CompatibleMaterial.STONE.name());
|
||||||
} else {
|
} else {
|
||||||
node.set(path, mat.name());
|
node.set(path, mat.name());
|
||||||
}
|
}
|
||||||
@ -244,12 +244,12 @@ public class ConfigEditorGui extends SimplePagedGui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isMaterial(Object value) {
|
private boolean isMaterial(Object value) {
|
||||||
LegacyMaterials m;
|
CompatibleMaterial m;
|
||||||
return value instanceof String && value.toString().equals(value.toString().toUpperCase())
|
return value instanceof String && value.toString().equals(value.toString().toUpperCase())
|
||||||
&& (m = LegacyMaterials.getMaterial(value.toString())) != null && m.isValidItem();
|
&& (m = CompatibleMaterial.getMaterial(value.toString())) != null && m.isValidItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ItemStack configItem(LegacyMaterials type, String name, ConfigurationSection node, String path, String def) {
|
protected ItemStack configItem(CompatibleMaterial type, String name, ConfigurationSection node, String path, String def) {
|
||||||
String[] info = null;
|
String[] info = null;
|
||||||
if (configSection_getCommentString != null) {
|
if (configSection_getCommentString != null) {
|
||||||
try {
|
try {
|
||||||
@ -263,7 +263,7 @@ public class ConfigEditorGui extends SimplePagedGui {
|
|||||||
return GuiUtils.createButtonItem(type, name, info != null ? info : (def != null ? def.split("\n") : null));
|
return GuiUtils.createButtonItem(type, name, info != null ? info : (def != null ? def.split("\n") : null));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ItemStack configItem(LegacyMaterials type, String name, ConfigurationSection node, String path, String value, String def) {
|
protected ItemStack configItem(CompatibleMaterial type, String name, ConfigurationSection node, String path, String value, String def) {
|
||||||
if(value == null) value = "";
|
if(value == null) value = "";
|
||||||
String[] info = null;
|
String[] info = null;
|
||||||
if (configSection_getCommentString != null) {
|
if (configSection_getCommentString != null) {
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
package com.songoda.core.configuration.editor;
|
package com.songoda.core.configuration.editor;
|
||||||
|
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import com.songoda.core.gui.GuiUtils;
|
import com.songoda.core.gui.GuiUtils;
|
||||||
import com.songoda.core.gui.SimplePagedGui;
|
import com.songoda.core.gui.SimplePagedGui;
|
||||||
import com.songoda.core.input.ChatPrompt;
|
import com.songoda.core.input.ChatPrompt;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
|
|
||||||
@ -30,16 +29,16 @@ public class ConfigEditorListEditorGui extends SimplePagedGui {
|
|||||||
headerBackItem = footerBackItem = current.getHeaderBackItem();
|
headerBackItem = footerBackItem = current.getHeaderBackItem();
|
||||||
setTitle(ChatColor.DARK_BLUE + "String List Editor");
|
setTitle(ChatColor.DARK_BLUE + "String List Editor");
|
||||||
this.setUseHeader(true);
|
this.setUseHeader(true);
|
||||||
this.setItem(4, current.configItem(LegacyMaterials.FILLED_MAP, key, current.getCurrentNode(), key, null));
|
this.setItem(4, current.configItem(CompatibleMaterial.FILLED_MAP, key, current.getCurrentNode(), key, null));
|
||||||
this.setButton(8, GuiUtils.createButtonItem(LegacyMaterials.OAK_DOOR, "Exit"), (event) -> event.player.closeInventory());
|
this.setButton(8, GuiUtils.createButtonItem(CompatibleMaterial.OAK_DOOR, "Exit"), (event) -> event.player.closeInventory());
|
||||||
this.values = new ArrayList(val);
|
this.values = new ArrayList(val);
|
||||||
|
|
||||||
this.setButton(8, GuiUtils.createButtonItem(LegacyMaterials.LAVA_BUCKET, ChatColor.RED + "Discard Changes"), (event) -> event.player.closeInventory());
|
this.setButton(8, GuiUtils.createButtonItem(CompatibleMaterial.LAVA_BUCKET, ChatColor.RED + "Discard Changes"), (event) -> event.player.closeInventory());
|
||||||
this.setButton(0, GuiUtils.createButtonItem(LegacyMaterials.REDSTONE, ChatColor.GREEN + "Save"), (event) -> {
|
this.setButton(0, GuiUtils.createButtonItem(CompatibleMaterial.REDSTONE, ChatColor.GREEN + "Save"), (event) -> {
|
||||||
saveChanges = true;
|
saveChanges = true;
|
||||||
event.player.closeInventory();
|
event.player.closeInventory();
|
||||||
});
|
});
|
||||||
this.setButton(1, GuiUtils.createButtonItem(LegacyMaterials.CHEST, ChatColor.BLUE + "Add Item"),
|
this.setButton(1, GuiUtils.createButtonItem(CompatibleMaterial.CHEST, ChatColor.BLUE + "Add Item"),
|
||||||
(event) -> {
|
(event) -> {
|
||||||
event.gui.exit();
|
event.gui.exit();
|
||||||
ChatPrompt.showPrompt(event.manager.getPlugin(), event.player, "Enter a new value to add:", response -> {
|
ChatPrompt.showPrompt(event.manager.getPlugin(), event.player, "Enter a new value to add:", response -> {
|
||||||
@ -68,7 +67,7 @@ public class ConfigEditorListEditorGui extends SimplePagedGui {
|
|||||||
int i = 9;
|
int i = 9;
|
||||||
for (String item : values) {
|
for (String item : values) {
|
||||||
final int index = i - 9;
|
final int index = i - 9;
|
||||||
setButton(i++, GuiUtils.createButtonItem(LegacyMaterials.PAPER, item, "Right-click to remove"), ClickType.RIGHT, (event) -> {
|
setButton(i++, GuiUtils.createButtonItem(CompatibleMaterial.PAPER, item, "Right-click to remove"), ClickType.RIGHT, (event) -> {
|
||||||
values.remove(index);
|
values.remove(index);
|
||||||
redraw();
|
redraw();
|
||||||
});
|
});
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.songoda.core.configuration.editor;
|
package com.songoda.core.configuration.editor;
|
||||||
|
|
||||||
import com.songoda.core.SongodaPlugin;
|
import com.songoda.core.SongodaPlugin;
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import com.songoda.core.configuration.Config;
|
import com.songoda.core.configuration.Config;
|
||||||
import com.songoda.core.gui.Gui;
|
import com.songoda.core.gui.Gui;
|
||||||
import com.songoda.core.gui.GuiUtils;
|
import com.songoda.core.gui.GuiUtils;
|
||||||
@ -79,18 +79,18 @@ public class PluginConfigGui extends SimplePagedGui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void init() {
|
private void init() {
|
||||||
this.blankItem = GuiUtils.getBorderItem(LegacyMaterials.LIGHT_GRAY_STAINED_GLASS_PANE);
|
this.blankItem = GuiUtils.getBorderItem(CompatibleMaterial.LIGHT_GRAY_STAINED_GLASS_PANE);
|
||||||
|
|
||||||
// decorate header
|
// decorate header
|
||||||
this.setTitle(ChatColor.DARK_BLUE + plugin.getName() + " Plugin Config");
|
this.setTitle(ChatColor.DARK_BLUE + plugin.getName() + " Plugin Config");
|
||||||
this.setUseHeader(true);
|
this.setUseHeader(true);
|
||||||
headerBackItem = footerBackItem = GuiUtils.getBorderItem(LegacyMaterials.GRAY_STAINED_GLASS_PANE.getItem());
|
headerBackItem = footerBackItem = GuiUtils.getBorderItem(CompatibleMaterial.GRAY_STAINED_GLASS_PANE.getItem());
|
||||||
this.setButton(8, GuiUtils.createButtonItem(LegacyMaterials.OAK_DOOR, "Exit"), (event) -> event.player.closeInventory());
|
this.setButton(8, GuiUtils.createButtonItem(CompatibleMaterial.OAK_DOOR, "Exit"), (event) -> event.player.closeInventory());
|
||||||
|
|
||||||
// List out all config files that this plugin has
|
// List out all config files that this plugin has
|
||||||
int i = 9;
|
int i = 9;
|
||||||
for (Map.Entry<String, MemoryConfiguration> config : configs.entrySet()) {
|
for (Map.Entry<String, MemoryConfiguration> config : configs.entrySet()) {
|
||||||
this.setButton(i++, GuiUtils.createButtonItem(LegacyMaterials.BOOK, ChatColor.YELLOW + config.getKey(), "Click to edit this config"),
|
this.setButton(i++, GuiUtils.createButtonItem(CompatibleMaterial.BOOK, ChatColor.YELLOW + config.getKey(), "Click to edit this config"),
|
||||||
(event) -> event.manager.showGUI(event.player, new ConfigEditorGui(plugin, this, config.getKey(), config.getValue())));
|
(event) -> event.manager.showGUI(event.player, new ConfigEditorGui(plugin, this, config.getKey(), config.getValue())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.songoda.core.core;
|
package com.songoda.core.core;
|
||||||
|
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ public final class PluginInfo {
|
|||||||
protected final JavaPlugin javaPlugin;
|
protected final JavaPlugin javaPlugin;
|
||||||
protected final int songodaId;
|
protected final int songodaId;
|
||||||
protected final String coreIcon;
|
protected final String coreIcon;
|
||||||
protected final LegacyMaterials icon;
|
protected final CompatibleMaterial icon;
|
||||||
private final List<PluginInfoModule> modules = new ArrayList<>();
|
private final List<PluginInfoModule> modules = new ArrayList<>();
|
||||||
private boolean hasUpdate = false;
|
private boolean hasUpdate = false;
|
||||||
private String latestVersion;
|
private String latestVersion;
|
||||||
@ -26,7 +26,7 @@ public final class PluginInfo {
|
|||||||
this.javaPlugin = javaPlugin;
|
this.javaPlugin = javaPlugin;
|
||||||
this.songodaId = songodaId;
|
this.songodaId = songodaId;
|
||||||
this.coreIcon = icon;
|
this.coreIcon = icon;
|
||||||
this.icon = LegacyMaterials.getMaterial(icon);
|
this.icon = CompatibleMaterial.getMaterial(icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLatestVersion() {
|
public String getLatestVersion() {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.songoda.core.core;
|
package com.songoda.core.core;
|
||||||
|
|
||||||
import com.songoda.core.SongodaCore;
|
import com.songoda.core.SongodaCore;
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import com.songoda.core.configuration.editor.PluginConfigGui;
|
import com.songoda.core.configuration.editor.PluginConfigGui;
|
||||||
import com.songoda.core.gui.Gui;
|
import com.songoda.core.gui.Gui;
|
||||||
import com.songoda.core.gui.GuiUtils;
|
import com.songoda.core.gui.GuiUtils;
|
||||||
@ -23,7 +23,7 @@ final class SongodaCoreOverviewGUI extends Gui {
|
|||||||
for (int i = 0; i < plugins.size(); i++) {
|
for (int i = 0; i < plugins.size(); i++) {
|
||||||
final PluginInfo plugin = plugins.get(i);
|
final PluginInfo plugin = plugins.get(i);
|
||||||
if (plugin.hasUpdate()) {
|
if (plugin.hasUpdate()) {
|
||||||
setButton(i, GuiUtils.createButtonItem(plugin.icon != null ? plugin.icon : LegacyMaterials.STONE,
|
setButton(i, GuiUtils.createButtonItem(plugin.icon != null ? plugin.icon : CompatibleMaterial.STONE,
|
||||||
ChatColor.GOLD + plugin.getJavaPlugin().getName(),
|
ChatColor.GOLD + plugin.getJavaPlugin().getName(),
|
||||||
ChatColor.GRAY + "Latest Version: " + plugin.getLatestVersion(),
|
ChatColor.GRAY + "Latest Version: " + plugin.getLatestVersion(),
|
||||||
ChatColor.GRAY + "Installed Version: " + plugin.getJavaPlugin().getDescription().getVersion(),
|
ChatColor.GRAY + "Installed Version: " + plugin.getJavaPlugin().getDescription().getVersion(),
|
||||||
@ -38,7 +38,7 @@ final class SongodaCoreOverviewGUI extends Gui {
|
|||||||
setAction(i, ClickType.RIGHT, (event) -> event.manager.showGUI(event.player, new PluginConfigGui(plugin.getJavaPlugin(), event.gui)));
|
setAction(i, ClickType.RIGHT, (event) -> event.manager.showGUI(event.player, new PluginConfigGui(plugin.getJavaPlugin(), event.gui)));
|
||||||
highlightItem(i);
|
highlightItem(i);
|
||||||
} else {
|
} else {
|
||||||
setButton(i, GuiUtils.createButtonItem(plugin.icon != null ? plugin.icon : LegacyMaterials.STONE,
|
setButton(i, GuiUtils.createButtonItem(plugin.icon != null ? plugin.icon : CompatibleMaterial.STONE,
|
||||||
ChatColor.GOLD + plugin.getJavaPlugin().getName(),
|
ChatColor.GOLD + plugin.getJavaPlugin().getName(),
|
||||||
ChatColor.GRAY + "Installed Version: " + plugin.getJavaPlugin().getDescription().getVersion(),
|
ChatColor.GRAY + "Installed Version: " + plugin.getJavaPlugin().getDescription().getVersion(),
|
||||||
"",
|
"",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.songoda.core.gui;
|
package com.songoda.core.gui;
|
||||||
|
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import com.songoda.core.configuration.DataStoreObject;
|
import com.songoda.core.configuration.DataStoreObject;
|
||||||
import com.songoda.core.configuration.SimpleDataStore;
|
import com.songoda.core.configuration.SimpleDataStore;
|
||||||
import com.songoda.core.gui.methods.Clickable;
|
import com.songoda.core.gui.methods.Clickable;
|
||||||
@ -52,7 +52,7 @@ public class CustomizableGui extends Gui {
|
|||||||
@Override
|
@Override
|
||||||
public CustomizableGui setDefaultItem(ItemStack item) {
|
public CustomizableGui setDefaultItem(ItemStack item) {
|
||||||
if ((blankItem = item) != null) {
|
if ((blankItem = item) != null) {
|
||||||
buttons.put("__DEFAULT__", (new CustomButton("__DEFAULT__")).setIcon(LegacyMaterials.getMaterial(item)));
|
buttons.put("__DEFAULT__", (new CustomButton("__DEFAULT__")).setIcon(CompatibleMaterial.getMaterial(item)));
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -72,7 +72,7 @@ public class CustomizableGui extends Gui {
|
|||||||
public CustomizableGui setItem(int defaultCell, @NotNull String key, @NotNull ItemStack item) {
|
public CustomizableGui setItem(int defaultCell, @NotNull String key, @NotNull ItemStack item) {
|
||||||
CustomButton btn = key == null ? null : buttons.get(key = key.toLowerCase());
|
CustomButton btn = key == null ? null : buttons.get(key = key.toLowerCase());
|
||||||
if (btn == null) {
|
if (btn == null) {
|
||||||
buttons.put(key, btn = (new CustomButton(key, defaultCell)).setIcon(LegacyMaterials.getMaterial(item)));
|
buttons.put(key, btn = (new CustomButton(key, defaultCell)).setIcon(CompatibleMaterial.getMaterial(item)));
|
||||||
} else {
|
} else {
|
||||||
ItemStack btnItem = btn.icon.getItem();
|
ItemStack btnItem = btn.icon.getItem();
|
||||||
ItemMeta itemMeta = item.getItemMeta();
|
ItemMeta itemMeta = item.getItemMeta();
|
||||||
@ -92,13 +92,13 @@ public class CustomizableGui extends Gui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public CustomizableGui setItem(int defaultRow, int defaultCol, @NotNull String key, @NotNull LegacyMaterials defaultItem, @NotNull String title, @NotNull String... lore) {
|
public CustomizableGui setItem(int defaultRow, int defaultCol, @NotNull String key, @NotNull CompatibleMaterial defaultItem, @NotNull String title, @NotNull String... lore) {
|
||||||
final int cell = defaultCol + defaultRow * 9;
|
final int cell = defaultCol + defaultRow * 9;
|
||||||
return setItem(cell, key, defaultItem, title, lore);
|
return setItem(cell, key, defaultItem, title, lore);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public CustomizableGui setItem(int defaultCell, @NotNull String key, @NotNull LegacyMaterials defaultItem, @NotNull String title, @NotNull String... lore) {
|
public CustomizableGui setItem(int defaultCell, @NotNull String key, @NotNull CompatibleMaterial defaultItem, @NotNull String title, @NotNull String... lore) {
|
||||||
CustomButton btn = key == null ? null : buttons.get(key = key.toLowerCase());
|
CustomButton btn = key == null ? null : buttons.get(key = key.toLowerCase());
|
||||||
if (btn == null) {
|
if (btn == null) {
|
||||||
buttons.put(key, btn = (new CustomButton(key, defaultCell)).setIcon(defaultItem));
|
buttons.put(key, btn = (new CustomButton(key, defaultCell)).setIcon(defaultItem));
|
||||||
@ -129,6 +129,33 @@ public class CustomizableGui extends Gui {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Gui updateItemLore(@NotNull String key, @NotNull String... lore) {
|
||||||
|
CustomButton btn = key == null ? null : buttons.get(key.toLowerCase());
|
||||||
|
if (btn != null) {
|
||||||
|
this.updateItemLore(btn.position, lore);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Gui updateItemLore(@NotNull String key, @Nullable List<String> lore) {
|
||||||
|
CustomButton btn = key == null ? null : buttons.get(key.toLowerCase());
|
||||||
|
if (btn != null) {
|
||||||
|
this.updateItemLore(btn.position, lore);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Gui updateItemName(@NotNull String key, @Nullable String name) {
|
||||||
|
CustomButton btn = key == null ? null : buttons.get(key.toLowerCase());
|
||||||
|
if (btn != null) {
|
||||||
|
this.updateItemName(btn.position, title);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public CustomizableGui updateItem(@NotNull String key, @Nullable String title, @NotNull String... lore) {
|
public CustomizableGui updateItem(@NotNull String key, @Nullable String title, @NotNull String... lore) {
|
||||||
CustomButton btn = key == null ? null : buttons.get(key.toLowerCase());
|
CustomButton btn = key == null ? null : buttons.get(key.toLowerCase());
|
||||||
@ -148,7 +175,7 @@ public class CustomizableGui extends Gui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public CustomizableGui updateItem(@NotNull String key, @NotNull LegacyMaterials itemTo, @NotNull String title, @NotNull String... lore) {
|
public CustomizableGui updateItem(@NotNull String key, @NotNull CompatibleMaterial itemTo, @NotNull String title, @NotNull String... lore) {
|
||||||
CustomButton btn = key == null ? null : buttons.get(key.toLowerCase());
|
CustomButton btn = key == null ? null : buttons.get(key.toLowerCase());
|
||||||
if (btn != null) {
|
if (btn != null) {
|
||||||
this.updateItem(btn.position, itemTo, title, lore);
|
this.updateItem(btn.position, itemTo, title, lore);
|
||||||
@ -157,7 +184,7 @@ public class CustomizableGui extends Gui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public CustomizableGui updateItem(@NotNull String key, @NotNull LegacyMaterials itemTo, @NotNull String title, @Nullable List<String> lore) {
|
public CustomizableGui updateItem(@NotNull String key, @NotNull CompatibleMaterial itemTo, @NotNull String title, @Nullable List<String> lore) {
|
||||||
CustomButton btn = key == null ? null : buttons.get(key.toLowerCase());
|
CustomButton btn = key == null ? null : buttons.get(key.toLowerCase());
|
||||||
if (btn != null) {
|
if (btn != null) {
|
||||||
this.updateItem(btn.position, itemTo, title, lore);
|
this.updateItem(btn.position, itemTo, title, lore);
|
||||||
@ -224,7 +251,7 @@ public class CustomizableGui extends Gui {
|
|||||||
public CustomizableGui setNextPage(int cell, @NotNull ItemStack item) {
|
public CustomizableGui setNextPage(int cell, @NotNull ItemStack item) {
|
||||||
CustomButton btn = buttons.get("__NEXT__");
|
CustomButton btn = buttons.get("__NEXT__");
|
||||||
if (btn == null) {
|
if (btn == null) {
|
||||||
buttons.put("__NEXT__", btn = (new CustomButton("__NEXT__", cell)).setIcon(LegacyMaterials.getMaterial(item)));
|
buttons.put("__NEXT__", btn = (new CustomButton("__NEXT__", cell)).setIcon(CompatibleMaterial.getMaterial(item)));
|
||||||
} else {
|
} else {
|
||||||
ItemStack btnItem = btn.icon.getItem();
|
ItemStack btnItem = btn.icon.getItem();
|
||||||
ItemMeta itemMeta = item.getItemMeta();
|
ItemMeta itemMeta = item.getItemMeta();
|
||||||
@ -250,7 +277,7 @@ public class CustomizableGui extends Gui {
|
|||||||
public CustomizableGui setPrevPage(int cell, @NotNull ItemStack item) {
|
public CustomizableGui setPrevPage(int cell, @NotNull ItemStack item) {
|
||||||
CustomButton btn = buttons.get("__PREV__");
|
CustomButton btn = buttons.get("__PREV__");
|
||||||
if (btn == null) {
|
if (btn == null) {
|
||||||
buttons.put("__PREV__", btn = (new CustomButton("__PREV__", cell)).setIcon(LegacyMaterials.getMaterial(item)));
|
buttons.put("__PREV__", btn = (new CustomButton("__PREV__", cell)).setIcon(CompatibleMaterial.getMaterial(item)));
|
||||||
} else {
|
} else {
|
||||||
ItemStack btnItem = btn.icon.getItem();
|
ItemStack btnItem = btn.icon.getItem();
|
||||||
ItemMeta itemMeta = item.getItemMeta();
|
ItemMeta itemMeta = item.getItemMeta();
|
||||||
@ -278,7 +305,7 @@ public class CustomizableGui extends Gui {
|
|||||||
boolean _changed = false;
|
boolean _changed = false;
|
||||||
final String key;
|
final String key;
|
||||||
int position = -1;
|
int position = -1;
|
||||||
LegacyMaterials icon = LegacyMaterials.STONE;
|
CompatibleMaterial icon = CompatibleMaterial.STONE;
|
||||||
|
|
||||||
public CustomButton(String key) {
|
public CustomButton(String key) {
|
||||||
this.key = key;
|
this.key = key;
|
||||||
@ -291,7 +318,7 @@ public class CustomizableGui extends Gui {
|
|||||||
|
|
||||||
public static CustomButton loadFromSection(ConfigurationSection sec) {
|
public static CustomButton loadFromSection(ConfigurationSection sec) {
|
||||||
CustomButton dat = new CustomButton(sec.getName());
|
CustomButton dat = new CustomButton(sec.getName());
|
||||||
dat.icon = sec.contains("icon") ? LegacyMaterials.getMaterial(sec.getString("icon"), LegacyMaterials.STONE) : LegacyMaterials.STONE;
|
dat.icon = sec.contains("icon") ? CompatibleMaterial.getMaterial(sec.getString("icon"), CompatibleMaterial.STONE) : CompatibleMaterial.STONE;
|
||||||
dat.position = sec.getInt("position");
|
dat.position = sec.getInt("position");
|
||||||
return dat;
|
return dat;
|
||||||
}
|
}
|
||||||
@ -322,12 +349,12 @@ public class CustomizableGui extends Gui {
|
|||||||
_changed = isChanged;
|
_changed = isChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LegacyMaterials getIcon() {
|
public CompatibleMaterial getIcon() {
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CustomButton setIcon(LegacyMaterials icon) {
|
public CustomButton setIcon(CompatibleMaterial icon) {
|
||||||
this.icon = icon != null ? icon : LegacyMaterials.STONE;
|
this.icon = icon != null ? icon : CompatibleMaterial.STONE;
|
||||||
_changed = true;
|
_changed = true;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.songoda.core.gui;
|
package com.songoda.core.gui;
|
||||||
|
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import com.songoda.core.gui.events.GuiClickEvent;
|
import com.songoda.core.gui.events.GuiClickEvent;
|
||||||
import com.songoda.core.gui.events.GuiDropItemEvent;
|
import com.songoda.core.gui.events.GuiDropItemEvent;
|
||||||
import com.songoda.core.gui.methods.Clickable;
|
import com.songoda.core.gui.methods.Clickable;
|
||||||
@ -378,12 +378,12 @@ public class DoubleGui extends Gui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DoubleGui updateItem(int row, int col, LegacyMaterials itemTo, String title, String... lore) {
|
public DoubleGui updateItem(int row, int col, CompatibleMaterial itemTo, String title, String... lore) {
|
||||||
return (DoubleGui) super.updateItem(col + row * 9, itemTo, title, lore);
|
return (DoubleGui) super.updateItem(col + row * 9, itemTo, title, lore);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DoubleGui updateItem(int cell, LegacyMaterials itemTo, String title, String... lore) {
|
public DoubleGui updateItem(int cell, CompatibleMaterial itemTo, String title, String... lore) {
|
||||||
return (DoubleGui) super.updateItem(cell, itemTo, title, lore);
|
return (DoubleGui) super.updateItem(cell, itemTo, title, lore);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -398,12 +398,12 @@ public class DoubleGui extends Gui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DoubleGui updateItem(int row, int col, LegacyMaterials itemTo, String title, List<String> lore) {
|
public DoubleGui updateItem(int row, int col, CompatibleMaterial itemTo, String title, List<String> lore) {
|
||||||
return (DoubleGui) super.updateItem(col + row * 9, itemTo, title, lore);
|
return (DoubleGui) super.updateItem(col + row * 9, itemTo, title, lore);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DoubleGui updateItem(int cell, LegacyMaterials itemTo, String title, List<String> lore) {
|
public DoubleGui updateItem(int cell, CompatibleMaterial itemTo, String title, List<String> lore) {
|
||||||
return (DoubleGui) super.updateItem(cell, itemTo, title, lore);
|
return (DoubleGui) super.updateItem(cell, itemTo, title, lore);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.songoda.core.gui;
|
package com.songoda.core.gui;
|
||||||
|
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import com.songoda.core.gui.events.GuiClickEvent;
|
import com.songoda.core.gui.events.GuiClickEvent;
|
||||||
import com.songoda.core.gui.events.GuiCloseEvent;
|
import com.songoda.core.gui.events.GuiCloseEvent;
|
||||||
import com.songoda.core.gui.events.GuiDropItemEvent;
|
import com.songoda.core.gui.events.GuiDropItemEvent;
|
||||||
@ -330,6 +330,48 @@ public class Gui {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Gui updateItemLore(int row, int col, @NotNull String... lore) {
|
||||||
|
return updateItemLore(col + row * 9, lore);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Gui updateItemLore(int cell, @NotNull String... lore) {
|
||||||
|
ItemStack item = cellItems.get(cell);
|
||||||
|
if (item != null && item.getType() != Material.AIR) {
|
||||||
|
setItem(cell, GuiUtils.updateItemLore(item, lore));
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Gui updateItemLore(int row, int col, @Nullable List<String> lore) {
|
||||||
|
return updateItemLore(col + row * 9, lore);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Gui updateItemLore(int cell, @Nullable List<String> lore) {
|
||||||
|
ItemStack item = cellItems.get(cell);
|
||||||
|
if (item != null && item.getType() != Material.AIR) {
|
||||||
|
setItem(cell, GuiUtils.updateItemLore(item, lore));
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Gui updateItemName(int row, int col, @Nullable String name) {
|
||||||
|
return updateItemName(col + row * 9, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Gui updateItemName(int cell, @Nullable String name) {
|
||||||
|
ItemStack item = cellItems.get(cell);
|
||||||
|
if (item != null && item.getType() != Material.AIR) {
|
||||||
|
setItem(cell, GuiUtils.updateItemName(item, name));
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public Gui updateItem(int row, int col, @Nullable String name, @NotNull String... lore) {
|
public Gui updateItem(int row, int col, @Nullable String name, @NotNull String... lore) {
|
||||||
return updateItem(col + row * 9, name, lore);
|
return updateItem(col + row * 9, name, lore);
|
||||||
@ -373,12 +415,12 @@ public class Gui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public Gui updateItem(int row, int col, @NotNull LegacyMaterials itemTo, @Nullable String title, @NotNull String... lore) {
|
public Gui updateItem(int row, int col, @NotNull CompatibleMaterial itemTo, @Nullable String title, @NotNull String... lore) {
|
||||||
return updateItem(col + row * 9, itemTo, title, lore);
|
return updateItem(col + row * 9, itemTo, title, lore);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public Gui updateItem(int cell, @NotNull LegacyMaterials itemTo, @Nullable String title, @Nullable String... lore) {
|
public Gui updateItem(int cell, @NotNull CompatibleMaterial itemTo, @Nullable String title, @Nullable String... lore) {
|
||||||
ItemStack item = cellItems.get(cell);
|
ItemStack item = cellItems.get(cell);
|
||||||
if (item != null && item.getType() != Material.AIR) {
|
if (item != null && item.getType() != Material.AIR) {
|
||||||
setItem(cell, GuiUtils.updateItem(item, itemTo, title, lore));
|
setItem(cell, GuiUtils.updateItem(item, itemTo, title, lore));
|
||||||
@ -401,12 +443,12 @@ public class Gui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public Gui updateItem(int row, int col, @NotNull LegacyMaterials itemTo, @Nullable String title, @Nullable List<String> lore) {
|
public Gui updateItem(int row, int col, @NotNull CompatibleMaterial itemTo, @Nullable String title, @Nullable List<String> lore) {
|
||||||
return updateItem(col + row * 9, itemTo, title, lore);
|
return updateItem(col + row * 9, itemTo, title, lore);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public Gui updateItem(int cell, @NotNull LegacyMaterials itemTo, @Nullable String title, @Nullable List<String> lore) {
|
public Gui updateItem(int cell, @NotNull CompatibleMaterial itemTo, @Nullable String title, @Nullable List<String> lore) {
|
||||||
ItemStack item = cellItems.get(cell);
|
ItemStack item = cellItems.get(cell);
|
||||||
if (item != null && item.getType() != Material.AIR) {
|
if (item != null && item.getType() != Material.AIR) {
|
||||||
setItem(cell, GuiUtils.updateItem(item, itemTo, title, lore));
|
setItem(cell, GuiUtils.updateItem(item, itemTo, title, lore));
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package com.songoda.core.gui;
|
package com.songoda.core.gui;
|
||||||
|
|
||||||
import com.songoda.core.compatibility.ClientVersion;
|
import com.songoda.core.compatibility.ClientVersion;
|
||||||
import com.songoda.core.compatibility.CompatibleSounds;
|
import com.songoda.core.compatibility.CompatibleSound;
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import com.songoda.core.compatibility.ServerVersion;
|
import com.songoda.core.compatibility.ServerVersion;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -95,14 +95,14 @@ public class GuiManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void showPopup(Player player, String message) {
|
public void showPopup(Player player, String message) {
|
||||||
showPopup(player, message, LegacyMaterials.NETHER_STAR, BackgroundType.ADVENTURE);
|
showPopup(player, message, CompatibleMaterial.NETHER_STAR, BackgroundType.ADVENTURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showPopup(Player player, String message, LegacyMaterials icon) {
|
public void showPopup(Player player, String message, CompatibleMaterial icon) {
|
||||||
showPopup(player, message, icon, BackgroundType.ADVENTURE);
|
showPopup(player, message, icon, BackgroundType.ADVENTURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showPopup(Player player, String message, LegacyMaterials icon, BackgroundType background) {
|
public void showPopup(Player player, String message, CompatibleMaterial icon, BackgroundType background) {
|
||||||
if (ClientVersion.getClientVersion(player).isServerVersionAtLeast(ServerVersion.V1_12)) {
|
if (ClientVersion.getClientVersion(player).isServerVersionAtLeast(ServerVersion.V1_12)) {
|
||||||
PopupMessage popup = new PopupMessage(plugin, icon, message, background);
|
PopupMessage popup = new PopupMessage(plugin, icon, message, background);
|
||||||
popup.add();
|
popup.add();
|
||||||
@ -176,12 +176,12 @@ public class GuiManager {
|
|||||||
event.setCancelled(!gui.unlockedCells.entrySet().stream().anyMatch(e -> event.getSlot() == e.getKey() && e.getValue()));
|
event.setCancelled(!gui.unlockedCells.entrySet().stream().anyMatch(e -> event.getSlot() == e.getKey() && e.getValue()));
|
||||||
// process button press
|
// process button press
|
||||||
if (gui.onClick(manager, player, openInv, event)) {
|
if (gui.onClick(manager, player, openInv, event)) {
|
||||||
player.playSound(player.getLocation(), CompatibleSounds.UI_BUTTON_CLICK.getSound(), 1F, 1F);
|
player.playSound(player.getLocation(), CompatibleSound.UI_BUTTON_CLICK.getSound(), 1F, 1F);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Player clicked in the bottom inventory while GUI is open
|
// Player clicked in the bottom inventory while GUI is open
|
||||||
if (gui.onClickPlayerInventory(manager, player, openInv, event)) {
|
if (gui.onClickPlayerInventory(manager, player, openInv, event)) {
|
||||||
player.playSound(player.getLocation(), CompatibleSounds.UI_BUTTON_CLICK.getSound(), 1F, 1F);
|
player.playSound(player.getLocation(), CompatibleSound.UI_BUTTON_CLICK.getSound(), 1F, 1F);
|
||||||
} else if (!gui.acceptsItems || event.getAction() == InventoryAction.MOVE_TO_OTHER_INVENTORY) {
|
} else if (!gui.acceptsItems || event.getAction() == InventoryAction.MOVE_TO_OTHER_INVENTORY) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.songoda.core.gui;
|
package com.songoda.core.gui;
|
||||||
|
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -16,7 +16,7 @@ import org.bukkit.inventory.meta.ItemMeta;
|
|||||||
public class GuiUtils {
|
public class GuiUtils {
|
||||||
|
|
||||||
public static ItemStack getBorderGlassItem() {
|
public static ItemStack getBorderGlassItem() {
|
||||||
ItemStack glass = LegacyMaterials.LIGHT_BLUE_STAINED_GLASS_PANE.getItem();
|
ItemStack glass = CompatibleMaterial.LIGHT_BLUE_STAINED_GLASS_PANE.getItem();
|
||||||
ItemMeta glassmeta = glass.getItemMeta();
|
ItemMeta glassmeta = glass.getItemMeta();
|
||||||
glassmeta.setDisplayName(ChatColor.BLACK.toString());
|
glassmeta.setDisplayName(ChatColor.BLACK.toString());
|
||||||
glass.setItemMeta(glassmeta);
|
glass.setItemMeta(glassmeta);
|
||||||
@ -30,7 +30,7 @@ public class GuiUtils {
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack getBorderItem(LegacyMaterials mat) {
|
public static ItemStack getBorderItem(CompatibleMaterial mat) {
|
||||||
ItemStack item = mat.getItem();
|
ItemStack item = mat.getItem();
|
||||||
ItemMeta glassmeta = item.getItemMeta();
|
ItemMeta glassmeta = item.getItemMeta();
|
||||||
glassmeta.setDisplayName(ChatColor.BLACK.toString());
|
glassmeta.setDisplayName(ChatColor.BLACK.toString());
|
||||||
@ -88,7 +88,7 @@ public class GuiUtils {
|
|||||||
return newLore;
|
return newLore;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack createButtonItem(LegacyMaterials mat, String title, String... lore) {
|
public static ItemStack createButtonItem(CompatibleMaterial mat, String title, String... lore) {
|
||||||
ItemStack item = mat.getItem();
|
ItemStack item = mat.getItem();
|
||||||
ItemMeta meta = item.getItemMeta();
|
ItemMeta meta = item.getItemMeta();
|
||||||
if (meta != null) {
|
if (meta != null) {
|
||||||
@ -103,7 +103,7 @@ public class GuiUtils {
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack createButtonItem(LegacyMaterials mat, int amount, String title, String... lore) {
|
public static ItemStack createButtonItem(CompatibleMaterial mat, int amount, String title, String... lore) {
|
||||||
ItemStack item = mat.getItem();
|
ItemStack item = mat.getItem();
|
||||||
item.setAmount(amount);
|
item.setAmount(amount);
|
||||||
ItemMeta meta = item.getItemMeta();
|
ItemMeta meta = item.getItemMeta();
|
||||||
@ -129,12 +129,12 @@ public class GuiUtils {
|
|||||||
} else {
|
} else {
|
||||||
meta.setLore(Collections.EMPTY_LIST);
|
meta.setLore(Collections.EMPTY_LIST);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack createButtonItem(LegacyMaterials mat, String title, List<String> lore) {
|
public static ItemStack createButtonItem(CompatibleMaterial mat, String title, List<String> lore) {
|
||||||
ItemStack item = mat.getItem();
|
ItemStack item = mat.getItem();
|
||||||
ItemMeta meta = item.getItemMeta();
|
ItemMeta meta = item.getItemMeta();
|
||||||
if (meta != null) {
|
if (meta != null) {
|
||||||
@ -144,12 +144,12 @@ public class GuiUtils {
|
|||||||
} else {
|
} else {
|
||||||
meta.setLore(Collections.EMPTY_LIST);
|
meta.setLore(Collections.EMPTY_LIST);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack createButtonItem(LegacyMaterials mat, int amount, String title, List<String> lore) {
|
public static ItemStack createButtonItem(CompatibleMaterial mat, int amount, String title, List<String> lore) {
|
||||||
ItemStack item = mat.getItem();
|
ItemStack item = mat.getItem();
|
||||||
item.setAmount(amount);
|
item.setAmount(amount);
|
||||||
ItemMeta meta = item.getItemMeta();
|
ItemMeta meta = item.getItemMeta();
|
||||||
@ -160,8 +160,8 @@ public class GuiUtils {
|
|||||||
} else {
|
} else {
|
||||||
meta.setLore(Collections.EMPTY_LIST);
|
meta.setLore(Collections.EMPTY_LIST);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,8 +175,8 @@ public class GuiUtils {
|
|||||||
} else {
|
} else {
|
||||||
meta.setLore(Collections.EMPTY_LIST);
|
meta.setLore(Collections.EMPTY_LIST);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -189,12 +189,47 @@ public class GuiUtils {
|
|||||||
} else {
|
} else {
|
||||||
meta.setLore(Collections.EMPTY_LIST);
|
meta.setLore(Collections.EMPTY_LIST);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack updateItem(ItemStack item, LegacyMaterials matTo, String title, String... lore) {
|
public static ItemStack updateItemName(ItemStack item, String title) {
|
||||||
|
ItemMeta meta = item.getItemMeta();
|
||||||
|
if (meta != null) {
|
||||||
|
meta.setDisplayName(title);
|
||||||
|
item.setItemMeta(meta);
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ItemStack updateItemLore(ItemStack item, String... lore) {
|
||||||
|
ItemMeta meta = item.getItemMeta();
|
||||||
|
if (meta != null) {
|
||||||
|
if (lore != null && lore.length != 0) {
|
||||||
|
meta.setLore(getSafeLore(lore));
|
||||||
|
} else {
|
||||||
|
meta.setLore(Collections.EMPTY_LIST);
|
||||||
|
}
|
||||||
|
item.setItemMeta(meta);
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ItemStack updateItemLore(ItemStack item, List<String> lore) {
|
||||||
|
ItemMeta meta = item.getItemMeta();
|
||||||
|
if (meta != null) {
|
||||||
|
if (lore != null) {
|
||||||
|
meta.setLore(getSafeLore(lore));
|
||||||
|
} else {
|
||||||
|
meta.setLore(Collections.EMPTY_LIST);
|
||||||
|
}
|
||||||
|
item.setItemMeta(meta);
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ItemStack updateItem(ItemStack item, CompatibleMaterial matTo, String title, String... lore) {
|
||||||
if (!matTo.matches(item)) {
|
if (!matTo.matches(item)) {
|
||||||
item = matTo.getItem();
|
item = matTo.getItem();
|
||||||
}
|
}
|
||||||
@ -206,13 +241,13 @@ public class GuiUtils {
|
|||||||
} else {
|
} else {
|
||||||
meta.setLore(Collections.EMPTY_LIST);
|
meta.setLore(Collections.EMPTY_LIST);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack updateItem(ItemStack item, ItemStack to, String title, String... lore) {
|
public static ItemStack updateItem(ItemStack item, ItemStack to, String title, String... lore) {
|
||||||
if (!LegacyMaterials.getMaterial(item).matches(to)) {
|
if (!CompatibleMaterial.getMaterial(item).matches(to)) {
|
||||||
item = to.clone();
|
item = to.clone();
|
||||||
}
|
}
|
||||||
ItemMeta meta = item.getItemMeta();
|
ItemMeta meta = item.getItemMeta();
|
||||||
@ -223,8 +258,8 @@ public class GuiUtils {
|
|||||||
} else {
|
} else {
|
||||||
meta.setLore(Collections.EMPTY_LIST);
|
meta.setLore(Collections.EMPTY_LIST);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -237,12 +272,12 @@ public class GuiUtils {
|
|||||||
} else {
|
} else {
|
||||||
meta.setLore(Collections.EMPTY_LIST);
|
meta.setLore(Collections.EMPTY_LIST);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack updateItem(ItemStack item, LegacyMaterials matTo, String title, List<String> lore) {
|
public static ItemStack updateItem(ItemStack item, CompatibleMaterial matTo, String title, List<String> lore) {
|
||||||
if (!matTo.matches(item)) {
|
if (!matTo.matches(item)) {
|
||||||
item = matTo.getItem();
|
item = matTo.getItem();
|
||||||
}
|
}
|
||||||
@ -254,13 +289,13 @@ public class GuiUtils {
|
|||||||
} else {
|
} else {
|
||||||
meta.setLore(Collections.EMPTY_LIST);
|
meta.setLore(Collections.EMPTY_LIST);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack updateItem(ItemStack item, ItemStack to, String title, List<String> lore) {
|
public static ItemStack updateItem(ItemStack item, ItemStack to, String title, List<String> lore) {
|
||||||
if (!LegacyMaterials.getMaterial(item).matches(to)) {
|
if (!CompatibleMaterial.getMaterial(item).matches(to)) {
|
||||||
item = to.clone();
|
item = to.clone();
|
||||||
}
|
}
|
||||||
ItemMeta meta = item.getItemMeta();
|
ItemMeta meta = item.getItemMeta();
|
||||||
@ -271,8 +306,8 @@ public class GuiUtils {
|
|||||||
} else {
|
} else {
|
||||||
meta.setLore(Collections.EMPTY_LIST);
|
meta.setLore(Collections.EMPTY_LIST);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
item.setItemMeta(meta);
|
item.setItemMeta(meta);
|
||||||
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ import com.google.gson.Gson;
|
|||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import com.songoda.core.compatibility.ServerVersion;
|
import com.songoda.core.compatibility.ServerVersion;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -30,19 +30,19 @@ class PopupMessage {
|
|||||||
final UUID id = UUID.randomUUID();
|
final UUID id = UUID.randomUUID();
|
||||||
private final NamespacedKey key;
|
private final NamespacedKey key;
|
||||||
private final TextComponent title;
|
private final TextComponent title;
|
||||||
LegacyMaterials icon;
|
CompatibleMaterial icon;
|
||||||
int iconAmount = 1; // experimental, untested
|
int iconAmount = 1; // experimental, untested
|
||||||
TriggerType trigger = TriggerType.IMPOSSIBLE;
|
TriggerType trigger = TriggerType.IMPOSSIBLE;
|
||||||
FrameType frame = FrameType.GOAL;
|
FrameType frame = FrameType.GOAL;
|
||||||
BackgroundType background = BackgroundType.ADVENTURE;
|
BackgroundType background = BackgroundType.ADVENTURE;
|
||||||
|
|
||||||
PopupMessage(Plugin source, LegacyMaterials icon, String title) {
|
PopupMessage(Plugin source, CompatibleMaterial icon, String title) {
|
||||||
this.key = new NamespacedKey(source, "popup/" + id);
|
this.key = new NamespacedKey(source, "popup/" + id);
|
||||||
this.title = new TextComponent(title.length() < 74 ? title : (title.substring(0, 72) + "..."));
|
this.title = new TextComponent(title.length() < 74 ? title : (title.substring(0, 72) + "..."));
|
||||||
this.icon = icon;
|
this.icon = icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
PopupMessage(Plugin source, LegacyMaterials icon, String title, BackgroundType background) {
|
PopupMessage(Plugin source, CompatibleMaterial icon, String title, BackgroundType background) {
|
||||||
this.key = new NamespacedKey(source, "popup/" + id);
|
this.key = new NamespacedKey(source, "popup/" + id);
|
||||||
this.title = new TextComponent(title.length() < 74 ? title : (title.substring(0, 72) + "..."));
|
this.title = new TextComponent(title.length() < 74 ? title : (title.substring(0, 72) + "..."));
|
||||||
this.icon = icon;
|
this.icon = icon;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.songoda.core.gui;
|
package com.songoda.core.gui;
|
||||||
|
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import static com.songoda.core.gui.Gui.trimTitle;
|
import static com.songoda.core.gui.Gui.trimTitle;
|
||||||
import com.songoda.core.gui.events.GuiClickEvent;
|
import com.songoda.core.gui.events.GuiClickEvent;
|
||||||
import com.songoda.core.gui.methods.Clickable;
|
import com.songoda.core.gui.methods.Clickable;
|
||||||
@ -35,8 +35,8 @@ public class SimplePagedGui extends Gui {
|
|||||||
public SimplePagedGui(Gui parent) {
|
public SimplePagedGui(Gui parent) {
|
||||||
super(parent);
|
super(parent);
|
||||||
|
|
||||||
nextPage = GuiUtils.createButtonItem(LegacyMaterials.ARROW, "Next Page");
|
nextPage = GuiUtils.createButtonItem(CompatibleMaterial.ARROW, "Next Page");
|
||||||
prevPage = GuiUtils.createButtonItem(LegacyMaterials.ARROW, "Previous Page");
|
prevPage = GuiUtils.createButtonItem(CompatibleMaterial.ARROW, "Previous Page");
|
||||||
}
|
}
|
||||||
|
|
||||||
public SimplePagedGui setUseHeader(boolean useHeader) {
|
public SimplePagedGui setUseHeader(boolean useHeader) {
|
||||||
|
@ -5,7 +5,7 @@ package com.songoda.core.utils;
|
|||||||
|
|
||||||
import com.mojang.authlib.GameProfile;
|
import com.mojang.authlib.GameProfile;
|
||||||
import com.mojang.authlib.properties.Property;
|
import com.mojang.authlib.properties.Property;
|
||||||
import com.songoda.core.compatibility.LegacyMaterials;
|
import com.songoda.core.compatibility.CompatibleMaterial;
|
||||||
import com.songoda.core.compatibility.ServerVersion;
|
import com.songoda.core.compatibility.ServerVersion;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
@ -243,7 +243,7 @@ public class ItemUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack getPlayerSkull(OfflinePlayer player) {
|
public static ItemStack getPlayerSkull(OfflinePlayer player) {
|
||||||
ItemStack head = LegacyMaterials.PLAYER_HEAD.getItem();
|
ItemStack head = CompatibleMaterial.PLAYER_HEAD.getItem();
|
||||||
if (ServerVersion.isServerVersionBelow(ServerVersion.V1_8)) {
|
if (ServerVersion.isServerVersionBelow(ServerVersion.V1_8)) {
|
||||||
return head;
|
return head;
|
||||||
}
|
}
|
||||||
@ -258,7 +258,7 @@ public class ItemUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void setHeadOwner(ItemStack head, OfflinePlayer player) {
|
public static void setHeadOwner(ItemStack head, OfflinePlayer player) {
|
||||||
if (ServerVersion.isServerVersionBelow(ServerVersion.V1_8) || head == null || !LegacyMaterials.PLAYER_HEAD.matches(head)) {
|
if (ServerVersion.isServerVersionBelow(ServerVersion.V1_8) || head == null || !CompatibleMaterial.PLAYER_HEAD.matches(head)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
SkullMeta meta = (SkullMeta) head.getItemMeta();
|
SkullMeta meta = (SkullMeta) head.getItemMeta();
|
||||||
@ -270,7 +270,7 @@ public class ItemUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack getCustomHead(String texture) {
|
public static ItemStack getCustomHead(String texture) {
|
||||||
ItemStack skullItem = LegacyMaterials.PLAYER_HEAD.getItem();
|
ItemStack skullItem = CompatibleMaterial.PLAYER_HEAD.getItem();
|
||||||
if (ServerVersion.isServerVersionBelow(ServerVersion.V1_8)) {
|
if (ServerVersion.isServerVersionBelow(ServerVersion.V1_8)) {
|
||||||
return skullItem;
|
return skullItem;
|
||||||
}
|
}
|
||||||
@ -332,8 +332,8 @@ public class ItemUtils {
|
|||||||
* @return true if both items are of the same material
|
* @return true if both items are of the same material
|
||||||
*/
|
*/
|
||||||
public static boolean isSimilarMaterial(ItemStack is1, ItemStack is2) {
|
public static boolean isSimilarMaterial(ItemStack is1, ItemStack is2) {
|
||||||
LegacyMaterials mat1 = LegacyMaterials.getMaterial(is1);
|
CompatibleMaterial mat1 = CompatibleMaterial.getMaterial(is1);
|
||||||
return mat1 != null && mat1 == LegacyMaterials.getMaterial(is2);
|
return mat1 != null && mat1 == CompatibleMaterial.getMaterial(is2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -610,7 +610,7 @@ public class ItemUtils {
|
|||||||
|
|
||||||
check = new boolean[3];
|
check = new boolean[3];
|
||||||
|
|
||||||
boolean isFuel = !item.getType().name().contains("LOG") && LegacyMaterials.getMaterial(item.getType()).isFuel();
|
boolean isFuel = !item.getType().name().contains("LOG") && CompatibleMaterial.getMaterial(item.getType()).isFuel();
|
||||||
// fuel is 2nd slot, input is first
|
// fuel is 2nd slot, input is first
|
||||||
if (isFuel) {
|
if (isFuel) {
|
||||||
|
|
||||||
@ -800,7 +800,7 @@ public class ItemUtils {
|
|||||||
|
|
||||||
check = new boolean[3];
|
check = new boolean[3];
|
||||||
|
|
||||||
boolean isFuel = !item.getType().name().contains("LOG") && LegacyMaterials.getMaterial(item.getType()).isFuel();
|
boolean isFuel = !item.getType().name().contains("LOG") && CompatibleMaterial.getMaterial(item.getType()).isFuel();
|
||||||
// fuel is 2nd slot, input is first
|
// fuel is 2nd slot, input is first
|
||||||
if (isFuel) {
|
if (isFuel) {
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user