Jump to content

Empfohlene Beiträge

Geschrieben

@JoeyDas man keinen Offline Player rauswerfen kann ist momentan noch so gewollt von der Person für die das Plugin ist. Aber ich wüsste gerne trotzdem wie der Genau Code aussehen würde könntest du mir vieleicht ein kleines Beispiel zeigen?

Geschrieben

Du machst anstatt:

 

Player p = Bukkit.getPlayer(Name);

das:

OfflinePlayer p = Bukkit.getOfflinePlayer(Name);

 

Geschrieben

Jetzt blick ich es langsam net mehr. 

Hier erstmal mein Code:

 

	public boolean onCommand (CommandSender sender, Command cmd, String cmdlabel, String[] args) {
		Player commandSender = (Player) sender;
		if (sender.hasPermission("test.supporter")) {
			if (cmd.getName().equalsIgnoreCase("supporter")) {
				if (args.length == 1) {
					Player target = Bukkit.getPlayer(args[0]);
					if (target !=null) {
						if (!PermissionsEx.getUser(target).inGroup("Sup")) {
							Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user "+args[0]+" group set Sup");
							commandSender.sendMessage("§6Der Spieler §c" + target.getName() + " §6wurde zum Supporter ernnant!");
							target.sendMessage("§6Du wurdest von §c" + commandSender.getName() + " §6zum Supporter ernannt!"); 
							return true;
						} else {
							commandSender.sendMessage("§6Der Spieler §c" + target.getName() + " §6ist bereits ein Supporter!");
							return false;
						}
					} else {
						commandSender.sendMessage("§6Der Spieler §c" + args[0] + " §6 ist nicht Online!");
						return false;
					}
				} else {
					commandSender.sendMessage("§6Bitte gebe einen Spielernamen an!");
					return false;
				}
			} else {
				commandSender.sendMessage("§6Du hast nicht die nötigen Rechte um diesen Befehl auszuführen!");
				return false;
			}
		}
		if (sender.hasPermission("test.rsupprter")) {
			if (cmd.getName().equalsIgnoreCase("rsupporter")) {
				if (args.length == 1) {
					Player target = Bukkit.getPlayer(args[0]);
					if (target !=null) {
						if (PermissionsEx.getUser(target).inGroup("Sup")) {
							Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user "+args[0]+" group remove Sup");
							commandSender.sendMessage("§6Der Spieler §c" + target.getName() + " §6wurde als Supporter entfernt!");
							target.sendMessage("§6Du wurdest von §c" + commandSender.getName() + " §6als Supporter entfernt!");
							return true;
						} else {
							commandSender.sendMessage("§6Der Spieler §c" + args[0] + " §6 ist kein Supporter");
							return false;
						}
					} else {
						commandSender.sendMessage("§6Der Spieler §c" + args[0] + " §6 ist nicht Online");
						return false;
					}
				} else {
					commandSender.sendMessage("§6Bitte gebe einen Spielernamen an!");
					return false;
				}
			} else {
				commandSender.sendMessage("§6Du hast nicht die nötigen Rechte um diesen Befehl auszuführen!");
				return false;
			}
		}
		return false;
		
	}
}

Immer wenn ich einen Command eingebe gibt er mir </command> aus und bei rsupporter sagt er das ich keine Rechte habe egal wie ich ihn Benutze.

Geschrieben
Am 27.5.2016 um 23:16 schrieb Joey:

Dass du immer die "usage Nachricht" bekommst liegt an dem "return false". Deine Code läuft durch und egal wie, am Ende wird false zurückgegeben. Wann dass der Fall ist, gibt Bukkit dir die Nachricht aus.

 

=============================

 

Schau dir deine If-Blöcke an. Dein else-block ist am falschen block.

Geschrieben (bearbeitet)

@boomer41Danke erstmal ist mir nicht aufgefallen. Das mit <command> ist nun auch weg habe die meisten return false; durch return true; ersetzten müssen und bei einer Nachricht ist es komplett weg. Endlich geht der Code soweit . Vielen dank für die ganze Hilfe. Das einzigste was nicht geht ist das er mir wenn ich keine Permissions habe die Nachricht ausgibt, das gibt er immer noch die Standard Nachricht aus wie kann ich das noch fixen?

