mirror of
https://github.com/songoda/EpicBuckets.git
synced 2024-09-28 21:37:29 +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.EpicBuckets;
|
||||||
import com.songoda.epicbuckets.util.ServerVersion;
|
import com.songoda.epicbuckets.utils.ServerVersion;
|
||||||
import com.songoda.epicbuckets.util.version.NMSUtil;
|
import com.songoda.epicbuckets.utils.version.NMSUtil;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -94,7 +94,8 @@ public class AbstractAnvilGUI {
|
|||||||
if (!inv.equals(AbstractAnvilGUI.this.inv)) return;
|
if (!inv.equals(AbstractAnvilGUI.this.inv)) return;
|
||||||
inv.clear();
|
inv.clear();
|
||||||
OnClose onClose = getOnClose();
|
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(), () -> {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(EpicBuckets.getInstance(), () -> {
|
||||||
if (onClose != null) onClose.OnClose(player, inv);
|
if (onClose != null) onClose.OnClose(player, inv);
|
||||||
destroy();
|
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.arconix.api.methods.formatting.TextComponent;
|
||||||
import com.songoda.epicbuckets.EpicBuckets;
|
import com.songoda.epicbuckets.EpicBuckets;
|
||||||
import com.songoda.epicbuckets.util.ServerVersion;
|
import com.songoda.epicbuckets.utils.ServerVersion;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -86,7 +86,7 @@ public abstract class AbstractGUI implements Listener {
|
|||||||
if (event.getSlot() >= range.getMin() && event.getSlot() <= range.getMax()) {
|
if (event.getSlot() >= range.getMin() && event.getSlot() <= range.getMax()) {
|
||||||
entry.getValue().Clickable(player, inventory, event.getCursor(), event.getSlot(), event.getClick());
|
entry.getValue().Clickable(player, inventory, event.getCursor(), event.getSlot(), event.getClick());
|
||||||
if (EpicBuckets.getInstance().isServerVersionAtLeast(ServerVersion.V1_12))
|
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.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
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.entity.Player;
|
||||||
import org.bukkit.inventory.Inventory;
|
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.EpicBuckets;
|
||||||
import com.songoda.epicbuckets.util.ServerVersion;
|
import com.songoda.epicbuckets.utils.ServerVersion;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
|
|
||||||
|
@ -1,38 +1,36 @@
|
|||||||
package com.songoda.epicbuckets.util.itemnbtapi;
|
package com.songoda.epicbuckets.utils.itemnbtapi;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
|
||||||
public enum ClassWrapper {
|
public enum ClassWrapper {
|
||||||
CRAFT_ITEMSTACK("org.bukkit.craftbukkit.", ".inventory.CraftItemStack"),
|
CRAFT_ITEMSTACK("org.bukkit.craftbukkit.", ".inventory.CraftItemStack"),
|
||||||
CRAFT_ENTITY("org.bukkit.craftbukkit.", ".entity.CraftEntity"),
|
CRAFT_ENTITY("org.bukkit.craftbukkit.", ".entity.CraftEntity"),
|
||||||
CRAFT_WORLD("org.bukkit.craftbukkit.", ".CraftWorld"),
|
CRAFT_WORLD("org.bukkit.craftbukkit.", ".CraftWorld"),
|
||||||
NMS_NBTBASE("net.minecraft.server.", ".NBTBase"),
|
NMS_NBTBASE("net.minecraft.server.", ".NBTBase"),
|
||||||
NMS_NBTTAGSTRING("net.minecraft.server.", ".NBTTagString"),
|
NMS_NBTTAGSTRING("net.minecraft.server.", ".NBTTagString"),
|
||||||
NMS_ITEMSTACK("net.minecraft.server.", ".ItemStack"),
|
NMS_ITEMSTACK("net.minecraft.server.", ".ItemStack"),
|
||||||
NMS_NBTTAGCOMPOUND("net.minecraft.server.", ".NBTTagCompound"),
|
NMS_NBTTAGCOMPOUND("net.minecraft.server.", ".NBTTagCompound"),
|
||||||
NMS_NBTTAGLIST("net.minecraft.server.", ".NBTTagList"),
|
NMS_NBTTAGLIST("net.minecraft.server.", ".NBTTagList"),
|
||||||
NMS_NBTCOMPRESSEDSTREAMTOOLS("net.minecraft.server.", ".NBTCompressedStreamTools"),
|
NMS_NBTCOMPRESSEDSTREAMTOOLS("net.minecraft.server.", ".NBTCompressedStreamTools"),
|
||||||
NMS_MOJANGSONPARSER("net.minecraft.server.", ".MojangsonParser"),
|
NMS_MOJANGSONPARSER("net.minecraft.server.", ".MojangsonParser"),
|
||||||
NMS_TILEENTITY("net.minecraft.server.", ".TileEntity"),
|
NMS_TILEENTITY("net.minecraft.server.", ".TileEntity"),
|
||||||
NMS_BLOCKPOSITION("net.minecraft.server.", ".BlockPosition"),
|
NMS_BLOCKPOSITION("net.minecraft.server.", ".BlockPosition"),
|
||||||
NMS_WORLD("net.minecraft.server.", ".WorldServer"),
|
NMS_WORLD("net.minecraft.server.", ".WorldServer"),
|
||||||
NMS_ENTITY("net.minecraft.server.", ".Entity"),
|
NMS_ENTITY("net.minecraft.server.", ".Entity"),;
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private Class<?> clazz;
|
private Class<?> clazz;
|
||||||
|
|
||||||
ClassWrapper(String pre, String suffix){
|
ClassWrapper(String pre, String suffix) {
|
||||||
try{
|
try {
|
||||||
String version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3];
|
String version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3];
|
||||||
clazz = Class.forName(pre + version + suffix);
|
clazz = Class.forName(pre + version + suffix);
|
||||||
}catch(Exception ex){
|
} catch (Exception ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Class<?> getClazz(){
|
public Class<?> getClazz() {
|
||||||
return clazz;
|
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;
|
import java.util.Set;
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ public class NBTCompound {
|
|||||||
return parent;
|
return parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void mergeCompound(NBTCompound comp){
|
public void mergeCompound(NBTCompound comp) {
|
||||||
NBTReflectionUtil.addOtherNBTCompound(this, comp);
|
NBTReflectionUtil.addOtherNBTCompound(this, comp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,8 +132,8 @@ public class NBTCompound {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Boolean hasKey(String key) {
|
public Boolean hasKey(String key) {
|
||||||
Boolean b = (Boolean) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_HAS_KEY, key);
|
Boolean b = (Boolean) NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_HAS_KEY, key);
|
||||||
if(b == null)return false;
|
if (b == null) return false;
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,7 +146,7 @@ public class NBTCompound {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public NBTCompound addCompound(String name) {
|
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);
|
NBTReflectionUtil.addNBTTagCompound(this, name);
|
||||||
return getCompound(name);
|
return getCompound(name);
|
||||||
}
|
}
|
||||||
@ -164,7 +164,7 @@ public class NBTCompound {
|
|||||||
public NBTType getType(String name) {
|
public NBTType getType(String name) {
|
||||||
if (MinecraftVersion.getVersion() == MinecraftVersion.MC1_7_R4) return null;
|
if (MinecraftVersion.getVersion() == MinecraftVersion.MC1_7_R4) return null;
|
||||||
Object o = NBTReflectionUtil.getData(this, ReflectionMethod.COMPOUND_GET_TYPE, name);
|
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);
|
return NBTType.valueOf((byte) o);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,9 +191,9 @@ public class NBTCompound {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String asNBTString(){
|
public String asNBTString() {
|
||||||
Object comp = NBTReflectionUtil.gettoCompount(getCompound(), this);
|
Object comp = NBTReflectionUtil.gettoCompount(getCompound(), this);
|
||||||
if(comp == null)return "{}";
|
if (comp == null) return "{}";
|
||||||
return comp.toString();
|
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;
|
private Object nbt;
|
||||||
|
|
||||||
@ -9,16 +9,16 @@ public class NBTContainer extends NBTCompound{
|
|||||||
nbt = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance();
|
nbt = ObjectCreator.NMS_NBTTAGCOMPOUND.getInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected NBTContainer(Object nbt){
|
protected NBTContainer(Object nbt) {
|
||||||
super(null, null);
|
super(null, null);
|
||||||
this.nbt = nbt;
|
this.nbt = nbt;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NBTContainer(String nbtString) throws IllegalArgumentException {
|
public NBTContainer(String nbtString) throws IllegalArgumentException {
|
||||||
super(null, null);
|
super(null, null);
|
||||||
try{
|
try {
|
||||||
nbt = ReflectionMethod.PARSE_NBT.run(null, nbtString);
|
nbt = ReflectionMethod.PARSE_NBT.run(null, nbtString);
|
||||||
}catch(Exception ex){
|
} catch (Exception ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
throw new IllegalArgumentException("Malformed Json: " + ex.getMessage());
|
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;
|
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.File;
|
||||||
import java.io.FileInputStream;
|
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;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
@ -8,12 +8,20 @@ public class NBTItem extends NBTCompound {
|
|||||||
|
|
||||||
public NBTItem(ItemStack item) {
|
public NBTItem(ItemStack item) {
|
||||||
super(null, null);
|
super(null, null);
|
||||||
if(item == null){
|
if (item == null) {
|
||||||
throw new NullPointerException("ItemStack can't be null!");
|
throw new NullPointerException("ItemStack can't be null!");
|
||||||
}
|
}
|
||||||
bukkitItem = item.clone();
|
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() {
|
protected Object getCompound() {
|
||||||
return NBTReflectionUtil.getItemRootNBTTagCompound(ReflectionMethod.ITEMSTACK_NMSCOPY.run(null, bukkitItem));
|
return NBTReflectionUtil.getItemRootNBTTagCompound(ReflectionMethod.ITEMSTACK_NMSCOPY.run(null, bukkitItem));
|
||||||
}
|
}
|
||||||
@ -32,22 +40,13 @@ public class NBTItem extends NBTCompound {
|
|||||||
bukkitItem = item;
|
bukkitItem = item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This may return true even when the NBT is empty.
|
* This may return true even when the NBT is empty.
|
||||||
*
|
*
|
||||||
* @return Does the ItemStack have a NBTCompound.
|
* @return Does the ItemStack have a NBTCompound.
|
||||||
*/
|
*/
|
||||||
public boolean hasNBTData(){
|
public boolean hasNBTData() {
|
||||||
return getCompound() != null;
|
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 {
|
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.HashSet;
|
||||||
import java.util.Set;
|
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.FileInputStream;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
@ -7,11 +12,6 @@ import java.lang.reflect.Method;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.Stack;
|
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) {
|
public static Object getNMSEntity(Entity entity) {
|
||||||
@ -61,11 +61,11 @@ public class NBTReflectionUtil {
|
|||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
Class clazz = ClassWrapper.NMS_ITEMSTACK.getClazz();
|
Class clazz = ClassWrapper.NMS_ITEMSTACK.getClazz();
|
||||||
try {
|
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<?> constructor = clazz.getConstructor(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz());
|
||||||
constructor.setAccessible(true);
|
constructor.setAccessible(true);
|
||||||
return constructor.newInstance(nbtcompound.getCompound());
|
return constructor.newInstance(nbtcompound.getCompound());
|
||||||
}else{
|
} else {
|
||||||
Method method = clazz.getMethod("createStack", ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz());
|
Method method = clazz.getMethod("createStack", ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz());
|
||||||
method.setAccessible(true);
|
method.setAccessible(true);
|
||||||
return method.invoke(null, nbtcompound.getCompound());
|
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;
|
import org.bukkit.block.BlockState;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package com.songoda.epicbuckets.util.itemnbtapi;
|
package com.songoda.epicbuckets.utils.itemnbtapi;
|
||||||
|
|
||||||
public enum NBTType {
|
public enum NBTType {
|
||||||
NBTTagEnd(0),
|
NBTTagEnd(0),
|
||||||
@ -14,14 +14,10 @@ public enum NBTType {
|
|||||||
NBTTagList(9),
|
NBTTagList(9),
|
||||||
NBTTagCompound(10);
|
NBTTagCompound(10);
|
||||||
|
|
||||||
NBTType(int i) {
|
|
||||||
id = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
private final int id;
|
private final int id;
|
||||||
|
|
||||||
public int getId() {
|
NBTType(int i) {
|
||||||
return id;
|
id = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static NBTType valueOf(int id) {
|
public static NBTType valueOf(int id) {
|
||||||
@ -31,4 +27,8 @@ public enum NBTType {
|
|||||||
return NBTType.NBTTagEnd;
|
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;
|
import java.lang.reflect.Constructor;
|
||||||
|
|
||||||
@ -8,18 +8,18 @@ public enum ObjectCreator {
|
|||||||
|
|
||||||
private Constructor<?> construct;
|
private Constructor<?> construct;
|
||||||
|
|
||||||
ObjectCreator(Class<?> clazz, Class<?>... args){
|
ObjectCreator(Class<?> clazz, Class<?>... args) {
|
||||||
try{
|
try {
|
||||||
construct = clazz.getConstructor(args);
|
construct = clazz.getConstructor(args);
|
||||||
}catch(Exception ex){
|
} catch (Exception ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object getInstance(Object... args){
|
public Object getInstance(Object... args) {
|
||||||
try{
|
try {
|
||||||
return construct.newInstance(args);
|
return construct.newInstance(args);
|
||||||
}catch(Exception ex){
|
} catch (Exception ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
return null;
|
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.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
import com.songoda.epicbuckets.util.itemnbtapi.utils.MinecraftVersion;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
public enum ReflectionMethod {
|
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")),
|
COMPOUND_SET_FLOAT(ClassWrapper.NMS_NBTTAGCOMPOUND.getClazz(), new Class[]{String.class, float.class}, MinecraftVersion.MC1_7_R4, new Since(MinecraftVersion.MC1_7_R4, "setFloat")),
|
||||||
@ -63,38 +63,36 @@ public enum ReflectionMethod {
|
|||||||
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!
|
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 Since targetVersion;
|
||||||
private Method method;
|
private Method method;
|
||||||
private boolean loaded = false;
|
private boolean loaded = false;
|
||||||
private boolean compatible = 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();
|
MinecraftVersion server = MinecraftVersion.getVersion();
|
||||||
if(server.compareTo(addedSince) < 0)return;
|
if (server.compareTo(addedSince) < 0) return;
|
||||||
compatible = true;
|
compatible = true;
|
||||||
Since target = methodnames[0];
|
Since target = methodnames[0];
|
||||||
for(Since s : methodnames){
|
for (Since s : methodnames) {
|
||||||
if(s.version.getVersionId() <= server.getVersionId() && target.version.getVersionId() < s.version.getVersionId())
|
if (s.version.getVersionId() <= server.getVersionId() && target.version.getVersionId() < s.version.getVersionId())
|
||||||
target = s;
|
target = s;
|
||||||
}
|
}
|
||||||
targetVersion = target;
|
targetVersion = target;
|
||||||
try{
|
try {
|
||||||
method = targetClass.getMethod(targetVersion.name, args);
|
method = targetClass.getMethod(targetVersion.name, args);
|
||||||
method.setAccessible(true);
|
method.setAccessible(true);
|
||||||
loaded = true;
|
loaded = true;
|
||||||
}catch(NullPointerException | NoSuchMethodException | SecurityException ex){
|
} catch (NullPointerException | NoSuchMethodException | SecurityException ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object run(Object target, Object... args){
|
public Object run(Object target, Object... args) {
|
||||||
try{
|
try {
|
||||||
return method.invoke(target, args);
|
return method.invoke(target, args);
|
||||||
}catch(Exception ex){
|
} catch (Exception ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@ -108,9 +106,10 @@ public enum ReflectionMethod {
|
|||||||
return compatible;
|
return compatible;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Since{
|
public static class Since {
|
||||||
public final MinecraftVersion version;
|
public final MinecraftVersion version;
|
||||||
public final String name;
|
public final String name;
|
||||||
|
|
||||||
public Since(MinecraftVersion version, String name) {
|
public Since(MinecraftVersion version, String name) {
|
||||||
this.version = version;
|
this.version = version;
|
||||||
this.name = name;
|
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;
|
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;
|
import org.bukkit.Bukkit;
|
||||||
|
|
||||||
@ -23,10 +23,6 @@ public enum MinecraftVersion {
|
|||||||
this.versionId = versionId;
|
this.versionId = versionId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getVersionId() {
|
|
||||||
return versionId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static MinecraftVersion getVersion() {
|
public static MinecraftVersion getVersion() {
|
||||||
if (version != null) {
|
if (version != null) {
|
||||||
return version;
|
return version;
|
||||||
@ -59,4 +55,8 @@ public enum MinecraftVersion {
|
|||||||
return hasGsonSupport;
|
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.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
Loading…
Reference in New Issue
Block a user