ServerPlugin Hilfe

Dieses Thema im Forum "Programmierung" wurde erstellt von noahscheurer, 22. Juni 2015.

  1. noahscheurer
    Offline

    noahscheurer

    Registriert seit:
    13. Februar 2014
    Beiträge:
    6
    Hallo ich bin dran ein eigenes Plugin zu schreiben allerdins kommt immer eine Fehelermeldng und ich weis niccht was ich falsch mache.
    PS: Ich bin ein anfänger also nicht schreiben eh du bist voll blöd wieso blickst du das nicht.
    Hier ist die komplette datei:
    Code (Text):
    1. package Plugin;
    2.  
    3. import org.bukkit.GameMode;
    4. import org.bukkit.command.Command;
    5. import org.bukkit.command.CommandSender;
    6. import org.bukkit.command.defaults.GameModeCommand;
    7. import org.bukkit.plugin.java.JavaPlugin;
    8.  
    9. public class Abo2 extends JavaPlugin {
    10.   public void onEnable()  {
    11.    System.out.println("[Abo2 PvP] Plugin gestartet");
    12.   }
    13.   public void onDisable()  {
    14.     System.out.println("[Abo2 PvP] Plugin gestoppt");
    15.   }
    16.   public boolean onCommand(CommandSender sender, Command cmd String commandLabel, String args) {
    17.      Player p = (Player) sender;
    18.   //Kommand "Start"
    19.   if(cmd.getName().equalsIgnoreCase("Start"));
    20.   {
    21.       if(p.hasPermission("pvp.start"));
    22.   }
    23.   this.getServer().getOnlinePlayers();
    24.   for (Player player : this.getServer().getOnlinePlayers()) {
    25.      p.setGameMode(GameMode.ADVENTURE);
    26.      getServer().broadcastMessage("Die Schutzzeit beginnt. Sie geht noch 30 Sekunden");
    27.      myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {
    28.  
    29.        public void run() {
    30.        getServer().broadcastMessage("Die Schutzzeit geht noch 15 Sekunden!");
    31.        }
    32.        }, 300L);
    33.      myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {
    34.  
    35.        public void run() {
    36.        getServer().broadcastMessage("Die Schutzzeit geht noch 10 Sekunden!");
    37.        }
    38.        }, 400L);
    39.      myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {
    40.  
    41.        public void run() {
    42.        getServer().broadcastMessage("Die Schutzzeit geht noch 5 Sekunden!");
    43.        }
    44.        }, 500L);
    45.      myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {
    46.  
    47.        public void run() {
    48.        getServer().broadcastMessage("Die Schutzzeit geht noch 3 Sekunden!");
    49.        }
    50.        }, 540L);
    51.      myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {
    52.  
    53.        public void run() {
    54.        getServer().broadcastMessage("Die Schutzzeit geht noch 2 Sekunden!");
    55.        }
    56.        }, 560L);
    57.      myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {
    58.  
    59.        public void run() {
    60.        getServer().broadcastMessage("Die Schutzzeit geht noch 1 Sekunde!");
    61.        }
    62.        }, 580L);
    63.      myPlugin.getServer().getScheduler().scheduleSyncDelayedTask(myPlugin, new Runnable() {
    64.  
    65.        public void run() {
    66.        getServer().broadcastMessage("Die Schutzzeit ist vorbei!");
    67.        }
    68.        }, 600L);
    69.      return true;
    70.  
    71.   }
    72.   }
     
    #1
  2. noahscheurer
    Offline

    noahscheurer

    Registriert seit:
    13. Februar 2014
    Beiträge:
    6
    Aso ja wenn ich gleich frage kann ich auch fragen wie man allen spielen für 30 sec godmode gibt
     
    #2
  3. Malte
    Offline

    Malte Moderator Redakteur

    Registriert seit:
    17. März 2012
    Beiträge:
    474
    Ort:
    Schwammbaumwald
    Minecraft:
    Malte662
    Damit wir dir helfen können wäre es hilfreich auch die Fehlermeldung zu kennen ;)
    Und was versteht du unter Godmode? Den Creative oder etwas anderes?
     
    #3
  4. JTK222
    Offline

    JTK222

    Registriert seit:
    5. September 2013
    Beiträge:
    665
    Ort:
    Planet Erde
    Minecraft:
    JTK222
    Also am einfachsten:
    Code (Text):
    1. player.addPotionEffect(new PotionEffect(PotionEffectType type, int dauerinticks, int staerke));
    der Effect Type müsste entweder die ID von Resistenz sein oder es gibt nen eigenen Enum dafür bin mir gerade nicht sicher und kann nicht nachschauen.
    Bei der dauer in ticks ist es entweder die 3 ticks = sec regel oder die server TPS aber ich glaube damit ist die 3 ticks = 1 sec regel gemeint also 90 für 30 sec.
    Bei der stärke am besten 100 reinschreiben.
    Das sollte den Spieler schon ein mal unverwundbar machen.

    2. Caste nie ein object bevor du sicher bist dass man es dazu casten kann.
    also anstelle von:
    Code (Text):
    1. public boolean onCommand(CommandSender sender, Command cmd String commandLabel, String args) {
    2. Player p = (Player) sender;
    3.  
    lieber so:
    Code (Text):
    1. public boolean onCommand(CommandSender sender, Command cmd String commandLabel, String args) {
    2. Player p = null;
    3. if(sender instanceof Player)
    4. p = (Player) sender;
    5.  
    dann wenn du einen befehl machst nach dem befehl mit.
    Code (Text):
    1. If(p == null){
    2. return true;
    3. }
    überprüfen ob es ein Spieler ist.
     
    #4
  5. noahscheurer
    Offline

    noahscheurer

    Registriert seit:
    13. Februar 2014
    Beiträge:
    6
    Mit godmode meine ich das man kein schaden bekommen kann. Die Fehlermeldung schicke ich gleich

    Unbenannt.PNG
     
    #5
  6. Malte
    Offline

    Malte Moderator Redakteur

    Registriert seit:
    17. März 2012
    Beiträge:
    474
    Ort:
    Schwammbaumwald
    Minecraft:
    Malte662
    In der 16. Zeile fehlt ein Komma zwischen Command cmd und String commandLabel sobald du dieses gesetzt hast sollte sich auch der andere Fehler erübrigen.
    Code (Text):
    1. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String args) {
    Achja und genau diesen Fehler gibt dir auch deine Fehlermeldung aus. Also am Besten bei einem Fehler immer erstmal die angegebene Zeile auf Syntaxfehler untersuchen ;)
     
    #6
  7. noahscheurer
    Offline

    noahscheurer

    Registriert seit:
    13. Februar 2014
    Beiträge:
    6
    wie schon gesagt bin ich noch anfänger und wusste das nicht genau aber danke
     
    #7
  8. noahscheurer
    Offline

    noahscheurer

    Registriert seit:
    13. Februar 2014
    Beiträge:
    6
    allerdings ist der 2te fehler immer noch da es zeigt mir an ich soll ein { dort ist aber schon eins
     
    #8
  9. Kurlux
    Offline

    Kurlux Moderator Redakteur

    Registriert seit:
    7. Juni 2015
    Beiträge:
    324
    Ort:
    Bayern
    Minecraft:
    Kurlux
    Hast du am Ende die Klammer gemacht ? Weil wo ein { ist braucht man auch ein } , so bescheuert es klingt :D
    Bin mir aber gerade nicht sicher ob du im obigen Post diese Klammer { oder diese hier } meinst.
     
    #9