Hier nochmal mein Endgültiger Code. Wenn ihr was zu verbessern habt sagt es mir.(Das mit man nur Online Player Removen kann weiß ich :D, soll aber auch so sein). Wenn mir jemand ein kleines Beispiel hätte wie das mit dem Offline Player geht wäre ich sehr dankbar ich komme einfach nicht richtig dahinter wie ich das machen soll.

 

	public boolean onCommand (CommandSender sender, Command cmd, String cmdlabel, String[] args) {
		Player commandSender = (Player) sender;
		if (sender.hasPermission("test.supporter")) {
			if (cmd.getName().equalsIgnoreCase("supporter")) {
				if (args.length == 1) {
					Player target = Bukkit.getPlayer(args[0]);
					if (target !=null) {
						if (!PermissionsEx.getUser(target).inGroup("Sup")) {
							Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user "+args[0]+" group set Sup");
							commandSender.sendMessage("§6Der Spieler §c" + target.getName() + " §6wurde zum Supporter ernnant!");
							target.sendMessage("§6Du wurdest von §c" + commandSender.getName() + " §6zum Supporter ernannt!"); 
							return true;
						} else {
							commandSender.sendMessage("§6Der Spieler §c" + target.getName() + "§6 ist bereits ein Supporter!");
							return true;
						}
					} else {
						commandSender.sendMessage("§6Der Spieler §c" + args[0] + "§6 ist nicht Online!");
						return true;
					}
				} else {
					commandSender.sendMessage("§6Bitte gebe einen Spielernamen an!");
					return true;
				}
			}
		} else {
			commandSender.sendMessage("§6Du hast nicht die nötigen Rechte um diesen Befehl auszuführen!");
			return true;
		}
		if (sender.hasPermission("test.rsupprter")) {
			if (cmd.getName().equalsIgnoreCase("rsupporter")) {
				if (args.length == 1) {
					Player target = Bukkit.getPlayer(args[0]);
					if (target !=null) {
						if (PermissionsEx.getUser(target).inGroup("Sup")) {
							Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user "+args[0]+" group remove Sup");
							commandSender.sendMessage("§6Der Spieler §c" + target.getName() + " §6wurde als Supporter entfernt!");
							target.sendMessage("§6Du wurdest von §c" + commandSender.getName() + " §6als Supporter entfernt!");
							return true;
						} else {
							commandSender.sendMessage("§6Der Spieler §c" + target.getName() + " §6ist kein Supporter!");
						}
					} else {
						commandSender.sendMessage("§6Der Spieler §c" + args[0] + "§6 ist nicht Online!");
						return true;
					}
				} else {
					commandSender.sendMessage("§6Bitte gebe einen Spielernamen an!");
					return true;
				}
			}
		} else {
			commandSender.sendMessage("§6Du hast nicht die nötigen Rechte um diesen Befehl auszuführen!");
			return true;
		}
		return true;
	}
}

 

 

 

bearbeitet von Failcrafter1998
Geschrieben
vor 13 Stunden schrieb Failcrafter1998:

(...) Das einzigste was nicht geht ist das er mir wenn ich keine Permissions habe die Nachricht ausgibt, das gibt er immer noch die Standard Nachricht aus wie kann ich das noch fixen?

 

Ich verstehe nicht was du uns damit sagen willst. Das solltest du nochmal genauer ausführen.

Geschrieben

Ist eine Else Klammer die wenn es gehen würde eine Nachricht folgende Nachricht ausgeben sollte: 

commandSender.sendMessage("§6Du hast nicht die nötigen Rechte um diesen Befehl auszuführen!");

Nur wenn ich mir meine Rechte wegnehme kommt die ganz Normal Nachricht, also: You don't have Permissions..bla bla bla. Mein Frage ist jetzt: Was hab ich falsch gemacht das er nicht meine Nachricht ausgibt also Folgende: 

commandSender.sendMessage("§6Du hast nicht die nötigen Rechte um diesen Befehl auszuführen!");

 

Geschrieben

Ich gehe einfach mal davon aus, dass (durch fehlende Rechte) die Ausführung deines Programmcodes bereits verhindert wird, bevor deine if/else abfrage zum tragen kommt. Aber was genau stört dich? Es passiert doch genau das was du willst, der Command kann nicht ausgeführt werden wenn man nicht die nötigen Rechte hat.

Lass deine Abfrage nach den Rechten doch einfach weg, und ändere statdessen die permission-message in deiner plugin.yml

LG, Derya001

Geschrieben

In die plugin.yml kommt unter commands folgenes:

name: dein Plugin
version: 0.1
description: Beschreibung
website: optionale Website
author: Dein Name, oder sonst was
main: Pfad zur main im paket

commands:
  supporter:
    description: Beschreibung
    usage: /<command> help
    permission: test.supporter
    permission-message: 'Hier deine Nachricht eintragen'

Geschrieben

Guten Tag,

Wie meinst du das für jeden Command?

Betrifft das nur deine eigenen Befehle oder auch die Befehle anderer Plugins?

Bei deinen Befehlen ist dir ja jetzt klar, wie das geht, gell?

 

Freundliche Grüße

BloodSKreaper

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B