Выполнение действия один раз в PlayerTickEvent

Версия Minecraft
1.12.2
API
Forge
459
13
35
Всем привет. Как выполнять действие один раз:

Java:
    @SubscribeEvent
    public void onPlayerTick(TickEvent.PlayerTickEvent event) {
        EntityPlayer player = event.player;
        EntityPlayerMP playerMP = (EntityPlayerMP) event.player;
        int ticktime = playerMP.getStatFile().readStat(StatList.PLAY_ONE_MINUTE);
        int minutes = ticktime / 20 / 60;

        if(event.phase == TickEvent.Phase.END) {
            if (minutes == 24) {
                //player.sendMessage(new TextComponentString("It's work!"));
            }
        }
    }

Я хочу получать время игрока, если время игрока == указанному времени - выполнять действия. Не могу понять, как сделать так, чтобы действие выполнилось один раз, тк если делать через player.existedTicks - это немного не то уже будет. Возможно есть другой метод выполнение?
 
345
14
114
Ну, если принципиально время игрока использовать нет желания, то можно пойти строить костыли от
:
System.currentTimeMillis(); //Возвращает обычное юниксовское время, хотя кого я учу..
.
Сохранять его где-то.
Метод - нативный жвм-овский, поэтому дальнейшая реализация уже любая.
 

tox1cozZ

aka Agravaine
8,456
598
2,893
У каждой сущности есть свои данные, которые сохраняются - NBTTagCompoud.
Мы проверяем, если в игроке не записан наш флаг - выполняем нужное действие и записываем, тем самым даём выполняться нужному коду лишь единожды.
 
459
13
35
@tox1cozZ

Но всё же, я не могу понять одного, почему оно сохраняет значение для всех?
Java:
    int x = 0;
    @SubscribeEvent
    public void onBlockPlaced(BlockEvent.BreakEvent event) {
        EntityPlayer player = event.getPlayer();
        EntityPlayerMP playerMP = (EntityPlayerMP) event.getPlayer();
        player.getEntityData().setInteger("one", x++);

        player.sendMessage(new TextComponentString("count: " + player.getEntityData().getInteger("one")));
    }

Если один игрока сламал n количество блоков, то у другого игрока после ломания блока n+1
 
Сверху