- 87
- 4
У меня есть код который должен по сути работаь и на сервере ,но он не работает .Я так понимаю,что потому что всё происходит со стороны клиента ,но должны быть со стороны сервера .Всё аннотациями помечено ,все зарегано ,но пишет что всё происходит со стороны клиента.Помогите пожалуйста решить проблему
g:
@SideOnly(Side.SERVER)
public class RenderJoiner {
public static ResourceLocation textures = new ResourceLocation(ClanWar.MODID, "/textures/img.png");
public static boolean isTick = false;
public static int width = -500;
public static boolean onStart = true;
public static boolean render = true;
@SubscribeEvent(priority = EventPriority.LOWEST)
public void eventHandler(RenderGameOverlayEvent event) {
Minecraft.getMinecraft().renderEngine.bindTexture(textures);
if(needRender) {
GL11.glPushMatrix();
GL11.glScaled(0.3, 0.1, 0.1);
Minecraft.getMinecraft().ingameGUI.drawTexturedModalRect(width, 300, 0, 0, 253, 250);
if(width != -5 && render) {
width++;
} else if(width != -500 && moving) {
width--;
onStart = true;
} else if(width == -500 && onStart){
onStart = false;
needRender = false;
}
GL11.glPopMatrix();
}
isTick = true;
GL11.glPushMatrix();
GL11.glScaled(0.45, 0.45, 0.45);
Minecraft.getMinecraft().fontRenderer.drawString("You were invited to the clan", width, 300, 0xffffff);
Minecraft.getMinecraft().fontRenderer.drawString("For accept invited need just ", width, 300, 0xffffff);
Minecraft.getMinecraft().fontRenderer.drawString("Pressed key Ctrl + Y", width, 300, 0xffffff);
GL11.glPopMatrix();
}
}
register:
public void preInit(FMLPreInitializationEvent event) {
MinecraftForge.EVENT_BUS.register(new RenderJoiner());
FMLCommonHandler.instance().bus().register(new Tick());
ClanWar.NETWORK.registerMessage(new ClientPacket.Handler(), ClientPacket.class, 0, Side.CLIENT);
ClanWar.NETWORK.registerMessage(new RenderOverlay.Handler(), RenderOverlay.class, 1, Side.CLIENT);
ClanWar.NETWORK.registerMessage(new BackFunction.Handler(), BackFunction.class, 2, Side.CLIENT);
}
tick:
@SideOnly(Side.SERVER)
public class Tick {
private int time;
public static boolean moving = false;
public static int times;
public static boolean stopRender = false;
@SubscribeEvent
public void onTick(TickEvent.PlayerTickEvent event) {
time++;
Minecraft minecraft = Minecraft.getMinecraft();
if(time % (20 * 40) == 0 && isTick) {
if(width == -500 && moving){
moving = false;
render = true;
} else if(width != -500 && !moving) {
moving = true;
render = false;
}
}
}
}