Помогите Работа с BukkitRunnable

Hittcliff

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Relion128
Мне нужно дабы код:

Код:
                    if (b.getX() > valueX[rec] && b.getX() < valueXX[rec]) {
                        if (b.getY() > valueY[rec] && b.getY() < valueYY[rec]) {
                            if (b.getZ() > valueZ[rec] && b.getZ() < valueZZ[rec]) {

                                tested(event, array[rec]);
                            }
                        }
                        rec++;
                    }

выполнялась с другой задержкой, т.е эта часть кода находится в цикле (ниже фул код), и нужно чтобы конкретно этот код что указан выше работал с другой задержкой, допустим выполнился цикл фул кода, но т.к у кода выше другая задержка он не запускается вплодь до тех пор пока не закончится его цикл, ну или просто сделать задержку...



Код:
        int timer = Integer.parseInt(getConfig().getString("array.time")) * 20;

        new BukkitRunnable() {

            int rec = 0;
            int rec3 = Integer.parseInt(getConfig().getString("array.value"));

            List<String> list = config.getStringList("array.dir");
            String[] array = list.toArray(new String[0]);

            @Override
            public void run() {

                if (rec == rec3 || rec > rec3) {

                    rec = 0;
                } else {

                    // Позиция 1
                    int[] valueX = new int[rec3];
                    valueX[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".x: " + "pos1"));

                    int[] valueY = new int[rec3];
                    valueY[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".y: " + "pos1"));

                    int[] valueZ = new int[rec3];
                    valueZ[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".z: " + "pos1"));

                    // Позиция 2
                    int[] valueXX = new int[rec3];
                    valueXX[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".x: " + "pos2"));

                    int[] valueYY = new int[rec3];
                    valueYY[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".y: " + "pos2"));

                    int[] valueZZ = new int[rec3];
                    valueZZ[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".z: " + "pos2"));
                    Location b = player.getLocation();

                    if (b.getX() > valueX[rec] && b.getX() < valueXX[rec]) { //От сюда
                        if (b.getY() > valueY[rec] && b.getY() < valueYY[rec]) {
                            if (b.getZ() > valueZ[rec] && b.getZ() < valueZZ[rec]) {

                                tested(event, array[rec]);
                            }
                        }
                        rec++;
                    } //До сюда нужно делать задержку, дабы он работал с другой задержкой... Эта работает раз в 60 секунд..
                }
            }
        }.runTaskTimer(this, 0L, timer); //Эта допустим работает раз в 3 секунды..
Я пытался делить на классы, но суть такова, что код выше в любом случае обращается каждые 3 секунды, хотя мне нужно чтобы он делал это с задержкой в 60 секунд.


Для примера tested к которому обращается код выше:

Код:
 public void tested(PlayerJoinEvent event, String vois) {
        Player player = event.getPlayer();
        player.sendMessage(ChatColor.BLUE + "[DCore]: Вы на территорий: " + vois);
    }

Ах да, почему я просто не укажу основному циклу 60 секунд? Да просто потому, что он каждые 3 секунды ищет игрока, и если находит то должен выполнять действие с задержкой, например запускается песня, и дабы это песня каждые 3 секунды снова - снова - снова не включалась, нужно чтобы была задержка в цикле.
 
В данном случае Optional используется в качестве контейнера для результата обработки стрима.
 
@Hittcliff, есть какие-то подвижки? )
Я пару дней занят буду, вчера попробовал нифега не получилось. Посоветовали подключить библиотеку затем прокомплерировал... он из-за ошибок не захотел.. Просто те изменения которые ты сделал, не хотел кушать моё чистое ядро Spigot. Даже Jar файл (который был в архиве) тоже не загрузился ибо плагин его тупо не захотел грузить. Твой jar (который был в архиве) выдал на сервере ошибку:

Код:
[22:10:25] [Server thread/INFO]: [DCore] Enabling DCore v1.1
[22:10:25] [Server thread/ERROR]: Cannot load configuration from stream
org.bukkit.configuration.InvalidConfigurationException: while parsing a block mapping
 in 'string', line 3, column 5:
        'x: pos1': '-214'
        ^
expected <block end>, but found Scalar
 in 'string', line 11, column 26:
        'sound-time:': '255' //Длительность
                             ^

    at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:56) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:184) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:239) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:195) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:163) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at ru.digital.come.DCore.Main.onEnable(Main.java:53) [DCore_v1.1.jar:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:292) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.craftbukkit.v1_10_R1.CraftServer.loadPlugin(CraftServer.java:362) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.craftbukkit.v1_10_R1.CraftServer.enablePlugins(CraftServer.java:322) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.t(MinecraftServer.java:416) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.l(MinecraftServer.java:381) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.a(MinecraftServer.java:336) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.DedicatedServer.init(DedicatedServer.java:270) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:539) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at java.base/java.lang.Thread.run(Unknown Source) [?:?]
Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping
 in 'string', line 3, column 5:
        'x: pos1': '-214'
        ^
