Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Как взять список int из конфига

Тема в разделе "Разработка плагинов для новичков", создана пользователем Rbiter, 18 фев 2016.

  1. Автор темы
    Rbiter

    Rbiter Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Rbiter
    Как в BlockPlaceEvent запретить ставить определенный блок?

    Код:
    @EventHandler
        public void PlaceDiss(BlockPlaceEvent e) {
            int i;
            for (i = 0; i < nexgame.BlockDissItem.size(); ++i) {
                int block;
                block = (int) nexgame.DissCmdList.get(i);
                if (e.getBlock().getTypeId() == block){
                    e.setCancelled(true);
                    e.getPlayer().sendMessage("dfsdf");
                }
            }
    
        }
    то же, куча ошибок[DOUBLEPOST=1455827129,1455824709][/DOUBLEPOST]И на последок. То что в конфиге список создается:
    Код:
    BlockLocker:
      Enable: true
      Message: '&cВзаимодействие с данным предметом запрещено!'
      ID:
      - - 7
        - 8
        - 9
        - 10
    - - это норма? После перезагрузки значение возвращяется[DOUBLEPOST=1455827417][/DOUBLEPOST]
    Код:
        @EventHandler
        public void PlaceDiss(BlockPlaceEvent e) {
            Player p = e.getPlayer();
            if(e.getBlock().getTypeId() == 7){
                e.setCancelled(true);
            }
    
        }
    Если беру отдельный ID блока то все работает О_о
    Как взять список int?
     
    Последнее редактирование: 19 фев 2016
  2. Хостинг MineCraft
    <
  3. Ission

    Ission Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    lokivava
    В данном переборе нужно писать не ++i, а i++. Разница в том, что он сначала проверяет условие, а потом прибавляет в вашем случае, что может грозить выходом за границы.
    for (i = 0; i < nexgame.BlockDissItem.size(); ++i) <--- здесь вы берёте размер BlockDissItem
    block = (int) nexgame.DissCmdList.get(i); <--- а здесь обрабатываете DissCmdList
    Если я всё правильно понимаю, то вы бежите не по тому списку.
    Что вы делаете в первом сообщении я понимаю со скрипом в голове, второй вариант немного правильнее.
    В файл настроек вы скорее всего помещаете список списков (List<List<Object>>), а должны просто List<Object>.
     
  4. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Код:
    if(getConfig().getIntegerList("disabled-blocks").contains(e.getBlock().getTypeId())){
                e.setCancelled(true);
                //...
    }
     
  5. Автор темы
    Rbiter

    Rbiter Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Rbiter
    Лол, я и не такой бред писал, в попытках заставить это заработать)
    Кстати есть такой грешок =(
    Зава исправлю[DOUBLEPOST=1455833234,1455833196][/DOUBLEPOST]
    твоюж... Это гениально О.О[DOUBLEPOST=1455833453][/DOUBLEPOST]
    Это так серьезно?
     
  6. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    ват? абсолютно одно***ственно. ++i и i++ различаются только возвращаемыми значениями, а в этой конструкции они выкидываются. вот в ++i < K и i++ < K с какой стороны плюсы уже играет роль.[DOUBLEPOST=1455839163,1455838942][/DOUBLEPOST]
    нет, он просто что-то напутал.
     
  7. Автор темы
    Rbiter

    Rbiter Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Rbiter
    Код:
    [11:43:15 ERROR]: Could not pass event BlockPlaceEvent to NexGameLib v0.3
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:127) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.ItemStack.placeItem(ItemStack.java:158) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.PlayerInteractManager.interact(PlayerInteractManager.java:503) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:759) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:52) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:1) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_71]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_71]
            at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot.jar:git-Spigot-db6de12-18fbb24]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_71]
    Caused by: java.lang.NullPointerException
            at ru.BlockDissable.PlaceDiss(BlockDissable.java:24) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_71]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_71]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_71]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_71]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
            ... 18 more
    >
    [DOUBLEPOST=1455872640,1455871449][/DOUBLEPOST]
    Код:
      List:
      - - 7
        - 8
        - 9
        - 10
    Исправить не получается...


    public static int[] BlockDissID = new int[] {7,8,9,10};
    public static List BlockDissItem = new ArrayList();

    nexgame.BlockDissItem = Arrays.asList(nexgame.BlockDissID);

    nexgame.config.set("BlockLocker.List", nexgame.BlockDissItem);
     

Поделиться этой страницей