9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-29 12:09:07 +00:00

Cleanup SRC

This commit is contained in:
Daniel Mills
2021-07-14 02:34:13 -04:00
parent f29015426f
commit 6ca6fc6989
605 changed files with 53283 additions and 64305 deletions

View File

@@ -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();
}
}

View File

@@ -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();
}
}

View File

@@ -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;
}
}

View File

@@ -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();
}
}