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

Join Permissions

_Jonas

Minecrafter
Registriert
5 September 2019
Beiträge
12
Diamanten
303
Minecraft
_Jonas
Hey, kann mir jemand mal was für mein BedWars System schreiben? Ich möchte ein System wo es insgesamt 5 Join Permissions gibt, die sich folgendermaßen aufbauen:

- Joinrecht.Admin
- Joinrecht.Teammitglied
- Joinrecht.Champion (Kaufbarer Rang)
- Joinrecht.Master (Kaufbarer Rang)
- Joinrecht.Premium (Kaufbarer Rang)

Die sollen dafür sorgen das:
Der Spieler vom Premium Spieler gekickt wird, der Premium vom Master gekickt werden kann, der Master vom Champion, der Champion vom Teammitglied und das Teammitglied vom Admin, wäre cool. Danke
 

Addy4ever

Minecrafter
Registriert
13 August 2016
Beiträge
7
Diamanten
301
Keine Ahnung, ob Du den Codeschnipsel noch brauchst aber hier ist er:

Java:
import java.util.List;
import java.util.Random;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerLoginEvent.Result;

import com.google.common.collect.Lists;

public class JoinWithPermission implements Listener {
 
    private String permissionPrefix = "joinrecht.";
    private int maxPlayers = 10;
 
    @EventHandler
    public void on(PlayerLoginEvent event) {
        if(Bukkit.getOnlinePlayers().size() < maxPlayers) return;

        List<Player> readyToKick = Lists.newArrayList();
        int priority = getPriorityFromPlayer(event.getPlayer());
     
        for(Player player : Bukkit.getOnlinePlayers()) {
            int priority1 = getPriorityFromPlayer(player);
         
            // Kleinere Priorität = höherer Rang
            if(priority1 <= priority) continue;
            readyToKick.add(player);
        }
     
        if(readyToKick.isEmpty()) {
            event.disallow(Result.KICK_FULL, "Der Server ist voll.");
            return;
        }
     
        Player randomPlayer = readyToKick.get(new Random().nextInt(readyToKick.size()));
        randomPlayer.kickPlayer("Du musstest Platz machen.");
    }
 
    //               priority:    0            1             2          3          4
    private String[] groups = { "admin", "teammitglied", "champion", "master", "premium" };
    private int getPriorityFromPlayer(Player player) {
        for(int i = 0; i < groups.length; i++) {
            if(player.hasPermission(permissionPrefix + groups[i])) return i;
        }
        return groups.length;
    }
}

Ich habe das Ding noch nicht getestet aber theorätisch sollte er funktionieren.
 
Oben