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

Random Spieler verteilen

gmb32

Kuhfänger
Mitglied seit
Jun 17, 2014
Beiträge
81
Bewertungen
1
#1
Hey,
ich möchte wenn das Event gestartet alle die beigetreten sind (ArrayList) aufgeteilt werden in 2 gleich große Teams.
Dabei soll die Verteilung zufällig sein.

Mein bisheriger Code(nicht ganz funktionable):
Javascript:
public static boolean event = false;
    public static ArrayList<Player> list = new ArrayList<>();
    public static ArrayList<Player> team1 = new ArrayList<>();
    public static ArrayList<Player> team2 = new ArrayList<>();
    public static ArrayList<Player> ingame = new ArrayList<>();

if(list.size() >= 0) {
                                Bukkit.broadcastMessage("§7[§.§7] Das Event wurde §agestartet!\n§7 Die Teams wurden aufgeteilt! ");
                                Bukkit.broadcastMessage("§7[§.§7] Team 1: Verteidigen!");
                                Bukkit.broadcastMessage("§7[§.§7] Team 2: Angreifen!");
                                int half = list.size() / 2;
                                for(int i2= 0;i2<list.size(); i2++) {
                                    Player target2 = list.get(i2);
                                    if(target2 != null) {
                                      
                                        for(int i = 0;i< half; i++) {
                                            ///VERTEIDIGER!
                                       
                                            Player target = list.get(i);
                                            File file = new File("plugins//.//Event//Punkte.yml");
                                            YamlConfiguration cfg = new YamlConfiguration().loadConfiguration(file);
                                            Location loc = target.getLocation();
                                            loc.setX(cfg.getDouble("1.X"));
                                            loc.setY(cfg.getDouble("1.Y"));
                                            loc.setZ(cfg.getDouble("1.Z"));
                                            loc.setYaw((float) cfg.getDouble("1.Yaw"));
                                            loc.setPitch((float) cfg.getDouble("1.Pitch"));
                                            World welt = Bukkit.getWorld(cfg.getString("1.Welt"));
                                            loc.setWorld(welt);
                                            target.teleport(loc);
                                            Inventory inv = Bukkit.createInventory(null, 9,"§eWähle ein Kit");
                                            ItemStack item = new ItemStack(Material.IRON_SWORD);
                                            ItemMeta meta = item.getItemMeta();
                                            meta.setDisplayName("§7Kämpfer");
                                            item.setItemMeta(meta);
                                            ///
                                            ItemStack item2 = new ItemStack(Material.BOW);
                                            ItemMeta meta2 = item2.getItemMeta();
                                            meta2.setDisplayName("§7Jäger");
                                            item2.setItemMeta(meta2);
                                            ///
                                            ItemStack item3 = new ItemStack(Material.POTION);
                                            item3.setDurability((byte)16385);
                                            ItemMeta meta3 = item3.getItemMeta();
                                            meta3.setDisplayName("§7Heiler");
                                            item3.setItemMeta(meta3);
                                            inv.setItem(0, item);
                                            inv.setItem(8, item3);
                                            inv.setItem(4, item2);
                                            target.openInventory(inv);
                                            target.sendMessage("§7[§.§7] Du bist dem Team Verteidiger §a§lbeigetreten!");
                                            team1.add(target);
                                            list.remove(i);
                                            ingame.add(target);
                                          
                                        }
                                      
                                        for(int i= 0; i < list.size(); i++) {
                                            ///ANGREIFER!!!
                                            Player target = list.get(i);
                                            File file = new File("plugins//.//Event//Punkte.yml");
                                            YamlConfiguration cfg = new YamlConfiguration().loadConfiguration(file);
                                            Location loc = target.getLocation();
                                            loc.setX(cfg.getDouble("2.X"));
                                            loc.setY(cfg.getDouble("2.Y"));
                                            loc.setZ(cfg.getDouble("2.Z"));
                                            loc.setYaw((float) cfg.getDouble("2.Yaw"));
                                            loc.setPitch((float) cfg.getDouble("2.Pitch"));
                                            World welt = Bukkit.getWorld(cfg.getString("2.Welt"));
                                            loc.setWorld(welt);
                                            target.teleport(loc);
                                            Inventory inv = Bukkit.createInventory(null, 9,"§eWähle ein Kit");
                                            ItemStack item = new ItemStack(Material.IRON_SWORD);
                                            ItemMeta meta = item.getItemMeta();
                                            meta.setDisplayName("§7Kämpfer");
                                            item.setItemMeta(meta);
                                            ///
                                            ItemStack item2 = new ItemStack(Material.BOW);
                                            ItemMeta meta2 = item2.getItemMeta();
                                            meta2.setDisplayName("§7Jäger");
                                            item2.setItemMeta(meta2);
                                            ///
                                            ItemStack item3 = new ItemStack(Material.POTION);
                                            item3.setDurability((byte)16385);
                                            ItemMeta meta3 = item3.getItemMeta();
                                            meta3.setDisplayName("§7Heiler");
                                            item3.setItemMeta(meta3);
                                            inv.setItem(0, item);
                                            inv.setItem(8, item3);
                                            inv.setItem(4, item2);
                                            target.openInventory(inv);
                                            target.sendMessage("§7[§.§7] Du bist dem Team Angreifer §a§lbeigetreten!");
                                            team2.add(list.get(i));
                                            list.remove(i);
                                            ingame.add(target);
                                          
                                        }
                                    }else {
                                        list.remove(target2);
                                    }
                              
                                }
                              
                            }else {
                                p.sendMessage("§7[§.§7] Zu wenig Teilnehmer! "+list.size());
                            }
Das Problem dabei ist das wenn es eine ungerade Zahl ist (3) nur 2 aufgeteilt werden und der 3. garnicht

LG Axtkämpfer
 

Baba43

Ehem. Teammitglied
Ehem. Teammitglied
Mitglied seit
Nov 5, 2012
Beiträge
755
Bewertungen
527
#2
Am besten räumst du deinen Code erstmal so auf, dass du jeglichen Code entfernst, der nicht mit der Verteilung zu tun hat. Dann versuchst du einmal im Kopf nachzuvollziehen, was der Code eigentlich macht und falls dir das zu schwer fällt, baust du Debug-Meldungen ein, um den Code-Fluss zu verstehen (System.out.println).

Falls du dann nicht weiter kommst, poste bitte den auf das Problem reduzierten Quelltext noch einmal hier :)
 

KaeseKuchen_DEV

Redstoneengineer
Mitglied seit
Mai 11, 2016
Beiträge
47
Bewertungen
3
Minecraft
KaeseKuchenDEV
#3
Wenn du Eclipse benutzt würde ich dir empfehlen einmal Strg+Shift+F zu drücken dadurch wird dein Code einmal formatiert und es ist leichter zu verstehen. Bei größeren Codes würde ich dir auch empfehlen den Code auf Pastebin oder Github hochzuladen und dann den Link hier einfügen. Dann bekommst du bestimmt mehr Hilfe.
MfG KaeseKuchenDEV
 
Allgemein
Help Benutzer
    Mannke Mannke: Und ehe man sich versieht ist man im sozialen Aus.
    Oben