Войти или зарегистрироваться

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

  • Автор темы Автор темы Rbiter
  • Дата начала Дата начала

Rbiter

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Rbiter
Как в BlockPlaceEvent запретить ставить определенный блок?

JavaScript:
@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");
            }
        }

    }
то же, куча ошибок
И на последок. То что в конфиге список создается:
Код:
BlockLocker:
  Enable: true
  Message: '&cВзаимодействие с данным предметом запрещено!'
  ID:
  - - 7
    - 8
    - 9
    - 10
- - это норма? После перезагрузки значение возвращяется
JavaScript:
    @EventHandler
    public void PlaceDiss(BlockPlaceEvent e) {
        Player p = e.getPlayer();
        if(e.getBlock().getTypeId() == 7){
            e.setCancelled(true);
        }

    }
Если беру отдельный ID блока то все работает О_о
Как взять список int?
 
Последнее редактирование:
В данном переборе нужно писать не ++i, а i++. Разница в том, что он сначала проверяет условие, а потом прибавляет в вашем случае, что может грозить выходом за границы.
for (i = 0; i < nexgame.BlockDissItem.size(); ++i) <--- здесь вы берёте размер BlockDissItem
block = (int) nexgame.DissCmdList.get(i); <--- а здесь обрабатываете DissCmdList
Если я всё правильно понимаю, то вы бежите не по тому списку.
Что вы делаете в первом сообщении я понимаю со скрипом в голове, второй вариант немного правильнее.
В файл настроек вы скорее всего помещаете список списков (List<List<Object>>), а должны просто List<Object>.
 
Код:
if(getConfig().getIntegerList("disabled-blocks").contains(e.getBlock().getTypeId())){
            e.setCancelled(true);
            //...
}
 
Что вы делаете в первом сообщении я понимаю со скрипом в голове, второй вариант немного правильнее.
Лол, я и не такой бред писал, в попытках заставить это заработать)
Что вы делаете в первом сообщении я понимаю со скрипом в голове, второй вариант немного правильнее.
В файл настроек вы скорее всего помещаете список списков (List<List<Object>>), а должны просто List<Object>.
Кстати есть такой грешок =(
Зава исправлю
Код:
if(getConfig().getIntegerList("disabled-blocks").contains(e.getBlock().getTypeId())){
            e.setCancelled(true);
            //...
}
твоюж... Это гениально О.О
В данном переборе нужно писать не ++i, а i++. Разница в том, что он сначала проверяет условие, а потом прибавляет в вашем случае, что может грозить выходом за границы.
Это так серьезно?
 
В данном переборе нужно писать не ++i, а i++. Разница в том, что он сначала проверяет условие, а потом прибавляет в вашем случае, что может грозить выходом за границы.
ват? абсолютно одно***ственно. ++i и i++ различаются только возвращаемыми значениями, а в этой конструкции они выкидываются. вот в ++i < K и i++ < K с какой стороны плюсы уже играет роль.
Это так серьезно?
нет, он просто что-то напутал.
 
Код:
if(getConfig().getIntegerList("disabled-blocks").contains(e.getBlock().getTypeId())){
            e.setCancelled(true);
            //...
}
Код:
[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
>

Код:
  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);
 
Назад
Верх