- Версия(и) Minecraft
- 1.7.10
Хочу поделиться простеньким кодом на ограничение тайлов на чанк, может кому-нибудь да пригодится.
В качестве примера приведён сундук, лимит - 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());
}
}
}