Eigenes Plugin Fehler

Dieses Thema im Forum "Programmierung" wurde erstellt von MoVo99, 21. April 2013.

  1. MoVo99
    Offline

    MoVo99

    Registriert seit:
    14. Dezember 2012
    Beiträge:
    2
    Halli Hallo,

    ich habe vor einiger zeit mal angefangen mich mit Minecraft Plugins auseinanderzusetzen. Wenn ich das Plugin laden will bekomme ich einen Fehler in der Konsole ausgespuckt.
    2013-04-19 17:41:40 [INFO] Starting minecraft server version 1.5.1
    2013-04-19 17:41:40 [INFO] Loading properties
    2013-04-19 17:41:40 [INFO] Default game type: SURVIVAL
    2013-04-19 17:41:40 [INFO] Generating keypair
    2013-04-19 17:41:41 [INFO] Starting Minecraft server on *:25565
    2013-04-19 17:41:42 [INFO] This server is running CraftBukkit version git-Bukkit-1.4.7-R1.0-94-g141dcf0-b2735jnks (MC: 1.5.1) (Implementing API version 1.5.1-R0.1)
    2013-04-19 17:41:42 [SEVERE] Could not load 'plugins\eigenesplugin.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
    at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:257)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:132)
    at org.bukkit.craftbukkit.v1_5_R2.CraftServer.loadPlugins(CraftServer.java:239)
    at org.bukkit.craftbukkit.v1_5_R2.CraftServer.<init>(CraftServer.java:217)
    at net.minecraft.server.v1_5_R2.PlayerList.<init>(PlayerList.java:55)
    at net.minecraft.server.v1_5_R2.DedicatedPlayerList.<init>(SourceFile:11)
    at net.minecraft.server.v1_5_R2.DedicatedServer.init(DedicatedServer.java:105)
    at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:379)
    at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573)
    Caused by: mapping values are not allowed here
    in "<reader>", line 7, column 22:
    description: Ist ein test Befehl
    ^

    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:733)
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:305)
    at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:179)
    at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:563)
    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:161)
    at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:146)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:123)
    at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:106)
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:121)
    at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:411)
    at org.bukkit.plugin.PluginDescriptionFile.<init>(PluginDescriptionFile.java:42)
    at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:252)
    ... 8 more
    2013-04-19 17:41:42 [INFO] [test] Loading test v1.0
    2013-04-19 17:41:42 [INFO] [Jump] Loading Jump v0.4
    2013-04-19 17:41:42 [INFO] Preparing level "world"
    2013-04-19 17:41:42 [INFO] ----- Bukkit Auto Updater -----
    2013-04-19 17:41:42 [INFO] It appears that you're running a Beta Build, when you've specified in bukkit.yml that you prefer to run Recommended Builds.
    2013-04-19 17:41:42 [INFO] If you would like to be kept informed about new Beta Build releases, it is recommended that you change 'preferred-channel' in your bukkit.yml to 'beta'.
    2013-04-19 17:41:42 [INFO] With that set, you will be told whenever a new version is available for download, so that you can always keep up to date and secure with the latest fixes.
    2013-04-19 17:41:42 [INFO] If you would like to disable this warning, simply set 'suggest-channels' to false in bukkit.yml.
    2013-04-19 17:41:42 [INFO] ----- ------------------- -----
    2013-04-19 17:41:43 [INFO] Preparing start region for level 0 (Seed: 2975924930757098591)
    2013-04-19 17:41:44 [INFO] Preparing spawn area: 8%
    2013-04-19 17:41:45 [INFO] Preparing spawn area: 78%
    2013-04-19 17:41:45 [INFO] Preparing start region for level 1 (Seed: 2975924930757098591)
    2013-04-19 17:41:46 [INFO] Preparing spawn area: 49%
    2013-04-19 17:41:47 [INFO] Preparing start region for level 2 (Seed: 2975924930757098591)
    2013-04-19 17:41:47 [INFO] Preparing spawn area: 33%
    2013-04-19 17:41:47 [INFO] [test] Enabling test v1.0
    2013-04-19 17:41:47 [INFO] [Test Plugin] Plugin wurde aktiviert
    2013-04-19 17:41:47 [INFO] [Jump] Enabling Jump v0.4
    2013-04-19 17:41:47 [INFO] [Jump] Thanks for using plugin. Visit our website: http://thejungfamily.de
    2013-04-19 17:41:47 [INFO] [Jump] Command '/jump' successfully loaded!
    2013-04-19 17:41:47 [INFO] Server permissions file permissions.yml is empty, ignoring it
    2013-04-19 17:41:47 [INFO] Done (5,366s)! For help, type "help" or "?"
    2013-04-19 17:41:48 [INFO] CONSOLE: Stopping the server..
    2013-04-19 17:41:48 [INFO] Stopping server
    2013-04-19 17:41:48 [INFO] [Jump] Disabling Jump v0.4
    2013-04-19 17:41:48 [INFO] [Jump] Thanks for using plugin. Visit our website: http://thejungfamily.de
    2013-04-19 17:41:48 [INFO] [test] Disabling test v1.0
    2013-04-19 17:41:48 [INFO] [Test Plugin] Plugin wurde deaktiviert
    2013-04-19 17:41:48 [WARNING] DSCT: socket closed
    2013-04-19 17:41:48 [INFO] Closing listening thread
    2013-04-19 17:41:48 [INFO] Saving players
    2013-04-19 17:41:48 [INFO] Saving worlds
    2013-04-19 17:41:48 [INFO] Saving chunks for level 'world'/Overworld
    2013-04-19 17:41:49 [INFO] Saving chunks for level 'world_nether'/Nether
    2013-04-19 17:41:49 [INFO] Saving chunks for level 'world_the_end'/The End
    2013-04-19 17:47:44 [INFO] Starting minecraft server version 1.5.1
    2013-04-19 17:47:44 [INFO] Loading properties
    2013-04-19 17:47:44 [INFO] Default game type: SURVIVAL
    2013-04-19 17:47:44 [INFO] Generating keypair
    2013-04-19 17:47:45 [INFO] Starting Minecraft server on *:25565
    2013-04-19 17:47:46 [INFO] This server is running CraftBukkit version git-Bukkit-1.4.7-R1.0-94-g141dcf0-b2735jnks (MC: 1.5.1) (Implementing API version 1.5.1-R0.1)
    2013-04-19 17:47:47 [INFO] [test] Loading test v1.0
    2013-04-19 17:47:47 [INFO] [Jump] Loading Jump v0.4
    2013-04-19 17:47:47 [INFO] Preparing level "world"
    2013-04-19 17:47:47 [INFO] ----- Bukkit Auto Updater -----
    2013-04-19 17:47:47 [INFO] It appears that you're running a Beta Build, when you've specified in bukkit.yml that you prefer to run Recommended Builds.
    2013-04-19 17:47:47 [INFO] If you would like to be kept informed about new Beta Build releases, it is recommended that you change 'preferred-channel' in your bukkit.yml to 'beta'.
    2013-04-19 17:47:47 [INFO] With that set, you will be told whenever a new version is available for download, so that you can always keep up to date and secure with the latest fixes.
    2013-04-19 17:47:47 [INFO] If you would like to disable this warning, simply set 'suggest-channels' to false in bukkit.yml.
    2013-04-19 17:47:47 [INFO] ----- ------------------- -----
    2013-04-19 17:47:47 [INFO] Preparing start region for level 0 (Seed: 2975924930757098591)
    2013-04-19 17:47:48 [INFO] Preparing spawn area: 12%
    2013-04-19 17:47:49 [INFO] Preparing spawn area: 83%
    2013-04-19 17:47:49 [INFO] Preparing start region for level 1 (Seed: 2975924930757098591)
    2013-04-19 17:47:50 [INFO] Preparing spawn area: 49%
    2013-04-19 17:47:51 [INFO] Preparing start region for level 2 (Seed: 2975924930757098591)
    2013-04-19 17:47:51 [INFO] Preparing spawn area: 49%
    2013-04-19 17:47:51 [INFO] [test] Enabling test v1.0
    2013-04-19 17:47:51 [INFO] [Test Plugin] Plugin wurde aktiviert
    2013-04-19 17:47:51 [INFO] [Jump] Enabling Jump v0.4
    2013-04-19 17:47:51 [INFO] [Jump] Thanks for using plugin. Visit our website: http://thejungfamily.de
    2013-04-19 17:47:52 [INFO] [Jump] Command '/jump' successfully loaded!
    2013-04-19 17:47:52 [INFO] Server permissions file permissions.yml is empty, ignoring it
    2013-04-19 17:47:52 [INFO] Done (5,071s)! For help, type "help" or "?"
    2013-04-19 17:48:18 [INFO] MoVo99[/127.0.0.1:52439] logged in with entity id 239 at ([world] 143.22296997846178, 86.0, 403.55411481640726)
    2013-04-19 17:48:54 [INFO] MoVo99 issued server command: /test
    2013-04-19 17:49:19 [INFO] Connection reset
    2013-04-19 17:49:19 [INFO] MoVo99 lost connection: disconnect.quitting
    2013-04-19 17:51:01 [INFO] [Jump] Disabling Jump v0.4
    2013-04-19 17:51:01 [INFO] [Jump] Thanks for using plugin. Visit our website: http://thejungfamily.de
    2013-04-19 17:51:01 [INFO] [test] Disabling test v1.0
    2013-04-19 17:51:01 [INFO] [Test Plugin] Plugin wurde deaktiviert
    2013-04-19 17:51:01 [INFO] 229 recipes
    2013-04-19 17:51:01 [INFO] [test] Loading test v1.0
    2013-04-19 17:51:01 [INFO] [Jump] Loading Jump v0.4
    2013-04-19 17:51:01 [INFO] [test] Enabling test v1.0
    2013-04-19 17:51:01 [INFO] [Test Plugin] Plugin wurde aktiviert
    2013-04-19 17:51:01 [INFO] [Jump] Enabling Jump v0.4
    2013-04-19 17:51:01 [INFO] [Jump] Thanks for using plugin. Visit our website: http://thejungfamily.de
    2013-04-19 17:51:01 [INFO] [Jump] Command '/jump' successfully loaded!
    2013-04-19 17:51:01 [INFO] Server permissions file permissions.yml is empty, ignoring it
    2013-04-19 17:51:01 [INFO] CONSOLE: Reload complete.
    2013-04-19 17:51:15 [INFO] MoVo99[/127.0.0.1:52463] logged in with entity id 988 at ([world] 130.88855612619088, 92.0, 377.9076584993731)
    2013-04-19 17:51:19 [INFO] MoVo99 issued server command: /test
    2013-04-19 17:51:51 [INFO] Connection reset
    2013-04-19 17:51:51 [INFO] MoVo99 lost connection: disconnect.quitting
    2013-04-19 17:57:46 [INFO] [Jump] Disabling Jump v0.4
    2013-04-19 17:57:46 [INFO] [Jump] Thanks for using plugin. Visit our website: http://thejungfamily.de
    2013-04-19 17:57:46 [INFO] [test] Disabling test v1.0
    2013-04-19 17:57:46 [INFO] [Test Plugin] Plugin wurde deaktiviert
    2013-04-19 17:57:46 [INFO] 229 recipes
    2013-04-19 17:57:46 [INFO] [test] Loading test v1.0
    2013-04-19 17:57:46 [INFO] [Jump] Loading Jump v0.4
    2013-04-19 17:57:46 [INFO] [test] Enabling test v1.0
    2013-04-19 17:57:46 [INFO] [Test Plugin] Plugin wurde aktiviert
    2013-04-19 17:57:46 [INFO] [Jump] Enabling Jump v0.4
    2013-04-19 17:57:46 [INFO] [Jump] Thanks for using plugin. Visit our website: http://thejungfamily.de
    2013-04-19 17:57:46 [INFO] [Jump] Command '/jump' successfully loaded!
    2013-04-19 17:57:46 [INFO] Server permissions file permissions.yml is empty, ignoring it
    2013-04-19 17:57:46 [INFO] CONSOLE: Reload complete.
    2013-04-19 17:57:57 [INFO] MoVo99[/127.0.0.1:52530] logged in with entity id 1612 at ([world] 138.4850112035048, 90.0, 391.69261210524354)
    2013-04-19 17:58:02 [INFO] MoVo99 issued server command: /test
    2013-04-19 17:58:34 [INFO] MoVo99 issued server command: /pl
    2013-04-19 17:59:21 [INFO] MoVo99 issued server command: /cmd
    2013-04-19 17:59:26 [INFO] MoVo99 issued server command: /help
    2013-04-19 18:00:16 [INFO] MoVo99 issued server command: /test
    2013-04-19 18:01:52 [INFO] Connection reset
    2013-04-19 18:01:52 [INFO] MoVo99 lost connection: disconnect.genericReason

    Ich habe dann Die plugin.yml nochmal unter die Lupe genommen und habe auch keinen Fehler entdeckt. Das plugin.yml File beinhaltet das hier.
    name: test
    author: movo99
    main: main.erstesplugin
    version: 1.0
    commands:
    test:
    description: Testkomanndo
    usage: /<command>

    Die main ist sicher die Richtige. Das Plugin sieht so aus
    package main;

    public class erstesplugin extends JavaPlugin {
    package main;

    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;

    import com.avaje.ebean.validation.Length;

    public class erstesplugin extends JavaPlugin {

    @Override
    public void onEnable(){
    System.out.println("[Test Plugin] Plugin v." + this.getDescription().getVersion() + "wurde aktiviert");
    }

    @Override
    public void onDisable(){
    System.out.println("[Test Plugin] Plugin wurde deaktiviert");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){

    if(cmd.getName().equalsIgnoreCase("test")){

    if(sender instanceof Player){

    Player p = (Player) sender;

    if(args.length == 0){

    p.setHealth(20);

    }

    }

    else{
    System.out.println("Dieser Befehl kann nur von Spielern verwendet weden!");
    }

    }



    return true;
    }

    }


    }

    Ich hoffe ihr könnt mir helfen.

    PS Sorry falls das Thema hier deplaziert ist ich bin neu Hier
     
    #1
  2. ChunkNorris
    Online

    ChunkNorris

    Die Einrückung in der plugin.yml scheint falsch zu sein.
     
    #2
  3. Crafter213
    Offline

    Crafter213

    Registriert seit:
    9. August 2012
    Beiträge:
    353
    Änder sie mal auf folgendes:

    Code (Text):
    1.  
    2. name: test
    3. author: movo99
    4. main: main.erstesplugin
    5. version: 1.0
    6. commands:
    7.   test:
    8.     description: Testkomanndo
    9.     usage: /<command>
    10.  
    Die Enrückung zur nächsten Ebene ist immer +2Leerzeichen, keine Tabs!


    Hoffe das hilft ;)
     
    #3
  4. BattleForce
    Offline

    BattleForce

    Registriert seit:
    14. Februar 2013
    Beiträge:
    27
    Minecraft:
    X_Factor11 / BattleForceDEV
    Ich glaube zh32 hat Recht.
    Was auch sein kann, ist das du den Pfad falsch angegeben hast. Ichs mache es z.B. Immer so:
    Packagename: de.BattleForceDEV.Pluginname
    Haupt Claasen name: Main
    Dann musste unter main das angeben: Package + Der Name deiner Haupt class. Also z.B. bei mir de.BattleForceDEV.Pluginname.Main


    Bei der plugin.yml musst dus mal so versuchen:
    Code (Text):
    1. name: test
    2. author: movo99
    3. main: main.erstesplugin
    4. version: 1.0
    5. commands:
    6.   test:
    7.     description: Testkomanndo
    8.     usage: /<command>
    MFG,
    BattleForce
     
    #4
  5. ChristianG
    Online

    ChristianG

    ##move
    ----------
     
    #5
  6. MoVo99
    Offline

    MoVo99

    Registriert seit:
    14. Dezember 2012
    Beiträge:
    2
    Also ich habe mal das mit 2 Leerzeichen versucht und mit 5 beides ging nicht, wenn ich /pl mache dann wird das Plugin gün angezeigt, wenn ich aber den befehl /test ausführen will, dann bekomme ich die meldung Unkown Command...
    Bitte helft mir.
     
    #6
  7. Crafter213
    Offline

    Crafter213

    Registriert seit:
    9. August 2012
    Beiträge:
    353
    Wenn das Plugin grün ist, scheint es aktiviert zu sein.
    Zu den Leerzeichen: Vor den Commandnamen 2, vor den Commandeigenschaften (description, usage) 4.

    Unknown Command heitß, dass du dein Command nicht registriert hast:


    Code (Text):
    1.  
    2. @Override
    3. public void onEnable(){
    4.     System.out.println("[Test Plugin] Plugin v." + this.getDescription().getVersion() + "wurde aktiviert");
    5.     getCommand("HungerGames").setExecutor(this);
    6. }
    7.  
    Dort musst du dein Command registrieren. Wenn du bukkit nicht in onEnable mitteilst, was bei dem Command geschehen soll und dass es dein Command überhaupt gibt, wird auch ncihts passieren, wenn du versuchst, es auszuführen.


    Außerdem musst du deine Hauptklasse verändern, wenn du die onCommand-Methode in main nutzen möchtest:

    Code (Text):
    1.  
    2. public class erstesplugin extends JavaPlugin implements CommandExecutor {
    3.     [...]
    4. }
    5.  
    Das ist aber meiner Meinung nach sehr schlechter Stil!

    Erstell dir wenigstens eine Klasse onCommand für die Commands.

    Ich hab selbst allerdings auch wenig Erfahrung.
    Schau dir lieber erstmal ein paar Tutorials zur Pluginprogrammierung vollständig von vorne bis hinten an.
     
    #7
  8. BattleForce
    Offline

    BattleForce

    Registriert seit:
    14. Februar 2013
    Beiträge:
    27
    Minecraft:
    X_Factor11 / BattleForceDEV
    Kannst du vielleicht nocheinmal deine "geudatete" plugin.yml hochladen?
     
    #8
  9. games6471
    Online

    games6471

    Das sieht man. Also erstmal wieder zur Korrigierung:

    1. Du musst nicht den Command in der onEnable registieren. Das muss man nur machen, wenn man den Command in einer externe Klasse behandelt. Dies verschafft dir einen besseren Überblick.

    2. Du musst den CommandExecutor nicht implementieren, wenn du den Command in der Hauptklasse behandelst. Der CommandExecutor ist dafür gedacht, dass man sich an bestimmte Richtlinien hält. Was aber bei onCommand (der überschrieben Methode) automatisch der Fall ist, da man sie ansonsten nicht überschreiben kann.
     
    #9