mirror of
https://github.com/songoda/EpicBuckets.git
synced 2024-09-27 13:02:54 +02:00
Cleanup.
This commit is contained in:
parent
2130776df9
commit
bdda96eb8e
@ -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();
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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());
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.songoda.epicbuckets.util.itemnbtapi;
|
||||
package com.songoda.epicbuckets.utils.itemnbtapi;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.songoda.epicbuckets.util.itemnbtapi;
|
||||
package com.songoda.epicbuckets.utils.itemnbtapi;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.songoda.epicbuckets.util.itemnbtapi;
|
||||
package com.songoda.epicbuckets.utils.itemnbtapi;
|
||||
|
||||
public class NBTList {
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.songoda.epicbuckets.util.itemnbtapi;
|
||||
package com.songoda.epicbuckets.utils.itemnbtapi;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
@ -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());
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.songoda.epicbuckets.util.itemnbtapi;
|
||||
package com.songoda.epicbuckets.utils.itemnbtapi;
|
||||
|
||||
import org.bukkit.block.BlockState;
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.songoda.epicbuckets.util.itemnbtapi.utils;
|
||||
package com.songoda.epicbuckets.utils.itemnbtapi.utils;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user