expected <block end>, but found Scalar
 in 'string', line 11, column 26:
        'sound-time:': '255' //Длительность
                             ^

    at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:570) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:224) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:229) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:229) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:450) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:369) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:54) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    ... 16 more
[22:10:25] [Server thread/ERROR]: Error occurred while enabling DCore v1.1 (Is it up to date?)
java.lang.NullPointerException
    at ru.digital.come.DCore.Main.loadAreas(Main.java:82) ~[?:?]
    at ru.digital.come.DCore.Main.onEnable(Main.java:59) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:292) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.craftbukkit.v1_10_R1.CraftServer.loadPlugin(CraftServer.java:362) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.craftbukkit.v1_10_R1.CraftServer.enablePlugins(CraftServer.java:322) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.t(MinecraftServer.java:416) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.l(MinecraftServer.java:381) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.a(MinecraftServer.java:336) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.DedicatedServer.init(DedicatedServer.java:270) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:539) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at java.base/java.lang.Thread.run(Unknown Source) [?:?]
[22:10:25] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
 
@Hittcliff, есть какие-то подвижки? )
В твоём Jar небыло Plugins.yml я его загрузил теперь:


Код:
[20:15:37] [Server thread/ERROR]: Could not load 'plugins\DCore.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: ru/digital/come/MovingPlayersCatcher
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.craftbukkit.v1_10_R1.CraftServer.loadPlugins(CraftServer.java:297) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.DedicatedServer.init(DedicatedServer.java:202) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:539) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at java.base/java.lang.Thread.run(Unknown Source) [?:?]
Caused by: java.lang.NoClassDefFoundError: ru/digital/come/MovingPlayersCatcher
    at ru.digital.come.main.<init>(main.java:32) ~[?:?]
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
    at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:?]
    at java.base/java.lang.Class.newInstance(Unknown Source) ~[?:?]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    ... 6 more
Caused by: java.lang.ClassNotFoundException: ru.digital.come.MovingPlayersCatcher
    at java.base/java.net.URLClassLoader.findClass(Unknown Source) ~[?:?]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
    at ru.digital.come.main.<init>(main.java:32) ~[?:?]
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?]
    at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:?]
    at java.base/java.lang.Class.newInstance(Unknown Source) ~[?:?]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    ... 6 more
[20:15:37] [Server thread/INFO]: [WorldEdit] Loading WorldEdit v6.1.3;7a097ca
 
Вероятно, надо всего лишь потереть комментарий "// Длительность".
 
Окей, вот правильный config.yml, с которым плагин загрузится:
YAML:
swarp:
  Boss:
    'x: pos1': -214
    'y: pos1': 40
    'z: pos1': 44
    'x: pos2': -194
    'y: pos2': 44
    'z: pos2': 63
    sound: piano.music
    category: master
    sound-time: 255
    sound-volume: 1.0
  Boss2:
    'x: pos1': -215
    'y: pos1': 41
    'z: pos1': 87
    'x: pos2': -195
    'y: pos2': 45
    'z: pos2': 106
    sound: attack.play
    category: master
    sound-time: 14
    sound-volume: 1
Lang:
  default: 1
settings:
  dev: 0

P.S. Внёс изменения в исходнике.
Распаковать, открыть в твоей IDE как "Проект Maven", собрать (mvn clean package).
Готовый бинарник тоже лежит внутри.

P.P.S. Там в начало onEnable() надо добавить ещё saveDefaultConfig(), а то при развёртывании плагина создаётся без этих двух зон. Но мне уже лень.
 

Вложения

Последнее редактирование:
Я пару дней занят буду, вчера попробовал нифега не получилось. Посоветовали подключить библиотеку затем прокомплерировал... он из-за ошибок не захотел.. Просто те изменения которые ты сделал, не хотел кушать моё чистое ядро Spigot. Даже Jar файл (который был в архиве) тоже не загрузился ибо плагин его тупо не захотел грузить. Твой jar (который был в архиве) выдал на сервере ошибку:

Код:
[22:10:25] [Server thread/INFO]: [DCore] Enabling DCore v1.1
[22:10:25] [Server thread/ERROR]: Cannot load configuration from stream
org.bukkit.configuration.InvalidConfigurationException: while parsing a block mapping
 in 'string', line 3, column 5:
        'x: pos1': '-214'
        ^
expected <block end>, but found Scalar
 in 'string', line 11, column 26:
        'sound-time:': '255' //Длительность
                             ^

    at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:56) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:184) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:239) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:195) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:163) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at ru.digital.come.DCore.Main.onEnable(Main.java:53) [DCore_v1.1.jar:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:292) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.craftbukkit.v1_10_R1.CraftServer.loadPlugin(CraftServer.java:362) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.craftbukkit.v1_10_R1.CraftServer.enablePlugins(CraftServer.java:322) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.t(MinecraftServer.java:416) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.l(MinecraftServer.java:381) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.a(MinecraftServer.java:336) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.DedicatedServer.init(DedicatedServer.java:270) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:539) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at java.base/java.lang.Thread.run(Unknown Source) [?:?]
Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping
 in 'string', line 3, column 5:
        'x: pos1': '-214'
        ^
