You are not logged in.

  • Login
Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

The_Kill_Kid

User / Kunde

  • "The_Kill_Kid" started this thread

Posts: 12

  • Send private message

1

Sunday, October 14th 2018, 10:45am

Wenn ein Spieler sich nickt, das er dann in der Leiste der VIP-Spieler im tab angezeigt wird, sowie im Chat und über den Kopf und Tab-bar!

Liebes Nitrado-Team,
ich bin derzeit in Arbeit in meinen Prefix-Plugin ein Nick-System hinzuzufügen, doch immer wenn sich jemand genickt hat, stand im Tab und Chat immer: ,,

Admin : VIP : (Spielername) " statt ,, VIP : (Spielername) ".
Ansonsten funktioniert alles. Ich habe es mal mit (p.getDisplayerName) versucht, aber dann kommt die Fehlermeldung die ich schon genannt habe, und wenn ich (p.getPlayer) abfrage, steht dann direkt (Admin : (Spielername) - Zumindes auf Tab, im Chat steht direkt (VIP : (Spielername).
Ich habe es mal hingekriegt, doch dann konnte man die Nicks nicht tapen, dazunoch wurde der Skin NICHT gechanged und der Name über Kopf blieb der gleiche und hat sich NICHT geändert. Ich wurde noch ganz oben auf der Tablist angezeigt und wenn ich ein YouTuber bin und mich nicke, passiert alles genau das gleiche nur das der Nick vom YouTuber halt in der YouTuber-Leiste stehen bleibt.
Bitte hilft mir. Am besten wäre wenn ihr mir hilft welche Methoden ich nutzen sollte, und wie ich so einen Spieler nicken kann mit einem antappbaren Namen und überm Kopf sowie im Chat und im Tab sortiert hinkriege? Bitte hilft mir.
Der Code vom Rangsystem. Wie könnte ich da ein Nick-Plugin nutzen können das er auch sortiert wird?
CODE:
______________________________________________________________
sb = Bukkit.getScoreboardManager().getNewScoreboard();

sb.registerNewTeam("01admin");
sb.registerNewTeam("02moderator");
sb.registerNewTeam("03supporter");
sb.registerNewTeam("04builder");
sb.registerNewTeam("05youtuber");
sb.registerNewTeam("06mineplus");
sb.registerNewTeam("07minegamer");
sb.registerNewTeam("08vip");
sb.registerNewTeam("09spieler");

sb.getTeam("01admin").setPrefix("§4Admin §7● §4");
sb.getTeam("02moderator").setPrefix("§cMod §7● §c");
sb.getTeam("03supporter").setPrefix("§9Sup §7● §9");
sb.getTeam("04builder").setPrefix("§2Build §7● §2");
sb.getTeam("05youtuber").setPrefix("§5YT §7● §5");
sb.getTeam("06mineplus").setPrefix("§bMine§f+ §7● §b");
sb.getTeam("07minegamer").setPrefix("§bM§cGame §7● §c");
sb.getTeam("08vip").setPrefix("§6VIP §7● §6");
sb.getTeam("09spieler").setPrefix("§7");

}

@EventHandler
public void onJoin11(PlayerJoinEvent e) {

new BukkitRunnable() {

@Override
public void run() {
setPrefix(e.getPlayer());
}
}.runTaskLaterAsynchronously(this, 1);

}

@EventHandler
public void onCMD(PlayerCommandPreprocessEvent e) {
String command = e.getMessage();
Player p = e.getPlayer();
if(command.equalsIgnoreCase("")){
if(p.hasPermission("MinePlays.Nick")){

new BukkitRunnable() {

@Override
public void run() {
setPrefix(e.getPlayer());
}
}.runTaskLaterAsynchronously(this, 1);

}else{
p.sendMessage("§b§lMinePlays §8§l●•· §cDazu hast du keine Berichtigung");
p.playSound(p.getLocation(), Sound.BLAZE_HIT, 0.2F, 0.2F);
}
}
}

public void setPrefix(Player p) {

String team = "";

if (p.hasPermission("mineplays.Prefix.admin")) {
team = "01admin";
} else if (p.hasPermission("mineplays.prefix.moderator")) {
team = "02moderator";
} else if (p.hasPermission("minePlays.prefix.supporter")) {
team = "03supporter";
} else if (p.hasPermission("mineplays.prefix.builder")) {
team = "04builder";
} else if (p.hasPermission("mineplays.prefix.youtuber")) {
team = "05youtuber";
} else if (p.hasPermission("mineplays.prefix.mineplus")) {
team = "06mineplus";
} else if (p.hasPermission("mineplays.prefix.minegamer")) {
team = "07minegamer";
} else if (p.hasPermission("mineplays.prefix.vip")) {
team = "08vip";
} else if (p.hasPermission("mineplays.prefix.spieler")) {
team = "09spieler";
}

sb.getTeam(team).addPlayer(p);
p.setDisplayName(sb.getTeam(team).getPrefix() + p.getName());

for (Player all : Bukkit.getOnlinePlayers()) {
all.setScoreboard(sb);
}
}
@EventHandler
public void onChat(AsyncPlayerChatEvent e){
Player p = e.getPlayer();
String msg = e.getMessage();

if(p.hasPermission("mineplays.prefix.spieler")){
p.playSound(p.getLocation(), Sound.ITEM_PICKUP, 0.2F, 0.2F);
e.setFormat("§7" + p.getName() + "§8 » §7" + msg + "§8");
}else{
}

if(p.hasPermission("mineplays.prefix.vip")){
p.playSound(p.getLocation(), Sound.ITEM_PICKUP, 0.2F, 0.2F);
e.setFormat("§6VIP §7● §6" + p.getName() + "§8 » §7" + msg + "§8");
}else{
}

if(p.hasPermission("mineplays.prefix.minegamer")){
p.playSound(p.getLocation(), Sound.ITEM_PICKUP, 0.2F, 0.2F);
e.setFormat("§bMine§cGamer §7● §c" + p.getName() + "§8 » §7" + msg + "§8");
}else{
}

if(p.hasPermission("mineplays.prefix.mineplus")){
p.playSound(p.getLocation(), Sound.ITEM_PICKUP, 0.2F, 0.2F);
e.setFormat("§bMine§f+ §7● §b" + p.getName() + "§8 » §7" + msg + "§8");
}else{
}

if(p.hasPermission("mineplays.prefix.youtuber")){
p.playSound(p.getLocation(), Sound.ITEM_PICKUP, 0.2F, 0.2F);
e.setFormat("§5YT §7● §5" + p.getName() + "§8 » §7" + msg + "§8");
}else{
}

if(p.hasPermission("mineplays.prefix.builder")){
p.playSound(p.getLocation(), Sound.ITEM_PICKUP, 0.2F, 0.2F);
e.setFormat("§2Build §7● §2" + p.getName() + "§8 » §7" + msg + "§8");
}else{
}

if(p.hasPermission("mineplays.prefix.supporter")){
p.playSound(p.getLocation(), Sound.ITEM_PICKUP, 0.2F, 0.2F);
e.setFormat("§9Sup §7● §9" + p.getName() + "§8 » §7" + msg + "§8");
}else{
}

if(p.hasPermission("mineplays.prefix.moderator")){
p.playSound(p.getLocation(), Sound.ITEM_PICKUP, 0.2F, 0.2F);
e.setFormat("§cMod §7● §c" + p.getName() + "§8 » §7" + msg + "§8");
}else{
}

if(p.hasPermission("mineplays.prefix.admin")){
p.playSound(p.getLocation(), Sound.ITEM_PICKUP, 0.2F, 0.2F);
e.setFormat("§4Admin §7● §4" + p.getName() + "§8 » §7" + msg + "§8");
}else{
}
}
}
______________________________________________________________________________________________-
Vielen Dank im vorraus. Lg, Rayzs_YT

