Ir para conteúdo
  • 0

Registrar disable


SnowRunescape

Pergunta

Bom, dentro do OnEnable eu fiz uma chamada de outra class SwCheck.Auth(); e dentro dessa classe, caso não for verdadeiro ela desativa o plugin.. porem quando ela desativa, da esse erro aqui... aparentemente ele desliga, porem a class main ainda continua rodando, por isso da o erro...


 


Se eu botar os dados correto, ele liga sem erro nenhum, sem nenhum problema


 


ERRO:



018-04-02 14:34:09 [INFO] [SwBotIA] Disabling SwBotIA v1.0
2018-04-02 14:34:09 [SEVERE] Error occurred while enabling SwBotIA v1.0 (Is it up to date?)
org.bukkit.plugin.IllegalPluginAccessException: Plugin attempted to register task while disabled
at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.validate(CraftScheduler.java:394)
at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.runTaskTimer(CraftScheduler.java:120)
at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.scheduleSyncRepeatingTask(CraftScheduler.java:116)
at br.com.snowdev.swbotia.SwAnuncio.SwBotAnuncio(SwAnuncio.java:15)
at br.com.snowdev.swbotia.Main.onEnable(Main.java:40)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:382)
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugin(CraftServer.java:284)
at org.bukkit.craftbukkit.v1_5_R3.CraftServer.enablePlugins(CraftServer.java:266)
at net.minecraft.server.v1_5_R3.MinecraftServer.j(MinecraftServer.java:310)
at net.minecraft.server.v1_5_R3.MinecraftServer.e(MinecraftServer.java:289)
at net.minecraft.server.v1_5_R3.MinecraftServer.a(MinecraftServer.java:249)
at net.minecraft.server.v1_5_R3.DedicatedServer.init(DedicatedServer.java:158)
at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:388)
at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Tem algum problema de usar isso aqui?

if(getServer().getPluginManager().isPluginEnabled(this)){
    //CODIGO QUE É PRA EXECUTAR SE O PLUGIN ESTIVER LIGADO
}

tipo.. funcionou ok.. se isso ai em cima der algum problema, eu mudo pra boolean a classe la...

 

Problema não. Só que todo o código seguinte do onEnable vai estar dentro deste bloco. Vai de cada um.

Link para o comentário
Compartilhar em outros sites

  • 0

 

Coloca isso na Main

private static Main instance;
public static Main getInstace() {
    return instance;
}
@Override
public void onEnable() {
    instance = this;
}

Na outra Class

Bukkit.getPluginManager().disablePlugin(Main.getInstace());

 

da o mesmo problema :/

 

tipo, se você reparar ali, aparentemente o plugin foi desligado... mas ao mesmo tempo não foi kk, muito doido isso

 

 

@EDIT

 

Eu fiz um gato aqui kk, depois do SwAutenticador.SwAuthenticator();, eu coloquei isso aqui

if(getServer().getPluginManager().isPluginEnabled(this)){
    //CODIGO QUE É PRA EXECUTAR SE O PLUGIN ESTIVER LIGADO
}

não sei se é muito recomendado isso, mas botei ai kk, e no /pl o plugin esta desligado

 

o erro no console sumiu, to no lucro kk

Editado por SnowRunescape
Link para o comentário
Compartilhar em outros sites

  • 0

Faz assim:

// Supondo que seu método Auth retorne um boolean
if(FwCheck.Auth()) {
    // Deu certo, faz os paranauê
}else{
    
    Bukkit.getServer().getPluginManager().disablePlugin(this);

}
Link para o comentário
Compartilhar em outros sites

  • 0

 

Faz assim:

// Supondo que seu método Auth retorne um boolean
if(FwCheck.Auth()) {
    // Deu certo, faz os paranauê
}else{
    
    Bukkit.getServer().getPluginManager().disablePlugin(this);

}

Faria do mesmo jeito. A parte da classe main continuar executando era só retornar o onEnable, ex:

// no onEnable
if (!(SwCheck.Auth())) {
    setEnabled(false);
    getLogger().severe("*** Nao foi possivel autenticar ***");
    return;
}
Link para o comentário
Compartilhar em outros sites

  • 0

Tem algum problema de usar isso aqui?

if(getServer().getPluginManager().isPluginEnabled(this)){
    //CODIGO QUE É PRA EXECUTAR SE O PLUGIN ESTIVER LIGADO
}

tipo.. funcionou ok.. se isso ai em cima der algum problema, eu mudo pra boolean a classe la...

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...