- Баллы
- 76
- Имя в Minecraft
- _MasterCapeXD_
Вот, решил попробовать создать плагин, который назвал ServerBridge. Он при входе нового игрока создает новый файл игрока и устанавливает значения. Я создал метод, с типом возвращаемых данных - FileConfiguration. Так вот. Потом я его добавляю в java build pass другого плагина, в нем создал метод в отдельном классе, который обрабатывает разную информацию, в том числе и инфу из ServerBridge. Потом этот метод я вызываю в PlayerLoginEvent. И когда игрок логинится, у меня ошибка NullPointerException. Понятно, что информацию один плагин из плагина ServerBridge не получает, в этом и ошибка, но что тут не так? Надеюсь на Вашу помощь.
Немного кода чтобы вы поняли что это я сейчас настрочил:
ServerBridge plugin | Class: ServerBridge.java
ServerBridge plugin | Class: UsersYAML.java
Получатель инфы из ServerBridge | Class: BanManager.java
PS: Не все копировал из кода, могут быть ошибки.
PS: Получаю разную инфу, показал пример.
PS: Прошу не писать ответы не по теме, особенно ОРАТЬ с кода. От Вашего ОРУ ничего не изменится, а если Вам что-то не нравится, приведите аргументы и посоветуйте, как лучше и почему. Ору никому не надо.
Спасибо за прочтение, заранее спасибо за помощь
Немного кода чтобы вы поняли что это я сейчас настрочил:
ServerBridge plugin | Class: ServerBridge.java
PHP:
public class ServerBridge extends JavaPlugin implements Listener
{
public File userdata;
public FileConfiguration users;
private UsersYAML uyaml;
public void onEnable()
{
this.getLogger().info("ServerBridge >> ENABLED!");
this.saveDefaultConfig();
}
public FileConfiguration getPlayerInfoByName(String name)
{
File newuserdata = new File("plugins" + File.separator + "ServerBridge" + File.separator + "userdata" + File.separator + name + ".yml");
FileConfiguration newusers = YamlConfiguration.loadConfiguration(newuserdata);
return newusers;
}
@EventHandler
public void on(PlayerJoinEvent e)
{
uyaml.load(e.getPlayer().getName());
}
}
ServerBridge plugin | Class: UsersYAML.java
PHP:
private ServerBridge plugin;
public UsersYAML(ServerBridge plugin)
{
this.plugin = plugin;
}
public void load(String name)
{
plugin.userdata = new File("plugins" + File.separator + "ServerBridge" + File.separator + "userdata" + File.separator + name + ".yml");
plugin.users = YamlConfiguration.loadConfiguration(plugin.userdata);
if(!plugin.userdata.exists())
{
try
{
plugin.userdata.createNewFile();
} catch (IOException exc)
{
exc.printStackTrace();
}
plugin.users.set("name", name);
plugin.users.set("is-banned", false);
try
{
plugin.users.save(plugin.userdata);
} catch (IOException exc)
{
exc.printStackTrace();
}
} else return;
}
Получатель инфы из ServerBridge | Class: BanManager.java
PHP:
private ServerBridge bridge;
@EventHandler
public void on(PlayerLoginEvent e)
{
if(bridge.getPlayerInfoByName(e.getPlayer.getName()).getBoolean("is-banned"))
{
//DONT LOGIN
e.disallow();
}
}
PS: Не все копировал из кода, могут быть ошибки.
PS: Получаю разную инфу, показал пример.
PS: Прошу не писать ответы не по теме, особенно ОРАТЬ с кода. От Вашего ОРУ ничего не изменится, а если Вам что-то не нравится, приведите аргументы и посоветуйте, как лучше и почему. Ору никому не надо.
Спасибо за прочтение, заранее спасибо за помощь