Краш из-за ГУИ на сервере

Версия Minecraft
1.7.10
51
0
Собственно на клиенте все работает, но когда мод ставлю на сервер то происходит вот такой краш:

Код:
---- Minecraft Crash Report ----
// Sorry :(

Time: 26.05.17 8:07
Description: Exception in server tick loop

cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: net/minecraft/client/gui/GuiScreen
at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:544)
at cpw.mods.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:87)
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: net/minecraft/client/gui/GuiScreen
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:440)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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.loadMods(Loader.java:513)
... 5 more
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.gui.GuiScreen
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 30 more
Caused by: java.lang.RuntimeException: Attempted to load class net/minecraft/client/gui/GuiScreen for invalid side SERVER
at cpw.mods.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:50)
at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279)
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176)
... 32 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 8.1 (x86) version 6.3
Java Version: 1.8.0_74, Oracle Corporation
Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
Memory: 996109264 bytes (949 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
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 4 mods loaded, 4 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UC mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
UC FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar) 
UC Forge{10.13.4.1614} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar) 
UE ua{1.0.0} [Tutorial Mod] (bin) 
Profiler Position: N/A (disabled)
Is Modded: Definitely; Server brand changed to 'fml,forge'
Type: Dedicated Server (map_server.txt)



Гуи Хандлер
Код:
package ua.dark.base.GUI;

import cpw.mods.fml.common.network.IGuiHandler;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;

public class ModGuiHandler implements IGuiHandler  {
 public static final int FirstGUI = 0;
 public static final int SecondGui = 1;


 @Override
 public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
 
 return null;
 }

 @Override
 public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
 if (ID == FirstGUI)
        return new FirstGUI();
 if (ID == SecondGui)
        return new SecondGui();
 return null;
 }

}

Класс мода 
Код:
package ua.dark.base;

import java.lang.annotation.ElementType;

import java.util.Set;

import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;

import com.google.common.collect.Sets;

import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;

import ua.dark.base.block.obj.BlockObj;
import ua.dark.base.item.Chocolate;

import ua.dark.base.item.MetalDrop;
import ua.dark.base.item.ModItems;
import ua.dark.base.item.gun.EntityBullet;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
//import cpw.mods.fml.events.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.InputEvent;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.ReflectionHelper;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.client.gui.GuiChat;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.entity.RenderBiped;
import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.IProjectile;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraft.item.ItemRedstone;
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.item.ItemTossEvent;
import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.event.entity.living.LivingHurtEvent;
import net.minecraftforge.event.entity.player.PlayerDropsEvent;
import ua.dark.base.GUI.FirstGUI;
import ua.dark.base.block.obj.*;

@Mod(modid = Main.MODID, name = Main.MODNAME, version = Main.VERSION)
public class Main {
 
 

    public static final String MODID = "ua";
    public static final String MODNAME = "Tutorial Mod";
    public static final String VERSION = "1.0.0";
   
    
    @SidedProxy(clientSide="ua.dark.base.ClientProxy", serverSide="ua.dark.base.ServerProxy")
    public static CommonProxy proxy;
    
    
    //HighLine
    @SideOnly(Side.CLIENT)
    @SubscribeEvent
    public void deleteBlockHighlight(DrawBlockHighlightEvent e){
        e.setCanceled(true);
        

    }   
   
    @SubscribeEvent
    public void onRenderPlayer(RenderPlayerEvent.Pre event) {
        if (event.entityPlayer.inventory.getCurrentItem() != null && event.entityPlayer.inventory.getCurrentItem().getItem() == ModItems.Rifel) {
            if (event.renderer.modelArmor != null)
                event.renderer.modelArmor.aimedBow = true;
            if (event.renderer.modelArmorChestplate != null)
                event.renderer.modelArmorChestplate.aimedBow = true;
            if (event.renderer.modelBipedMain != null)
                event.renderer.modelBipedMain.aimedBow = true;
            
         }
        }
    
    
    //key bind для книги
    @SubscribeEvent
    public void onKeyInputEvent(InputEvent.KeyInputEvent event) {
        if (Keyboard.isKeyDown(Keyboard.KEY_B)) {//Это простой способ, но он не полон.
            Minecraft.getMinecraft().displayGuiScreen(new FirstGUI());
        }
    }
    