expected <block end>, but found Scalar
 in 'string', line 11, column 26:
        'sound-time:': '255' //Длительность
                             ^

    at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:570) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:224) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:229) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:229) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:450) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:369) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:54) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    ... 16 more
[22:10:25] [Server thread/ERROR]: Error occurred while enabling DCore v1.1 (Is it up to date?)
java.lang.NullPointerException
    at ru.digital.come.DCore.Main.loadAreas(Main.java:82) ~[?:?]
    at ru.digital.come.DCore.Main.onEnable(Main.java:59) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:292) ~[spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.craftbukkit.v1_10_R1.CraftServer.loadPlugin(CraftServer.java:362) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at org.bukkit.craftbukkit.v1_10_R1.CraftServer.enablePlugins(CraftServer.java:322) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.t(MinecraftServer.java:416) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.l(MinecraftServer.java:381) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.a(MinecraftServer.java:336) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.DedicatedServer.init(DedicatedServer.java:270) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:539) [spigot-1.10-R0.1-SNAPSHOT-latest.jar:git-Spigot-c3e4052-1953f52]
    at java.base/java.lang.Thread.run(Unknown Source) [?:?]
[22:10:25] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
Псс, парень, комментарии YAML начинаются на с //, а с #.
 
В данном случае Optional используется в качестве контейнера для результата обработки стрима.
Ты шо дурной? Optional это npe защита и все, тебе сразу дают нпе обертку а ты сам себе стреляешь в ногу при orElse(null)
 
Optional это npe защита и все, тебе сразу дают нпе обертку а ты сам себе стреляешь в ногу при orElse(null)
Optional<Area>, как тебе правильно ответил камрад, оказывается в наших руках как результат работы со Stream API.
Нам не нужен этот Optional, поэтому мы просто забираем nullable-значение из него.
Чтобы его забрать, мы не можем использовать .get(), т.к. он выбросит исключение.
В нашем случае null не является ошибкой, появившемся в результате некорректной работы, поэтому никакого желания заворачивать вызов в try ... catch не возникло. Поэтому было написано .orElse(). Проверяем на null мы сами позже.
А npe-защита это, в первую очередь, мозги в голове.
Всего хорошего.
 
Предложи своё решение тогда🙂
128.png
 
Optional<Area>, как тебе правильно ответил камрад, оказывается в наших руках как результат работы со Stream API.
Нам не нужен этот Optional, поэтому мы просто забираем nullable-значение из него.
Чтобы его забрать, мы не можем использовать .get(), т.к. он выбросит исключение.
В нашем случае null не является ошибкой, появившемся в результате некорректной работы, поэтому никакого желания заворачивать вызов в try ... catch не возникло. Поэтому было написано .orElse(). Проверяем на null мы сами позже.
А npe-защита это, в первую очередь, мозги в голове.
Всего хорошего.
Ну точно мозг атрофировался
 
Чего ты к опшеналам то прицепился? Все он правильно сказал, если необходимо отдать именно экземпляр арены, то следует использовать orElse.
Когда не понимаешь зачем нужен Optional, если результат может быть null то следует и передавать optional
 
Боже ору с тебя)
Чего ты к опшеналам то прицепился? Все он правильно сказал, если необходимо отдать именно экземпляр арены, то следует использовать orElse.
А внимателен ли ты при прочтении сообщений? Или может не знаешь, что файнд эни гет эксепшен кидает?
Код:
    @Test(expected = NoSuchElementException.class)
    public void testFindAnyNoSuch() {
        Stream.of().findAny().get();
    }

    @Test
    public void testFindAnyOrElse() {
        String def = "default";
        assertEquals(def, Stream.of().findAny().orElse(def));
    }
 
А внимателен ли ты при прочтении сообщений? Или может не знаешь, что файнд эни гет эксепшен кидает?
Код:
    @Test(expected = NoSuchElementException.class)
    public void testFindAnyNoSuch() {
        Stream.of().findAny().get();
    }

    @Test
    public void testFindAnyOrElse() {
        String def = "default";
        assertEquals(def, Stream.of().findAny().orElse(def));
    }
При чем тут это? Где я писал что надо юзать гет?
 
При чем тут это? Где я писал что надо юзать гет?
Хоть исходный код то видел, который обсуждаем?
У меня явно оговорено условие использования, дан конкретный кейс, а ты лечишь меня непониманием Optional.
 
Этот мини-срачик завершится феерической кульминацией, если наш уважаемый оппонент наконец-то скажет,
что вместо area != null следует писать optional.isPresent().
 
Этот мини-срачик завершится феерической кульминацией, если наш уважаемый оппонент наконец-то скажет,
что вместо area != null следует писать optional.isPresent().
Так и следует
 
Назад
Верх