ServerPlugin Fehler bei starten

Dieses Thema im Forum "Programmierung" wurde erstellt von combo, 23. Juni 2013.

  1. combo
    Offline

    combo

    Registriert seit:
    16. Juli 2012
    Beiträge:
    160
    Minecraft:
    combo5
    Hallo,
    Ich habe angefangen ein Plugin zu Programmieren!
    Ich nutze die Entwicklungsumgebung Eclipse!
    Fehler: Wenn ich das Plugin exportiert habe und den server starte ist das Plugin nicht im serverLog es wir nichts zu diesem Programm angezeigt!
    Programiercode:
    Code (Text):
    1. package me.combo5.CodMC;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.command.Command;
    5. import org.bukkit.command.CommandSender;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.plugin.java.JavaPlugin;
    8.  
    9. public class CodMC extends JavaPlugin {
    10.  
    11.     @Override
    12.     public void onEnable() {
    13.         System.out.println("CodMC ist gestartet!");
    14.         System.out.println("CodMC Devlooper: combo5!");
    15.     }
    16.  
    17.  
    18.     public final  boolean onCommand(CommandSender sender,Command cmd, String cmdlabel, String[] args) {
    19.        boolean Test = false;
    20.  
    21.  
    22.     Player p = (Player)sender;
    23.  
    24.  
    25.     if(cmd.getName().equalsIgnoreCase("test")) {
    26.         if(args.length == 0){
    27.             p.sendMessage(ChatColor.RED + "CodMC:" + ChatColor.WHITE + "Test erfolgreich!");
    28.            
    29.         }
    30.            
    31.             Test = false;
    32.  
    33.           }
    34.  
    35.     return Test;
    36.  
    37.     }
    38.  
    39.     public void OnDisable() {
    40.         System.out.println(ChatColor.RED + "CodMC:" + ChatColor.WHITE + "schaltet sich aus");
    41.        
    42.     }
    43.     }
    44.  
    45.  
    Plugin.yml:
    Code (Text):
    1. name: CodMC
    2. main: me.combo.C-o-d-MC.CodMC
    3. version: 1.5.2
    Ich hoffe ihr könnt mir helfen
     
    #1
  2. Chrisliebaer
    Offline

    Chrisliebaer

    1. Verwende den Bukkit Logger
    http://wiki.bukkit.org/Plugin_Tutorial#Logging_a_message

    2. Formatier deinen Code ordentlich (Strg + Shift + F hilft dir dabei)

    3. Lern bitte nicht bei DeBukkit

    Wenn du das gemacht hast, kannst du dein Post updaten mit dem formatieren Code und dann sehen wir auch, ob die Nachricht nicht vielleicht doch kommt.

    Edit: Und poste bitte das vollständige Serverlog. Vielleicht steht da ja doch ein Fehler, warum das Plugin nicht geladen werden konnte.
     
    #2
  3. games6471
    Offline

    games6471

    Deine Main-Klasse ist nicht ordentlich in der plugin.yml eingetragen:

    me.combo.C-o-d-MC.CodMC
     
    #3
  4. combo
    Offline

    combo

    Registriert seit:
    16. Juli 2012
    Beiträge:
    160
    Minecraft:
    combo5
    Wie muss es den richtig aussehen?
     
    #4
  5. games6471
    Offline

    games6471

    Package + Klassenname:

    me.combo5.CodMC.CodMC

    Außerdem definierst du eine neue OnDisable Methode und überschreibst nicht die von der Oberklasse.

    Auch die Java Konventionen sollten beachtetet werden:

     
    #5
  6. combo
    Offline

    combo

    Registriert seit:
    16. Juli 2012
    Beiträge:
    160
    Minecraft:
    combo5
    Habs jetzt beides abgeändert

    Java-Code:
    Code (Text):
    1. package me.combo5.CodMC;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.command.Command;
    5. import org.bukkit.command.CommandSender;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.plugin.java.JavaPlugin;
    8.  
    9. public class CodMC extends JavaPlugin {
    10.  
    11.     @Override
    12.     public void onEnable() {
    13.         getLogger().info("Enable");
    14.        
    15.     }
    16.  
    17.  
    18.     public final  boolean onCommand(CommandSender sender,Command cmd, String cmdlabel, String[] args) {
    19.        boolean Test = false;
    20.  
    21.  
    22.     Player p = (Player)sender;
    23.  
    24.  
    25.     if(cmd.getName().equalsIgnoreCase("test")) {
    26.         if(args.length == 0){
    27.             p.sendMessage(ChatColor.RED + "CodMC:" + ChatColor.WHITE + "Test erfolgreich!");
    28.            
    29.         }
    30.            
    31.             Test = false;
    32.  
    33.           }
    34.  
    35.     return Test;
    36.  
    37.     }
    38.  
    39.     public void OnDisable() {
    40.         getLogger().info("disable");
    41.        
    42.     }
    43.         public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
    44.             if(cmd.getName().equalsIgnoreCase("test")){ // If the player typed /basic then do the following...
    45.                 // doSomething
    46.                 return true;
    47.             } else if (cmd.getName().equalsIgnoreCase("test 2")) {
    48.                 if (!(sender instanceof Player)) {
    49.                     sender.sendMessage("Test erfolgreich.");
    50.                 } else {
    51.                     Player player = (Player) sender;
    52.                     // do something
    53.                 }
    54.                 return true;
    55.             }
    56.             return false;
    57.         }
    58.             } //If this has happened the function will return true.
    59.                 // If this hasn't happened the a value of false will be returned.
    60.             return false;
    61.            
    62.             public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
    63.                 if(cmd.getName().equalsIgnoreCase("codmc Killall")){
    64.                     Player target = sender.getServer().getPlayer(args[0]);
    65.                     target.setHealth(0);
    66.                 }
    67.                 return false;
    68.             }
    69.        
    70.     }
    71.     }
    72.  
    73.  
    Plugin.yml:

    Code (Text):
    1. name: CodMC
    2. main: me.combo.CodMC.CodMC
    3. version: 1.5.2
    4. commands:
    5.    basic:
    6.       description: Plugin test command
    7.       usage: /<command> [player]
    8.       permission: CodMC.test
    9.       permission-message: Du darfst nicht  <permission>
    10. permissions:
    11.     CodMC.*:
    12.         description: Alle Cod befehle
    13.         children:
    14.             codmc.test: true
    15.             codmc.test2: true
    16.             codmc.vote: true
    17.             codmc.killall: false
    18.     codmc.test:
    19.         description: Test
    20.         default: op
    21.     codmc.test2:
    22.         description: test2
    23.         default: op
    24.     codmc.vote:
    25.         description: vote
    26.         default: true
    27.     codmc.killall:
    28.         description: Killall
     
    #6
  7. games6471
    Offline

    games6471

    Beides? Ich sehe nur eine Änderung.

    Du weisst, dass du jetzt einen richtigen Schrott zusammen getüftelt hast. Dabei müsste doch schon jede IDE Alarm schlagen.
     
    #7
  8. combo
    Offline

    combo

    Registriert seit:
    16. Juli 2012
    Beiträge:
    160
    Minecraft:
    combo5
    Und wie ist es richtig zusammen gewüfelt?
     
    #8
  9. games6471
    Offline

    games6471

    Ich gebe mal nur die Hinweise drauf.

    Du hast drei onCommand Methoden

    OnDisable überschreibt immer noch nicht von der Oberklasse. (Das O ist gross, aber muss klein sein)

    Deine Klammern sind falsch gesetzt.

    EDIT: Und der Code ist immer noch nicht formatiert worden.
     
    #9
  10. combo
    Offline

    combo

    Registriert seit:
    16. Juli 2012
    Beiträge:
    160
    Minecraft:
    combo5
    Problem gelöst funktioniert jetzt
     
    #10