Skip to content

Commit

Permalink
Removed an unnecessary method from nms
Browse files Browse the repository at this point in the history
  • Loading branch information
OmerBenGera committed Jul 23, 2022
1 parent b59af03 commit b01e470
Show file tree
Hide file tree
Showing 12 changed files with 95 additions and 133 deletions.
Expand Up @@ -10,7 +10,6 @@
import org.bukkit.ChunkSnapshot;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Biome;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.event.block.SignChangeEvent;
Expand All @@ -27,8 +26,6 @@ public interface NMSWorld {

void setWorldBorder(SuperiorPlayer superiorPlayer, Island island);

void setBiome(ChunkGenerator.BiomeGrid biomeGrid, Biome biome);

Object getBlockData(Block block);

void setBlocks(Chunk chunk, List<SchematicBlock> blockDataList);
Expand Down
Expand Up @@ -15,7 +15,6 @@
import com.bgsoftware.superiorskyblock.nms.v1_12_R1.generator.IslandsGeneratorImpl;
import com.bgsoftware.superiorskyblock.nms.v1_12_R1.spawners.MobSpawnerAbstractNotifier;
import com.bgsoftware.superiorskyblock.tag.CompoundTag;
import net.minecraft.server.v1_12_R1.BiomeBase;
import net.minecraft.server.v1_12_R1.BlockDoubleStep;
import net.minecraft.server.v1_12_R1.BlockPosition;
import net.minecraft.server.v1_12_R1.Chunk;
Expand All @@ -40,27 +39,22 @@
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Biome;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_12_R1.CraftChunk;
import org.bukkit.craftbukkit.v1_12_R1.CraftWorld;
import org.bukkit.craftbukkit.v1_12_R1.block.CraftBlock;
import org.bukkit.craftbukkit.v1_12_R1.block.CraftSign;
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.generator.ChunkGenerator;

import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.List;
import java.util.function.IntFunction;

public class NMSWorldImpl implements NMSWorld {

private static final ReflectField<BiomeBase[]> BIOME_BASE_ARRAY = new ReflectField<>(
"org.bukkit.craftbukkit.VERSION.generator.CustomChunkGenerator$CustomBiomeGrid", BiomeBase[].class, "biome");
private static final ReflectField<MobSpawnerAbstract> MOB_SPAWNER_ABSTRACT = new ReflectField<MobSpawnerAbstract>(
TileEntityMobSpawner.class, MobSpawnerAbstract.class, Modifier.PRIVATE | Modifier.FINAL, 1).removeFinal();

Expand Down Expand Up @@ -160,18 +154,6 @@ public void setWorldBorder(SuperiorPlayer superiorPlayer, Island island) {
}
}

@Override
public void setBiome(ChunkGenerator.BiomeGrid biomeGrid, Biome biome) {
BiomeBase biomeBase = CraftBlock.biomeToBiomeBase(biome);

BiomeBase[] biomeBases = BIOME_BASE_ARRAY.get(biomeGrid);

if (biomeBases == null)
return;

Arrays.fill(biomeBases, biomeBase);
}

@Override
public Object getBlockData(Block block) {
// Doesn't exist
Expand Down
@@ -1,20 +1,28 @@
package com.bgsoftware.superiorskyblock.nms.v1_12_R1.generator;

import com.bgsoftware.common.reflection.ReflectField;
import com.bgsoftware.superiorskyblock.SuperiorSkyblockPlugin;
import com.bgsoftware.superiorskyblock.world.generator.IslandsGenerator;
import net.minecraft.server.v1_12_R1.BiomeBase;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Biome;
import org.bukkit.craftbukkit.v1_12_R1.block.CraftBlock;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.generator.ChunkGenerator;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;

@SuppressWarnings("unused")
public class IslandsGeneratorImpl extends IslandsGenerator {

private static final ReflectField<BiomeBase[]> BIOME_BASE_ARRAY = new ReflectField<>(
"org.bukkit.craftbukkit.VERSION.generator.CustomChunkGenerator$CustomBiomeGrid", BiomeBase[].class, "biome");

private final SuperiorSkyblockPlugin plugin;

public IslandsGeneratorImpl(SuperiorSkyblockPlugin plugin) {
Expand Down Expand Up @@ -54,7 +62,7 @@ public ChunkData generateChunkData(World world, Random random, int chunkX, int c
}
}

plugin.getNMSWorld().setBiome(biomeGrid, targetBiome);
setBiome(biomeGrid, targetBiome);

if (chunkX == 0 && chunkZ == 0 && world.getEnvironment() == plugin.getSettings().getWorlds().getDefaultWorld()) {
chunkData.setBlock(0, 99, 0, Material.BEDROCK);
Expand All @@ -73,4 +81,15 @@ public Location getFixedSpawnLocation(World world, Random random) {
return new Location(world, 0, 100, 0);
}

private static void setBiome(ChunkGenerator.BiomeGrid biomeGrid, Biome biome) {
BiomeBase biomeBase = CraftBlock.biomeToBiomeBase(biome);

BiomeBase[] biomeBases = BIOME_BASE_ARRAY.get(biomeGrid);

if (biomeBases == null)
return;

Arrays.fill(biomeBases, biomeBase);
}

}
Expand Up @@ -23,8 +23,6 @@
import com.bgsoftware.superiorskyblock.tag.StringTag;
import com.bgsoftware.superiorskyblock.tag.Tag;
import com.destroystokyo.paper.antixray.ChunkPacketBlockController;
import net.minecraft.server.v1_16_R3.BiomeBase;
import net.minecraft.server.v1_16_R3.BiomeStorage;
import net.minecraft.server.v1_16_R3.Block;
import net.minecraft.server.v1_16_R3.BlockPosition;
import net.minecraft.server.v1_16_R3.BlockPropertySlabType;
Expand All @@ -37,13 +35,11 @@
import net.minecraft.server.v1_16_R3.IBlockData;
import net.minecraft.server.v1_16_R3.IBlockState;
import net.minecraft.server.v1_16_R3.IChatBaseComponent;
import net.minecraft.server.v1_16_R3.IRegistry;
import net.minecraft.server.v1_16_R3.LightEngine;
import net.minecraft.server.v1_16_R3.MobSpawnerAbstract;
import net.minecraft.server.v1_16_R3.NBTTagCompound;
import net.minecraft.server.v1_16_R3.PacketPlayOutBlockChange;
import net.minecraft.server.v1_16_R3.PacketPlayOutWorldBorder;
import net.minecraft.server.v1_16_R3.Registry;
import net.minecraft.server.v1_16_R3.SoundCategory;
import net.minecraft.server.v1_16_R3.SoundEffectType;
import net.minecraft.server.v1_16_R3.TagsBlock;
Expand All @@ -57,7 +53,6 @@
import org.bukkit.ChunkSnapshot;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Biome;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.block.data.Waterlogged;
import org.bukkit.craftbukkit.v1_16_R3.CraftChunk;
Expand All @@ -71,19 +66,12 @@
import org.bukkit.generator.ChunkGenerator;

import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.IntFunction;

public class NMSWorldImpl implements NMSWorld {

private static final ReflectField<BiomeBase[]> BIOME_BASE_ARRAY = new ReflectField<>(
BiomeStorage.class, BiomeBase[].class, "h");
private static final ReflectField<Registry<BiomeBase>> BIOME_REGISTRY = new ReflectField<>(
BiomeStorage.class, Registry.class, "registry", "g");
private static final ReflectField<BiomeStorage> BIOME_STORAGE = new ReflectField<>(
"org.bukkit.craftbukkit.VERSION.generator.CustomChunkGenerator$CustomBiomeGrid", BiomeStorage.class, "biome");
private static final ReflectMethod<Object> LINES_SIGN_CHANGE_EVENT = new ReflectMethod<>(SignChangeEvent.class, "lines");
private static final ReflectMethod<Float> SOUND_VOLUME = new ReflectMethod<>(SoundEffectType.class, "a");
private static final ReflectMethod<Float> SOUND_PITCH = new ReflectMethod<>(SoundEffectType.class, "b");
Expand Down Expand Up @@ -190,19 +178,6 @@ public void setWorldBorder(SuperiorPlayer superiorPlayer, Island island) {
}
}

@Override
public void setBiome(ChunkGenerator.BiomeGrid biomeGrid, Biome biome) {
BiomeStorage biomeStorage = BIOME_STORAGE.get(biomeGrid);
BiomeBase[] biomeBases = BIOME_BASE_ARRAY.get(biomeStorage);

BiomeBase biomeBase = CraftBlock.biomeToBiomeBase((IRegistry<BiomeBase>) BIOME_REGISTRY.get(biomeStorage), biome);

if (biomeBases == null)
return;

Arrays.fill(biomeBases, biomeBase);
}

@Override
public Object getBlockData(org.bukkit.block.Block block) {
return block.getBlockData();
Expand Down
@@ -1,20 +1,35 @@
package com.bgsoftware.superiorskyblock.nms.v1_16_R3.generator;

import com.bgsoftware.common.reflection.ReflectField;
import com.bgsoftware.superiorskyblock.SuperiorSkyblockPlugin;
import com.bgsoftware.superiorskyblock.world.generator.IslandsGenerator;
import net.minecraft.server.v1_16_R3.BiomeBase;
import net.minecraft.server.v1_16_R3.BiomeStorage;
import net.minecraft.server.v1_16_R3.IRegistry;
import net.minecraft.server.v1_16_R3.Registry;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Biome;
import org.bukkit.craftbukkit.v1_16_R3.block.CraftBlock;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.generator.ChunkGenerator;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;

@SuppressWarnings({"unused", "NullableProblems"})
public class IslandsGeneratorImpl extends IslandsGenerator {

private static final ReflectField<BiomeBase[]> BIOME_BASE_ARRAY = new ReflectField<>(
BiomeStorage.class, BiomeBase[].class, "h");
private static final ReflectField<Registry<BiomeBase>> BIOME_REGISTRY = new ReflectField<>(
BiomeStorage.class, Registry.class, "registry", "g");
private static final ReflectField<BiomeStorage> BIOME_STORAGE = new ReflectField<>(
"org.bukkit.craftbukkit.VERSION.generator.CustomChunkGenerator$CustomBiomeGrid", BiomeStorage.class, "biome");

private final SuperiorSkyblockPlugin plugin;

public IslandsGeneratorImpl(SuperiorSkyblockPlugin plugin) {
Expand Down Expand Up @@ -54,7 +69,7 @@ public ChunkData generateChunkData(World world, Random random, int chunkX, int c
}
}

plugin.getNMSWorld().setBiome(biomeGrid, targetBiome);
setBiome(biomeGrid, targetBiome);

if (chunkX == 0 && chunkZ == 0 && world.getEnvironment() == plugin.getSettings().getWorlds().getDefaultWorld()) {
chunkData.setBlock(0, 99, 0, Material.BEDROCK);
Expand All @@ -73,4 +88,16 @@ public Location getFixedSpawnLocation(World world, Random random) {
return new Location(world, 0, 100, 0);
}

private static void setBiome(ChunkGenerator.BiomeGrid biomeGrid, Biome biome) {
BiomeStorage biomeStorage = BIOME_STORAGE.get(biomeGrid);
BiomeBase[] biomeBases = BIOME_BASE_ARRAY.get(biomeStorage);

BiomeBase biomeBase = CraftBlock.biomeToBiomeBase((IRegistry<BiomeBase>) BIOME_REGISTRY.get(biomeStorage), biome);

if (biomeBases == null)
return;

Arrays.fill(biomeBases, biomeBase);
}

}
Expand Up @@ -24,7 +24,6 @@
import com.bgsoftware.superiorskyblock.tag.Tag;
import com.destroystokyo.paper.antixray.ChunkPacketBlockController;
import net.minecraft.core.BlockPosition;
import net.minecraft.core.IRegistry;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.ClientboundInitializeBorderPacket;
Expand All @@ -35,7 +34,6 @@
import net.minecraft.world.level.EnumSkyBlock;
import net.minecraft.world.level.MobSpawnerAbstract;
import net.minecraft.world.level.World;
import net.minecraft.world.level.biome.BiomeBase;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.BlockStepAbstract;
import net.minecraft.world.level.block.SoundEffectType;
Expand All @@ -49,14 +47,12 @@
import net.minecraft.world.level.block.state.properties.BlockStateInteger;
import net.minecraft.world.level.block.state.properties.IBlockState;
import net.minecraft.world.level.border.WorldBorder;
import net.minecraft.world.level.chunk.BiomeStorage;
import net.minecraft.world.level.chunk.Chunk;
import net.minecraft.world.level.lighting.LightEngine;
import org.bukkit.Bukkit;
import org.bukkit.ChunkSnapshot;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Biome;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.block.data.Waterlogged;
import org.bukkit.craftbukkit.v1_17_R1.CraftChunk;
Expand All @@ -70,17 +66,12 @@
import org.bukkit.generator.ChunkGenerator;

import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.IntFunction;

public class NMSWorldImpl implements NMSWorld {

private static final ReflectField<BiomeBase[]> BIOME_BASE_ARRAY = new ReflectField<>(
BiomeStorage.class, BiomeBase[].class, "f");
private static final ReflectField<BiomeStorage> BIOME_STORAGE = new ReflectField<>(
"org.bukkit.craftbukkit.VERSION.generator.CustomChunkGenerator$CustomBiomeGrid", BiomeStorage.class, "biome");
private static final ReflectMethod<Object> LINES_SIGN_CHANGE_EVENT = new ReflectMethod<>(SignChangeEvent.class, "lines");
private static final ReflectField<Object> CHUNK_PACKET_BLOCK_CONTROLLER = new ReflectField<>(World.class,
Object.class, "chunkPacketBlockController").removeFinal();
Expand Down Expand Up @@ -180,19 +171,6 @@ public void setWorldBorder(SuperiorPlayer superiorPlayer, Island island) {
}
}

@Override
public void setBiome(ChunkGenerator.BiomeGrid biomeGrid, Biome biome) {
BiomeStorage biomeStorage = BIOME_STORAGE.get(biomeGrid);
BiomeBase[] biomeBases = BIOME_BASE_ARRAY.get(biomeStorage);

BiomeBase biomeBase = CraftBlock.biomeToBiomeBase((IRegistry<BiomeBase>) biomeStorage.e, biome);

if (biomeBases == null)
return;

Arrays.fill(biomeBases, biomeBase);
}

@Override
public Object getBlockData(org.bukkit.block.Block block) {
return block.getBlockData();
Expand Down
@@ -1,20 +1,32 @@
package com.bgsoftware.superiorskyblock.nms.v1_17_R1.generator;

import com.bgsoftware.common.reflection.ReflectField;
import com.bgsoftware.superiorskyblock.SuperiorSkyblockPlugin;
import com.bgsoftware.superiorskyblock.world.generator.IslandsGenerator;
import net.minecraft.core.IRegistry;
import net.minecraft.world.level.biome.BiomeBase;
import net.minecraft.world.level.chunk.BiomeStorage;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Biome;
import org.bukkit.craftbukkit.v1_17_R1.block.CraftBlock;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.generator.ChunkGenerator;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;

@SuppressWarnings({"unused", "NullableProblems"})
public class IslandsGeneratorImpl extends IslandsGenerator {

private static final ReflectField<BiomeBase[]> BIOME_BASE_ARRAY = new ReflectField<>(
BiomeStorage.class, BiomeBase[].class, "f");
private static final ReflectField<BiomeStorage> BIOME_STORAGE = new ReflectField<>(
"org.bukkit.craftbukkit.VERSION.generator.CustomChunkGenerator$CustomBiomeGrid", BiomeStorage.class, "biome");

private final SuperiorSkyblockPlugin plugin;

public IslandsGeneratorImpl(SuperiorSkyblockPlugin plugin) {
Expand Down Expand Up @@ -51,7 +63,7 @@ public ChunkData generateChunkData(World world, Random random, int chunkX, int c
}
}

plugin.getNMSWorld().setBiome(biomeGrid, targetBiome);
setBiome(biomeGrid, targetBiome);

if (chunkX == 0 && chunkZ == 0 && world.getEnvironment() == plugin.getSettings().getWorlds().getDefaultWorld()) {
chunkData.setBlock(0, 99, 0, Material.BEDROCK);
Expand All @@ -70,4 +82,16 @@ public Location getFixedSpawnLocation(World world, Random random) {
return new Location(world, 0, 100, 0);
}

private static void setBiome(ChunkGenerator.BiomeGrid biomeGrid, Biome biome) {
BiomeStorage biomeStorage = BIOME_STORAGE.get(biomeGrid);
BiomeBase[] biomeBases = BIOME_BASE_ARRAY.get(biomeStorage);

BiomeBase biomeBase = CraftBlock.biomeToBiomeBase((IRegistry<BiomeBase>) biomeStorage.e, biome);

if (biomeBases == null)
return;

Arrays.fill(biomeBases, biomeBase);
}

}

0 comments on commit b01e470

Please sign in to comment.