This commit is contained in:
Brianna O'Keefe 2019-02-05 23:57:38 -05:00
parent 2130776df9
commit bdda96eb8e
21 changed files with 131 additions and 134 deletions

View File

@ -1,8 +1,8 @@
package com.songoda.epicbuckets.util.gui;
package com.songoda.epicbuckets.utils.gui;
import com.songoda.epicbuckets.EpicBuckets;
import com.songoda.epicbuckets.util.ServerVersion;
import com.songoda.epicbuckets.util.version.NMSUtil;
import com.songoda.epicbuckets.utils.ServerVersion;
import com.songoda.epicbuckets.utils.version.NMSUtil;
import org.bukkit.Bukkit;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
@ -53,7 +53,7 @@ public class AbstractAnvilGUI {
closeSound = Sound.ENTITY_PLAYER_LEVELUP;
else
closeSound = Sound.valueOf("LEVEL_UP");
}
if (!(event.getWhoClicked() instanceof Player) || !event.getInventory().equals(inv)) return;
@ -94,7 +94,8 @@ public class AbstractAnvilGUI {
if (!inv.equals(AbstractAnvilGUI.this.inv)) return;
inv.clear();
OnClose onClose = getOnClose();
if (EpicBuckets.getInstance().isServerVersionAtLeast(ServerVersion.V1_9)) player.playSound(player.getLocation(), closeSound, 1F, 1F);
if (EpicBuckets.getInstance().isServerVersionAtLeast(ServerVersion.V1_9))
player.playSound(player.getLocation(), closeSound, 1F, 1F);
Bukkit.getScheduler().scheduleSyncDelayedTask(EpicBuckets.getInstance(), () -> {
if (onClose != null) onClose.OnClose(player, inv);
destroy();

View File

@ -1,8 +1,8 @@
package com.songoda.epicbuckets.util.gui;
package com.songoda.epicbuckets.utils.gui;
import com.songoda.arconix.api.methods.formatting.TextComponent;
import com.songoda.epicbuckets.EpicBuckets;
import com.songoda.epicbuckets.util.ServerVersion;
import com.songoda.epicbuckets.utils.ServerVersion;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
@ -76,7 +76,7 @@ public abstract class AbstractGUI implements Listener {
}
}
}
Map<Range, Clickable> entries = new HashMap<>(gui.clickables);
for (Map.Entry<Range, Clickable> entry : entries.entrySet()) {
@ -86,7 +86,7 @@ public abstract class AbstractGUI implements Listener {
if (event.getSlot() >= range.getMin() && event.getSlot() <= range.getMax()) {
entry.getValue().Clickable(player, inventory, event.getCursor(), event.getSlot(), event.getClick());
if (EpicBuckets.getInstance().isServerVersionAtLeast(ServerVersion.V1_12))
player.playSound(player.getLocation(), entry.getKey().getOnClickSound(), 1F, 1F);
player.playSound(player.getLocation(), entry.getKey().getOnClickSound(), 1F, 1F);
}
}
}

View File

@ -1,4 +1,4 @@
package com.songoda.epicbuckets.util.gui;
package com.songoda.epicbuckets.utils.gui;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;

View File

@ -1,4 +1,4 @@
package com.songoda.epicbuckets.util.gui;
package com.songoda.epicbuckets.utils.gui;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;

View File

@ -1,7 +1,7 @@
package com.songoda.epicbuckets.util.gui;
package com.songoda.epicbuckets.utils.gui;
import com.songoda.epicbuckets.EpicBuckets;
import com.songoda.epicbuckets.util.ServerVersion;
import com.songoda.epicbuckets.utils.ServerVersion;
import org.bukkit.Sound;
import org.bukkit.event.inventory.ClickType;

View File

@ -1,39 +1,37 @@
package com.songoda.epicbuckets.util.itemnbtapi;
package com.songoda.epicbuckets.utils.itemnbtapi;
import org.bukkit.Bukkit;
public enum ClassWrapper {
CRAFT_ITEMSTACK("org.bukkit.craftbukkit.", ".inventory.CraftItemStack"),
CRAFT_ENTITY("org.bukkit.craftbukkit.", ".entity.CraftEntity"),
CRAFT_WORLD("org.bukkit.craftbukkit.", ".CraftWorld"),
NMS_NBTBASE("net.minecraft.server.", ".NBTBase"),
NMS_NBTTAGSTRING("net.minecraft.server.", ".NBTTagString"),
NMS_ITEMSTACK("net.minecraft.server.", ".ItemStack"),
NMS_NBTTAGCOMPOUND("net.minecraft.server.", ".NBTTagCompound"),
NMS_NBTTAGLIST("net.minecraft.server.", ".NBTTagList"),
NMS_NBTCOMPRESSEDSTREAMTOOLS("net.minecraft.server.", ".NBTCompressedStreamTools"),
NMS_MOJANGSONPARSER("net.minecraft.server.", ".MojangsonParser"),
NMS_TILEENTITY("net.minecraft.server.", ".TileEntity"),
NMS_BLOCKPOSITION("net.minecraft.server.", ".BlockPosition"),
NMS_WORLD("net.minecraft.server.", ".WorldServer"),
NMS_ENTITY("net.minecraft.server.", ".Entity"),
;
CRAFT_ITEMSTACK("org.bukkit.craftbukkit.", ".inventory.CraftItemStack"),
CRAFT_ENTITY("org.bukkit.craftbukkit.", ".entity.CraftEntity"),
CRAFT_WORLD("org.bukkit.craftbukkit.", ".CraftWorld"),
NMS_NBTBASE("net.minecraft.server.", ".NBTBase"),
NMS_NBTTAGSTRING("net.minecraft.server.", ".NBTTagString"),
NMS_ITEMSTACK("net.minecraft.server.", ".ItemStack"),
NMS_NBTTAGCOMPOUND("net.minecraft.server.", ".NBTTagCompound"),
NMS_NBTTAGLIST("net.minecraft.server.", ".NBTTagList"),
NMS_NBTCOMPRESSEDSTREAMTOOLS("net.minecraft.server.", ".NBTCompressedStreamTools"),
NMS_MOJANGSONPARSER("net.minecraft.server.", ".MojangsonParser"),
NMS_TILEENTITY("net.minecraft.server.", ".TileEntity"),
NMS_BLOCKPOSITION("net.minecraft.server.", ".BlockPosition"),
NMS_WORLD("net.minecraft.server.", ".WorldServer"),
NMS_ENTITY("net.minecraft.server.", ".Entity"),;
private Class<?> clazz;
ClassWrapper(String pre, String suffix){
try{
ClassWrapper(String pre, String suffix) {
try {
String version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3];
clazz = Class.forName(pre + version + suffix);
}catch(Exception ex){
} catch (Exception ex) {
ex.printStackTrace();
}
}
public Class<?> getClazz(){
public Class<?> getClazz() {
return clazz;
}
}

View File

@ -1,6 +1,6 @@
package com.songoda.epicbuckets.util.itemnbtapi;
package com.songoda.epicbuckets.utils.itemnbtapi;
import com.songoda.epicbuckets.util.itemnbtapi.utils.MinecraftVersion;
import com.songoda.epicbuckets.utils.itemnbtapi.utils.MinecraftVersion;
import java.util.Set;
@ -31,10 +31,10 @@ public class NBTCompound {
return parent;
}
public void mergeCompound(NBTCompound comp){
public void mergeCompound(NBTCompound comp) {
NBTReflectionUtil.addOtherNBTCompound(this, comp);
}
public void setString(String key, String value) {
NBTReflectionUtil.setData(this, ReflectionMethod.COMPOUND_SET_STRING, key, value);
}
@ -130,10 +130,10 @@ public class NBTCompound {
public <T> T getObject(String key, Class<T> type) {
return NBTReflectionUtil.getObject(this, key, type);
}
public Boolean hasKey(String key) {
Boolean b = (Boolean) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_HAS_KEY, key);
if(b == null)return false;
Boolean b = (Boolean) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_HAS_KEY, key);
if (b == null) return false;
return b;
}
@ -146,7 +146,7 @@ public class NBTCompound {
}
public NBTCompound addCompound(String name) {
if(getType(name) == NBTType.NBTTagCompound)return getCompound(name);
if (getType(name) == NBTType.NBTTagCompound) return getCompound(name);
NBTReflectionUtil.addNBTTagCompound(this, name);
return getCompound(name);
}
@ -164,7 +164,7 @@ public class NBTCompound {
public NBTType getType(String name) {
if (MinecraftVersion.getVersion() == MinecraftVersion.MC1_7_R4) return null;
Object o = NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_GET_TYPE, name);
if(o == null)return null;
if (o == null) return null;
return NBTType.valueOf((byte) o);
}
@ -190,10 +190,10 @@ public class NBTCompound {
return result + "-" + key + ": " + getContent(key) + System.lineSeparator();
}
}
public String asNBTString(){
public String asNBTString() {
Object comp = NBTReflectionUtil.gettoCompount(getCompound(), this);
if(comp == null)return "{}";
if (comp == null) return "{}";
return comp.toString();
}

View File

@ -1,6 +1,6 @@
package com.songoda.epicbuckets.util.itemnbtapi;
package com.songoda.epicbuckets.utils.itemnbtapi;
public class NBTContainer extends NBTCompound{
public class NBTContainer extends NBTCompound {
private Object nbt;
@ -8,17 +8,17 @@ public class NBTContainer extends NBTCompound{
super(null, null);
nbt = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance();
}
protected NBTContainer(Object nbt){
protected NBTContainer(Object nbt) {
super(null, null);
this.nbt = nbt;
}
public NBTContainer(String nbtString) throws IllegalArgumentException {
super(null, null);
try{
try {
nbt = ReflectionMethod.PARSE_NBT.run(null, nbtString);
}catch(Exception ex){
} catch (Exception ex) {
ex.printStackTrace();
throw new IllegalArgumentException("Malformed Json: " + ex.getMessage());
}

View File

@ -1,4 +1,4 @@
package com.songoda.epicbuckets.util.itemnbtapi;
package com.songoda.epicbuckets.utils.itemnbtapi;
import org.bukkit.entity.Entity;

View File

@ -1,4 +1,4 @@
package com.songoda.epicbuckets.util.itemnbtapi;
package com.songoda.epicbuckets.utils.itemnbtapi;
import java.io.File;
import java.io.FileInputStream;

View File

@ -1,4 +1,4 @@
package com.songoda.epicbuckets.util.itemnbtapi;
package com.songoda.epicbuckets.utils.itemnbtapi;
import org.bukkit.inventory.ItemStack;
@ -8,12 +8,20 @@ public class NBTItem extends NBTCompound {
public NBTItem(ItemStack item) {
super(null, null);
if(item == null){
if (item == null) {
throw new NullPointerException("ItemStack can't be null!");
}
bukkitItem = item.clone();
}
public static NBTContainer convertItemtoNBT(ItemStack item) {
return NBTReflectionUtil.convertNMSItemtoNBTCompound(ReflectionMethod.ITEMSTACK_NMSCOPY.run(null, item));
}
public static ItemStack convertNBTtoItem(NBTCompound comp) {
return (ItemStack) ReflectionMethod.ITEMSTACK_BUKKITMIRROR.run(null, NBTReflectionUtil.convertNBTCompoundtoNMSItem(comp));
}
protected Object getCompound() {
return NBTReflectionUtil.getItemRootNBTTagCompound(ReflectionMethod.ITEMSTACK_NMSCOPY.run(null, bukkitItem));
}
@ -31,23 +39,14 @@ public class NBTItem extends NBTCompound {
protected void setItem(ItemStack item) {
bukkitItem = item;
}
/**
* This may return true even when the NBT is empty.
*
*
* @return Does the ItemStack have a NBTCompound.
*/
public boolean hasNBTData(){
public boolean hasNBTData() {
return getCompound() != null;
}
public static NBTContainer convertItemtoNBT(ItemStack item){
return NBTReflectionUtil.convertNMSItemtoNBTCompound(ReflectionMethod.ITEMSTACK_NMSCOPY.run(null, item));
}
public static ItemStack convertNBTtoItem(NBTCompound comp){
return (ItemStack) ReflectionMethod.ITEMSTACK_BUKKITMIRROR.run(null, NBTReflectionUtil.convertNBTCompoundtoNMSItem(comp));
}
}

View File

@ -1,4 +1,4 @@
package com.songoda.epicbuckets.util.itemnbtapi;
package com.songoda.epicbuckets.utils.itemnbtapi;
public class NBTList {

View File

@ -1,4 +1,4 @@
package com.songoda.epicbuckets.util.itemnbtapi;
package com.songoda.epicbuckets.utils.itemnbtapi;
import java.util.HashSet;
import java.util.Set;

View File

@ -1,4 +1,9 @@
package com.songoda.epicbuckets.util.itemnbtapi;
package com.songoda.epicbuckets.utils.itemnbtapi;
import com.songoda.epicbuckets.utils.itemnbtapi.utils.GsonWrapper;
import com.songoda.epicbuckets.utils.itemnbtapi.utils.MinecraftVersion;
import org.bukkit.block.BlockState;
import org.bukkit.entity.Entity;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@ -7,12 +12,7 @@ import java.lang.reflect.Method;
import java.util.Set;
import java.util.Stack;
import com.songoda.epicbuckets.util.itemnbtapi.utils.GsonWrapper;
import com.songoda.epicbuckets.util.itemnbtapi.utils.MinecraftVersion;
import org.bukkit.block.BlockState;
import org.bukkit.entity.Entity;
public class NBTReflectionUtil {
public class NBTReflectionUtil {
public static Object getNMSEntity(Entity entity) {
try {
@ -61,11 +61,11 @@ public class NBTReflectionUtil {
@SuppressWarnings("rawtypes")
Class clazz = ClassWrapper.NMS_ITEMSTACK.getClazz();
try {
if(MinecraftVersion.getVersion().getVersionId() >= MinecraftVersion.MC1_12_R1.getVersionId()){
if (MinecraftVersion.getVersion().getVersionId() >= MinecraftVersion.MC1_12_R1.getVersionId()) {
Constructor<?> constructor = clazz.getConstructor(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz());
constructor.setAccessible(true);
return constructor.newInstance(nbtcompound.getCompound());
}else{
} else {
Method method = clazz.getMethod("createStack", ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz());
method.setAccessible(true);
return method.invoke(null, nbtcompound.getCompound());

View File

@ -1,4 +1,4 @@
package com.songoda.epicbuckets.util.itemnbtapi;
package com.songoda.epicbuckets.utils.itemnbtapi;
import org.bukkit.block.BlockState;

View File

@ -1,4 +1,4 @@
package com.songoda.epicbuckets.util.itemnbtapi;
package com.songoda.epicbuckets.utils.itemnbtapi;
public enum NBTType {
NBTTagEnd(0),
@ -14,14 +14,10 @@ public enum NBTType {
NBTTagList(9),
NBTTagCompound(10);
NBTType(int i) {
id = i;
}
private final int id;
public int getId() {
return id;
NBTType(int i) {
id = i;
}
public static NBTType valueOf(int id) {
@ -31,4 +27,8 @@ public enum NBTType {
return NBTType.NBTTagEnd;
}
public int getId() {
return id;
}
}

View File

@ -1,4 +1,4 @@
package com.songoda.epicbuckets.util.itemnbtapi;
package com.songoda.epicbuckets.utils.itemnbtapi;
import java.lang.reflect.Constructor;
@ -8,21 +8,21 @@ public enum ObjectCreator {
private Constructor<?> construct;
ObjectCreator(Class<?> clazz, Class<?>... args){
try{
ObjectCreator(Class<?> clazz, Class<?>... args) {
try {
construct = clazz.getConstructor(args);
}catch(Exception ex){
} catch (Exception ex) {
ex.printStackTrace();
}
}
public Object getInstance(Object... args){
try{
public Object getInstance(Object... args) {
try {
return construct.newInstance(args);
}catch(Exception ex){
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
}

View File

@ -1,12 +1,12 @@
package com.songoda.epicbuckets.util.itemnbtapi;
package com.songoda.epicbuckets.utils.itemnbtapi;
import com.songoda.epicbuckets.utils.itemnbtapi.utils.MinecraftVersion;
import org.bukkit.inventory.ItemStack;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Method;
import com.songoda.epicbuckets.util.itemnbtapi.utils.MinecraftVersion;
import org.bukkit.inventory.ItemStack;
public enum ReflectionMethod {
COMPOUND_SET_FLOAT(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, float.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setFloat")),
@ -20,7 +20,7 @@ public enum ReflectionMethod {
COMPOUND_SET_DOUBLE(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, double.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setDouble")),
COMPOUND_SET_BOOLEAN(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, boolean.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setBoolean")),
COMPOUND_ADD(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "a")), //FIXME: No Spigot mapping!
COMPOUND_GET_FLOAT(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getFloat")),
COMPOUND_GET_STRING(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getString")),
COMPOUND_GET_INT(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getInt")),
@ -44,14 +44,14 @@ public enum ReflectionMethod {
LIST_ADD(ClassWrapper.NMS_NBTTAGLIST.getClazz(), new Class[]{ClassWrapper.NMS_NBTBASE.getClazz()}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "add")),
LIST_GET_STRING(ClassWrapper.NMS_NBTTAGLIST.getClazz(), new Class[]{int.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getString")),
LIST_GET(ClassWrapper.NMS_NBTTAGLIST.getClazz(), new Class[]{int.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "get")),
ITEMSTACK_SET_TAG(ClassWrapper.NMS_ITEMSTACK.getClazz(), new Class[]{ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setTag")),
ITEMSTACK_NMSCOPY(ClassWrapper.CRAFT_ITEMSTACK.getClazz(), new Class[]{ItemStack.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "asNMSCopy")),
ITEMSTACK_BUKKITMIRROR(ClassWrapper.CRAFT_ITEMSTACK.getClazz(), new Class[]{ClassWrapper.NMS_ITEMSTACK.getClazz()}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "asCraftMirror")),
CRAFT_WORLD_GET_HANDLE(ClassWrapper.CRAFT_WORLD.getClazz(), new Class[]{}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getHandle")),
NMS_WORLD_GET_TILEENTITY(ClassWrapper.NMS_WORLD.getClazz(), new Class[]{ClassWrapper.NMS_BLOCKPOSITION.getClazz()}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "getTileEntity")),
TILEENTITY_GET_NBT(ClassWrapper.NMS_TILEENTITY.getClazz(), new Class[]{ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()}, MinecraftVersion.MC1_8_R3, new Since(MinecraftVersion.MC1_8_R3, "b"), new Since(MinecraftVersion.MC1_9_R1, "save")),
TILEENTITY_SET_NBT(ClassWrapper.NMS_TILEENTITY.getClazz(), new Class[]{ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz()}, MinecraftVersion.MC1_8_R3, new Since(MinecraftVersion.MC1_8_R3, "a"), new Since(MinecraftVersion.MC1_12_R1, "load")),
@ -61,45 +61,43 @@ public enum ReflectionMethod {
NBTFILE_READ(ClassWrapper.NMS_NBTCOMPRESSEDSTREAMTOOLS.getClazz(), new Class[]{InputStream.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "a")), //FIXME: No Spigot mapping!
NBTFILE_WRITE(ClassWrapper.NMS_NBTCOMPRESSEDSTREAMTOOLS.getClazz(), new Class[]{ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), OutputStream.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "a")), //FIXME: No Spigot mapping!
PARSE_NBT(ClassWrapper.NMS_MOJANGSONPARSER.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "parse")),
;
PARSE_NBT(ClassWrapper.NMS_MOJANGSONPARSER.getClazz(), new Class[]{String.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "parse")),;
private Since targetVersion;
private Method method;
private boolean loaded = false;
private boolean compatible = false;
ReflectionMethod(Class<?> targetClass, Class<?>[] args, MinecraftVersion addedSince, Since... methodnames){
ReflectionMethod(Class<?> targetClass, Class<?>[] args, MinecraftVersion addedSince, Since... methodnames) {
MinecraftVersion server = MinecraftVersion.getVersion();
if(server.compareTo(addedSince) < 0)return;
if (server.compareTo(addedSince) < 0) return;
compatible = true;
Since target = methodnames[0];
for(Since s : methodnames){
if(s.version.getVersionId() <= server.getVersionId() && target.version.getVersionId() < s.version.getVersionId())
for (Since s : methodnames) {
if (s.version.getVersionId() <= server.getVersionId() && target.version.getVersionId() < s.version.getVersionId())
target = s;
}
targetVersion = target;
try{
try {
method = targetClass.getMethod(targetVersion.name, args);
method.setAccessible(true);
loaded = true;
}catch(NullPointerException | NoSuchMethodException | SecurityException ex){
} catch (NullPointerException | NoSuchMethodException | SecurityException ex) {
ex.printStackTrace();
}
}
public Object run(Object target, Object... args){
try{
public Object run(Object target, Object... args) {
try {
return method.invoke(target, args);
}catch(Exception ex){
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
public boolean isLoaded() {
return loaded;
}
@ -108,13 +106,14 @@ public enum ReflectionMethod {
return compatible;
}
public static class Since{
public static class Since {
public final MinecraftVersion version;
public final String name;
public Since(MinecraftVersion version, String name) {
this.version = version;
this.name = name;
}
}
}

View File

@ -1,4 +1,4 @@
package com.songoda.epicbuckets.util.itemnbtapi.utils;
package com.songoda.epicbuckets.utils.itemnbtapi.utils;
import com.google.gson.Gson;

View File

@ -1,4 +1,4 @@
package com.songoda.epicbuckets.util.itemnbtapi.utils;
package com.songoda.epicbuckets.utils.itemnbtapi.utils;
import org.bukkit.Bukkit;
@ -23,10 +23,6 @@ public enum MinecraftVersion {
this.versionId = versionId;
}
public int getVersionId() {
return versionId;
}
public static MinecraftVersion getVersion() {
if (version != null) {
return version;
@ -59,4 +55,8 @@ public enum MinecraftVersion {
return hasGsonSupport;
}
public int getVersionId() {
return versionId;
}
}

View File

@ -1,4 +1,4 @@
package com.songoda.epicbuckets.util.version;
package com.songoda.epicbuckets.utils.version;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;