MedPlex

Nitrado Mitarbeiter

  • "MedPlex" is male

Posts: 90

Location: Karlsruhe

Occupation: Customer Care Agent Nitrado

  • Send private message

2

Tuesday, October 23rd 2018, 4:47pm

In der Nacht fällt der Boden von den Wänden :whistling:

Du brauchst nen Server? Nitrado.net!

DasFaro

User / Kunde

Posts: 3

  • Send private message

3

Wednesday, October 24th 2018, 11:45am

Hey,
auf die Schnelle deinen Code durchzuschauen ist echt schlimm... Ich habe leider momentan nicht die
Zeit und Lust mir dieses Chaos anzuschauen, kann dir jedoch vielleicht ein paar Tipps geben wie
es wesentlich effektiver und performanter ist:

Ich hätte damit angefangen eine Methode zu erstellen welchen den Spieler nickt. Optional kannst du in der Parameterliste
den entsprechenden Rang oder Layout oder so bestimmen (Nachhaltiges Programmieren)
Du solltest EINMAL abfragen welche Rechte der Spieler hat und ggf. in dieser Methode Attribute wie CostumePlayerName oder
DisplayNamesetzen. Da kannst du auch abfragen, ob der Spieler genickt ist oder nicht... Dann brauchst du nurnoch dem Spieler
das Chatformat auf den DisplayName zu setzen oder PlayerListName und whatever
Bei if-Abfragen kannst du das "else" weglassen, wenn du eh keine Anweisung hast.
Ansonsten sollte dir im Klaren sein, dass Sachen wie Skin/Tabbarer Name/etc.. nicht beeinflusst werden
Das sollte erstmal genügen.

This post has been edited 1 times, last edit by "DasFaro" (Oct 24th 2018, 11:52am)


frankfurt100

User / Kunde

Posts: 39

  • Send private message

4

Saturday, October 27th 2018, 7:42pm

Wie DasFaro schon gesagt hat, ist es wirklich ziemlich mühselig bei dem Chaos deiner Beschreibung irgendwie den Überblick zu behalten.
Aber ich versuche dir mal ein bisschen zu helfen:
So wie ich es verstanden habe, möchtest du ein NickPlugin mit entsprechenen Prefixes programmieren. Meiner Meinung nach, ist deine Herangehensweise schon verkehrt. Ich würde dir empfehlen um den Spielernamen zu ändern ihn im GameProfile zu ändern. Als nächstes kannst du dann mit p#setDisplayName den Prefix des Spielers setzen und als letztes musst du dann noch das PacketPlayOutPlayerInfo-Packet senden um den Spieler, ich nenne es mal, zu refreshen.
Hoffe ich konnte dir ein bisschen helfen, allerdings würde ich beim nächsten Mal wirklich an deiner Stelle auf die Übersichtlichkeit deines Posts achten und den Code in einen Spoiler oä. packen.
Viele Grüße

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net