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

Запрет на использование кирок в мирах.

Версия(и) Minecraft
1.7.10
Хочу поделиться простеньким кодом на запрет использования кирки в определённом мире.
Java:
    @SubscribeEvent
    public void Tools(BlockEvent.BreakEvent event) {
        EntityPlayer player = event.getPlayer();
     
        if (!player.worldObj.isRemote) {
        if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.draconicDestructionStaff) {
            if (player.dimension == 0) {
            //System.out.println("Canceled");
            event.setCanceled(true);
            }
            if (event.isCanceled()) {
                player.addChatMessage(new ChatComponentText("§8<§cКисочка§8> §8Настя §8: " + "§aВы §aне §aможете §aломать §aэтим §aинструментом §aв §aданном §aмире."));
            }
        }
        }
     
    }
Java:
    @SubscribeEvent
    public void Tools(PlayerEvent.BreakSpeed event) {
      
        EntityPlayer player = (EntityPlayer)event.entityPlayer;
      
        if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.draconicDestructionStaff) {
            if (player.dimension == 0) {
            event.setCanceled(true);
            }
        }
    }

Ниже реализация с использованием конфига.
Большое спасибо @timaxa007, он мне всё от а до я разжевал.
Java:
public class Config {

    public static final Set<Item> tool = new HashSet<Item>();

    public static void init(File file) {
        Configuration config = new Configuration(file);
        config.load();


        String[] s1 = (config.get("main", "tools", "").getString()).split(",");

        Item item;
        for (int i = 0; i < s1.length; ++i) {

            String[] name_from_config = s1[i].trim().split(":");

            if (name_from_config.length > 1)
                item = GameRegistry.findItem(name_from_config[0], name_from_config[1]);
            else
                item = GameRegistry.findItem("minecraft", name_from_config[0]);

            if (item != null)
                tool.add(item);

        }


        config.save();
    }

}
В методе preInit добавьте Config.init(event.getSuggestedConfigurationFile());

Java:
    @SubscribeEvent
    public void Tools(BlockEvent.BreakEvent event) {

        EntityPlayer player = event.getPlayer();

        if (!player.worldObj.isRemote) {
        if(Config.tool.contains(player.getHeldItem().getItem())) {
            if (player.dimension == 0) {
            //System.out.println("Canceled");
            event.setCanceled(true);
            }
            if (event.isCanceled()) {
                player.addChatMessage(new ChatComponentText("§8<§cКисочка§8> §8Настя §8: " + "§aВы §aне §aможете §aломать §aэтим §aинструментом §aв §aданном §aмире."));
            }
        }
        }
    }

Пример конфига:
main {
    S:tools=minecraft:diamond,minecraft:stick
}
  • Like
Реакции: Tornado
Автор
Egorka
Просмотры
955
Первый выпуск
Обновление
Оценка
5.00 звёзд 2 оценок

Другие ресурсы пользователя Egorka

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

Сверху