    @SubscribeEvent
    public void RenderOverlay(RenderGameOverlayEvent event){
     if(event.type == RenderGameOverlayEvent.ElementType.EXPERIENCE)
     
     {
     event.setCanceled(true);
     
     }
     
     if(event.type == RenderGameOverlayEvent.ElementType.CROSSHAIRS)
     {
     event.setCanceled(true);
     }
     
     
     
     
       /* ALL,
        HELMET,
        PORTAL,
        CROSSHAIRS,
        BOSSHEALTH,
        BOSSINFO,
        ARMOR,
        HEALTH,
        FOOD,
        AIR,
        HOTBAR,
        EXPERIENCE,
        TEXT,
        HEALTHMOUNT,
        JUMPBAR,
        CHAT,
        PLAYER_LIST,
        DEBUG,
        POTION_ICONS,
        SUBTITLES*/
     

     
    }
    
    
    
    @SubscribeEvent
    public void hurt(LivingHurtEvent e){
        Entity attacker = e.source.getSourceOfDamage();
        EntityLivingBase living = e.entityLiving;

        if(attacker instanceof IProjectile){
            if(living.posY + living.getEyeHeight() < attacker.posY){
                e.ammount *= 2.5;
               
                //
                //debug
                //System.out.println("Head shot! " + living.getCommandSenderName());
                
            }
        }
    }
   
     
     
    
    
    //undropeable
   
   //Unthrouable
    Set blocked_items = Sets.newHashSet(new Item[] {
    Items.nether_star, ModItems.Book,
    Item.getItemFromBlock(Blocks.bedrock)
 });

 @SubscribeEvent
 public void dropQ(ItemTossEvent event) {
    if (event.entityItem != null) {
        ItemStack item = event.entityItem.getEntityItem();
        if (item != null && blocked_items.contains(item.getItem())) {
 //Если отменить дроп, то предмет не вернётся.
            event.player.inventory.addItemStackToInventory(item);//Возвращаем предмет так
            event.setCanceled(false);//Отменяем, дропаться не будет
           
        }
    }
 }
 
        
    @Instance(MODID) //не  @Instance("MODID")
    public static Main instance = new Main();
    //Armors
    public static Item Balaclava;
    public static Item BalaclavaBlue;
   
    //blocks
    public static Block block_obj;
    public static Block med_kit;
    
     //block_obj
 /*itemArmorTestObjVest,
 itemArmorTestObjPants,
 itemArmorTestObjBoots*/

    
    
 
 
   
    @EventHandler
    public void preInit(FMLPreInitializationEvent e) {
     
     
     
     Balaclava = new Balaclava(ArmorMaterial.IRON, 0).setTextureName(Main.MODID + ":balaclava").setUnlocalizedName("balaclava").setCreativeTab(CreativeTabs.tabCombat);
     GameRegistry.registerItem(Balaclava, "balaclava");
     BalaclavaBlue = new BalaclavaBlue(ArmorMaterial.IRON, 0).setTextureName(Main.MODID + ":balaclavablue").setUnlocalizedName("balaclavablue").setCreativeTab(CreativeTabs.tabCombat);
     GameRegistry.registerItem(BalaclavaBlue, "balaclavablue"); 
     block_obj = new BlockObj();
     GameRegistry.registerBlock(block_obj, "block_obj");
     med_kit = new MedKit();
     GameRegistry.registerBlock(med_kit, "med_kit");
     

     GameRegistry.registerTileEntity(TileEntityUaObj.class, "TileEntityUaObj");
     
     
     // А надо ли это? EntityRegistry.registerModEntity(EntityBullet.class, "EntityBullet", 0, this, 64, 3, true);
     EntityRegistry.registerModEntity(EntityBullet.class, "EntityBullet", 0, instance, 64, 3, true);
     
     //EntityRegistry.registerModEntity(entityClass, name, entityID, CopperMod.instance, 64, 1, true);
     //ВОТ правильная регшистрация!
     
     
     /*itemArmorTestObjVest = new ItemArmorTestObj(ArmorMaterial.IRON, 1)
     .setUnlocalizedName("armor_test_obj_vest").setCreativeTab(CreativeTabs.tabCombat);
     GameRegistry.registerItem(itemArmorTestObjVest, "item_armor_test_obj_vest");

     itemArmorTestObjPants = new ItemArmorTestObj(ArmorMaterial.IRON, 2)
     .setUnlocalizedName("armor_test_obj_pants").setCreativeTab(CreativeTabs.tabCombat);
     GameRegistry.registerItem(itemArmorTestObjPants, "item_armor_test_obj_pants");

     itemArmorTestObjBoots = new ItemArmorTestObj(ArmorMaterial.IRON, 3)
     .setUnlocalizedName("armor_test_obj_boots").setCreativeTab(CreativeTabs.tabCombat);
     GameRegistry.registerItem(itemArmorTestObjBoots, "item_armor_test_obj_boots");*/
     proxy.preInit(e); 
     
  
 
    }
   
