Minecraft Plugin Text nur für einen Spieler ausgeben?

3 Antworten

Wenn es dein erstes Plugin ist, dann solltest du dir erstmal die Java Grundlagen anschauen. Danach dir die JavaDocs für Spigot/Bukkit durchlesen und dann kannst du mit den Plugins anfangen ;-)

Aber ich will mal nicht so sein. Wie erscheint denn jene Chat Nachricht, gibst du diese selbst aus? Poste mal bitte den gesamten Code hier. Nur nur einzelne Ausschnitte.


123JULIEN123 
Beitragsersteller
 24.05.2018, 18:16

das ist das was gesendet wird

package de.spells.command;

import org.bukkit.command.Command;

import org.bukkit.command.CommandExecutor;

import org.bukkit.command.CommandSender;

public class HilfeCommand implements CommandExecutor {

   @Override

   public boolean onCommand(CommandSender s, Command cmd, String string, String[] args) {

      s.sendMessage("               §7=§c§lMagie Hilfe§6§7=");

      s.sendMessage("");

      s.sendMessage("     §7Hilfe findest du auf unsera Website");

      s.sendMessage("                  §7www.google.de");

      s.sendMessage("");

      s.sendMessage("               §7=§c§lMagie Hilfe§d§7=");

      return true;

   }

}

123JULIEN123 
Beitragsersteller
 24.05.2018, 18:15

da unten ist der command

package de.spells.main;

import org.bukkit.Bukkit;

import org.bukkit.plugin.java.JavaPlugin;

import de.spells.command.HilfeCommand;

public class Main extends JavaPlugin {

   public static Main INSTANCE;

   public static String PREFIX;

   @Override

   public void onEnable() {

       INSTANCE = this;

       PREFIX = "§dSpells §7> ";

       register();

       Bukkit.getConsoleSender().sendMessage(PREFIX + "§dSpells aktiviert.");

   }

   @Override

   public void onDisable() {

       Bukkit.getConsoleSender().sendMessage(PREFIX + "§dSpells deaktiviert.");

   }

   public void register() {

      Bukkit.getPluginCommand("magie").setExecutor(new HilfeCommand());

   }

}

verreisterNutzer  24.05.2018, 18:22
@123JULIEN123

1.) Variablen, welche in Capital geschrieben sind, sind Konstanten bzw. finale Variablen und sollen auch so gekennzeichnet werden. Also public static final Main INSTANCE. Da dies aber nicht so gewünscht ist, solltest du die Variablen klein schreiben.

2.) Was den Prefix angeht, warum legst du den im onEnable() Teil fest. Wenn du den Prefix schon Hardcodest, dann pack den direkt oben rein als public static final String PREFIX = "§dSpells §7>";

3.) Wenn du nur dem Spieler eine Nachricht senden möchtest, dann kannst du das so tun, wie du das gemacht hast. Also ich sehe da kein Fehler, warum die anderen Spieler auch eine Nachricht bekommen sollten.

Soweit ich deinen Code verstanden habe wird die Nachricht nur an den Spieler gesendet. Wenn der Sender s ist, kannst du diesen nach einer Abfrage zu einem Spieler casten:

Player p = (Player) s;

Und dem kannst du dann eine Nachricht senden:

p.sendMessage("NACHRICHT");

Allerdings musst du das Sender-Objekt nicht umwandeln, so wie du es gemacht hast geht es auch

s.sendMessage("NACHRICHT");
Woher ich das weiß:Studium / Ausbildung – Ausbildung Fachinformatiker Anwendungsentwicklung

verreisterNutzer  24.05.2018, 20:13

Das macht aber kein Unterschied, ob der Fragesteller nun zum Player castet oder den CommandSender nimmt. Kommt das Selbe bei raus.

Das Casten zum Player macht man eigentlich nur dann, wenn man was mit dem Player Objekt selbst was machen möchte. Will man nur ne Nachricht verschicken, kann er auch den CommandSender lassen.

LudwigSchindler  24.05.2018, 22:30
@verreisterNutzer

Äh ja...

Wenn der Sender s ist, kannst du diesen nach einer Abfrage zu einem Spieler casten:

...

Allerdings musst du das Sender-Objekt nicht umwandeln, so wie du es gemacht hast geht es auch

Hi,

du könntest eine if abfrage machen

if(player.hasPermission("deine.permission"){
}

und in der if abfrage dann ein

player.sendMessage("Deine Nachricht an den Spieler mit der permission deine.permission");

setzten.

Sieht letzendlich so aus;

if(player.hasPermission("deine.perm"){
  player.sendMessage("Deine Message an den Spieler mit der Perm deine.perm");
}

Btw:

Für mehrere würde ich eine "else if" abfrage machen.

Beispiel:

if(player.hasPermission("deine.perm"){
  player.sendMessage("Deine Message an den Spieler mit der Perm deine.perm");
}
else if(player.hasPermission("deine.perm2"){
  player.sendMessage("Deine Message an den Spieler mit der Perm deine.perm2");
}
else if(player.hasPermission("deine.perm3"){
  player.sendMessage("Deine Message an den Spieler mit der Perm deine.perm3");
}

Okey viel Spaß noch mit Java

LG

Woher ich das weiß:Hobby – Ich bin sehr viel am Computer