mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-29 12:09:07 +00:00
Cleanup SRC
This commit is contained in:
@@ -7,66 +7,51 @@ import com.volmit.iris.nms.v1X.NMSBinding1X;
|
||||
import com.volmit.iris.util.KMap;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
public class INMS
|
||||
{
|
||||
//@builder
|
||||
private static final KMap<String, Class<? extends INMSBinding>> bindings = new KMap<String, Class<? extends INMSBinding>>()
|
||||
.qput("v1_17_R1", NMSBinding17_1.class)
|
||||
;
|
||||
//@done
|
||||
private static final INMSBinding binding = bind();
|
||||
public class INMS {
|
||||
//@builder
|
||||
private static final KMap<String, Class<? extends INMSBinding>> bindings = new KMap<String, Class<? extends INMSBinding>>()
|
||||
.qput("v1_17_R1", NMSBinding17_1.class);
|
||||
//@done
|
||||
private static final INMSBinding binding = bind();
|
||||
|
||||
public static INMSBinding get()
|
||||
{
|
||||
return binding;
|
||||
}
|
||||
public static INMSBinding get() {
|
||||
return binding;
|
||||
}
|
||||
|
||||
public static final String getNMSTag()
|
||||
{
|
||||
if(IrisSettings.get().getGeneral().isDisableNMS())
|
||||
{
|
||||
return "BUKKIT";
|
||||
}
|
||||
public static final String getNMSTag() {
|
||||
if (IrisSettings.get().getGeneral().isDisableNMS()) {
|
||||
return "BUKKIT";
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return Bukkit.getServer().getClass().getCanonicalName().split("\\Q.\\E")[3];
|
||||
}
|
||||
try {
|
||||
return Bukkit.getServer().getClass().getCanonicalName().split("\\Q.\\E")[3];
|
||||
} catch (Throwable e) {
|
||||
Iris.error("Failed to determine server nms version!");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
catch(Throwable e)
|
||||
{
|
||||
Iris.error("Failed to determine server nms version!");
|
||||
e.printStackTrace();
|
||||
}
|
||||
return "BUKKIT";
|
||||
}
|
||||
|
||||
return "BUKKIT";
|
||||
}
|
||||
private static final INMSBinding bind() {
|
||||
String code = getNMSTag();
|
||||
Iris.info("Locating NMS Binding for " + code);
|
||||
|
||||
private static final INMSBinding bind()
|
||||
{
|
||||
String code = getNMSTag();
|
||||
Iris.info("Locating NMS Binding for " + code);
|
||||
if (bindings.containsKey(code)) {
|
||||
try {
|
||||
INMSBinding b = bindings.get(code).getConstructor().newInstance();
|
||||
Iris.info("Craftbukkit " + code + " <-> " + b.getClass().getSimpleName() + " Successfully Bound");
|
||||
|
||||
if(bindings.containsKey(code))
|
||||
{
|
||||
try
|
||||
{
|
||||
INMSBinding b = bindings.get(code).getConstructor().newInstance();
|
||||
Iris.info("Craftbukkit " + code + " <-> " + b.getClass().getSimpleName() + " Successfully Bound");
|
||||
return b;
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
return b;
|
||||
}
|
||||
Iris.info("Craftbukkit " + code + " <-> " + NMSBinding1X.class.getSimpleName() + " Successfully Bound");
|
||||
Iris.warn("Note: Some features of Iris may not work the same since you are on an unsupported version of Minecraft.");
|
||||
Iris.warn("Note: If this is a new version, expect an update soon.");
|
||||
|
||||
catch(Throwable e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
Iris.info("Craftbukkit " + code + " <-> " + NMSBinding1X.class.getSimpleName() + " Successfully Bound");
|
||||
Iris.warn("Note: Some features of Iris may not work the same since you are on an unsupported version of Minecraft.");
|
||||
Iris.warn("Note: If this is a new version, expect an update soon.");
|
||||
|
||||
return new NMSBinding1X();
|
||||
}
|
||||
return new NMSBinding1X();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,30 +5,28 @@ import org.bukkit.World;
|
||||
import org.bukkit.WorldCreator;
|
||||
import org.bukkit.block.Biome;
|
||||
|
||||
public interface INMSBinding
|
||||
{
|
||||
public Object getBiomeBaseFromId(int id);
|
||||
public interface INMSBinding {
|
||||
Object getBiomeBaseFromId(int id);
|
||||
|
||||
public int getTrueBiomeBaseId(Object biomeBase);
|
||||
int getTrueBiomeBaseId(Object biomeBase);
|
||||
|
||||
public Object getTrueBiomeBase(Location location);
|
||||
Object getTrueBiomeBase(Location location);
|
||||
|
||||
public String getTrueBiomeBaseKey(Location location);
|
||||
String getTrueBiomeBaseKey(Location location);
|
||||
|
||||
public Object getCustomBiomeBaseFor(String mckey);
|
||||
Object getCustomBiomeBaseFor(String mckey);
|
||||
|
||||
public String getKeyForBiomeBase(Object biomeBase);
|
||||
String getKeyForBiomeBase(Object biomeBase);
|
||||
|
||||
public Object getBiomeBase(World world, Biome biome);
|
||||
Object getBiomeBase(World world, Biome biome);
|
||||
|
||||
public Object getBiomeBase(Object registry, Biome biome);
|
||||
Object getBiomeBase(Object registry, Biome biome);
|
||||
|
||||
public boolean isBukkit();
|
||||
boolean isBukkit();
|
||||
|
||||
int getBiomeId(Biome biome);
|
||||
|
||||
default World createWorld(WorldCreator c)
|
||||
{
|
||||
return c.createWorld();
|
||||
}
|
||||
default World createWorld(WorldCreator c) {
|
||||
return c.createWorld();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
package com.volmit.iris.nms.v17_1;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.nms.INMSBinding;
|
||||
import com.volmit.iris.util.KMap;
|
||||
import net.minecraft.core.IRegistry;
|
||||
import net.minecraft.core.IRegistryWritable;
|
||||
import net.minecraft.data.worldgen.biome.BiomeRegistry;
|
||||
import net.minecraft.resources.MinecraftKey;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.level.WorldServer;
|
||||
import net.minecraft.world.level.biome.BiomeBase;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
@@ -17,154 +13,143 @@ import org.bukkit.World;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.craftbukkit.v1_17_R1.CraftServer;
|
||||
import org.bukkit.craftbukkit.v1_17_R1.CraftWorld;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class NMSBinding17_1 implements INMSBinding
|
||||
{
|
||||
private final KMap<Biome, Object> baseBiomeCache = new KMap<>();
|
||||
public class NMSBinding17_1 implements INMSBinding {
|
||||
private final KMap<Biome, Object> baseBiomeCache = new KMap<>();
|
||||
|
||||
private IRegistryWritable<BiomeBase> getCustomBiomeRegistry()
|
||||
{
|
||||
return ((CraftServer)Bukkit.getServer()).getHandle().getServer().getCustomRegistry().b(IRegistry.aO);
|
||||
}
|
||||
private IRegistryWritable<BiomeBase> getCustomBiomeRegistry() {
|
||||
return ((CraftServer) Bukkit.getServer()).getHandle().getServer().getCustomRegistry().b(IRegistry.aO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getBiomeBaseFromId(int id) {
|
||||
return getCustomBiomeRegistry().fromId(id);
|
||||
}
|
||||
@Override
|
||||
public Object getBiomeBaseFromId(int id) {
|
||||
return getCustomBiomeRegistry().fromId(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTrueBiomeBaseId(Object biomeBase) {
|
||||
return getCustomBiomeRegistry().getId((BiomeBase)biomeBase);
|
||||
}
|
||||
@Override
|
||||
public int getTrueBiomeBaseId(Object biomeBase) {
|
||||
return getCustomBiomeRegistry().getId((BiomeBase) biomeBase);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getTrueBiomeBase(Location location) {
|
||||
return ((CraftWorld)location.getWorld()).getHandle().getBiome(location.getBlockX(), location.getBlockY(), location.getBlockZ());
|
||||
}
|
||||
@Override
|
||||
public Object getTrueBiomeBase(Location location) {
|
||||
return ((CraftWorld) location.getWorld()).getHandle().getBiome(location.getBlockX(), location.getBlockY(), location.getBlockZ());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTrueBiomeBaseKey(Location location) {
|
||||
return getKeyForBiomeBase(getTrueBiomeBase(location));
|
||||
}
|
||||
@Override
|
||||
public String getTrueBiomeBaseKey(Location location) {
|
||||
return getKeyForBiomeBase(getTrueBiomeBase(location));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getCustomBiomeBaseFor(String mckey) {
|
||||
return getCustomBiomeRegistry().d(ResourceKey.a(IRegistry.aO, new MinecraftKey(mckey)));
|
||||
}
|
||||
@Override
|
||||
public Object getCustomBiomeBaseFor(String mckey) {
|
||||
return getCustomBiomeRegistry().d(ResourceKey.a(IRegistry.aO, new MinecraftKey(mckey)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getKeyForBiomeBase(Object biomeBase) {
|
||||
return getCustomBiomeRegistry().c((BiomeBase)biomeBase).get().a().toString();
|
||||
}
|
||||
@Override
|
||||
public String getKeyForBiomeBase(Object biomeBase) {
|
||||
return getCustomBiomeRegistry().c((BiomeBase) biomeBase).get().a().toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getBiomeBase(World world, Biome biome)
|
||||
{
|
||||
return getBiomeBase(((CraftWorld)world).getHandle().t().d(IRegistry.aO), biome);
|
||||
}
|
||||
@Override
|
||||
public Object getBiomeBase(World world, Biome biome) {
|
||||
return getBiomeBase(((CraftWorld) world).getHandle().t().d(IRegistry.aO), biome);
|
||||
}
|
||||
|
||||
private Class<?>[] classify(Object...par)
|
||||
{
|
||||
Class<?>[] g = new Class<?>[par.length];
|
||||
for(int i = 0; i < g.length; i++)
|
||||
{
|
||||
g[i] = par[i].getClass();
|
||||
}
|
||||
private Class<?>[] classify(Object... par) {
|
||||
Class<?>[] g = new Class<?>[par.length];
|
||||
for (int i = 0; i < g.length; i++) {
|
||||
g[i] = par[i].getClass();
|
||||
}
|
||||
|
||||
return g;
|
||||
}
|
||||
return g;
|
||||
}
|
||||
|
||||
private <T> T invoke(Object from, String name, Object...par)
|
||||
{
|
||||
try {
|
||||
Method f = from.getClass().getDeclaredMethod(name, classify(par));
|
||||
f.setAccessible(true);
|
||||
return (T) f.invoke(from, par);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
private <T> T invoke(Object from, String name, Object... par) {
|
||||
try {
|
||||
Method f = from.getClass().getDeclaredMethod(name, classify(par));
|
||||
f.setAccessible(true);
|
||||
return (T) f.invoke(from, par);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private <T> T invokeStatic(Class<?> from, String name, Object...par)
|
||||
{
|
||||
try {
|
||||
Method f = from.getDeclaredMethod(name, classify(par));
|
||||
f.setAccessible(true);
|
||||
return (T) f.invoke(null, par);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
private <T> T invokeStatic(Class<?> from, String name, Object... par) {
|
||||
try {
|
||||
Method f = from.getDeclaredMethod(name, classify(par));
|
||||
f.setAccessible(true);
|
||||
return (T) f.invoke(null, par);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private <T> T getField(Object from, String name)
|
||||
{
|
||||
try {
|
||||
Field f = from.getClass().getDeclaredField(name);
|
||||
f.setAccessible(true);
|
||||
return (T) f.get(from);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
private <T> T getField(Object from, String name) {
|
||||
try {
|
||||
Field f = from.getClass().getDeclaredField(name);
|
||||
f.setAccessible(true);
|
||||
return (T) f.get(from);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private <T> T getStaticField(Class<?> t, String name)
|
||||
{
|
||||
try {
|
||||
Field f = t.getDeclaredField(name);
|
||||
f.setAccessible(true);
|
||||
return (T) f.get(null);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
private <T> T getStaticField(Class<?> t, String name) {
|
||||
try {
|
||||
Field f = t.getDeclaredField(name);
|
||||
f.setAccessible(true);
|
||||
return (T) f.get(null);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getBiomeBase(Object registry, Biome biome) {
|
||||
Object v = baseBiomeCache.get(biome);
|
||||
@Override
|
||||
public Object getBiomeBase(Object registry, Biome biome) {
|
||||
Object v = baseBiomeCache.get(biome);
|
||||
|
||||
if(v != null)
|
||||
{
|
||||
return v;
|
||||
}
|
||||
v = org.bukkit.craftbukkit.v1_17_R1.block.CraftBlock.biomeToBiomeBase((IRegistry<BiomeBase>) registry, biome);
|
||||
if (v == null) {
|
||||
// Ok so there is this new biome name called "CUSTOM" in Paper's new releases.
|
||||
// But, this does NOT exist within CraftBukkit which makes it return an error.
|
||||
// So, we will just return the ID that the plains biome returns instead.
|
||||
return org.bukkit.craftbukkit.v1_17_R1.block.CraftBlock.biomeToBiomeBase((IRegistry<BiomeBase>) registry, Biome.PLAINS);
|
||||
}
|
||||
baseBiomeCache.put(biome, v);
|
||||
return v;
|
||||
}
|
||||
if (v != null) {
|
||||
return v;
|
||||
}
|
||||
v = org.bukkit.craftbukkit.v1_17_R1.block.CraftBlock.biomeToBiomeBase((IRegistry<BiomeBase>) registry, biome);
|
||||
if (v == null) {
|
||||
// Ok so there is this new biome name called "CUSTOM" in Paper's new releases.
|
||||
// But, this does NOT exist within CraftBukkit which makes it return an error.
|
||||
// So, we will just return the ID that the plains biome returns instead.
|
||||
return org.bukkit.craftbukkit.v1_17_R1.block.CraftBlock.biomeToBiomeBase((IRegistry<BiomeBase>) registry, Biome.PLAINS);
|
||||
}
|
||||
baseBiomeCache.put(biome, v);
|
||||
return v;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBiomeId(Biome biome) {
|
||||
for(World i : Bukkit.getWorlds())
|
||||
{
|
||||
if(i.getEnvironment().equals(World.Environment.NORMAL))
|
||||
{
|
||||
@Override
|
||||
public int getBiomeId(Biome biome) {
|
||||
for (World i : Bukkit.getWorlds()) {
|
||||
if (i.getEnvironment().equals(World.Environment.NORMAL)) {
|
||||
|
||||
IRegistry<BiomeBase> registry = ((CraftWorld)i).getHandle().t().d(IRegistry.aO);
|
||||
IRegistry<BiomeBase> registry = ((CraftWorld) i).getHandle().t().d(IRegistry.aO);
|
||||
|
||||
return registry.getId((BiomeBase) getBiomeBase(registry, biome));
|
||||
}
|
||||
}
|
||||
return registry.getId((BiomeBase) getBiomeBase(registry, biome));
|
||||
}
|
||||
}
|
||||
|
||||
return biome.ordinal();
|
||||
}
|
||||
return biome.ordinal();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBukkit() {
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean isBukkit() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,55 +5,53 @@ import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Biome;
|
||||
|
||||
public class NMSBinding1X implements INMSBinding
|
||||
{
|
||||
@Override
|
||||
public Object getBiomeBaseFromId(int id) {
|
||||
return null;
|
||||
}
|
||||
public class NMSBinding1X implements INMSBinding {
|
||||
@Override
|
||||
public Object getBiomeBaseFromId(int id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTrueBiomeBaseId(Object biomeBase) {
|
||||
return 0;
|
||||
}
|
||||
@Override
|
||||
public int getTrueBiomeBaseId(Object biomeBase) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getTrueBiomeBase(Location location) {
|
||||
return null;
|
||||
}
|
||||
@Override
|
||||
public Object getTrueBiomeBase(Location location) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTrueBiomeBaseKey(Location location) {
|
||||
return null;
|
||||
}
|
||||
@Override
|
||||
public String getTrueBiomeBaseKey(Location location) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getCustomBiomeBaseFor(String mckey) {
|
||||
return null;
|
||||
}
|
||||
@Override
|
||||
public Object getCustomBiomeBaseFor(String mckey) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getKeyForBiomeBase(Object biomeBase) {
|
||||
return null;
|
||||
}
|
||||
@Override
|
||||
public String getKeyForBiomeBase(Object biomeBase) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Object getBiomeBase(World world, Biome biome)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
public Object getBiomeBase(World world, Biome biome) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getBiomeBase(Object registry, Biome biome) {
|
||||
return null;
|
||||
}
|
||||
@Override
|
||||
public Object getBiomeBase(Object registry, Biome biome) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBukkit() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean isBukkit() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBiomeId(Biome biome) {
|
||||
return biome.ordinal();
|
||||
}
|
||||
@Override
|
||||
public int getBiomeId(Biome biome) {
|
||||
return biome.ordinal();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user