Delete src/main/java/pers/xanadu/enderdragon/nms directory

This commit is contained in:
Xanadu13
2023-08-25 21:49:49 +08:00
committed by GitHub
parent 6565b8dcdf
commit 532fb4198f
26 changed files with 0 additions and 938 deletions
@@ -1,11 +0,0 @@
package pers.xanadu.enderdragon.nms.BossBar;
import org.bukkit.World;
import java.util.List;
public interface I_BossBarManager {
void saveBossBarData(List<World> worlds);
void loadBossBarData(List<World> worlds);
void setBossBar(World world,String title,String color,String style);
}
@@ -1,105 +0,0 @@
package pers.xanadu.enderdragon.nms.BossBar.v1_12_R1;
import net.minecraft.server.v1_12_R1.BossBattle;
import net.minecraft.server.v1_12_R1.BossBattleServer;
import org.bukkit.World;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.craftbukkit.v1_12_R1.util.CraftChatMessage;
import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.nms.BossBar.I_BossBarManager;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.List;
import static pers.xanadu.enderdragon.EnderDragon.getInstance;
import static pers.xanadu.enderdragon.EnderDragon.plugin;
public class BossBarManager implements I_BossBarManager {
private Field BossBattleServer = null;
public void saveBossBarData(List<World> worlds){
File file = new File(plugin.getDataFolder(),"world_data.yml");
YamlConfiguration yml = new YamlConfiguration();
worlds.forEach(world -> {
try{
Object edb = getInstance().getNMSManager().getEnderDragonBattle(world);
if(BossBattleServer == null) BossBattleServer = edb.getClass().getDeclaredField("c");
BossBattleServer.setAccessible(true);
BossBattleServer bbs = (BossBattleServer) BossBattleServer.get(edb);
String path = world.getName()+".";
yml.set(path+"title",bbs.title.getText());
yml.set(path+"color",bbs.color.name());
yml.set(path+"style",bbs.style.name());
}catch (ReflectiveOperationException e){
e.printStackTrace();
}
});
try{
yml.save(file);
Lang.info("BossBar data has been saved!");
}catch (IOException e){
Lang.error("Failed to save world_data!");
}
}
public void loadBossBarData(List<World> worlds){
File file = new File(plugin.getDataFolder(),"world_data.yml");
if(!file.exists()) return;
Lang.info("Enabling BossBar fix...");
YamlConfiguration yml = new YamlConfiguration();
try{
yml.load(file);
}catch (InvalidConfigurationException | IOException e) {
Lang.error("Failed to load world_data!");
return;
}
worlds.forEach(world -> {
try{
Object edb = getInstance().getNMSManager().getEnderDragonBattle(world);
if(BossBattleServer == null) BossBattleServer = edb.getClass().getDeclaredField("c");
BossBattleServer.setAccessible(true);
BossBattleServer bbs = (BossBattleServer) BossBattleServer.get(edb);
String path = world.getName()+".";
bbs.title = CraftChatMessage.fromString(yml.getString(path+"title"), true)[0];
bbs.color = BossBattle.BarColor.valueOf(yml.getString(path+"color"));
bbs.style = BossBattle.BarStyle.valueOf(yml.getString(path+"style"));
}catch (ReflectiveOperationException e){
e.printStackTrace();
}
});
}
public void setBossBar(World world,String title,String color,String style){
BossBattleServer bbs = new BossBattleServer(
CraftChatMessage.fromString(title, true)[0],
convertColor(color),
convertStyle(style)
);
bbs.setCreateFog(true);
bbs.setDarkenSky(true);
bbs.setPlayMusic(true);
try{
Object edb = getInstance().getNMSManager().getEnderDragonBattle(world);
if(BossBattleServer == null) BossBattleServer = edb.getClass().getDeclaredField("c");
BossBattleServer.setAccessible(true);
BossBattleServer.set(edb,bbs);
}catch (ReflectiveOperationException e){
e.printStackTrace();
}
}
private BossBattle.BarColor convertColor(String color) {
return BossBattle.BarColor.valueOf(color);
}
private BossBattle.BarStyle convertStyle(String style) {
switch (style) {
case "SOLID":
default: return net.minecraft.server.v1_12_R1.BossBattle.BarStyle.PROGRESS;
case "SEGMENTED_6": return net.minecraft.server.v1_12_R1.BossBattle.BarStyle.NOTCHED_6;
case "SEGMENTED_10": return net.minecraft.server.v1_12_R1.BossBattle.BarStyle.NOTCHED_10;
case "SEGMENTED_12": return net.minecraft.server.v1_12_R1.BossBattle.BarStyle.NOTCHED_12;
case "SEGMENTED_20": return net.minecraft.server.v1_12_R1.BossBattle.BarStyle.NOTCHED_20;
}
}
}
@@ -1,103 +0,0 @@
package pers.xanadu.enderdragon.nms.BossBar.v1_13_R1;
import net.minecraft.server.v1_13_R1.BossBattle;
import net.minecraft.server.v1_13_R1.BossBattleServer;
import org.bukkit.World;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.craftbukkit.v1_13_R1.util.CraftChatMessage;
import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.nms.BossBar.I_BossBarManager;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.List;
import static pers.xanadu.enderdragon.EnderDragon.getInstance;
import static pers.xanadu.enderdragon.EnderDragon.plugin;
public class BossBarManager implements I_BossBarManager {
private Field BossBattleServer = null;
public void saveBossBarData(List<World> worlds){
File file = new File(plugin.getDataFolder(),"world_data.yml");
YamlConfiguration yml = new YamlConfiguration();
worlds.forEach(world -> {
try{
Object edb = getInstance().getNMSManager().getEnderDragonBattle(world);
if(BossBattleServer == null) BossBattleServer = edb.getClass().getDeclaredField("c");
BossBattleServer.setAccessible(true);
BossBattleServer bbs = (BossBattleServer) BossBattleServer.get(edb);
String path = world.getName()+".";
yml.set(path+"title",bbs.title.getText());
yml.set(path+"color",bbs.color.name());
yml.set(path+"style",bbs.style.name());
}catch (ReflectiveOperationException e){
e.printStackTrace();
}
});
try{
yml.save(file);
Lang.info("BossBar data has been saved!");
}catch (IOException e){
Lang.error("Failed to save world_data!");
}
}
public void loadBossBarData(List<World> worlds){
File file = new File(plugin.getDataFolder(),"world_data.yml");
if(!file.exists()) return;
Lang.info("Enabling BossBar fix...");
YamlConfiguration yml = new YamlConfiguration();
try{
yml.load(file);
}catch (InvalidConfigurationException | IOException e) {
Lang.error("Failed to load world_data!");
return;
}
worlds.forEach(world -> {
try{
Object edb = getInstance().getNMSManager().getEnderDragonBattle(world);
if(BossBattleServer == null) BossBattleServer = edb.getClass().getDeclaredField("c");
BossBattleServer.setAccessible(true);
BossBattleServer bbs = (BossBattleServer) BossBattleServer.get(edb);
String path = world.getName()+".";
bbs.title = CraftChatMessage.fromString(yml.getString(path+"title"), true)[0];
bbs.color = BossBattle.BarColor.valueOf(yml.getString(path+"color"));
bbs.style = BossBattle.BarStyle.valueOf(yml.getString(path+"style"));
}catch (ReflectiveOperationException e){
e.printStackTrace();
}
});
}
public void setBossBar(World world,String title,String color,String style){
BossBattleServer bbs = new BossBattleServer(
CraftChatMessage.fromString(title, true)[0],
convertColor(color),
convertStyle(style)
);
bbs.setCreateFog(true);
bbs.setDarkenSky(true);
bbs.setPlayMusic(true);
try{
Object edb = getInstance().getNMSManager().getEnderDragonBattle(world);
if(BossBattleServer == null) BossBattleServer = edb.getClass().getDeclaredField("c");
BossBattleServer.setAccessible(true);
BossBattleServer.set(edb,bbs);
}catch (ReflectiveOperationException e){
e.printStackTrace();
}
}
private BossBattle.BarColor convertColor(String color) {
return BossBattle.BarColor.valueOf(color);
}
private BossBattle.BarStyle convertStyle(String style) {
switch (style) {
case "SOLID":
default: return net.minecraft.server.v1_13_R1.BossBattle.BarStyle.PROGRESS;
case "SEGMENTED_6": return net.minecraft.server.v1_13_R1.BossBattle.BarStyle.NOTCHED_6;
case "SEGMENTED_10": return net.minecraft.server.v1_13_R1.BossBattle.BarStyle.NOTCHED_10;
case "SEGMENTED_12": return net.minecraft.server.v1_13_R1.BossBattle.BarStyle.NOTCHED_12;
case "SEGMENTED_20": return net.minecraft.server.v1_13_R1.BossBattle.BarStyle.NOTCHED_20;
}
}
}
@@ -1,103 +0,0 @@
package pers.xanadu.enderdragon.nms.BossBar.v1_13_R2;
import net.minecraft.server.v1_13_R2.BossBattle;
import net.minecraft.server.v1_13_R2.BossBattleServer;
import org.bukkit.World;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.craftbukkit.v1_13_R2.util.CraftChatMessage;
import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.nms.BossBar.I_BossBarManager;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.List;
import static pers.xanadu.enderdragon.EnderDragon.getInstance;
import static pers.xanadu.enderdragon.EnderDragon.plugin;
public class BossBarManager implements I_BossBarManager {
private Field BossBattleServer = null;
public void saveBossBarData(List<World> worlds){
File file = new File(plugin.getDataFolder(),"world_data.yml");
YamlConfiguration yml = new YamlConfiguration();
worlds.forEach(world -> {
try{
Object edb = getInstance().getNMSManager().getEnderDragonBattle(world);
if(BossBattleServer == null) BossBattleServer = edb.getClass().getDeclaredField("bossBattle");
BossBattleServer.setAccessible(true);
BossBattleServer bbs = (BossBattleServer) BossBattleServer.get(edb);
String path = world.getName()+".";
yml.set(path+"title",bbs.title.getText());
yml.set(path+"color",bbs.color.name());
yml.set(path+"style",bbs.style.name());
}catch (ReflectiveOperationException e){
e.printStackTrace();
}
});
try{
yml.save(file);
Lang.info("BossBar data has been saved!");
}catch (IOException e){
Lang.error("Failed to save world_data!");
}
}
public void loadBossBarData(List<World> worlds){
File file = new File(plugin.getDataFolder(),"world_data.yml");
if(!file.exists()) return;
Lang.info("Enabling BossBar fix...");
YamlConfiguration yml = new YamlConfiguration();
try{
yml.load(file);
}catch (InvalidConfigurationException | IOException e) {
Lang.error("Failed to load world_data!");
return;
}
worlds.forEach(world -> {
try{
Object edb = getInstance().getNMSManager().getEnderDragonBattle(world);
if(BossBattleServer == null) BossBattleServer = edb.getClass().getDeclaredField("bossBattle");
BossBattleServer.setAccessible(true);
BossBattleServer bbs = (BossBattleServer) BossBattleServer.get(edb);
String path = world.getName()+".";
bbs.title = CraftChatMessage.fromString(yml.getString(path+"title"), true)[0];
bbs.color = BossBattle.BarColor.valueOf(yml.getString(path+"color"));
bbs.style = BossBattle.BarStyle.valueOf(yml.getString(path+"style"));
}catch (ReflectiveOperationException e){
e.printStackTrace();
}
});
}
public void setBossBar(World world,String title,String color,String style){
BossBattleServer bbs = new BossBattleServer(
CraftChatMessage.fromString(title, true)[0],
convertColor(color),
convertStyle(style)
);
bbs.setCreateFog(true);
bbs.setDarkenSky(true);
bbs.setPlayMusic(true);
try{
Object edb = getInstance().getNMSManager().getEnderDragonBattle(world);
if(BossBattleServer == null) BossBattleServer = edb.getClass().getField("bossBattle");
BossBattleServer.setAccessible(true);
BossBattleServer.set(edb,bbs);
}catch (ReflectiveOperationException e){
e.printStackTrace();
}
}
private BossBattle.BarColor convertColor(String color) {
return BossBattle.BarColor.valueOf(color);
}
private BossBattle.BarStyle convertStyle(String style) {
switch (style) {
case "SOLID":
default: return net.minecraft.server.v1_13_R2.BossBattle.BarStyle.PROGRESS;
case "SEGMENTED_6": return net.minecraft.server.v1_13_R2.BossBattle.BarStyle.NOTCHED_6;
case "SEGMENTED_10": return net.minecraft.server.v1_13_R2.BossBattle.BarStyle.NOTCHED_10;
case "SEGMENTED_12": return net.minecraft.server.v1_13_R2.BossBattle.BarStyle.NOTCHED_12;
case "SEGMENTED_20": return net.minecraft.server.v1_13_R2.BossBattle.BarStyle.NOTCHED_20;
}
}
}
@@ -1,11 +0,0 @@
package pers.xanadu.enderdragon.nms.NMSItem;
import org.bukkit.inventory.ItemStack;
public interface I_NMSItemManager {
ItemStack readAsItem(String nbt);
ItemStack cpdToItem(Object cpd);
Object parseNBT(Object nbt_base);
Object readAsNBTBase(String raw);
Object getNBTBase(Object obj);
}
@@ -1,146 +0,0 @@
package pers.xanadu.enderdragon.nms.NMSItem.v1_12_R1;
import net.minecraft.server.v1_12_R1.*;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.*;
import java.util.regex.Pattern;
public class CraftNBTTagConfigSerializer {
private static final Pattern ARRAY = Pattern.compile("^\\[.*]");
private static final Pattern INTEGER = Pattern.compile("[-+]?(?:0|[1-9][0-9]*)?i", 2);
private static final Pattern DOUBLE = Pattern.compile("[-+]?(?:[0-9]+[.]?|[0-9]*[.][0-9]+)(?:e[-+]?[0-9]+)?d", 2);
private static final Pattern byte_format = Pattern.compile("[-+]?(?:0|[1-9][0-9]*)b", 2);
private static final Pattern short_format = Pattern.compile("[-+]?(?:0|[1-9][0-9]*)s", 2);
private static final Pattern integer_format = Pattern.compile("[-+]?(?:0|[1-9][0-9]*)");
private static final Pattern long_format = Pattern.compile("[-+]?(?:0|[1-9][0-9]*)l", 2);
private static final Pattern float_format = Pattern.compile("[-+]?(?:[0-9]+[.]?|[0-9]*[.][0-9]+)(?:e[-+]?[0-9]+)?f", 2);
private static final Pattern double_format = Pattern.compile("[-+]?(?:[0-9]+[.]?|[0-9]*[.][0-9]+)(?:e[-+]?[0-9]+)?d", 2);
private static final Pattern double_format2 = Pattern.compile("[-+]?(?:[0-9]+[.]|[0-9]*[.][0-9]+)(?:e[-+]?[0-9]+)?", 2);
public CraftNBTTagConfigSerializer() {
}
public static Object serialize(NBTBase base) {
if (base instanceof NBTTagCompound) {
Map<String, Object> innerMap = new HashMap();
for (String key : ((NBTTagCompound) base).c()) {
innerMap.put(key, serialize(((NBTTagCompound) base).get(key)));
}
return innerMap;
}
if (base instanceof NBTTagString) {
return ((NBTTagString) base).c_();
}
else {
return base instanceof NBTTagInt ? base + "i" : base.toString();
}
}
public static NBTBase deserialize(Object object) {
if (object instanceof Map) {
NBTTagCompound compound = new NBTTagCompound();
for (Object obj : ((Map) object).entrySet()) {
Map.Entry<String, Object> entry = (Map.Entry) obj;
compound.set(entry.getKey(), deserialize(entry.getValue()));
}
return compound;
} else if (!(object instanceof List)) {
if (object instanceof String) {
String string = (String)object;
if (ARRAY.matcher(string).matches()) {
try {
Constructor<MojangsonParser> constructor = MojangsonParser.class.getDeclaredConstructor(String.class);
MojangsonParser parser = constructor.newInstance(string);
Method parseArray = MojangsonParser.class.getDeclaredMethod("k");
parseArray.setAccessible(true);
return (NBTBase) parseArray.invoke(parser);
} catch (Throwable e) {
throw new RuntimeException("Could not deserialize found list ", e);
}
} else if (INTEGER.matcher(string).matches()) {
return new NBTTagInt(Integer.parseInt(string.substring(0, string.length() - 1)));
} else if (DOUBLE.matcher(string).matches()) {
return new NBTTagDouble(Double.parseDouble(string.substring(0, string.length() - 1)));
} else {
try{
Constructor<MojangsonParser> constructor = MojangsonParser.class.getDeclaredConstructor(String.class);
MojangsonParser parser = constructor.newInstance("");
Method parseLiteral = MojangsonParser.class.getDeclaredMethod("c", String.class);
parseLiteral.setAccessible(true);
NBTBase nbtBase = (NBTBase) parseLiteral.invoke(parser,string);
if (nbtBase instanceof NBTTagInt) {
return new NBTTagString(nbtBase.toString());
} else {
return (nbtBase instanceof NBTTagDouble ? new NBTTagString(String.valueOf(((NBTTagDouble)nbtBase).asDouble())) : nbtBase);
}
}catch (ReflectiveOperationException e){
throw new RuntimeException("Could not deserialize NBTBase");
}
}
} else {
throw new RuntimeException("Could not deserialize NBTBase");
}
} else {
List<Object> list = (List)object;
if (list.isEmpty()) {
return new NBTTagList();
}
else {
NBTTagList tagList = new NBTTagList();
for (Object tag : list) {
tagList.add(deserialize(tag));
}
return tagList;
}
}
}
public static NBTBase v1_12_R1_c(String raw) {
try {
if (float_format.matcher(raw).matches()) {
return new NBTTagFloat(Float.parseFloat(raw.substring(0, raw.length() - 1)));
}
if (byte_format.matcher(raw).matches()) {
return new NBTTagByte(Byte.parseByte(raw.substring(0, raw.length() - 1)));
}
if (long_format.matcher(raw).matches()) {
return new NBTTagLong(Long.parseLong(raw.substring(0, raw.length() - 1)));
}
if (short_format.matcher(raw).matches()) {
return new NBTTagShort(Short.parseShort(raw.substring(0, raw.length() - 1)));
}
if (integer_format.matcher(raw).matches()) {
return new NBTTagInt(Integer.parseInt(raw));
}
if (double_format.matcher(raw).matches()) {
return new NBTTagDouble(Double.parseDouble(raw.substring(0, raw.length() - 1)));
}
if (double_format2.matcher(raw).matches()) {
return new NBTTagDouble(Double.parseDouble(raw));
}
if ("true".equalsIgnoreCase(raw)) {
return new NBTTagByte((byte)1);
}
if ("false".equalsIgnoreCase(raw)) {
return new NBTTagByte((byte)0);
}
} catch (NumberFormatException e) {
e.printStackTrace();
}
return new NBTTagString(raw);
}
}
@@ -1,35 +0,0 @@
package pers.xanadu.enderdragon.nms.NMSItem.v1_12_R1;
import net.minecraft.server.v1_12_R1.*;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftItemStack;
import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.nms.NMSItem.I_NMSItemManager;
public class NMSItemManager implements I_NMSItemManager {
public org.bukkit.inventory.ItemStack readAsItem(String nbt){
try {
NBTTagCompound cpd = MojangsonParser.parse(nbt);
ItemStack ei = new ItemStack(cpd);
return CraftItemStack.asBukkitCopy(ei);
} catch (MojangsonParseException e) {
Lang.error("Wrong item nbt format:"+nbt);
return new org.bukkit.inventory.ItemStack(Material.AIR);
}
}
public org.bukkit.inventory.ItemStack cpdToItem(Object cpd){
ItemStack ei = new ItemStack((NBTTagCompound) cpd);
return CraftItemStack.asBukkitCopy(ei);
}
public Object parseNBT(Object nbt_base){
return CraftNBTTagConfigSerializer.serialize((NBTBase) nbt_base);
}
public Object readAsNBTBase(String raw){
return CraftNBTTagConfigSerializer.v1_12_R1_c(raw);
}
public Object getNBTBase(Object obj){
return CraftNBTTagConfigSerializer.deserialize(obj);
}
}
@@ -1,151 +0,0 @@
package pers.xanadu.enderdragon.nms.NMSItem.v1_13_R1;
import com.mojang.brigadier.StringReader;
import net.minecraft.server.v1_13_R1.*;
import java.lang.reflect.Method;
import java.util.*;
import java.util.regex.Pattern;
public class CraftNBTTagConfigSerializer {
private static final Pattern ARRAY = Pattern.compile("^\\[.*]");
private static final Pattern INTEGER = Pattern.compile("[-+]?(?:0|[1-9][0-9]*)?i", 2);
private static final Pattern DOUBLE = Pattern.compile("[-+]?(?:[0-9]+[.]?|[0-9]*[.][0-9]+)(?:e[-+]?[0-9]+)?d", 2);
public static final MojangsonParser MOJANGSON_PARSER = new MojangsonParser(new StringReader(""));
private static final Pattern byte_format = Pattern.compile("[-+]?(?:0|[1-9][0-9]*)b", 2);
private static final Pattern short_format = Pattern.compile("[-+]?(?:0|[1-9][0-9]*)s", 2);
private static final Pattern integer_format = Pattern.compile("[-+]?(?:0|[1-9][0-9]*)");
private static final Pattern long_format = Pattern.compile("[-+]?(?:0|[1-9][0-9]*)l", 2);
private static final Pattern float_format = Pattern.compile("[-+]?(?:[0-9]+[.]?|[0-9]*[.][0-9]+)(?:e[-+]?[0-9]+)?f", 2);
private static final Pattern double_format = Pattern.compile("[-+]?(?:[0-9]+[.]?|[0-9]*[.][0-9]+)(?:e[-+]?[0-9]+)?d", 2);
private static final Pattern double_format_2 = Pattern.compile("[-+]?(?:[0-9]+[.]|[0-9]*[.][0-9]+)(?:e[-+]?[0-9]+)?", 2);
public CraftNBTTagConfigSerializer() {
}
public static Object serialize(NBTBase base) {
if (base instanceof NBTTagCompound) {
Map<String, Object> innerMap = new HashMap();
Iterator var3 = ((NBTTagCompound)base).getKeys().iterator();
while(var3.hasNext()) {
String key = (String)var3.next();
innerMap.put(key, serialize(((NBTTagCompound)base).get(key)));
}
return innerMap;
} else if (!(base instanceof NBTTagList)) {
if (base instanceof NBTTagString) {
return base.b_();
} else {
return base instanceof NBTTagInt ? base + "i" : base.toString();
}
} else {
List<Object> baseList = new ArrayList();
for(int i = 0; i < ((NBTList)base).size(); ++i) {
baseList.add(serialize(((NBTList)base).get(i)));
}
return baseList;
}
}
public static NBTBase v1_13_R1_b(String str) {
try {
if (float_format.matcher(str).matches()) {
return new NBTTagFloat(Float.parseFloat(str.substring(0, str.length() - 1)));
}
if (byte_format.matcher(str).matches()) {
return new NBTTagByte(Byte.parseByte(str.substring(0, str.length() - 1)));
}
if (long_format.matcher(str).matches()) {
return new NBTTagLong(Long.parseLong(str.substring(0, str.length() - 1)));
}
if (short_format.matcher(str).matches()) {
return new NBTTagShort(Short.parseShort(str.substring(0, str.length() - 1)));
}
if (integer_format.matcher(str).matches()) {
return new NBTTagInt(Integer.parseInt(str));
}
if (double_format.matcher(str).matches()) {
return new NBTTagDouble(Double.parseDouble(str.substring(0, str.length() - 1)));
}
if (double_format_2.matcher(str).matches()) {
return new NBTTagDouble(Double.parseDouble(str));
}
if ("true".equalsIgnoreCase(str)) {
return new NBTTagByte((byte)1);
}
if ("false".equalsIgnoreCase(str)) {
return new NBTTagByte((byte)0);
}
} catch (NumberFormatException e) {
e.printStackTrace();
}
return new NBTTagString(str);
}
public static NBTBase deserialize(Object object) {
if (object instanceof Map) {
NBTTagCompound compound = new NBTTagCompound();
for (Object obj : ((Map) object).entrySet()) {
Map.Entry<String, Object> entry = (Map.Entry) obj;
compound.set(entry.getKey(), deserialize(entry.getValue()));
}
return compound;
} else if (!(object instanceof List)) {
if (object instanceof String) {
String string = (String)object;
if (ARRAY.matcher(string).matches()) {
try {
Method parseArray = MojangsonParser.class.getDeclaredMethod("h");
parseArray.setAccessible(true);
MojangsonParser parser = new MojangsonParser(new StringReader(string));
return (NBTBase) parseArray.invoke(parser);
} catch (Throwable e) {
throw new RuntimeException("Could not deserialize found list ", e);
}
} else if (INTEGER.matcher(string).matches()) {
return new NBTTagInt(Integer.parseInt(string.substring(0, string.length() - 1)));
} else if (DOUBLE.matcher(string).matches()) {
return new NBTTagDouble(Double.parseDouble(string.substring(0, string.length() - 1)));
} else {
try{
Method parseLiteral = MojangsonParser.class.getDeclaredMethod("b", String.class);
parseLiteral.setAccessible(true);
NBTBase nbtBase = (NBTBase) parseLiteral.invoke(MOJANGSON_PARSER,string);
if (nbtBase instanceof NBTTagInt) {
return new NBTTagString(nbtBase.b_());
} else {
return (nbtBase instanceof NBTTagDouble ? new NBTTagString(String.valueOf(((NBTTagDouble)nbtBase).asDouble())) : nbtBase);
}
}catch (ReflectiveOperationException e){
throw new RuntimeException("Could not deserialize NBTBase");
}
}
} else {
throw new RuntimeException("Could not deserialize NBTBase");
}
} else {
List<Object> list = (List)object;
if (list.isEmpty()) {
return new NBTTagList();
} else {
NBTTagList tagList = new NBTTagList();
for (Object tag : list) {
tagList.add(deserialize(tag));
}
return tagList;
}
}
}
}
@@ -1,37 +0,0 @@
package pers.xanadu.enderdragon.nms.NMSItem.v1_13_R1;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import net.minecraft.server.v1_13_R1.ItemStack;
import net.minecraft.server.v1_13_R1.MojangsonParser;
import net.minecraft.server.v1_13_R1.NBTBase;
import net.minecraft.server.v1_13_R1.NBTTagCompound;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_13_R1.inventory.CraftItemStack;
import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.nms.NMSItem.I_NMSItemManager;
public class NMSItemManager implements I_NMSItemManager {
public org.bukkit.inventory.ItemStack readAsItem(String nbt){
try {
NBTTagCompound cpd = MojangsonParser.parse(nbt);
ItemStack ei = ItemStack.a(cpd);
return CraftItemStack.asBukkitCopy(ei);
} catch (CommandSyntaxException e) {
Lang.error("Wrong item nbt format:"+nbt);
return new org.bukkit.inventory.ItemStack(Material.AIR);
}
}
public org.bukkit.inventory.ItemStack cpdToItem(Object cpd){
ItemStack ei = ItemStack.a((NBTTagCompound) cpd);
return CraftItemStack.asBukkitCopy(ei);
}
public Object parseNBT(Object nbt_base){
return CraftNBTTagConfigSerializer.serialize((NBTBase) nbt_base);
}
public Object readAsNBTBase(String raw){
return CraftNBTTagConfigSerializer.v1_13_R1_b(raw);
}
public Object getNBTBase(Object obj){
return CraftNBTTagConfigSerializer.deserialize(obj);
}
}
@@ -1,30 +0,0 @@
package pers.xanadu.enderdragon.nms.NMSItem.v1_13_R2_above;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import pers.xanadu.enderdragon.EnderDragon;
import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.nms.NMSItem.I_NMSItemManager;
public class NMSItemManager implements I_NMSItemManager {
public ItemStack readAsItem(String nbt){
try {
return EnderDragon.getInstance().getNMSManager().getItemStack(nbt);
} catch (Throwable e) {
Lang.error("Wrong item nbt format:"+nbt);
return new org.bukkit.inventory.ItemStack(Material.AIR);
}
}
public ItemStack cpdToItem(Object cpd){
return EnderDragon.getInstance().getNMSManager().getItemStack(cpd);
}
public Object parseNBT(Object nbt_base){
return EnderDragon.getInstance().getNMSManager().serializeNBTBase(nbt_base);
}
public Object readAsNBTBase(String raw){
return EnderDragon.getInstance().getNMSManager().StringParseLiteral(raw);
}
public Object getNBTBase(Object obj){
return EnderDragon.getInstance().getNMSManager().deserializeObject(obj);
}
}
@@ -1,7 +0,0 @@
package pers.xanadu.enderdragon.nms.RespawnAnchor;
import org.bukkit.World;
public interface I_RespawnAnchorManager {
boolean isRespawnAnchorWorks(World world);
}
@@ -1,15 +0,0 @@
package pers.xanadu.enderdragon.nms.RespawnAnchor.v1_16_R1;
import net.minecraft.server.v1_16_R1.DimensionManager;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_16_R1.CraftWorld;
import pers.xanadu.enderdragon.nms.RespawnAnchor.I_RespawnAnchorManager;
public class RespawnAnchorManager implements I_RespawnAnchorManager {
public boolean isRespawnAnchorWorks(World world){
CraftWorld cw = (CraftWorld) world;
net.minecraft.server.v1_16_R1.World ew = cw.getHandle();
DimensionManager dm = ew.getDimensionManager();
return dm.isRespawnAnchorWorks();
}
}
@@ -1,15 +0,0 @@
package pers.xanadu.enderdragon.nms.RespawnAnchor.v1_16_R2;
import net.minecraft.server.v1_16_R2.DimensionManager;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_16_R2.CraftWorld;
import pers.xanadu.enderdragon.nms.RespawnAnchor.I_RespawnAnchorManager;
public class RespawnAnchorManager implements I_RespawnAnchorManager {
public boolean isRespawnAnchorWorks(World world){
CraftWorld cw = (CraftWorld) world;
net.minecraft.server.v1_16_R2.World ew = cw.getHandle();
DimensionManager dm = ew.getDimensionManager();
return dm.isRespawnAnchorWorks();
}
}
@@ -1,15 +0,0 @@
package pers.xanadu.enderdragon.nms.RespawnAnchor.v1_16_R3;
import net.minecraft.server.v1_16_R3.DimensionManager;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_16_R3.CraftWorld;
import pers.xanadu.enderdragon.nms.RespawnAnchor.I_RespawnAnchorManager;
public class RespawnAnchorManager implements I_RespawnAnchorManager {
public boolean isRespawnAnchorWorks(World world){
CraftWorld cw = (CraftWorld) world;
net.minecraft.server.v1_16_R3.World ew = cw.getHandle();
DimensionManager dm = ew.getDimensionManager();
return dm.isRespawnAnchorWorks();
}
}
@@ -1,15 +0,0 @@
package pers.xanadu.enderdragon.nms.RespawnAnchor.v1_17_R1;
import net.minecraft.world.level.dimension.DimensionManager;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_17_R1.CraftWorld;
import pers.xanadu.enderdragon.nms.RespawnAnchor.I_RespawnAnchorManager;
public class RespawnAnchorManager implements I_RespawnAnchorManager {
public boolean isRespawnAnchorWorks(World world){
CraftWorld cw = (CraftWorld) world;
net.minecraft.world.level.World ew = cw.getHandle();
DimensionManager dm = ew.getDimensionManager();
return dm.isRespawnAnchorWorks();
}
}
@@ -1,10 +0,0 @@
package pers.xanadu.enderdragon.nms.RespawnAnchor.v1_18_above;
import org.bukkit.World;
import pers.xanadu.enderdragon.nms.RespawnAnchor.I_RespawnAnchorManager;
public class RespawnAnchorManager implements I_RespawnAnchorManager {
public boolean isRespawnAnchorWorks(World world){
return world.isRespawnAnchorWorks();
}
}
@@ -1,7 +0,0 @@
package pers.xanadu.enderdragon.nms.WorldData;
import org.bukkit.World;
public interface I_WorldDataManager {
long getGameTime(World world);
}
@@ -1,14 +0,0 @@
package pers.xanadu.enderdragon.nms.WorldData.v1_12_R1;
import net.minecraft.server.v1_12_R1.WorldServer;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_12_R1.CraftWorld;
import pers.xanadu.enderdragon.nms.WorldData.I_WorldDataManager;
public class WorldDataManager implements I_WorldDataManager {
public long getGameTime(World world){
CraftWorld cw = (CraftWorld) world;
WorldServer ws = cw.getHandle();
return ws.getTime();
}
}
@@ -1,14 +0,0 @@
package pers.xanadu.enderdragon.nms.WorldData.v1_13_R1;
import net.minecraft.server.v1_13_R1.WorldServer;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_13_R1.CraftWorld;
import pers.xanadu.enderdragon.nms.WorldData.I_WorldDataManager;
public class WorldDataManager implements I_WorldDataManager {
public long getGameTime(World world){
CraftWorld cw = (CraftWorld) world;
WorldServer ws = cw.getHandle();
return ws.getTime();
}
}
@@ -1,14 +0,0 @@
package pers.xanadu.enderdragon.nms.WorldData.v1_13_R2;
import net.minecraft.server.v1_13_R2.WorldServer;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_13_R2.CraftWorld;
import pers.xanadu.enderdragon.nms.WorldData.I_WorldDataManager;
public class WorldDataManager implements I_WorldDataManager {
public long getGameTime(World world){
CraftWorld cw = (CraftWorld) world;
WorldServer ws = cw.getHandle();
return ws.getTime();
}
}
@@ -1,14 +0,0 @@
package pers.xanadu.enderdragon.nms.WorldData.v1_14_R1;
import net.minecraft.server.v1_14_R1.WorldServer;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_14_R1.CraftWorld;
import pers.xanadu.enderdragon.nms.WorldData.I_WorldDataManager;
public class WorldDataManager implements I_WorldDataManager {
public long getGameTime(World world){
CraftWorld cw = (CraftWorld) world;
WorldServer ws = cw.getHandle();
return ws.getTime();
}
}
@@ -1,14 +0,0 @@
package pers.xanadu.enderdragon.nms.WorldData.v1_15_R1;
import net.minecraft.server.v1_15_R1.WorldServer;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_15_R1.CraftWorld;
import pers.xanadu.enderdragon.nms.WorldData.I_WorldDataManager;
public class WorldDataManager implements I_WorldDataManager {
public long getGameTime(World world){
CraftWorld cw = (CraftWorld) world;
WorldServer ws = cw.getHandle();
return ws.getTime();
}
}
@@ -1,14 +0,0 @@
package pers.xanadu.enderdragon.nms.WorldData.v1_16_R1;
import net.minecraft.server.v1_16_R1.WorldServer;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_16_R1.CraftWorld;
import pers.xanadu.enderdragon.nms.WorldData.I_WorldDataManager;
public class WorldDataManager implements I_WorldDataManager {
public long getGameTime(World world){
CraftWorld cw = (CraftWorld) world;
WorldServer ws = cw.getHandle();
return ws.getTime();
}
}
@@ -1,14 +0,0 @@
package pers.xanadu.enderdragon.nms.WorldData.v1_16_R2;
import net.minecraft.server.v1_16_R2.WorldServer;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_16_R2.CraftWorld;
import pers.xanadu.enderdragon.nms.WorldData.I_WorldDataManager;
public class WorldDataManager implements I_WorldDataManager {
public long getGameTime(World world){
CraftWorld cw = (CraftWorld) world;
WorldServer ws = cw.getHandle();
return ws.getTime();
}
}
@@ -1,14 +0,0 @@
package pers.xanadu.enderdragon.nms.WorldData.v1_16_R3;
import net.minecraft.server.v1_16_R3.WorldServer;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_16_R3.CraftWorld;
import pers.xanadu.enderdragon.nms.WorldData.I_WorldDataManager;
public class WorldDataManager implements I_WorldDataManager {
public long getGameTime(World world){
CraftWorld cw = (CraftWorld) world;
WorldServer ws = cw.getHandle();
return ws.getTime();
}
}
@@ -1,10 +0,0 @@
package pers.xanadu.enderdragon.nms.WorldData.v1_17_above;
import org.bukkit.World;
import pers.xanadu.enderdragon.nms.WorldData.I_WorldDataManager;
public class WorldDataManager implements I_WorldDataManager {
public long getGameTime(World world){
return world.getGameTime();
}
}