2014-11-16 2 views
-2

새로운 플러그인을 작업하고 있는데,로드 할 때 "NullPointerException"오류가 발생하고 오류를 찾을 수있는 곳을 찾지 못하는 것 같습니다. 예외는 당신의 EntityManager.java 파일의 라인 296 던져Bukkit NullPointerException onEnable()

[20:15:45] [Server thread/INFO]: [EntityManager] Enabling EntityManager v3.0.0.4 [20:15:45] [Server thread/INFO]: [0;31;1mEntityManager [0;32;1m3.0.0.4[0;36;1m Enabled![m [20:15:45] [Server thread/ERROR]: Error occurred while enabling EntityManager v3.0.0.4 (Is it up to date?) java.lang.NullPointerException at me.AngryCupcake274.EntityManager.EntityManager.loadConfiguration(EntityManager.java:296) ~[?:?] at me.AngryCupcake274.EntityManager.EntityManager.onEnable(EntityManager.java:63) ~[?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:316) ~[spigot.jar:git-Spigot-1649] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332) [spigot.jar:git-Spigot-1649] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:417) [spigot.jar:git-Spigot-1649] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugin(CraftServer.java:476) [spigot.jar:git-Spigot-1649] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.enablePlugins(CraftServer.java:394) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.MinecraftServer.n(MinecraftServer.java:360) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.MinecraftServer.g(MinecraftServer.java:334) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.MinecraftServer.a(MinecraftServer.java:290) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.DedicatedServer.init(DedicatedServer.java:210) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:458) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-Spigot-1649]

package me.AngryCupcake274.EntityManager; 

import org.bukkit.Bukkit; 
import org.bukkit.ChatColor; 
import org.bukkit.Server; 
import org.bukkit.command.ConsoleCommandSender; 
import org.bukkit.entity.*; 
import org.bukkit.event.Listener; 
import org.bukkit.plugin.PluginDescriptionFile; 
import org.bukkit.plugin.java.JavaPlugin; 
import org.bukkit.scheduler.BukkitScheduler; 

