ServerPlugin Eigene WorldGuard flags

Dieses Thema im Forum "Programmierung" wurde erstellt von MineHarry, 18. Mai 2013.

  1. MineHarry
    Offline

    MineHarry

    Registriert seit:
    15. September 2012
    Beiträge:
    35
    Minecraft:
    MineHarry01
    Hallo,
    ich versuche verzweifelt eigene Flags für WorldGuard zu erstellen.
    Dazu verwende ich das Plugin WGCustomFlags.
    Die Erste Flag funktioniert einwandfrei, jedoch gibt er einen Error bei dem erstellen der 2. Flag aus.
    Der Fehler:
    Code (Text):
    1. java.lang.NullPointerException
    2.     at com.mewin.WGCustomFlags.WGCustomFlagsPlugin.getSaveHandler(WGCustomFlagsPlugin.java:286)
    3.     at com.mewin.WGCustomFlags.WGCustomFlagsPlugin.loadFlagsForWorld(WGCustomFlagsPlugin.java:184)
    4.     at com.mewin.WGCustomFlags.WGCustomFlagsPlugin.loadAllWorlds(WGCustomFlagsPlugin.java:173)
    5.     at com.mewin.WGCustomFlags.WGCustomFlagsPlugin.addCustomFlag(WGCustomFlagsPlugin.java:245)
    6.     at de.mccrafting.JumpBlock.JumpBlock.onEnable(JumpBlock.java:281)
    7.     at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
    8.     at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
    9.     at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:383)
    10.     at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugin(CraftServer.java:306)
    11.     at org.bukkit.craftbukkit.v1_5_R3.CraftServer.enablePlugins(CraftServer.java:288)
    12.     at org.bukkit.craftbukkit.v1_5_R3.CraftServer.reload(CraftServer.java:631)
    13.     at org.bukkit.Bukkit.reload(Bukkit.java:185)
    14.     at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25)
    15.     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
    16.     at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:547)
    17.     at net.minecraft.server.v1_5_R3.PlayerConnection.handleCommand(PlayerConnection.java:979)
    18.     at net.minecraft.server.v1_5_R3.PlayerConnection.chat(PlayerConnection.java:895)
    19.     at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java:840)
    20.     at net.minecraft.server.v1_5_R3.Packet3Chat.handle(Packet3Chat.java:44)
    21.     at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:186)
    22.     at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java:109)
    23.     at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35)
    24.     at org.spigotmc.MultiplexingServerConnection.b(MultiplexingServerConnection.java:72)
    25.     at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:583)
    26.     at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:224)
    27.     at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:472)
    28.     at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:404)
    29.     at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
    Beide Flags werden jedoch identisch erstellt bzw registriert.
    Code-Ausschnitte die Relevant für Flag1 sind:
    Code (Text):
    1.     public static StateFlag JUMPBLOCK = new StateFlag("jumpblock", true);
    2.     private WGCustomFlagsPlugin getWGCustomFlags()
    3.     {
    4.       Plugin plugin = getServer().getPluginManager().getPlugin("WGCustomFlags");
    5.      
    6.       if (plugin == null || !(plugin instanceof WGCustomFlagsPlugin))
    7.       {
    8.         return null;
    9.       }
    10.       return (WGCustomFlagsPlugin) plugin;
    11.     }
    12.         ApplicableRegionSet set = regionManager.getApplicableRegions(pt);
    13.         if (set.allows(JUMPBLOCK)) {
    14.             BLA...
    15.         }
    16.  
    17.  
    Für Flag 2 kommt folgendes hinzu:

    Code (Text):
    1.     public static StateFlag INV_LOCK = new StateFlag("inv_lock", false);
    2. ApplicableRegionSet set = regionManager.getApplicableRegions(pt);
    3.         if (set.allows(INV_LOCK)) {
    4.             BLA...
    5.         }
    6.  
    Der Eigentliche Proplem-Teil:
    Code (Text):
    1.             WGCustomFlags.addCustomFlag(JUMPBLOCK);
    2.             WGCustomFlags.addCustomFlag(INV_LOCK);
    Der Flag jumpblock wird fehlerfrei genommen und funktioniert auch wunderbar inGame.
    Der Ganze onEnable Block:
    Code (Text):
    1.     public void onEnable(){
    2.         WGCustomFlagsPlugin WGCustomFlags = getWGCustomFlags();
    3.         if(WGCustomFlags == null || !(WGCustomFlags instanceof WGCustomFlagsPlugin)) {
    4.             log.warning("Fehler beim laden von WGCustomFlags Plugin: Nicht gefunden!");
    5.             getServer().getPluginManager().disablePlugin(this);
    6.             return;
    7.         }
    8.         if(!(WGCustomFlags.isEnabled())) {
    9.         log.warning("WGCustomFlags ist nicht aktiviert!");
    10.         return;
    11.         }
    12.         registerEvents();
    13.         WGCustomFlags.addCustomFlag(JUMPBLOCK);
    14.         WGCustomFlags.addCustomFlag(INV_LOCK);
    15.         log.info("BLA");
    16.     }
    Ich finde einfach nicht das proplem...
    Ich wäre sehr dankbar für eure Hilfe!
     
    #1
  2. TimBone
    Online

    TimBone

    Du bekommst eine NPE. Du überprüfst an einer Stelle plugin==nullund gibstnull zurück. Eventuell wird das Plugin CustomFlags nicht geladen? Hast du es in die Softdepends eingetragen?
     
    #2
  3. MineHarry
    Offline

    MineHarry

    Registriert seit:
    15. September 2012
    Beiträge:
    35
    Minecraft:
    MineHarry01
    Hi,
    Es ist zwar nicht in den Soft-Depends eingetragen, jedoch wird es geladen, da ja sonst der erste flag (JumpBlock) nicht geladen werden könnte.
    Du bemängelst, dass ich null zurück geben, falls das plugin nicht geladen werden kann, Hast du eine bessere Idee?
    Und da ich dann vor dem setzen der Flag nochmal auf null prüfe, ist es doch eigentlich egal, oder?
    Srry falls das ein dämlicher fehler ist, ich bin konnte Java noch nie leiden und hab beschlossen einfach mal einen crash-kurs zumachen.
     
    #3
  4. Nexus15
    Offline

    Nexus15

    Registriert seit:
    30. September 2012
    Beiträge:
    91
    Warum benutzt du nicht gleich die WorldGuardAPI? sondern so ein Plugin?
     
    #4
  5. MineHarry
    Offline

    MineHarry

    Registriert seit:
    15. September 2012
    Beiträge:
    35
    Minecraft:
    MineHarry01
    Das hat den einfachen grund, dass ich nicht gefunden habe wie ich das mit der API machen kann. Und auf der suche bei google danach kahm ich immerwieder auf beiträge die behaupteten dass das nicht so einfach ginge. Wenn du eine Idee hast wo ich das nachlesen kann, würde ich es sofort auf die API umstellen.
     
    #5