Trier les joueurs (Spigot)

Thomas_080

Bucheron
18 Mars 2019
25
0
14
29
Bonjour à tous;
J'aimerais savoir comment je peut mettre un seul joueur dans une LinkedList;
je m'explique:
J'aimerais créer un mini jeu de 2 à 5 joueurs;
pour cela j'ai mis tout les joueurs qui cliquent sur un panneau dans une LinkedList : players;
j'aimerais prendre juste un joueur de la LinkedList players pour le mettre dans la linkedList joueur1 ;
piocher un seconde joueur pour le mettre dans la LinkedList joueur2 etc...
bien sûr je veux mettre qu'un seul joueur par LinkedList…
j'ai fait dans ma classe main
:
Code:
private LinkedList<Player> players = new LinkedList<Player>();


public LinkedList<Player> getPlayers() {
        return players;
    }
( chaque joueurs que je souhaite mettre dans une linkedList précise peut être choisi aléatoirement ou non , peut importe)

PS: Ma classe main ne contient pas que ça ^^ j'ai juste mis ma linkedList

PPS: J'ai mis tout les joueurs qui cliquent sur le panneau dans la linkedlist players il reste plus qu'a les envoyer dans une linkedList pour qu'ils soient solo ^^ ( comme ça :
Code:
if(!main.getPlayers().contains(p)) {
                            
                            main.getPlayers().add(p);
                            main.getPlayers().forEach(inGamePlayers -> inGamePlayers.sendMessage("§7[§eDAC§7]§r §6(§4JOUEUR§6)§r " + p.getName()+"§a a rejoint la partie  <"+main.getPlayers().size()+"/"+joueurswait+">"));
                        }       
                        
                        if(main.getPlayers().size() < joueurswait) {
                            
                            main.getPlayers().forEach(inGamePlayers -> inGamePlayers.sendMessage("§7[§eDAC§7] §7En attente d'autre joueurs..."));                       
                        }
                        
                        if(main.getPlayers().size() == joueurswait) {
                            
                            start = new GameAutoStart(main.GetInstance());
                            start.runTaskTimer(main.GetInstance(), 0, 20);
                            main.setState(GameState.lancement);
                        }

Merci par avance :)
Thomas

Je me ça là aussi je comprend pas pourquoi le GautoStart ne veut pas se lancer , j'ai fait pareil sur un autre programme et ça marche nickel


Code:
Dans mon Listener :
private GameAutoStart start;


start = new GameAutoStart(GMain.getInstance());
                            start.runTaskTimer(GMain.getInstance(), 0, 20);


Dans ma classe main:

private static GMain instance;
    
        private GameState state;
    
    @Override
    public void onEnable() {
        
        PluginManager pm = getServer().getPluginManager();
        pm.registerEvents(new PlayerListener(this), this);       
        setState(GameState.attente);
        
        instance = this;
    }
    
        
    public static GMain getInstance() {
        return instance;
    }
 
Dernière édition par un modérateur:
Salut,

( chaque joueurs que je souhaite mettre dans une linkedList précise peut être choisi aléatoirement ou non , peut importe)
je m'interroge sur pourquoi utiliser une List si c'est pour stocker un seul objet ? Et surtout, à quoi sont censés servir ces X listes ? Pourquoi ne pas utiliser simplement ta liste players ?

Je me ça là aussi je comprend pas pourquoi le GautoStart ne veut pas se lancer
Ici il faut être plus précis. As-tu essayé de faire du debug pour voir d'où vient le soucis, ça ne doit pas être grand-chose. ;)
 
Pour le debug oui je l'ai fait , je met un send message avant le start gautostart et je le recoit,
Mais si je le met apres rien ...
 
Je ne trouve toujours pas pourquoi mon GautoStart se lance pas :/
J'ai essayer en mettant en mettant ma main en static…
...mais sans succés