public class EntityManager extends JavaPlugin implements Listener { 

RemoveEntities reme; 
CommandHandler comh; 
CleanEntities cent; 

int loopdelay; 
String oneminutemessage; 
String oneminutecolor; 
String threesecondsmessage; 
String threesecondscolor; 
String twosecondsmessage; 
String twosecondscolor; 
String onesecondmessage; 
String onesecondcolor; 
String finalmessage; 
String finalcolor; 

String oneMinWarn; 

String threeSecWarn; 

String twoSecWarn; 

String oneSecWarn; 

String removeInfo; 

String[] worldNames; 
Server server = Bukkit.getServer(); 
ConsoleCommandSender console = server.getConsoleSender(); 
PluginDescriptionFile pdf = this.getDescription(); 
String pdfEnable = ChatColor.RED + pdf.getName() + " " + ChatColor.GREEN 
     + pdf.getVersion() + ChatColor.AQUA + " Enabled!"; 
String pdfDisable = ChatColor.RED + pdf.getName() + " " + ChatColor.GREEN 
     + pdf.getVersion() + ChatColor.DARK_PURPLE + " Enabled!"; 

Player cleaner; 

int counter = 0; 
int totalcounter = 0; 

@Override 
public void onEnable() { 

    console.sendMessage(pdfEnable); 

    BukkitScheduler scheduler = Bukkit.getServer().getScheduler(); 
    saveDefaultConfig(); 

    loadConfiguration(); 

    scheduler.scheduleSyncRepeatingTask(this, new Runnable() { 
     @Override 
     public void run() { 
      for (int first = 0; first >= 1; first++) { 
       cleanUp(); 
      } 
     } 
    }, 0L, 12000L); 
} 

@Override 
public void onDisable() { 
    console.sendMessage(pdfDisable); 
} 

@SuppressWarnings("deprecation") 
public void cleanUp() { 
    // warn 
    for (Player player : Bukkit.getOnlinePlayers()) { 
     player.sendMessage(oneMinWarn); 
    } 
    console.sendMessage(oneMinWarn); 

    BukkitScheduler warn3 = Bukkit.getServer().getScheduler(); 
    warn3.scheduleSyncDelayedTask(this, new Runnable() { 
     @Override 
     public void run() { 
      for (Player player : Bukkit.getOnlinePlayers()) { 
       player.sendMessage(threeSecWarn); 
      } 
      console.sendMessage(threeSecWarn); 
     } 
    }, 1220L); 

    BukkitScheduler warn2 = Bukkit.getServer().getScheduler(); 
    warn2.scheduleSyncDelayedTask(this, new Runnable() { 
     @Override 
     public void run() { 
      for (Player player : Bukkit.getOnlinePlayers()) { 
       player.sendMessage(twoSecWarn); 
      } 
      console.sendMessage(twoSecWarn); 
     } 
    }, 1240L); 

    BukkitScheduler warn1 = Bukkit.getServer().getScheduler(); 
    warn1.scheduleSyncDelayedTask(this, new Runnable() { 
     @Override 
     public void run() { 
      for (Player player : Bukkit.getOnlinePlayers()) { 
       player.sendMessage(oneSecWarn); 
      } 
      console.sendMessage(oneSecWarn); 
     } 
    }, 1260L); 

    BukkitScheduler doAction = Bukkit.getServer().getScheduler(); 
    doAction.scheduleSyncDelayedTask(this, new Runnable() { 
     @Override 
     public void run() { 
      reme.removeEntities(); 
     } 
    }, 1280L); 
} 

@SuppressWarnings("deprecation") 
public void cleanUpCommand() { 
    // warn 
    for (Player player : Bukkit.getOnlinePlayers()) { 
     player.sendMessage(threeSecWarn); 
    } 
    console.sendMessage(threeSecWarn); 

    BukkitScheduler warn2c = Bukkit.getServer().getScheduler(); 
    warn2c.scheduleSyncDelayedTask(this, new Runnable() { 
     @Override 
     public void run() { 
      for (Player player : Bukkit.getOnlinePlayers()) { 
       player.sendMessage(twoSecWarn); 
      } 
      console.sendMessage(twoSecWarn); 
     } 
    }, 20L); 

    BukkitScheduler warn1c = Bukkit.getServer().getScheduler(); 
    warn1c.scheduleSyncDelayedTask(this, new Runnable() { 
     @Override 
     public void run() { 
      for (Player player : Bukkit.getOnlinePlayers()) { 
       player.sendMessage(oneSecWarn); 
      } 
      console.sendMessage(oneSecWarn); 
     } 
    }, 40L); 

    BukkitScheduler doAction = Bukkit.getServer().getScheduler(); 
    doAction.scheduleSyncDelayedTask(this, new Runnable() { 
     @Override 
     public void run() { 

      for (Player player : Bukkit.getOnlinePlayers()) { 
       player.sendMessage(removeInfo); 
      } 
      console.sendMessage(removeInfo); 
     } 
    }, 60L); 
} 

public void cleanUpCommand2() { 
    BukkitScheduler doAction = Bukkit.getServer().getScheduler(); 
    doAction.scheduleSyncDelayedTask(this, new Runnable() { 
     @Override 
     public void run() { 
      reme.removeEntities(); 
     } 
    }, 0L); 
} 

public void loadConfiguration() { 
    String ltime = "looptime"; 
    String onemmsg = "oneminute.message"; 
    String onemcolor = "oneminute.color"; 
    String threesmsg = "threeseconds.message"; 
    String threescolor = "threeseconds.color"; 
    String twosmsg = "twoseconds.message"; 
    String twoscolor = "twoseconds.color"; 
    String onesmsg = "onesecond.message"; 
    String onescolor = "onesecond.color"; 
    String fmsg = "final.message"; 
    String fcolor = "final.color"; 

    String arrowr = "arrow"; 
    String boatr = "boat"; 
    String itemr = "dropped_item"; 
    String eggr = "egg"; 
    String enderdragonr = "ender_dragon"; 
    String enderpearlr = "ender_pearl"; 
    String endersignalr = "ender_signal"; 
    String xporbr = "experience_orb"; 
    String fireballr = "fireball"; 
    String fireworkr = "firework"; 
    String fishinghookr = "fishing_hook"; 
    String itemframer = "item_frame"; 
    String leashr = "leash_hitch"; 
    String lightningr = "lightning"; 
    String minecartr = "minecart"; 
    String minecartchestr = "minecart_chest"; 
    String minecartcommandr = "minecart_command"; 
    String minecartfurnacer = "minecart_furnace"; 
    String minecarthopperr = "minecart_hopper"; 
    String minecartmobspawnerr = "minecart_mob_spawner"; 
    String minecarttntr = "minecart_tnt"; 
    String paintingr = "painting"; 
    String primedtntr = "primed_tnt"; 
    String sfireballr = "small_fireball"; 
    String snowballr = "snowball"; 
    String splashpotionr = "splash_potion"; 
    String expbottler = "exp_bottle"; 
    String thrownxpbottler = "thrown_exp_bottle"; 
    String witherskullr = "wither_skull"; 

    getConfig().addDefault(ltime, (10 * 60 * 20)); 
    getConfig().addDefault(onemmsg, 
      "Ground items will be removed in 1 minute!"); 
    getConfig().addDefault(onemcolor, "AQUA"); 
    getConfig().addDefault(threesmsg, 
      "Ground items will be removed in 3 seconds!"); 
    getConfig().addDefault(threescolor, "DARK_GREEN"); 
    getConfig().addDefault(twosmsg, "2 seconds!"); 
    getConfig().addDefault(twoscolor, "GOLD"); 
    getConfig().addDefault(onesmsg, "1 second!"); 
    getConfig().addDefault(onescolor, "RED"); 
    getConfig().addDefault(fmsg, "Ground items will be removed!"); 
    getConfig().addDefault(fcolor, "DARK_RED"); 

    getConfig().addDefault(arrowr, true); 
    getConfig().addDefault(boatr, false); 
    getConfig().addDefault(itemr, true); 
    getConfig().addDefault(eggr, true); 
    getConfig().addDefault(enderdragonr, false); 
    getConfig().addDefault(enderpearlr, true); 
    getConfig().addDefault(endersignalr, true); 
    getConfig().addDefault(xporbr, true); 
    getConfig().addDefault(fireballr, true); 
    getConfig().addDefault(fireworkr, true); 
    getConfig().addDefault(fishinghookr, false); 
    getConfig().addDefault(itemframer, false); 
    getConfig().addDefault(leashr, false); 
    getConfig().addDefault(lightningr, true); 
    getConfig().addDefault(minecartr, false); 
    getConfig().addDefault(minecartchestr, false); 
    getConfig().addDefault(minecartcommandr, false); 
    getConfig().addDefault(minecartfurnacer, false); 
    getConfig().addDefault(minecarthopperr, false); 
    getConfig().addDefault(minecartmobspawnerr, false); 
    getConfig().addDefault(minecarttntr, false); 
    getConfig().addDefault(paintingr, false); 
    getConfig().addDefault(primedtntr, true); 
    getConfig().addDefault(sfireballr, true); 
    getConfig().addDefault(snowballr, true); 
    getConfig().addDefault(splashpotionr, true); 
    getConfig().addDefault(expbottler, true); 
    getConfig().addDefault(thrownxpbottler, true); 
    getConfig().addDefault(witherskullr, true); 

    getConfig().options().copyDefaults(true); 
    saveConfig(); 

    loopdelay = getConfig().getInt("looptime"); 
    oneminutemessage = getConfig().getString("oneminute.message"); 
    oneminutecolor = getConfig().getString("oneminute.color"); 
    threesecondsmessage = getConfig().getString("threeseconds.message"); 
    threesecondscolor = getConfig().getString("threeseconds.color"); 
    twosecondsmessage = getConfig().getString("twoseconds.message"); 
    twosecondscolor = getConfig().getString("twoseconds.color"); 
    onesecondmessage = getConfig().getString("onesecond.message"); 
    onesecondcolor = getConfig().getString("onesecond.color"); 
    finalmessage = getConfig().getString("final.message"); 
    finalcolor = getConfig().getString("final.color"); 

    oneMinWarn = ChatColor.valueOf(oneminutecolor) + oneminutemessage; 

    threeSecWarn = ChatColor.valueOf(threesecondscolor) 
      + threesecondsmessage; 

    twoSecWarn = ChatColor.valueOf(twosecondscolor) + twosecondsmessage; 

    oneSecWarn = ChatColor.valueOf(onesecondcolor) + onesecondmessage; 

    removeInfo = ChatColor.valueOf(finalcolor) + finalmessage; 

    reme.arrow = getConfig().getBoolean("arrow"); 
    reme.boat = getConfig().getBoolean("boat"); 
    reme.droppeditem = getConfig().getBoolean("dropped_item"); 
    reme.egg = getConfig().getBoolean("egg"); 
    reme.enderpearl = getConfig().getBoolean("ender_pearl"); 
    reme.endersignal = getConfig().getBoolean("ender_signal"); 
    reme.experienceorb = getConfig().getBoolean("experience_orb"); 
    reme.fireball = getConfig().getBoolean("fireball"); 
    reme.firework = getConfig().getBoolean("firework"); 
    reme.fishinghook = getConfig().getBoolean("fishing_hook"); 
    reme.itemframe = getConfig().getBoolean("item_frame"); 
    reme.leashhitch = getConfig().getBoolean("leash_hitch"); 
    reme.lightning = getConfig().getBoolean("lightning"); 
    reme.minecart = getConfig().getBoolean("minecart"); 
    reme.minecartchest = getConfig().getBoolean("minecart_chest"); 
    reme.minecartcommand = getConfig().getBoolean("minecart_command"); 
    reme.minecartfurnace = getConfig().getBoolean("minecart_furnace"); 
    reme.minecarthopper = getConfig().getBoolean("minecart_hopper"); 
    reme.minecartmobspawner = getConfig().getBoolean("minecart_mob_spawner"); 
    reme.minecarttnt = getConfig().getBoolean("minecart_tnt"); 
    reme.painting = getConfig().getBoolean("painting"); 
    reme.primedtnt = getConfig().getBoolean("primed_tnt"); 
    reme.smallfireball = getConfig().getBoolean("small_fireball"); 
    reme.snowball = getConfig().getBoolean("snowball"); 
    reme.splashpotion = getConfig().getBoolean("splash_potion"); 
    reme.thrownexpbottle = getConfig().getBoolean("exp_bottle"); 
    reme.witherskull = getConfig().getBoolean("wither_skull"); 

    saveDefaultConfig(); 
} 

public void reloadPlugin() { 
    reloadConfig(); 

    loopdelay = getConfig().getInt("looptime"); 
    oneminutemessage = getConfig().getString("oneminute.message"); 
    oneminutecolor = getConfig().getString("oneminute.color"); 
    threesecondsmessage = getConfig().getString("threeseconds.message"); 
    threesecondscolor = getConfig().getString("threeseconds.color"); 
    twosecondsmessage = getConfig().getString("twoseconds.message"); 
    twosecondscolor = getConfig().getString("twoseconds.color"); 
    onesecondmessage = getConfig().getString("onesecond.message"); 
    onesecondcolor = getConfig().getString("onesecond.color"); 
    finalmessage = getConfig().getString("final.message"); 
    finalcolor = getConfig().getString("final.color"); 

    reme.arrow = getConfig().getBoolean("arrow"); 
    reme.boat = getConfig().getBoolean("boat"); 
    reme.droppeditem = getConfig().getBoolean("dropped_item"); 
    reme.egg = getConfig().getBoolean("egg"); 
    reme.enderpearl = getConfig().getBoolean("ender_pearl"); 
    reme.endersignal = getConfig().getBoolean("ender_signal"); 
    reme.experienceorb = getConfig().getBoolean("experience_orb"); 
    reme.fireball = getConfig().getBoolean("fireball"); 
    reme.firework = getConfig().getBoolean("firework"); 
    reme.fishinghook = getConfig().getBoolean("fishing_hook"); 
    reme.itemframe = getConfig().getBoolean("item_frame"); 
    reme.leashhitch = getConfig().getBoolean("leash_hitch"); 
    reme.lightning = getConfig().getBoolean("lightning"); 
    reme.minecart = getConfig().getBoolean("minecart"); 
    reme.minecartchest = getConfig().getBoolean("minecart_chest"); 
    reme.minecartcommand = getConfig().getBoolean("minecart_command"); 
    reme.minecartfurnace = getConfig().getBoolean("minecart_furnace"); 
    reme.minecarthopper = getConfig().getBoolean("minecart_hopper"); 
    reme.minecartmobspawner = getConfig().getBoolean("minecart_mob_spawner"); 
    reme.minecarttnt = getConfig().getBoolean("minecart_tnt"); 
    reme.painting = getConfig().getBoolean("painting"); 
    reme.primedtnt = getConfig().getBoolean("primed_tnt"); 
    reme.smallfireball = getConfig().getBoolean("small_fireball"); 
    reme.snowball = getConfig().getBoolean("snowball"); 
    reme.splashpotion = getConfig().getBoolean("splash_potion"); 
    reme.thrownexpbottle = getConfig().getBoolean("exp_bottle"); 
    reme.witherskull = getConfig().getBoolean("wither_skull"); 

    getServer().getScheduler().cancelTasks(this); 
    getServer().getPluginManager().disablePlugin(this); 
    getServer().getPluginManager().enablePlugin(this); 
} 
} 
+0

[Null 포인터 예외 란 무엇이며 어떻게 수정합니까?] (http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how -do-i-fix-it) – Ferrybig

답변

0

내가 해냈어!

RemoveEntities 변수를 설정하는 대신 RemoveEntities 클래스에 EntityManager 클래스의 변수를 찾도록 지시했습니다.

1

me.AngryCupcake274.EntityManager.EntityManager.loadConfiguration(EntityManager.java:296)

다음은 오류입니다. 시간 reme의이 시점에서

reme.arrow = getConfig().getBoolean("arrow"); 

은 여전히 ​​null이므로 당신은 arrow를 할당 할 수 없습니다. onEnable() 메소드에서 loadConfiguration()으로 전화하면 RemoveEntitites이 이미 인스턴스화되어 있는지 확인해야합니다.

What is a NPE and how do I fix it?도 참조하십시오.

+0

그래서 내 onEnable() 메서드에서 "this.reme = reme;"를 넣을까요? – AngryCupcake274

+0

@ AngryCupcake274 아니요, 변수를 동일한 변수로 설정했습니다 (_ "변수 reme에 대한 할당은 효과가 없습니다 _"). –

+0

@Joiner "reme"변수는 어디에서 옮길 것입니까? – AngryCupcake274