Trier les joueurs (Spigot)

Thomas_080

Bucheron
18 Mars 2019
25
0
14
27
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:

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr
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. ;)
 

Thomas_080

Bucheron
18 Mars 2019
25
0
14
27
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 ...
 

Thomas_080

Bucheron
18 Mars 2019
25
0
14
27
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