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

PlugIn Tablistprefix (ArrayList)

SyntaxWolf

Redstoneengineer
Registriert
26 Oktober 2017
Beiträge
46
Diamanten
250
Hey,

Ich arbeite zur Zeit an einem Bedwars Plugin und ich hänge an den Tablistprefixen.
Bisher habe ich nur das:
Code:
//Tablistklasse
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Scoreboard;

public class Listener_Tablist implements Listener {
   
    public static void setTablist(Player p) {
        Scoreboard s = Bukkit.getScoreboardManager().getNewScoreboard();
        Objective o = s.registerNewObjective("aaa", "bbb");
        o.setDisplaySlot(DisplaySlot.PLAYER_LIST);
    }

}

//TeamManager(Noch nicht fertig)

import java.util.ArrayList;

import org.bukkit.entity.Player;

public class TeamManager {

    public static ArrayList<Player> Team_Rot = new ArrayList<>();
    public static ArrayList<Player> Team_Blau = new ArrayList<>();
    public static ArrayList<Player> Team_Gelb = new ArrayList<>();
    public static ArrayList<Player> Team_Grün = new ArrayList<>();
   
}
 
F

Figz

Guest
Hey,
Falls du nur den Tablistprefix ändern möchtest gibt es einen kleinen Trick:
Javascript:
Player player = //Spieler definieren
player.setPlayerListName("[Dein Prefix] "+player.getName());
Viel Glück.

Jedoch muss man auf die Version achten, die verwendet wird.

1. Ist es erst ab einer bestimmten Version verfügbar
2. Ist es erst ab einer neueren Version möglich namen zu verwenden, die Länger als 16 Zeichen lang sind.

Ansonsten, wie er schon angefangen hat kann man es auch mit dem Scoreboard lösen...

Im Scoreboard ein Team erstellen und dann die Methode Team#setPrefix verwenden.
Natürlich nicht vergessen, die Spieler einem Team zuzuordnen ;)
 

SyntaxWolf

Redstoneengineer
Registriert
26 Oktober 2017
Beiträge
46
Diamanten
250
Danke es geht ich habe das in einer Testklasse probiert, aber wie bekomme ich das weg: http://prntscr.com/i8opxa (die 0)?

Klasse:
Code:
package Zensiert(Werbung);

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Scoreboard;

public class Listener_Tablist implements Listener {

    public static void setTablist(Player p) {
        Scoreboard b = Bukkit.getServer().getScoreboardManager().getNewScoreboard();
        Objective o = b.registerNewObjective("aaa", "bbb");
        o.setDisplaySlot(DisplaySlot.PLAYER_LIST);
        if(p.hasPermission("system.vip.test")) {
            p.setPlayerListName("§4" + p.getDisplayName());
            p.setScoreboard(b);
        } else {
            p.setPlayerListName("§7" + p.getDisplayName());
        }
    }
   
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
        Player p = e.getPlayer();
        setTablist(p);
    }
   
}
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Also du möchtest scheinbar für jeden Spieler ein eigenes Scoreboard erstellen? Diese Vorgehensweise macht dann Sinn, wenn jedem Spieler z.B. in der Sidebar unterschiedliche Informationen angezeigt werden sollen. (Wenn alle Mitglieder eines Teams die gleichen Informationen angezeigt bekommen sollen, würde man theoretisch nur ein Scoreboard benötigen. Aber ich sehe gerade, dass Spigot immer noch nicht die 16 farbigen Sidebars unterstützt.)
Ein Objective kann unterschiedliche Anzeigepositionen haben. Du verwendest derzeit die Tabliste, deswegen wird dort "0" angezeigt. Interessanter wären für dich die Anzeigepostion "DisplaySlot.SIDEBAR".
 
F

Figz

Guest
Und da deine Methode "setTabList" heißt, gehe ich davon aus, dass dies dort nichts zu suchen hat.

Also im Grunde genommen, hat die Art wie du derzeit den Namen in der Tabliste änderst NICHTS mit dem Scoreboard zu tun. Das ist eine Methode der Klasse Player.
 
Zuletzt bearbeitet von einem Moderator:
Oben