• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

eSupport - Helfe deinen Spielern

ScaryHutman

Vorarbeiter
Registriert
1 Januar 2013
Beiträge
205
Diamanten
0
Minecraft
Scary_Hutman
Es ist leider oft der Fall, dass Spieler es nicht hinkriegen ein Kommando richtig auszuführen. Darum habe ich ein kleines PlugIn geschreiben, womit die Admins diesen Spielern helfen können.


Commands:
/runcmd <Spieler> <CMD>: führt für den Spieler ein Kommando aus.

Permissions:
eSupport.run: Permission für das /runcmd-Kommando. (default: op)
eSupport.exempt: Spieler mit dieser Permission können nie das Ziel von /runcmd sein. (default: op)

Bugs?
- Keine!

Download:
v1.0: Anhang anzeigen eSupport.zip

ScaryHutman
 
Zuletzt bearbeitet:
G

games6471

Guest
Essentials hat zwar die gleiche Funktion, jedoch ist es gut so etwas zu entwickel und zu veröffentlich, damit der Entwickler Feedback zum Code bekommt und/oder die Bukkit-API sowie Java-API besser kennen lernt.
 

ScaryHutman

Vorarbeiter
Registriert
1 Januar 2013
Beiträge
205
Diamanten
0
Minecraft
Scary_Hutman
Essentials hat zwar die gleiche Funktion, jedoch ist es gut so etwas zu entwickel und zu veröffentlich, damit der Entwickler Feedback zum Code bekommt und/oder die Bukkit-API sowie Java-API besser kennen lernt.

Danke für dein Feedback. Ich kannte /sudo in Essentials noch nicht. ;)

ScaryHutman
 

CreaperLP

Minecrafter
Registriert
27 Februar 2013
Beiträge
1
Diamanten
0
Tutorial

Hey ScaryHutman

Super Plugin!

kannste mir mal bitte aufschreiben, wie du das Plugin geschrieben hast :)

Würde mich sehr interessieren! Will auch eins schreiben <3

Danke
CreaperLP

- - - Aktualisiert - - -

Ups falscher Ordner \(^_^)/
Bitte löschen
 
S

ServerPvP

Guest
if (cmd.getName().equalsIgnoreCase("runcmd")) {

Wenn man nur einen Befehl in der plugin.yml eingetragen hat, braucht man nicht nachzuschauen wie der Befehl heisst.
ChatColor.<farbe> ist langsamer als "§<farbe>" da es schließlich eine statische Klasse ist auf der deine Klasse zugreifen muss.
Somit empfehle ich dir Paragraph Zeichen zu verwenden (z.B. "§cHallo")

Ansonsten nicht schlecht für den Anfang :)

MfG ServerPvP
 

ScaryHutman

Vorarbeiter
Registriert
1 Januar 2013
Beiträge
205
Diamanten
0
Minecraft
Scary_Hutman
Hey ScaryHutman

Super Plugin!

kannste mir mal bitte aufschreiben, wie du das Plugin geschrieben hast :)

Würde mich sehr interessieren! Will auch eins schreiben <3

Danke
CreaperLP

- - - Aktualisiert - - -

Ups falscher Ordner \(^_^)/
Bitte löschen

Ich gehe mal davon aus, dass du den Quelltext willst. ;D
Leider musste ich in Eclipse öfter die workspace ändern, darum bin ich mir nicht sicher, ob das der richtige Quelltext ist.

