- 3
- 0
Я разрабатываю мод который будет отображать Название биома, когда игрок заходит в новый биом
На клиенте всё работает замечательно, но при запуске сервера он крашиться
Пробовал использовать
На клиенте всё работает замечательно, но при запуске сервера он крашиться
BiomeHUDMod:
package ru.demonicrous.biomehud;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraftforge.common.MinecraftForge;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import ru.demonicrous.biomehud.config.BiomeHUDConfig;
import ru.demonicrous.biomehud.handlers.BiomeDetector;
import ru.demonicrous.biomehud.handlers.GenericEventHandler;
import ru.demonicrous.biomehud.hud.biomes.TextHUD;
import ru.demonicrous.biomehud.network.packets.BiomeHUDPacket;
import ru.demonicrous.biomehud.proxy.CommonProxy;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@Mod(modid = BiomeHUDMod.MODID, version = BiomeHUDMod.VERSION, name = BiomeHUDMod.NAME)
public class BiomeHUDMod {
public static final String MODID = "biomehud";
public static final String NAME = "Biome HUD";
public static final String VERSION = "1.0.1";
public static SimpleNetworkWrapper packetHandler;
@SidedProxy(clientSide = "ru.demonicrous.biomehud.proxy.ClientProxy", serverSide = "ru.demonicrous.biomehud.proxy.CommonProxy")
public static CommonProxy proxy;
public static final Logger logger = LogManager.getLogger("BiomeHUDMod");
public static final int howCoolAmI = Integer.MAX_VALUE;
@EventHandler
public void load(FMLInitializationEvent event) {
proxy.registerRenderers();
}
@EventHandler
public void serverLoad(FMLServerStartingEvent event) {
// NO-OP
}
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
BiomeHUDConfig.load(event);
packetHandler = NetworkRegistry.INSTANCE.newSimpleChannel("BiomeHUDChannel");
packetHandler.registerMessage(BiomeHUDPacket.Handler.class, BiomeHUDPacket.class, 1, Side.CLIENT);
BiomeDetector biomeDetector = new BiomeDetector();
MinecraftForge.EVENT_BUS.register(biomeDetector);
FMLCommonHandler.instance().bus().register(biomeDetector);
TextHUD textHUD = new TextHUD();
MinecraftForge.EVENT_BUS.register(textHUD);
FMLCommonHandler.instance().bus().register(textHUD);
NetworkRegistry.INSTANCE.registerGuiHandler(this, proxy);
}
public static CreativeTabs tabExampleMod = new CreativeTabs("tabExampleMod") {
@Override
@SideOnly(Side.CLIENT)
public Item getTabIconItem() {
return Items.baked_potato;
}
};
}
TextHUD:
package ru.demonicrous.biomehud.hud.biomes;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import org.lwjgl.opengl.GL11;
import ru.demonicrous.biomehud.config.BiomeHUDConfig;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.Objects;
public class TextHUD extends Gui {
private static String activeBiomeName = "";
public static int ticksRemaining = 40;
public static int fade = 255;
public static void setBiomeName(String name) {
activeBiomeName = name;
}
@SubscribeEvent
public void renderOverlay(RenderGameOverlayEvent.Text event) {
if (event.type != RenderGameOverlayEvent.ElementType.TEXT)
return;
ScaledResolution scaledresolution = new ScaledResolution(Minecraft.getMinecraft(), Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayHeight);
int width = scaledresolution.getScaledWidth();
int height = scaledresolution.getScaledHeight();
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
if (ticksRemaining > 0) {
--ticksRemaining;
}
if (fade > 0) {
--fade;
}
int textWidth = fontRenderer.getStringWidth(activeBiomeName);
// Позиция текста на экране
int x = width / 6 - textWidth / 2;;
int y = height / 36;
GL11.glPushMatrix();
final boolean unicodeFlag = fontRenderer.getUnicodeFlag();
fontRenderer.setUnicodeFlag(true);
GL11.glScaled(3.0, 3.0, 3.0);
if (ticksRemaining > 0) {
fontRenderer.drawStringWithShadow(activeBiomeName, x, y, 0xFFFFFF);
GL11.glScaled(1.0, 1.0, 1.0);
}
if (ticksRemaining == 1) {
fade = 255;
}
if (ticksRemaining == 0 && fade > 10) {
fontRenderer.drawStringWithShadow(activeBiomeName, x, y, 0xFFFFFF + (fade << 24));
GL11.glScaled(1.0, 1.0, 1.0);
}
fontRenderer.setUnicodeFlag(unicodeFlag);
GL11.glPopMatrix();
}
}
ClientProxy:
package ru.demonicrous.biomehud.proxy;
import java.util.UUID;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class ClientProxy extends CommonProxy {
public ClientProxy() {
super();
}
@Override
public Object getClientGuiElement(final int ID, final EntityPlayer player, final World world, final int X, final int Y, final int Z) {
final TileEntity te = world.getTileEntity(X, Y, Z);
if (te == null)
return null;
return null;
}
@Override
public void registerRenderers() {
// NO-OP
}
@Override
public EntityPlayer getPlayer(UUID playerID) {
if (Minecraft.getMinecraft().theWorld != null) {
for (Object object : Minecraft.getMinecraft().theWorld.playerEntities) {
EntityPlayer player = (EntityPlayer) object;
if (player.getUniqueID().equals(playerID))
return player;
}
}
return null;
}
}
CommonProxy:
package ru.demonicrous.biomehud.proxy;
import java.util.HashMap;
import java.util.UUID;
import cpw.mods.fml.common.network.IGuiHandler;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class CommonProxy implements IGuiHandler {
public CommonProxy() {
// NO-OP
}
@Override
public Object getServerGuiElement(final int ID, final EntityPlayer player, final World world, final int X, final int Y, final int Z) {
final TileEntity te = world.getTileEntity(X, Y, Z);
if (te == null)
return null;
return null;
}
@Override
public Object getClientGuiElement(final int ID, final EntityPlayer player, final World world, final int X,
final int Y, final int Z) {
return null;
}
public void registerRenderers() {
// NO-OP
}
public EntityPlayer getPlayer(UUID playerID) {
if (MinecraftServer.getServer() != null) {
for (Object object : MinecraftServer.getServer().getConfigurationManager().playerEntityList) {
EntityPlayerMP player = (EntityPlayerMP) object;
if (player.getUniqueID().equals(playerID))
return player;
}
}
return null;
}
}
Пробовал использовать
@SideOnly(Side.CLIENT)
, но ничего не изменилось . Помогите пожалуйста.- Краш-лог
-
---- Minecraft Crash Report ----
// My bad.
Time: 29.03.24 12:35
Description: Exception in server tick loop
cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: ru/demonicrous/biomehud/hud/biomes/TextHUD
at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)
at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:559)
at cpw.mods.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:88)
at cpw.mods.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:314)
at net.minecraft.server.dedicated.DedicatedServer.startServer(DedicatedServer.java:120)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:445)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
Caused by: java.lang.NoClassDefFoundError: ru/demonicrous/biomehud/hud/biomes/TextHUD
at ru.demonicrous.biomehud.BiomeHUDMod.preInit(BiomeHUDMod.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:556)
... 5 more
Caused by: java.lang.ClassNotFoundException: ru.demonicrous.biomehud.hud.biomes.TextHUD
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 33 more
Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/gui/Gui
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
... 35 more
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.gui.Gui
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 39 more
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_351, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 75726072 bytes (72 MB) / 128786432 bytes (122 MB) up to 1965817856 bytes (1874 MB)
JVM Flags: 1 total; -Xincgc
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1614 5 mods loaded, 5 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCH mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
UCH FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar)
UCH Forge{10.13.4.1614} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar)
UCE biomehud{1.0.1} [Biome HUD] (main)
UCH Baubles{1.0.1.10} [Baubles] (Baubles-1.7.10-1.0.1.10-dev.jar)
Profiler Position: N/A (disabled)
Is Modded: Definitely; Server brand changed to 'fml,forge'
Type: Dedicated Server (map_server.txt)
Краш-лог:
---- Minecraft Crash Report ----
// My bad.
Time: 29.03.24 12:35
Description: Exception in server tick loop
cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: ru/demonicrous/biomehud/hud/biomes/TextHUD
at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)
at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:559)
at cpw.mods.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:88)
at cpw.mods.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:314)
at net.minecraft.server.dedicated.DedicatedServer.startServer(DedicatedServer.java:120)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:445)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
Caused by: java.lang.NoClassDefFoundError: ru/demonicrous/biomehud/hud/biomes/TextHUD
at ru.demonicrous.biomehud.BiomeHUDMod.preInit(BiomeHUDMod.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:556)
... 5 more
Caused by: java.lang.ClassNotFoundException: ru.demonicrous.biomehud.hud.biomes.TextHUD
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 33 more
Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/gui/Gui
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
... 35 more
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.gui.Gui
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 39 more
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_351, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 75726072 bytes (72 MB) / 128786432 bytes (122 MB) up to 1965817856 bytes (1874 MB)
JVM Flags: 1 total; -Xincgc
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1614 5 mods loaded, 5 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCH mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
UCH FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar)
UCH Forge{10.13.4.1614} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar)
UCE biomehud{1.0.1} [Biome HUD] (main)
UCH Baubles{1.0.1.10} [Baubles] (Baubles-1.7.10-1.0.1.10-dev.jar)
Profiler Position: N/A (disabled)
Is Modded: Definitely; Server brand changed to 'fml,forge'
Type: Dedicated Server (map_server.txt)