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

String Übergabe

MrPyro13

Workaholic
Registriert
29 April 2013
Beiträge
826
Diamanten
300
Minecraft
MrPyro13
[JAVA] String Übergabe

Hallo Community,

ich bin gerade dabei, einen /kick Command zu erstellen. Jedoch möchte ich, dass bei einem Kick die Kick-Leave-Message den String Grund enthält, den ich in der Kick-Command Class erstellt habe.
Meine Frage: Wie übergebe ich den String grund (in der Kick-Command Class) an die Kick-Leave-Message (in der Kick-Leave-Listener Class)

Freue mich über helfende Antworten
MfG MrPyro13
 
Zuletzt bearbeitet:

FelixKlauke

Erzengel
Ehem. Teammitglied
Registriert
5 Januar 2014
Beiträge
1.038
Diamanten
299
Minecraft
FelixKlauke
Es gibt im Playerobjekt die Methode .kickPlayer(String string); Der String ist der Grund, warum er gekickt wurde.

Wenn du die Nachricht ganz unterdrücken willst und eine völlig eigene machen willst, setzt du die KickMessage im Event auf "null" und broadcastest als Grund einfach alles, was du beim Befehl ab dem nullten Argument eingegeben hast. Das kannst du dir beim Command mit einer For-Scleife einlesen.
 

MrPyro13

Workaholic
Registriert
29 April 2013
Beiträge
826
Diamanten
300
Minecraft
MrPyro13
Okay. Funktioniert! Nur gibt es nun folgendes Problem:
Es wird die (Listener)Quit Message und die (Broadcast)KickQuit Message angezeigt (Beides).
Der Listener mit dem PlayKickEvent funktioniert nicht bzw. es erscheint keine Message (zum Test mal durchgeführt, ob überhaupt eine Messageänderung erfolgt)

CommandExecutor:
Code:
package de.mrpyro13.ImpComs;

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

public class iKick_Command implements CommandExecutor{

	@Override
	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
		//SCRIPT ANFANG
		if (sender.hasPermission("ImpComs.ikick")) {
			if (args.length >= 2) {			
				Player p;
				p = Bukkit.getPlayer(args[0]);
				if (p != null) {
					if (p != sender) {
							String msg = "§6[ImpComs] §aDu hast §l" + p.getName() + " §agekickt! Grund: §a";
							String grund = "";
							for (int i = 1; i < args.length; i++) {
								grund += args[i] + " ";
							}
							sender.sendMessage(msg + grund);
							p.kickPlayer("§6[ImpComs] §cDu wurdest von §l" + sender.getName() + " §cgekickt!\nGrund: §a" + grund);
							Bukkit.broadcastMessage("§6[§4§l-§6] §7" + p.getDisplayName() + " §7wurde gekickt! Grund: " + grund);
							return true;
					} else {
						sender.sendMessage("§6[ImpComs] §cDu kannst dich nicht selber kicken!");
						return true;
					}
				} else {
					sender.sendMessage("§6[ImpComs] §c§l " + args[0] + " §cist nicht online! Du kannst nur Spieler kicken, die online sind");
					return true;
				}
			} else {
				sender.sendMessage("§6[ImpComs] §c" + "Bitte nutze /ikick <Spieler> <Grund>");
				return true;
			}
		} else {
			sender.sendMessage("§6[ImpComs] " + "§cKeine Permission!");
			return true;
			
		}
		//SCIRPT ENDE
	}

}

QuitMessage-Listener:
Code:
package de.mrpyro13.ImpComs;

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerQuitEvent;

public class Listener_QuitMessage implements Listener {
	
	public Listener_QuitMessage(Main plugin) {
		plugin.getServer().getPluginManager().registerEvents(this, plugin);
	}
	
	@EventHandler
	public void onPlayerQuitEven(PlayerQuitEvent ev) {
		Player p = ev.getPlayer();
		ev.setQuitMessage("§6[§4§l-§6] §7" + p.getDisplayName() + " §7hat den Server verlassen");
	}

}

KickQuitMessage-Listener:
Code:
package de.mrpyro13.ImpComs;
 
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerKickEvent;
 
public class Listener_KickQuitMessage implements Listener {
       
        public Listener_KickQuitMessage(Main plugin) {
                plugin.getServer().getPluginManager().registerEvents(this, plugin);
        }
       
        @EventHandler
        public void onPlayerKickEven(PlayerKickEvent ev) {
        	ev.setLeaveMessage("Kick Event eingetreten");
        }
 
}

Evtl. Main:
Code:
package de.mrpyro13.ImpComs;

import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin {
	
	@Override
	public void onDisable() {
		System.out.println("ImpComs wurde beendet!");
	}

	@Override
	public void onEnable() {
		System.out.println("ImpComs wurde gestartet!");
		
		//Command Imports
		this.getCommand("iheal").setExecutor(new iHeal_Command());
		this.getCommand("igm").setExecutor(new iGm_Command());
		this.getCommand("ihelp").setExecutor(new iHelp_Command());
		this.getCommand("ibroadcast").setExecutor(new iBroadcast_Command());
		this.getCommand("ikick").setExecutor(new iKick_Command());
		
		//Listener Imports
		new Listener_JoinMessage(this);
		new Listener_QuitMessage(this);
		new Listener_PvP(this);
		new Listener_KickQuitMessage(this);
	}

}

//Habs mit Hilfe hinbekommen! Thread kann geschlossen werden!
 
Zuletzt bearbeitet:
Oben