Hello all! It appears some very knowledgeable coders have stopped in here so I thought I'd take my shot at getting eyes on my problem. I'm attempting to resurrect a dead plugin called Worldgen. Upon entering the "/worldgen village 50" command I receive this error:
[23:28:50] [Server thread/INFO]: [WorldGen] Generating village...
[23:28:51] [Server thread/WARN]: java.lang.ClassCastException: net.minecraft.server.v1_7_R1.NoiseGeneratorOctaves cannot be cast to java.util.Random
[23:28:51] [Server thread/WARN]: at local.thehutman.worldgen.WorldInterface.<init>(WorldInterface.java:71)
[23:28:51] [Server thread/WARN]: at local.thehutman.worldgen.GenType2.generate(GenType2.java:62)
[23:28:51] [Server thread/WARN]: at local.thehutman.worldgen.WorldGen.onCommand(WorldGen.java:80)
[23:28:51] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
[23:28:51] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:196)
[23:28:51] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:542)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerConnection.java:932)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:814)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java:28)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat.java:47)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617)
I've narrowed it down to this section of code:
public WorldInterface(Player player, String nameClass) {
// Initialize our member variables to work with our nameClass
// constructor type
try {
Field randField = getChunkProvider(player);
oRandom = (Random) randField.get(oChunkProvider); <-------------- This appears to be the exact line causing the error
0
[23:28:50] [Server thread/INFO]: [WorldGen] Generating village...
[23:28:51] [Server thread/WARN]: java.lang.ClassCastException: net.minecraft.server.v1_7_R1.NoiseGeneratorOctaves cannot be cast to java.util.Random
[23:28:51] [Server thread/WARN]: at local.thehutman.worldgen.WorldInterface.<init>(WorldInterface.java:71)
[23:28:51] [Server thread/WARN]: at local.thehutman.worldgen.GenType2.generate(GenType2.java:62)
[23:28:51] [Server thread/WARN]: at local.thehutman.worldgen.WorldGen.onCommand(WorldGen.java:80)
[23:28:51] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
[23:28:51] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:196)
[23:28:51] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:542)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerConnection.java:932)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:814)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java:28)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat.java:47)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457)
[23:28:51] [Server thread/WARN]: at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617)
I've narrowed it down to this section of code:
public WorldInterface(Player player, String nameClass) {
// Initialize our member variables to work with our nameClass
// constructor type
try {
pckCraft = Utility.FindPackage("CraftWorld");
Class<?> clObjCraftWorld = Class.forName(pckCraft + ".CraftWorld");
// Get the full class path minecraft class objects
pckMinecraft = Utility.FindPackage(nameClass);
clObjGenerator = Class.forName(pckMinecraft + "." + nameClass);
clObjWorld = Class.forName(pckMinecraft + ".World");
clObjWorldServer = Class.forName(pckMinecraft + ".WorldServer");
clObjWorldProvider = Class.forName(pckMinecraft + ".WorldProvider");
clObjStrucBox = Class.forName(pckMinecraft + ".StructureBoundingBox");
clObjStruc = Class.forName(pckMinecraft + ".StructureStart");
// Generate object references we will need later
Object oCraftWorld = player.getWorld();
Method mGetHandle = clObjCraftWorld.getMethod("getHandle");
oCraftWorldHandle = mGetHandle.invoke(oCraftWorld);
Field fWorldProvider = clObjWorldServer.getField("worldProvider");
Object oWorldProvider = fWorldProvider.get(oCraftWorldHandle);
Method mGetChunkProvider = clObjWorldProvider.getMethod("getChunkProvider");
Object oChunkProvider = mGetChunkProvider.invoke(oWorldProvider);
Field randField = getChunkProvider(player);
oRandom = (Random) randField.get(oChunkProvider); <-------------- This appears to be the exact line causing the error
} catch (Exception e) {
oCraftWorldHandle = null;
oRandom = null;
e.printStackTrace();
}
}
Any hints for me? Thank you!