Иконка ресурса

Ограничение тайлов на чанк.

Версия(и) Minecraft
1.7.10
Хочу поделиться простеньким кодом на ограничение тайлов на чанк, может кому-нибудь да пригодится.


В качестве примера приведён сундук, лимит - 10 сундуков на чанк.
Java:
public class TileChunkEvent {

    boolean isPlace(World world, int x, int z) {

        int chest = 0;
     
        boolean flag = false;
         
            Map<ChunkPosition, TileEntity> map = world.getChunkFromBlockCoords(x, z).chunkTileEntityMap;
            for (Map.Entry<ChunkPosition, TileEntity> entry : map.entrySet()) {
                if (entry.getValue() instanceof TileEntityChest) ++chest;
                if (chest >= 11) flag = true;
                if (flag) break;
            }
         
        return flag;
    }

        @SubscribeEvent(priority = EventPriority.HIGHEST)
        public void onBlockPlacement(BlockEvent.PlaceEvent event) {
        if (isPlace(event.world, event.x, event.z)) event.setCanceled(true);
        if (event.isCanceled() == true) {
            event.player.addChatMessage(new ChatComponentText("§8<§cКисочка§8> §8Настя §8: " + "§aВы §aпревысили §aлимит §aданных §aмеханизмов §aв §aэтом §aчанке."));
        }
        }
}

Вы можете добавить описание блоку, чтобы игроки могли понимать, какое ограничение на каком механизме.
Java:
public class TooltipEvent {
    @SubscribeEvent
    public void Tooltip(ItemTooltipEvent event) {
     if(event.itemStack.getUnlocalizedName().equals("tile.chest")) {
         event.toolTip.add("§8Ограничение на чанк: §a10");
         }
    }
}

Java:
public class TooltipEvent {
    @SubscribeEvent
    public void Tooltip(ItemTooltipEvent event) {
     if(Block.getBlockFromItem(event.itemStack.getItem()) == Blocks.chest) {
          event.toolTip.add("§8Ограничение на чанк: §a10");
          }
    }
}

Java:
public class EventForItemBlock {
    @SubscribeEvent
    public void itemTooltipEvent(ItemTooltipEvent event) {
     if(event.itemStack.getItem() != null) {
       event.toolTip.add("Unlocalized name:" + event.itemStack.getUnlocalizedName());
     }
    }
}
Автор
Egorka
Просмотры
1,890
Первый выпуск
Обновление
Оценка
5.00 звёзд 2 оценок

Последние рецензии

Очень полезно! Минус в том, что на 1.7.10. Но большинство серверов на нём и сидит. И ещё один минус в оформлении: Например, "привысили" пишеться через е: превысели. Но оценку снижать не буду, так как оч полезно, спасёт от лагов и от многого другого.
Думаю, имеет полезность на серверах при малом объеме кода..
Сверху