Code:
package bukkit.ScaryHutman.eSupport;

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 Main extends JavaPlugin {

	@Override
	public void onEnable() {	}

	@Override
	public void onDisable() {	}

	@Override
	public boolean onCommand(CommandSender sender, Command cmd, String label,
			String[] args) {
		if (cmd.getName().equalsIgnoreCase("runcmd")) {
			if (sender.hasPermission("eSupport.run")) {
				if (args.length >= 2) {
					Player p = this.getServer().getPlayer(args[0]);
					if (p != null) {
						if (!p.hasPermission("eSupport.exempt")) {
							/*Command*/
							StringBuilder sb = new StringBuilder();
							for (int i = 1; i < args.length; i++) {
								if (i == 1) {
									sb.append(args[i]);
									continue;
								}
								sb.append(" " + args[i]);
							}
							String sb2 = sb.toString();
							/*Ausführen*/
							this.getServer().dispatchCommand(p, sb2);
							p.sendMessage("§f'§b" + sender.getName()
									+ "§f' führte für dich das Kommando '§b/"
									+ sb2 + "§f' aus.");
							sender.sendMessage("§fKommando wurde erfolgreich ausgeführt!");
							return true;
						} else {
							// p hat die Permission.
							sender.sendMessage(ChatColor.RED + "Du darfst für '" + p.getName() + "' kein Kommando ausführen!");
							return true;
						}
					} else {
						// Das Ziel ist nicht online/ist null.
						sender.sendMessage(ChatColor.RED + "'" + args[0] + "' ist nicht online!");
						return true;
					}
				} else {
					// Zu wenig Argumente.
					sender.sendMessage(ChatColor.RED + "Zu wenig Argumente!");
					return false;
				}
			} else {
				// Keine Perm.
				sender.sendMessage(ChatColor.RED + "Dir wurde nie erlaubt das zu tun!");
				return true;
			}
		}
		return true;
	}

}
 
G

games6471

Guest
if (cmd.getName().equalsIgnoreCase("runcmd")) {

Wenn man nur einen Befehl in der plugin.yml eingetragen hat, braucht man nicht nachzuschauen wie der Befehl heisst.
ChatColor.<farbe> ist langsamer als "§<farbe>" da es schließlich eine statische Klasse ist auf der deine Klasse zugreifen muss.
Somit empfehle ich dir Paragraph Zeichen zu verwenden (z.B. "§cHallo")

Ansonsten nicht schlecht für den Anfang :)

MfG ServerPvP

Die kleine Performanceänderung macht kaum was aus. Da gibt es viel mehr andere Möglichkeiten, wie einer Final Klasse. Jedoch sollte meiner Meinung nach jede Möglichkeit, welche nicht das Code-Design auf zu große Art verschlechtert genutzt werden.
 
C

Cabraca

Guest
if (cmd.getName().equalsIgnoreCase("runcmd")) {

Wenn man nur einen Befehl in der plugin.yml eingetragen hat, braucht man nicht nachzuschauen wie der Befehl heisst.
Und dann baut man einen zweiten ein, vergisst das einzufügen und das plugin fliegt einem beim ersten test um die ohren.
Ernsthaft ob jetzt mit oder ohne command check wird an der performance nicht groß was ändern.

ChatColor.<farbe> ist langsamer als "§<farbe>" da es schließlich eine statische Klasse ist auf der deine Klasse zugreifen muss.
Somit empfehle ich dir Paragraph Zeichen zu verwenden (z.B. "§cHallo")

Ansonsten nicht schlecht für den Anfang :)

MfG ServerPvP

Auch hier kann man den performancegewinn wieder als minimal bezeichnen.
Ich nutze lieber die ChatColor Klasse und produziere verständlichen Code
anstatt mit §xy zu arbeiten wo jeder erst die Farbcodes rausholen muss.
Da gibts wesentlich schlimmere dinge wie Playerobjekt als Key der HashMap etc.
 
G

games6471

Guest
mach denn befehl doch auch /support annehmen oder so

Wozu? Der Befehl wird nur von einem Admin oder einem Teammitglied mit dem dementsprechenden Permissions ausgeführt werden können. Ich finde denen sollte es wohl erlaubt sein ohne auf die Annahme des Users zu warten, den Befehl auszuführen. Wieso sollte die Person, welche Hilfe benötigt die Anfrage ablehnen?
 
Oben