Помогите [РЕШЕНО] Достать лист из конфига

  • Автор темы Автор темы FyuzYT
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

FyuzYT

Активный участник
Пользователь
Баллы
76
Всем здрасте... Каким способом можно достать лист из конфига?
Код:
title:
  - "1"
  - "2"
  - "3"
Погуглил, выдаёт краши всё равно... Нужно преобразовать всё в List<String>.
 
YAML:
title:
- '1'
- '2'
- '3'
Java:
List<String> list = ConfigurationSection.getListString("title");
 
Код:
[15:50:05 ERROR]: Could not pass event PlayerJoinEvent to SkyWars v0.1
org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:310) ~[1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62) ~[1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:502) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:487) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerList.onPlayerJoin(PlayerList.java:
298) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerList.a(PlayerList.java:157) [1.8R3
.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.LoginListener.b(LoginListener.java:144)
[1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.LoginListener.c(LoginListener.java:54) [
1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.NetworkManager.a(NetworkManager.java:231
) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.ServerConnection.c(ServerConnection.java
:148) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:8
14) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:3
74) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:6
54) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java
:557) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_111]
Caused by: java.lang.NullPointerException
        at ru.fyuz.erargios.skywars.utils.ScoreboardUtil.initializeTitle(Scorebo
ardUtil.java:37) ~[?:?]
        at ru.fyuz.erargios.skywars.utils.ScoreboardUtil.addLobby(ScoreboardUtil
.java:44) ~[?:?]
        at ru.fyuz.erargios.skywars.Main.onJoin(Main.java:39) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0
_111]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0
_111]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
.8.0_111]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_111]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:306) ~[1.8R3.jar:git-Spigot-db6de12-18fbb24]
        ... 14 more
Крашится.
 
Код:
[15:50:05 ERROR]: Could not pass event PlayerJoinEvent to SkyWars v0.1
org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:310) ~[1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62) ~[1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:502) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:487) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerList.onPlayerJoin(PlayerList.java:
298) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerList.a(PlayerList.java:157) [1.8R3
.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.LoginListener.b(LoginListener.java:144)
[1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.LoginListener.c(LoginListener.java:54) [
1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.NetworkManager.a(NetworkManager.java:231
) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.ServerConnection.c(ServerConnection.java
:148) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:8
14) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:3
74) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:6
54) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java
:557) [1.8R3.jar:git-Spigot-db6de12-18fbb24]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_111]
Caused by: java.lang.NullPointerException
        at ru.fyuz.erargios.skywars.utils.ScoreboardUtil.initializeTitle(Scorebo
ardUtil.java:37) ~[?:?]
        at ru.fyuz.erargios.skywars.utils.ScoreboardUtil.addLobby(ScoreboardUtil
.java:44) ~[?:?]
        at ru.fyuz.erargios.skywars.Main.onJoin(Main.java:39) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0
_111]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0
_111]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
.8.0_111]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_111]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:306) ~[1.8R3.jar:git-Spigot-db6de12-18fbb24]
        ... 14 more
Крашится.
List<String> list = config.getStringList("title");
 
Эмм...
В главном классе всё отлично идёт, как можно это реализовать не в Main а в ScoreboardUtil?
Можно передавать в конструктор класса ScoreboardUtil main instance, и уже по этой ссылке получать конфиг, извлекая из него лист.
 
А можно создать статическую переменную главного класса и пользоваться ей.
 
Есть вот такая штука... Но через неё не работает...
ScoreboardUtil:
Код:
private static Main Main;

public ScoreboardUtil(Main Main){
    this.Main = Main;
}
 
А как прописывать?
Ну смотри, в стороннем классе у тебя есть ссылка на главный класс, через которую ты получаешь конфиг.Эта ссылка инициализируется в конструкторе.Так вызови этот конструктор, где тебе нужно, и тогда сможешь использовать методы этого класса, которые взаимодействуют с конфигом уже.ScoreBoardUtils scUtils = new ScoreBoardUtils(this);
 
Ну смотри, в стороннем классе у тебя есть ссылка на главный класс, через которую ты получаешь конфиг.Эта ссылка инициализируется в конструкторе.Так вызови этот конструктор, где тебе нужно, и тогда сможешь использовать методы этого класса, которые взаимодействуют с конфигом уже.ScoreBoardUtils scUtils = new ScoreBoardUtils(this);
Ты зачем животному помогаешь? Пусть книги читает или туториалы смотрит.
 
Разобрался, всё работает. Всем спасибо за помощь.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх