[S] Plugin-Scripter

10/22/2011 22:23 .NoThx#16
WTF ist das fürn Code xD Du musst darauf achten wo du die Klammern setzt.
Du darfs pro Klammer auf nur eine Zu ahben und nicht 2 und Das return true; ist am besten imemr am ende der if aufgehoben.
und onCommand() muss auch was Zurück geben (return statment)
Wenn du echt Vidos von TheFusion angeschaut hast, hast du nebenbei geschlafen? er erklärt es doch gut.

Code:
	public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) 
    {
        Player player = (Player) sender;
        
        if(cmd.getName().equalsIgnoreCase("codewort"))
        {
            if(args.length != 1)
                return false;
            
            if(args[0].equalsIgnoreCase("Bier"))
            {
                //den Server den Befehl ausführen lassen. Gleichzusetzen mit dem eintippen in die Konsole.
             this.getServer().dispatchCommand(this.getServer().getConsoleSender(), "manuadd " + player.getName() + " " + "Bau");
                
                player.sendMessage(ChatColor.GREEN + "Herzlichen Glückwunsch, du bist nun freigeschaltet und hast alle nötige Rechte.");
            } else {
            	
            	 player.sendMessage(ChatColor.RED + "Das Codewort war falsch!");
            }
            	 
            	
    return true;
 
 
}
        return false;
}
10/22/2011 22:48 FunGoo✔#17
Quote:
player.sendMessage(ChatColor.RED + "Das Codewort war falsch!");
}


return true;


}
return false;
}
Das letzte } sagt mir Eclipse als Syntax Error an, muss irgentwo eine zu viel oder zu wenig sein.

Naja ausserdem was meinste mit OnCommand muss ein Befehl zurück geben, es steht nirgend wo alleine ohne Befehl?
Danke aber trotzdem ^^
10/22/2011 23:47 handsan#18
Also der letzte Code den du gepostet hast macht gar kein Sinn.
Bei dir gehen 3 Klammern zu und keine einzige auf!

Die Formatierung deines Vorposters ist natürlich auch mal echt fürn Arsch.

Code:
}
        return false;
Die zwei Zeilen sind wie du siehst nicht abgedeckt.

Poste mir mal deinen ganzen Code FunGoo und denk dran ein Codeblock wird mit { geöffnet und mit } geschlossen.
10/22/2011 23:51 FunGoo✔#19
Okay Ja keine Ahnung, irgend was ist da total doof. xD
Hier der aktuelle ganze Code:
Code:
package me.FunGoo.Promoter;

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

public class Promoter extends JavaPlugin{

 @Override
 public void onDisable() {
  
  System.out.println("Promoter deaktiviert");
  
  
 }

 @Override
 public void onEnable() {
  
  System.out.println("Promoter aktiviert"); 
  
  
  
 }
 public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) 
    {
        Player player = (Player) sender;
        
        if(cmd.getName().equalsIgnoreCase("codewort"))
        {
            if(args.length != 1)
                return false;
            
            if(args[0].equalsIgnoreCase("Bier"))
            {
                //den Server den Befehl ausführen lassen. Gleichzusetzen mit dem eintippen in die Konsole.
             this.getServer().dispatchCommand(this.getServer().getConsoleSender(), "manuadd " + player.getName() + " " + "Bau");
             
             player.sendMessage(ChatColor.GREEN + "Herzlichen Glückwunsch, du bist nun freigeschaltet und hast alle nötige Rechte.");
         } else {
         	
         	 player.sendMessage(ChatColor.RED + "Das Codewort war falsch!");
         }
         	 
         	
 return true;


}
     return false;
}
}
10/23/2011 00:13 handsan#20
Gewöhn dir einfach mal an vernünftig einzurücken. Was du da unten veranstaltet hast macht gar keinen Sinn.
Das hier ist die letzte Methode.
Nach dieser Methode kommt noch eine } um die Klasse zu schließen.
Das nur zur Syntax was sonst noch falsch ist weiß ich nicht.

Code:
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
  Player player = (Player) sender;
  if(cmd.getName().equalsIgnoreCase("codewort")) {
    if(args.length != 1) {
      return false;
    } else {
      if(args[0].equalsIgnoreCase("Bier")) {
        this.getServer().dispatchCommand(this.getServer().getConsoleSender(), "manuadd " + player.getName() + " " + "Bau");
        player.sendMessage(ChatColor.GREEN + "Herzlichen Glückwunsch, du bist nun freigeschaltet und hast alle nötige Rechte.");
      } else {
        player.sendMessage(ChatColor.RED + "Das Codewort war falsch!");
      }
    }
  }
  return true;
}
10/23/2011 00:17 FunGoo✔#21
Kannst du mal den ganzen Code schicken, da er bei mir Fehler "Syntax" enthält. :O
Da fehlen, oder sind Klammer zu viel.
10/23/2011 00:25 handsan#22
Nope ich hab dir gesagt wie die letzte Methode aussehen muss und dass da noch eine } fehlt wobei ich natürlich nicht garantieren kann dass ich mich nicht vertan habe weil wir leider gerade auf Seite zwei sind Moment.
10/23/2011 11:14 FunGoo✔#23
Also habe jetzt überlegt, du hast jede { mit einer anderen} geschlossen, aber der zeigt ein Syntax an. Aber am Ende musste ich noch eine Klammer hinzufügen damit der Syntax weg geht. Also siehts jetzt so aus (fehlerfrei aber halt in Minecraft nicht funktionierend):
Code:
 public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
	  Player player = (Player) sender;
	  if(cmd.getName().equalsIgnoreCase("codewort")) {
	    if(args.length != 1) {
	      return false;
	    } else {
	      if(args[0].equalsIgnoreCase("Bier")) {
	        this.getServer().dispatchCommand(this.getServer().getConsoleSender(), "manuadd " + player.getName() + " " + "Bau");
	        player.sendMessage(ChatColor.GREEN + "Herzlichen Glückwunsch, du bist nun freigeschaltet und hast alle nötige Rechte.");
	      } else {
	        player.sendMessage(ChatColor.RED + "Das Codewort war falsch!");
	      }
	    }
	  }
	  return true;
}
}
10/23/2011 12:46 handsan#24
Dass du selbst denkst gefällt mir schon mal, aber du musst auch anfangen zu lesen. Ich habe nun zwei mal erwähnt, dass ich dir den Code für die letzte Methode gegeben habe und dass die gesamte Klasse anschließend noch mit einer } geschlossen werden muss.

In deiner gesamten Codedatei muss jede { ein } haben und mit jeder { rückst du die nächsten Zeilen um eine Ebene ein und mit jeder } wieder zurück. Dann fängst an zu verstehen wo die Klammern hin müssen.

Schreib mir nochmal ganz genau was das Plugin machen soll dann code ich es dir.
Reicht es, wenn bei Eingabe eines Wortes ein Serverbefehl ausgeführt wird, oder ist das Ergebnis abhängig davon, in welcher Servergruppe er sich befindet?
10/23/2011 13:56 FunGoo✔#25
Also habs jetzt selbst hinbekommen, es klappt jetzt.
Ehm nur halt doof ist es wenn man VIP ist und man gibt das ein wird man ja demotet. ^^
Trotzdem danke. :)
10/23/2011 14:02 SkillartzHD#26
dann nimmst du vips die rechte zum demoten weg ;)
einfach - -recht.bla
hinschreiben (mit einem - -)
Dannn geht das;)
Grezzy