Discord

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

Erledigt PlugIn Tablistprefix (ArrayList)

SyntaxWolf

Redstoneengineer
Mitglied seit
26 Oktober 2017
Beiträge
46
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<>();
   
}
 

moinless

Schafhirte
Mitglied seit
4 Oktober 2013
Beiträge
103
Ein bisschen mehr Informationen wären Hilfreich... Wo liegt dein Problem? Ich glaube nicht, dass jemand in diesem Forum dich jetzt mit einem kompletten Code spoon feeden wird.

Ps. Schau dir nochmal die Code-Konventionen von Java an.
 

ArzaniaEU

Minecrafter
Mitglied seit
24 Dezember 2017
Beiträge
12
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.
 
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
Mitglied seit
26 Oktober 2017
Beiträge
46
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
Mitglied seit
1 Juli 2012
Beiträge
749
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