Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Что с загрузкой плагина

Статус
Закрыто для дальнейших ответов.

quateris?

Активный участник
Пользователь
Баллы
66
Код:
[20:17:50 ERROR]: Error occurred while enabling bebranator v0.1 (Is it up to date?)
org.bukkit.plugin.IllegalPluginAccessException: java.lang.NullPointerException
        at org.bukkit.plugin.SimplePluginManager.getEventListeners(SimplePluginManager.java:688) ~[patched_1.16.5.jar:git-Paper-505]
        at org.bukkit.plugin.SimplePluginManager.registerEvents(SimplePluginManager.java:640) ~[patched_1.16.5.jar:git-Paper-505]
        at org.ttt.bbbb.Main.A(Main.java:36) ~[?:?]
        at org.ttt.bbbb.Main.onEnable(Main.java:26) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.5.jar:git-Paper-505]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:380) ~[patched_1.16.5.jar:git-Paper-505]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:483) ~[patched_1.16.5.jar:git-Paper-505]
        at redempt.plugwoman.PlugWoman.loadPlugin(PlugWoman.java:177) ~[?:?]
        at redempt.plugwoman.PlugWoman.reloadPlugins(PlugWoman.java:249) ~[?:?]
        at redempt.plugwoman.CommandListener.reload(CommandListener.java:100) ~[?:?]
        at redempt.plugwoman.CommandListener.reload(CommandListener.java:95) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_341]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_341]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_341]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_341]
        at redempt.redlib.libs.redempt.redlib.commandmanager.Command.runHook(Command.java:799) ~[?:?]
        at redempt.redlib.libs.redempt.redlib.commandmanager.Command.execute(Command.java:697) ~[?:?]
        at redempt.redlib.libs.redempt.redlib.commandmanager.Command.execute(Command.java:709) ~[?:?]
        at redempt.redlib.libs.redempt.redlib.commandmanager.Command$1.execute(Command.java:444) ~[?:?]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.16.5.jar:git-Paper-505]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:810) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.PlayerConnection.handleCommand(PlayerConnection.java:2028) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.PlayerConnection.c(PlayerConnection.java:1838) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1791) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:23) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1138) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1131) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1092) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1006) ~[patched_1.16.5.jar:git-Paper-505]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:175) ~[patched_1.16.5.jar:git-Paper-505]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_341]
Уже пытался решать, не получилось
 
Показывай класс события и то, как ты его вызываешь
 
вызов идёт в функции, через simplepluginmanager

первый класс (проверка):
Код:
public class MainListener implements Listener{
   
    @EventHandler
    public void onDamageByEntity(BossReceiveDamageByEntityEvent event) {
        Main.a().getServer().broadcastMessage("ggg");
    }
}

второй класс
Код:
public class BossDamageListener implements Listener {
   
    @EventHandler
    public void onDamage(EntityDamageByEntityEvent event) {
        if(!(event.getEntity() instanceof Snowman)) return;
        if(!event.getEntity().getPersistentDataContainer().has(Utils.a("boss"), PersistentDataType.INTEGER)) return;
        if(event.getDamager().isDead()) return;
       
        BossReceiveDamageByEntityEvent ev = new BossReceiveDamageByEntityEvent((Snowman)event.getEntity(), (LivingEntity) event.getDamager(), event.getCause(), event.getDamage());
        Main.a().getServer().getPluginManager().callEvent(ev);
    }
}
 
вызов идёт в функции, через simplepluginmanager

первый класс (проверка):
Код:
public class MainListener implements Listener{
 
    @EventHandler
    public void onDamageByEntity(BossReceiveDamageByEntityEvent event) {
        Main.a().getServer().broadcastMessage("ggg");
    }
}

второй класс
Код:
public class BossDamageListener implements Listener {
 
    @EventHandler
    public void onDamage(EntityDamageByEntityEvent event) {
        if(!(event.getEntity() instanceof Snowman)) return;
        if(!event.getEntity().getPersistentDataContainer().has(Utils.a("boss"), PersistentDataType.INTEGER)) return;
        if(event.getDamager().isDead()) return;
    
        BossReceiveDamageByEntityEvent ev = new BossReceiveDamageByEntityEvent((Snowman)event.getEntity(), (LivingEntity) event.getDamager(), event.getCause(), event.getDamage());
        Main.a().getServer().getPluginManager().callEvent(ev);
    }
}
А содержимое BossReceiveDamageByEntityEvent.java?
 