    @EventHandler
    public void init(FMLInitializationEvent e) {
     MinecraftForge.EVENT_BUS.register(new Main());
     FMLCommonHandler.instance().bus().register(new Main());
     proxy.init(e);   

    }
        
    @EventHandler
    public void postInit(FMLPostInitializationEvent e) {

     proxy.postInit(e);
    }
}

И собственно все. Если нужны сами классы ГУИ, то скину. ГУИ Хандлер инициализирован в СommonProxy.
 
Решение
Попробуй так
Код:
//key bind для книги
@SideOnly(Side.CLIENT)
@SubscribeEvent
public void onKeyInputEvent(InputEvent.KeyInputEvent event) {
    if (Keyboard.isKeyDown(Keyboard.KEY_B)) {//Это простой способ, но он не полон.
        Minecraft.getMinecraft().displayGuiScreen(new FirstGUI());
    }
}
2,505
81
397
Попробуй так
Код:
//key bind для книги
@SideOnly(Side.CLIENT)
@SubscribeEvent
public void onKeyInputEvent(InputEvent.KeyInputEvent event) {
    if (Keyboard.isKeyDown(Keyboard.KEY_B)) {//Это простой способ, но он не полон.
        Minecraft.getMinecraft().displayGuiScreen(new FirstGUI());
    }
}
 
51
0
Dahaka написал(а):
Попробуй так
Код:
//key bind для книги
@SideOnly(Side.CLIENT)
@SubscribeEvent
public void onKeyInputEvent(InputEvent.KeyInputEvent event) {
    if (Keyboard.isKeyDown(Keyboard.KEY_B)) {//Это простой способ, но он не полон.
        Minecraft.getMinecraft().displayGuiScreen(new FirstGUI());
    }
}

Да сейчас попробую
 
51
0
Dark_min написал(а):
Dahaka написал(а):
Попробуй так
Код:
//key bind для книги
@SideOnly(Side.CLIENT)
@SubscribeEvent
public void onKeyInputEvent(InputEvent.KeyInputEvent event) {
    if (Keyboard.isKeyDown(Keyboard.KEY_B)) {//Это простой способ, но он не полон.
        Minecraft.getMinecraft().displayGuiScreen(new FirstGUI());
    }
}

Да сейчас.
 
Работает, крашит теперь по другой причине. Что-то с рендером игрока.
Код:
---- Minecraft Crash Report ----
// You're mean.

Time: 26.05.17 13:14
Description: Exception in server tick loop

cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: net/minecraft/client/renderer/entity/RenderPlayer
 at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)
 at cpw.mods.fml.common.Loader.initializeMods(Loader.java:739)
 at cpw.mods.fml.server.FMLServerHandler.finishServerLoading(FMLServerHandler.java:97)
 at cpw.mods.fml.common.FMLCommonHandler.onServerStarted(FMLCommonHandler.java:319)
 at net.minecraft.server.dedicated.DedicatedServer.startServer(DedicatedServer.java:213)
 at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:445)
 at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/renderer/entity/RenderPlayer
 at java.lang.Class.getDeclaredConstructors0(Native Method)
 at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
 at java.lang.Class.getConstructor0(Unknown Source)
 at java.lang.Class.getConstructor(Unknown Source)
 at cpw.mods.fml.common.eventhandler.EventBus.register(EventBus.java:101)
 at cpw.mods.fml.common.eventhandler.EventBus.register(EventBus.java:85)
 at ua.dark.base.Main.init(Main.java:273)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 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(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 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.initializeMods(Loader.java:737)
 ... 5 more
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.renderer.entity.RenderPlayer
 at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 ... 39 more
Caused by: java.lang.RuntimeException: Attempted to load class net/minecraft/client/renderer/entity/RenderPlayer for invalid side SERVER
 at cpw.mods.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:50)
 at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279)
 at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176)
 ... 41 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 8.1 (x86) version 6.3
 Java Version: 1.8.0_74, Oracle Corporation
 Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
 Memory: 1009891912 bytes (963 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB)
 JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
 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 4 mods loaded, 4 mods active
 States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
 UCHI mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
 UCHI FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar) 
 UCHI Forge{10.13.4.1614} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar) 
 UCHE ua{1.0.0} [Tutorial Mod] (bin) 
 Profiler Position: N/A (disabled)
 Is Modded: Definitely; Server brand changed to 'fml,forge'
 Type: Dedicated Server (map_server.txt)


Кароче все хорошо и работает!
Дело было в том, что большая часть ивентов была для клиента и серверу вовсе не нужна. Пофиксил краши добавлением перед ивентами @SideOnly(Side.CLIENT). Спасибо большое!
 
Сверху