Действие при первом появлении на сервере

Версия Minecraft
1.6.4
73
1
Нужно, чтобы гуишка вылазила 1 раз, только при первом появлении игрока на карте. 
Для этого использую метод EntityJoinWorldEvent, но я без понятия куда его впихивать, пробовал в свой ClientEvents,но майн крашит при запуске. Подскажите куда бы пихнуть этот метод. 
 
3,005
192
592
Есть только на 1.7.10, думаю поможет.
Исправить, скорее всего надо будет что-то. #НадеемсяСправишься.
Код:
    @SubscribeEvent
    public void playerLoggedIn(PlayerEvent.PlayerLoggedInEvent e) {
        EntityPlayer player = e.player;
        NBTTagCompound entityData = player.getEntityData();
        String key = "freeApple";
        entityData.setBoolean(key, false);
        if (!entityData.getBoolean(key)) {
            entityData.setBoolean(key, true);
            player.inventory.addItemStackToInventory(new ItemStack(Items.apple));
        }
    }
 
208
1
Agravaine написал(а):
Что ты несёшь? Есть конечно.

cwZ1I_SnG9Q.jpg



я про это
 
73
1
Doc написал(а):
Есть только на 1.7.10, думаю поможет.
Исправить, скорее всего надо будет что-то. #НадеемсяСправишься.
Код:
    @SubscribeEvent
    public void playerLoggedIn(PlayerEvent.PlayerLoggedInEvent e) {
        EntityPlayer player = e.player;
        NBTTagCompound entityData = player.getEntityData();
        String key = "freeApple";
        entityData.setBoolean(key, false);
        if (!entityData.getBoolean(key)) {
            entityData.setBoolean(key, true);
            player.inventory.addItemStackToInventory(new ItemStack(Items.apple));
        }
    }

В код моей гуишки пихать?
 
1,470
19
189
denuvo написал(а):
Doc написал(а):
Есть только на 1.7.10, думаю поможет.
Исправить, скорее всего надо будет что-то. #НадеемсяСправишься.
Код:
    @SubscribeEvent
    public void playerLoggedIn(PlayerEvent.PlayerLoggedInEvent e) {
        EntityPlayer player = e.player;
        NBTTagCompound entityData = player.getEntityData();
        String key = "freeApple";
        entityData.setBoolean(key, false);
        if (!entityData.getBoolean(key)) {
            entityData.setBoolean(key, true);
            player.inventory.addItemStackToInventory(new ItemStack(Items.apple));
        }
    }

В код моей гуишки пихать?
В EventHadler
 
3,005
192
592
denuvo написал(а):
В код моей гуишки пихать?

Нет.
Тебе нужно сделай другой класс, вставить тот код туда, зарегать его как эвент.
И там выдается яблоко, а не открывается гуи.
Подправить 1 строчку.
 
73
1
Doc написал(а):
denuvo написал(а):
В код моей гуишки пихать?

Нет.
Тебе нужно сделай другой класс, вставить тот код туда, зарегать его как эвент.
И там выдается яблоко, а не открывается гуи.
Подправить 1 строчку.
То, что яблоко выдаётся я понял. А вот повыше... Есть какой-нибудь пример, урок?
 
73
1
Doc написал(а):
Клац
Там, где "[font=Helvetica, Arial,]Creating and Using Your Event Handler:[/font]".

Твой код каждый заход на сервер показывает гуи, мне же надо, чтобы это выполнялось только 1 раз, при первом заходе и больше никогда не показывалось.
 
3,005
192
592
denuvo написал(а):
Твой код каждый заход на сервер показывает гуи, мне же надо, чтобы это выполнялось только 1 раз, при первом заходе и больше никогда не показывалось.

entityData.setBoolean(key, false);
Убери.
 
73
1
Doc написал(а):
denuvo написал(а):
Твой код каждый заход на сервер показывает гуи, мне же надо, чтобы это выполнялось только 1 раз, при первом заходе и больше никогда не показывалось.

entityData.setBoolean(key, false);
Убери.

Код:
public void playerLoggedIn(PlayerEvent.PlayerLoggedInEvent

Ещё ругается на [font=Monaco, Consolas, Courier, monospace]PlayerLogged[/font][font=Monaco, Consolas, Courier, monospace]InEvent[/font]
[font=Monaco, Consolas, Courier, monospace]Потому что на 1.6.4 в PlayerEvent нет такого метода. [/font]
 
3,005
192
592
... Прочитай сообщение более корректно ...
И увидь, что там нужно поставить проверку на игрока.
 
73
1
Doc написал(а):
... Прочитай сообщение более корректно ...
И увидь, что там нужно поставить проверку на игрока.

Тогда скорее всего будет вылезать при коннекте любого игрока к серверу каждый раз. Мне же нужно, чтобы гуи вылезло для каждого игрока только 1 раз при первом входе на сервер.
 
3,005
192
592
Код:
    @SubscribeEvent
    public void playerLoggedIn(PlayerEvent.PlayerLoggedInEvent e) {
        EntityPlayer player = e.player;
        NBTTagCompound entityData = player.getEntityData();
        String key = "freeApple";
        if (!entityData.getBoolean(key)) {
            entityData.setBoolean(key, true);
            player.inventory.addItemStackToInventory(new ItemStack(Items.apple));
        }
    }
Сделай EntityJoinWorldEvent - эвент. Проверку на : моб не нулл и что моб - это игрок.
Все.
 
Сверху