Сохранение инвентаря

Версия Minecraft
1.12.2
17
1
0
У меня вот возникла проблема, мне нужно сделать так, чтобы у определённых игроков не выпадали вещи из инвентаря, будто бы включон keepInventory, но у других, не избранных все вещи выпадали.
P.S. Я новичок.
 

Endless

Любитель OpenGL
270
11
82
Если вы не можете помочь — не отвечайте на вопрос
Во-первых бан, иди учи жабку, во вторых есть Гитхаб ищи нужный код там, и в третьих есть документация ищи не хочу
 
1,038
57
229
@fixable ты чего такой злой? И по ссылке совершенно не то, ему надо Drop
Java:
@SubscribeEvent
public void onLivingDropsEvent(LivingDropsEvent event) {
    //
}
 
17
1
0
про onLivingDropsEvent, я знаю, но если писать код на основе его, то вещи будут появляться в мире, а потом удаляться, а я хотел сделать так чтобы код EntityPlayerMp не выполнял касательно избранных 545 строку )))
код 545 - 561

Код:
        if (!this.world.getGameRules().getBoolean("keepInventory") && !this.isSpectator())
        {
            captureDrops = true;
            capturedDrops.clear();
            this.destroyVanishingCursedItems();
            this.inventory.dropAllItems();

            captureDrops = false;
            net.minecraftforge.event.entity.player.PlayerDropsEvent event = new net.minecraftforge.event.entity.player.PlayerDropsEvent(this, cause, capturedDrops, recentlyHit > 0);
            if (!net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event))
            {
                for (net.minecraft.entity.item.EntityItem item : capturedDrops)
                {
                    this.world.spawnEntity(item);
                }
            }
        }

возможно ли так сделать, не знаю, но может кто-то другой делал подобное.
 
1,038
57
229
Ты можешь отменить это событие для избранных и они не будут появляться в мире.
 
1,038
57
229
Для проверки отмены события, ни с кого не будет ничего падать в игре
Java:
..
@SubscribeEvent
public void onLivingDropsEvent(LivingDropsEvent event) {
        event.setCanceled(true);
}


для твоей полной задачи
Java:
..
List players = new ArrayList();
..
players.add("Коля");
players.add("Петя");
players.add("Вася");
..
@SubscribeEvent
public void onLivingDropsEvent(LivingDropsEvent event) {
    if(event.getEntity() instanceof EntityPlayer && players.contains(event.getEntity().getName()))
        event.setCanceled(true);
}
И конечно лучше использовать getUniqueID(), а не имена.
 
1,038
57
229
Сверху