NMS Bindings for 1.17 only

This commit is contained in:
DanLT 2021-06-22 09:09:19 -08:00
parent bbce4bdeb0
commit 861ff636b1
2 changed files with 9 additions and 64 deletions

View File

@ -1,54 +0,0 @@
package com.volmit.iris.nms.v16_2;
import com.volmit.iris.nms.INMSBinding;
import com.volmit.iris.util.KMap;
import net.minecraft.server.v1_16_R2.BiomeBase;
import net.minecraft.server.v1_16_R2.IRegistry;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.block.Biome;
import org.bukkit.craftbukkit.v1_16_R2.CraftWorld;
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock;
public class NMSBinding16_2 implements INMSBinding
{
private final KMap<Biome, Object> baseBiomeCache = new KMap<>();
@Override
public Object getBiomeBase(World world, Biome biome)
{
return getBiomeBase(((CraftWorld)world).getHandle().r().b(net.minecraft.server.v1_16_R2.IRegistry.ay), biome);
}
@Override
public Object getBiomeBase(Object registry, Biome biome) {
Object v = baseBiomeCache.get(biome);
if(v != null)
{
return v;
}
v = CraftBlock.biomeToBiomeBase((IRegistry<BiomeBase>) registry, biome);
baseBiomeCache.put(biome, v);
return v;
}
@Override
public int getBiomeId(Biome biome) {
for(World i : Bukkit.getWorlds())
{
if(i.getEnvironment().equals(World.Environment.NORMAL))
{
IRegistry<BiomeBase> registry = ((CraftWorld)i).getHandle().r().b(IRegistry.ay);
return registry.a((BiomeBase) getBiomeBase(registry, biome));
}
}
return biome.ordinal();
}
@Override
public boolean isBukkit() {
return false;
}
}

View File

@ -1,23 +1,22 @@
package com.volmit.iris.nms.v16_3; package com.volmit.iris.nms.v17_1;
import com.volmit.iris.Iris;
import com.volmit.iris.nms.INMSBinding; import com.volmit.iris.nms.INMSBinding;
import com.volmit.iris.util.KMap; import com.volmit.iris.util.KMap;
import net.minecraft.server.v1_16_R3.BiomeBase; import net.minecraft.core.IRegistry;
import net.minecraft.server.v1_16_R3.IRegistry; import net.minecraft.world.level.biome.BiomeBase;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.craftbukkit.v1_16_R3.CraftWorld; import org.bukkit.craftbukkit.v1_17_R1.CraftWorld;
public class NMSBinding16_3 implements INMSBinding public class NMSBinding17_1 implements INMSBinding
{ {
private final KMap<Biome, Object> baseBiomeCache = new KMap<>(); private final KMap<Biome, Object> baseBiomeCache = new KMap<>();
@Override @Override
public Object getBiomeBase(World world, Biome biome) public Object getBiomeBase(World world, Biome biome)
{ {
return getBiomeBase(((CraftWorld)world).getHandle().r().b(net.minecraft.server.v1_16_R3.IRegistry.ay), biome); return getBiomeBase(((CraftWorld)world).getHandle().r().b(IRegistry.ay), biome);
} }
@Override @Override
@ -28,12 +27,12 @@ public class NMSBinding16_3 implements INMSBinding
{ {
return v; return v;
} }
v = org.bukkit.craftbukkit.v1_16_R3.block.CraftBlock.biomeToBiomeBase((IRegistry<BiomeBase>) registry, biome); v = org.bukkit.craftbukkit.v1_17_R1.block.CraftBlock.biomeToBiomeBase((IRegistry<BiomeBase>) registry, biome);
if (v == null) { if (v == null) {
// Ok so there is this new biome name called "CUSTOM" in Paper's new releases. // 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. // 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. // So, we will just return the ID that the plains biome returns instead.
return org.bukkit.craftbukkit.v1_16_R3.block.CraftBlock.biomeToBiomeBase((IRegistry<BiomeBase>) registry, Biome.PLAINS); return org.bukkit.craftbukkit.v1_17_R1.block.CraftBlock.biomeToBiomeBase((IRegistry<BiomeBase>) registry, Biome.PLAINS);
} }
baseBiomeCache.put(biome, v); baseBiomeCache.put(biome, v);
return v; return v;
@ -45,7 +44,7 @@ public class NMSBinding16_3 implements INMSBinding
{ {
if(i.getEnvironment().equals(World.Environment.NORMAL)) if(i.getEnvironment().equals(World.Environment.NORMAL))
{ {
IRegistry<BiomeBase> registry = ((CraftWorld)i).getHandle().r().b(net.minecraft.server.v1_16_R3.IRegistry.ay); IRegistry<BiomeBase> registry = ((CraftWorld)i).getHandle().r().b(IRegistry.ay);
return registry.a((BiomeBase) getBiomeBase(registry, biome)); return registry.a((BiomeBase) getBiomeBase(registry, biome));
} }
} }