bossreceivedamagebyentity
Код:
public class BossReceiveDamageByEntityEvent extends BossReceiveDamageEvent {
    private LivingEntity damager;
   
    public BossReceiveDamageByEntityEvent(Snowman snowman, LivingEntity damager, EntityDamageEvent.DamageCause cause, double last) {
        super(snowman, cause, last);
        this.damager = damager;
    }
   
    public LivingEntity getDamager() {
        return damager;
    }
}
bossreceivedamage
Код:
public class BossReceiveDamageEvent extends BossEvent {
    private DamageCause cause;
   
    private double lastDamage;
   
    public BossReceiveDamageEvent(Snowman snowman, EntityDamageEvent.DamageCause cause, double last) {
        super(snowman);
        this.cause = cause;
        this.lastDamage = last;
    }
   
    public EntityDamageEvent.DamageCause getCause() {
        return this.cause;
    }
   
    public void setCause(EntityDamageEvent.DamageCause cause) {
        this.cause = cause;
    }
   
    public double getLastDamage() {
        return this.lastDamage;
    }
}
bossevent
Код:
public class BossEvent extends Event implements Cancellable {
    private static final HandlerList HANDLERS = new HandlerList();
   
    private Snowman man;
   
    private boolean cancel = false;
   
    public BossEvent(Snowman snowman) {
        this.man = snowman;
    }
    @Override
    public HandlerList getHandlers() {
        return HANDLERS;
    }
   
    public HandlerList getHandlerList() {
        return HANDLERS;
    }
   
    public Snowman getBossEntity() {
        return man;
    }
   
    public void setBossEntity(Snowman man) {
        this.man = man;
    }
   
    public void kill() {
        man.setHealth(0.0d);
    }
    @Override
    public boolean isCancelled() {
        return this.cancel;
    }
    @Override
    public void setCancelled(boolean cancel) {
        this.cancel    = cancel;
    }
}
 
bossreceivedamagebyentity
Код:
public class BossReceiveDamageByEntityEvent extends BossReceiveDamageEvent {
    private LivingEntity damager;
 
    public BossReceiveDamageByEntityEvent(Snowman snowman, LivingEntity damager, EntityDamageEvent.DamageCause cause, double last) {
        super(snowman, cause, last);
        this.damager = damager;
    }
 
    public LivingEntity getDamager() {
        return damager;
    }
}
bossreceivedamage
Код:
public class BossReceiveDamageEvent extends BossEvent {
    private DamageCause cause;
 
    private double lastDamage;
 
    public BossReceiveDamageEvent(Snowman snowman, EntityDamageEvent.DamageCause cause, double last) {
        super(snowman);
        this.cause = cause;
        this.lastDamage = last;
    }
 
    public EntityDamageEvent.DamageCause getCause() {
        return this.cause;
    }
 
    public void setCause(EntityDamageEvent.DamageCause cause) {
        this.cause = cause;
    }
 
    public double getLastDamage() {
        return this.lastDamage;
    }
}
bossevent
Код:
public class BossEvent extends Event implements Cancellable {
    private static final HandlerList HANDLERS = new HandlerList();
 
    private Snowman man;
 
    private boolean cancel = false;
 
    public BossEvent(Snowman snowman) {
        this.man = snowman;
    }
    @Override
    public HandlerList getHandlers() {
        return HANDLERS;
    }
 
    public HandlerList getHandlerList() {
        return HANDLERS;
    }
 
    public Snowman getBossEntity() {
        return man;
    }
 
    public void setBossEntity(Snowman man) {
        this.man = man;
    }
 
    public void kill() {
        man.setHealth(0.0d);
    }
    @Override
    public boolean isCancelled() {
        return this.cancel;
    }
    @Override
    public void setCancelled(boolean cancel) {
        this.cancel    = cancel;
    }
}
Как минимум необходимо перенести handler list в конкретную реализацию события, иначе ты будешь слушателем BossReceiveDamageByEntityEvent отлавливать любое другое событие, которое наследует BossEvent. Но вряд ли именно это является причиной исключения.

Убедись, что установлена последняя версия ядра. Если это так, а ошибка по-прежнему возникает - попробуй избавиться от абстракции.

Визуально пока не понял, в чём конкретно проблема у тебя. Но судя по стеку будто бы проблема с handler list'ом будто бы
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.

Поделиться этой страницей

Назад
Верх