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

Warum wird es in der Tablist nicht gesetzt?

MedusTv

Minecrafter
Registriert
23 April 2016
Beiträge
1
Alter
22
Diamanten
300
Code:
package de.medustv.tablist.commands;

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

import de.medustv.tablist.main.Main;

public class Prefix implements CommandExecutor{

    @Override
    public boolean onCommand(CommandSender sender, Command commands, String label, String[] args) {
       
        if(sender instanceof Player) {
            Player p = (Player) sender;
            if(p.hasPermission("tablist.add")) {
                System.out.println("0");
                if(args.length <= 3) {
                    System.out.println("1");
                    FileConfiguration cfg = Main.getPlugin().getConfig();
                    Player tr = Bukkit.getPlayer(args[0].toString());
                    if (!(tr == null)) {
                        System.out.println("2");
                        if (args[1].equalsIgnoreCase("Owner")) {
                            System.out.println("3");
                            tr.setDisplayName("§7[§4Owner§7] " + tr.getName());
                            tr.setCustomName("§7[§4Owner§7] " + tr.getName());
                            tr.setPlayerListName("§7[§4Owner§7] " + tr.getName());
                            cfg.set("Player." + tr.getName() , tr.getDisplayName());
                            Main.getPlugin().saveConfig();
                        }
                       
                        if (args[1].equalsIgnoreCase("Admin")) {
                            System.out.println("4");
                            tr.setDisplayName("§7[§cAdmin§7] " + tr.getName());
                            tr.setCustomName("§7[§cAdmin§7] " + tr.getName());
                            cfg.set("Player." + tr.getName() , tr.getDisplayName());
                            Main.getPlugin().saveConfig();
                        }
                    }
                }
            }
        }
       
        return false;
    }

}
 
Registriert
10 Dezember 2017
Beiträge
161
Alter
26
Diamanten
322
Minecraft
DerFrZocker
Als erstes:

anstatt
if (!(tr == null)) {

kanst du auch:
Code:
 if(tr != null){ [
schreiben.


if(args.length <= 3) {

ist ein Logik Fehler, es würde
Code:
 if(args.length == 2)
eher passen.


Versuche nicht so lange if ketten zu bilden z.b.
anstatt
if(sender instanceof Player) {

kannst du
Code:
 if(!(sender instanceof Player)) return false;
schreiben.

Und nun zu deinen eigentlichen Problem. Bei deinem Owner block sehe ich keinen Fehler, dass heißt es müsste funktionieren.
Bei deinem Admin block allerdings fehlt die Zeile:

Code:
 tr.setPlayerListName("§7[§cAdmin§7] " + tr.getName());

Wenn es bei beiden nicht funktioniert, würde ich schauen ob ein anderes Plugin dazwischen funkt.

Generell aber würde ich bei Prefixen mit Scoreboards arbeiten.

Mfg DerFrZocker
 

LinuxServer

Kuhfänger
Registriert
17 September 2016
Beiträge
50
Diamanten
0
Minecraft
LinuxServer
Guten Tag,

also ich finde die passende Problembeschreibung sehr hilfreich. Sollen wir uns die Fehler aus der Nase ziehen?

*Dieser Kommentar soll keine Beleidigung sein, sondern Kritik.*

Mit freundlichen Grüßen
 
Oben