- 5,024
- 47
- 786
Здравствуйте! Со старой проблемой разобрался, но теперь возник новый вопрос. Итак, у меня есть команда, которая через капу сетает мир
Но дело в том, что она срабатывает весьма странно, трижды. Причем первый результат, правильный, а остальные - старые
например, я командой
то вывод следует такой:
Вроде бы окей, да...
и после, я через эвент
То тут первое значнение - как и положено, 1 день. Но что такое следующие два? Откуда они? Даже бог с ними, пусть бы и трижды выводились, но почему там остается старое значение, которое накапливается?
[02:02:42] [Server thread/INFO] [STDOUT]: [ru.legendgamer.Realism.Command.RealismCommand:execute:72]: day0
[02:02:42] [main/INFO]: [CHAT] Set the day: 0
[02:02:55] [Server thread/INFO]: [Player534: Установлено время: 23900]
[02:02:55] [main/INFO]: [CHAT] Установлено время: 23900
[02:03:00] [Server thread/INFO] [STDOUT]: [ru.legendgamer.Realism.Events.SeasonEventerServernWorldTick:28]: day1
[02:03:00] [Server thread/INFO] [STDOUT]: [ru.legendgamer.Realism.Events.SeasonEventerServernWorldTick:28]: day11
[02:03:00] [Server thread/INFO] [STDOUT]: [ru.legendgamer.Realism.Events.SeasonEventerServernWorldTick:28]: day11
Java:
byte day;
@Override
public void setDay(byte day)
{
this.day = day;
}
например, я командой
/real set day 0
устанавливаю значение 0
Java:
if (amount.equals("day")) {
cap.setDay(Byte.parseByte(value));
player.sendMessage(new TextComponentString("Set the day: " + Byte.parseByte(value)));
NetworkHandler.network.sendTo(new DaySyncMessage(Byte.parseByte(value)),(EntityPlayerMP)player);
System.out.println("day" + cap.getDay());
}
Код:
[02:02:42] [Server thread/INFO] [STDOUT]: [ru.legendgamer.Realism.Command.RealismCommand:execute:72]: day0
[02:02:42] [main/INFO]: [CHAT] Set the day: 0
и после, я через эвент
TickEvent.WorldTickEvent e
вот таким образом сетаю свое значение:
Java:
byte day;
@SubscribeEvent
public void onWorldTick(TickEvent.WorldTickEvent e)
{
if (e.phase != e.phase.END) { return; }
if(!e.world.isRemote) {
IDate date = e.world.getCapability(DateProvider.DATE, null);
if(e.world.getWorldTime() % 23999 == 0)
{
day = (byte)(date.getDay() + 1);
date.setDay(day);
e.world.setWorldTime(0);
System.out.println("day" + date.getDay());
NetworkHandler.network.sendToServer(new DaySyncMessage(date.getDay()));
}
}
}
[02:02:42] [Server thread/INFO] [STDOUT]: [ru.legendgamer.Realism.Command.RealismCommand:execute:72]: day0
[02:02:42] [main/INFO]: [CHAT] Set the day: 0
[02:02:55] [Server thread/INFO]: [Player534: Установлено время: 23900]
[02:02:55] [main/INFO]: [CHAT] Установлено время: 23900
[02:03:00] [Server thread/INFO] [STDOUT]: [ru.legendgamer.Realism.Events.SeasonEventerServernWorldTick:28]: day1
[02:03:00] [Server thread/INFO] [STDOUT]: [ru.legendgamer.Realism.Events.SeasonEventerServernWorldTick:28]: day11
[02:03:00] [Server thread/INFO] [STDOUT]: [ru.legendgamer.Realism.Events.SeasonEventerServernWorldTick:28]: day11