- Баллы
- 66
- Имя в Minecraft
- EstrangedFury
Помогите, пожалуйста. Ошибка в названии.
Код, вызывающий ошибки, (исходя из stacktrace): https://pastebin.com/HZtckzmW
Код, вызывающий ошибки, (исходя из stacktrace): https://pastebin.com/HZtckzmW
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Можно пример? Приблизительно понял, но не до конца, спасибо.)Нельзя открывать игроку инвентарь при событиях InventoryOpenEvent и InventoryCloseEvent, используй Scheduler#runTask чтобы вызывать это сразу после обработки события.
Можно пример? Приблизительно понял, но не до конца, спасибо.)
Bukkit.getScheduler().runTask(plugin, () -> {
player.openInventory(inventory);
});
Благодарю, сейчас поправлю. Если поможет, то закрою тему.Код:Bukkit.getScheduler().runTask(plugin, () -> { player.openInventory(inventory); });
Откуда ты вызываешь openPINRegistration(Player player) ?Благодарю, сейчас поправлю. Если поможет, то закрою тему.
Из этого же класса.Откуда ты вызываешь openPINRegistration(Player player) ?
Теперь ошибка plugin can't be null. Если что, переменная есть, и она нормально используется в других методах этого класса.Откуда ты вызываешь openPINRegistration(Player player) ?
Скинь стак трейс ошибкиТеперь ошибка plugin can't be null. Если что, переменная есть, и она нормально используется в других методах этого класса.
Сейчас.Скинь стак трейс ошибки
Скинь стак трейс ошибки
[18:06:12] [Server thread/ERROR]: Could not pass event InventoryCloseEvent to PINAuth v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[core.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[core.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [core.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [core.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.handleInventoryCloseEvent(CraftEventFactory.java:852) [core.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1411) [core.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInCloseWindow.a(PacketPlayInCloseWindow.java:18) [core.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInCloseWindow.a(PacketPlayInCloseWindow.java:1) [core.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [core.jar:git-Spigot-db6de12-18fbb24]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_211]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_211]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [core.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [core.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [core.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [core.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [core.jar:git-Spigot-db6de12-18fbb24]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]
Caused by: java.lang.IllegalArgumentException: Plugin cannot be null
at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[core.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.validate(CraftScheduler.java:397) ~[core.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.runTaskTimer(CraftScheduler.java:123) ~[core.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.runTaskLater(CraftScheduler.java:106) ~[core.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.runTask(CraftScheduler.java:89) ~[core.jar:git-Spigot-db6de12-18fbb24]
at ru.sintezgames.pinauth.InventoryManager.onClose(InventoryManager.java:139) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_211]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_211]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_211]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_211]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[core.jar:git-Spigot-db6de12-18fbb24]
... 16 more
Caused by: java.lang.IllegalArgumentException: Plugin cannot be nullКод:[18:06:12] [Server thread/ERROR]: Could not pass event InventoryCloseEvent to PINAuth v1.0 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[core.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[core.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [core.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [core.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.handleInventoryCloseEvent(CraftEventFactory.java:852) [core.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1411) [core.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInCloseWindow.a(PacketPlayInCloseWindow.java:18) [core.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInCloseWindow.a(PacketPlayInCloseWindow.java:1) [core.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [core.jar:git-Spigot-db6de12-18fbb24] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_211] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_211] at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [core.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [core.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [core.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [core.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [core.jar:git-Spigot-db6de12-18fbb24] at java.lang.Thread.run(Unknown Source) [?:1.8.0_211] Caused by: java.lang.IllegalArgumentException: Plugin cannot be null at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[core.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.validate(CraftScheduler.java:397) ~[core.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.runTaskTimer(CraftScheduler.java:123) ~[core.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.runTaskLater(CraftScheduler.java:106) ~[core.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.runTask(CraftScheduler.java:89) ~[core.jar:git-Spigot-db6de12-18fbb24] at ru.sintezgames.pinauth.InventoryManager.onClose(InventoryManager.java:139) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_211] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_211] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_211] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_211] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[core.jar:git-Spigot-db6de12-18fbb24] ... 16 more
Caused by: java.lang.IllegalArgumentException: Plugin cannot be null
Ты должен туда кинуть свой плагин (обьект класса который наследует JavaPlugin)
Caused by: java.lang.IllegalArgumentException: Plugin cannot be null
Ты должен туда кинуть свой плагин (обьект класса который наследует JavaPlugin)
/*Bukkit.getScheduler().runTask(plugin, () -> { Строка с ошибкой (Она находится в классе InventoryManager.java)*/
// MainClass.java
private static MainClass instance;
@Override
public void onEnable() {
instance = this;
}
public static MainClass getPlugin() {
return plugin;
}
// InventoryManager.java
private MainClass plugin = MainClass.getPlugin();
И нахрена тебе две одинаковых переменных интсенс и плагин? Да и плагин у тебя будет инициализрован в нуль. Короче иди зубри порядок инициализации переменных в жавеКод:/*Bukkit.getScheduler().runTask(plugin, () -> { Строка с ошибкой (Она находится в классе InventoryManager.java)*/ // MainClass.java private static MainClass instance; @Override public void onEnable() { instance = this; } public static MainClass getPlugin() { return plugin; } // InventoryManager.java private MainClass plugin = MainClass.getPlugin();
MainClass getPlugin()
При чем тут это если он вызывает инстанс своего класса а не плуга?И нахрена тебе две одинаковых переменных интсенс и плагин? Да и плагин у тебя будет инициализрован в нуль. Короче иди зубри порядок инициализации переменных в жаве
public static Plugin getPlugin() {
return plugin;
}
Тут логика нарушена.Код:/*Bukkit.getScheduler().runTask(plugin, () -> { Строка с ошибкой (Она находится в классе InventoryManager.java)*/ // MainClass.java private static MainClass instance; @Override public void onEnable() { instance = this; } public static MainClass getPlugin() { return plugin; } // InventoryManager.java private MainClass plugin = MainClass.getPlugin();
Тут логика нарушена.
Сначала создается MainClass обьект а потом вызывается onEnable(), потому сначала вызывается:
MainClass plugin = MainClass.getPlugin();
а потом уже:
instance = this;
И да, тебе нет смысла создавать две ссылки на свой плагин. Ты либо сделай один instance статический, который хоть через метод, хоть напрямую будешь брать, либо делай по человечески и передавай this во все зависимые классы еще на этапе onEnable()
Че за хрень ты написал?При чем тут это если он вызывает инстанс своего класса а не плуга?
PHP:public static Plugin getPlugin() { return plugin; }
Можно пример, пожалуйста? :3
public class MyPlugin extends JavaPlugin {
public void onEnable() {
new Manager(this);
}
}
public class Manager {
private MyPlugin plugin;
public Manager(MyPlugin plugin) {
this.plugin = plugin;
// this.plugin.getAnotherManager()...... - взаемодействие с другими "модулями" плагина
}
}