• 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!

Bukkit Plugin gibt Befehl in weißer Schrift zurück

StalkerLukas

Redstoneengineer
Registriert
5 Mai 2013
Beiträge
30
Diamanten
300
Minecraft
StalkerLukas
Hey ich bin grade dabei mich ein wenig mit dem Programmieren eigener Plugins zu beschäftigen. Soweit so gut. das Plugin lässt sich auch installieren und es wird unter /plugins angezeigt.

Wenn ich jetzte aber einen Befehl eingebe kommt dieser nur in weiß zurück.

Kann mir da vielleicht jemand helfen?

Mfg
 

StalkerLukas

Redstoneengineer
Registriert
5 Mai 2013
Beiträge
30
Diamanten
300
Minecraft
StalkerLukas
Natürlich sollst du haben :D


Einmal der normale Code:
Code:
package packageeins;

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 TestPlugin extends JavaPlugin{
	
	
	public void onEnable(){
		System.out.println("Plugin TestPlugin wurde aktiviert ;)");
		
		
	}
	
	
	public void onDisable(){
		System.out.println("Plugin TestPlugin wurde deaktiviert :(");
		
		
	}
	public boolean onCommand(Command cmd, CommandSender sender, String label, String[] args) {
		if(cmd.getName().equalsIgnoreCase("heal")){
			if(!(sender instanceof Player)){
				
				System.out.println("Du bist kein Spieler!");
				return false;
			}
			Player p = (Player) sender;
			if(args.length == 0){
				
				p.setHealth(20D);
				p.setFoodLevel(20);
				p.sendMessage(ChatColor.RED + "[" +this.getDescription().getName() + "]" + ChatColor.GREEN + "Du hast dich geheilt!");
				return true;
				
		}else if(args.length == 1){
			if(this.getServer().getPlayer(args[0]).isOnline()){
				Player z = this.getServer().getPlayer(args[0]);
				
				z.setHealth(20D);
				z.setFoodLevel(20);
				z.sendMessage(ChatColor.RED + "[" +this.getDescription().getName() + "]" + ChatColor.GREEN + "Du wurdest geheilt!");
				p.sendMessage(ChatColor.RED + "[" +this.getDescription().getName() + "]" + ChatColor.GREEN + "Du hast " + args[0] +" geheilt!");
				return true;
				
			}else{
				
				return false;
			}
			
			
		}else{
			return false;
		}
		
		}
		return false;
	}
	
	

}

Und die Plugin.yml:
Code:
name: Tutorial
version: 1.0
author: Lukas

main: packageeins.TestPlugin
commands:
    heal:
        usage: /<command>
        description: Heilt dich oder jemand anderen
 
Zuletzt bearbeitet:

Mrcookie008

Braumeister
Registriert
15 Dezember 2011
Beiträge
380
Diamanten
0
Minecraft
xCookieZz oder Mrcookie008 (Beides Premium)
Code:
                z.sendMessage(ChatColor.RED + "[" +this.getDescription().getName() + "]" + ChatColor.GREEN + "Du wurdest geheilt!");
                p.sendMessage(ChatColor.RED + "[" +this.getDescription().getName() + "]" + ChatColor.GREEN + "Du hast " + args[0] +" geheilt!");


Bitte, Bitte.. bitte! Verwende nicht Chatcolor sondern wie ingame die "&" Zeichen, diese musst du aber als "§" anstatt "&" nutzen (Ingame &4 = Rot / Code: §4 = Rot .. also z.B §4Test)


Und die Plugin.yml:
Code:
name: Tutorial
version: 1.0
author: Lukas

main: packageeins.TestPlugin
commands:
    heal:
[COLOR=#ff0000]        usage: /<command>[/COLOR]
        description: Heilt dich oder jemand anderen

Ich empfehle dir wegen dem weißem Text die Usage zu entfernen.
LG.
 
B

best_ronsuper

Guest
Also wäre schön wenn du den Code nochmal posten würdest und dann die Chat colors durch § ersetzt, das Macht alles übersichtlicher, außerdem kannst du die
}else{
Return true;
}
Weglassen und einfach nur } machen, wenn es dann immernoch nicht geht nochmal Code posten :)
 

StalkerLukas

Redstoneengineer
Registriert
5 Mai 2013
Beiträge
30
Diamanten
300
Minecraft
StalkerLukas
Also leider funktioniert der Befehl immer noch nicht egal ob mit return true; oder ohne ... hier nochmal der Code
Code:
package packageeins;


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

public class TestPlugin extends JavaPlugin{
	
	
	public void onEnable(){
		System.out.println("Plugin TestPlugin wurde aktiviert ;)");
		
		
	}
	
	
	public void onDisable(){
		System.out.println("Plugin TestPlugin wurde deaktiviert :(");
		
		
	}
	public boolean onCommand(Command cmd, CommandSender sender, String label, String[] args) {
		if(cmd.getName().equalsIgnoreCase("heal")){
			if(!(sender instanceof Player)){
				
				System.out.println("Du bist kein Spieler!");
				return false;
			}
			Player p = (Player) sender;
			if(args.length == 0){
				
				p.setHealth(20D);
				p.setFoodLevel(20);
				p.sendMessage("§4 [" +this.getDescription().getName() + "]" + "§a Du hast dich geheilt!");
				return true;
				
		}else if(args.length == 1){
			if(this.getServer().getPlayer(args[0]).isOnline()){
				Player z = this.getServer().getPlayer(args[0]);
				
				z.setHealth(20D);
				z.setFoodLevel(20);
				z.sendMessage("§4 [" +this.getDescription().getName() + "]" + "§a Du wurdest geheilt!");
				p.sendMessage("§4 [" +this.getDescription().getName() + "]" + "§a Du hast " + args[0] +" geheilt!");
				return true;
				
			}else{
				
				return false;
			}
			
			
		}else{
			return false;
		}
		
		}
		return false;
	}
	
	

}
 

StalkerLukas

Redstoneengineer
Registriert
5 Mai 2013
Beiträge
30
Diamanten
300
Minecraft
StalkerLukas
Haben den Fehler gefunden und behoben : Durch das return false wurde die usage wiedergegeben.

Hier nochmal der Funktionierende Code :

Code:
package packageeins;


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

public class TestPlugin extends JavaPlugin implements CommandExecutor{


public void onEnable(){
System.out.println("Plugin TestPlugin wurde aktiviert ;)");
this.getCommand("heal").setExecutor(this);

}


public void onDisable(){
System.out.println("Plugin TestPlugin wurde deaktiviert :(");


}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {

if(label.equalsIgnoreCase("heal")){
if(!(sender instanceof Player)){

System.out.println("Du bist kein Spieler!");
return true;
}

Player p = (Player) sender;

if(args.length == 0){

p.setHealth(20D);
p.setFoodLevel(20);
p.sendMessage("§a Du hast dich geheilt!");
return true;

} 
if(args.length == 1){
if(Bukkit.getPlayer(args[0]).isOnline()){
Player z = Bukkit.getPlayer(args[0]);

z.setHealth(20D);
z.setFoodLevel(20);
z.sendMessage("§a Du wurdest geheilt!");
p.sendMessage("§a Du hast " + args[0] +" geheilt!");
return true;
}
}
}

return false;
}
}
 
Oben