1. 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

Dieses Thema im Forum "Spigot" wurde erstellt von gmb32, 14. November 2017 um 17:20 Uhr.


  1. gmb32
    Offline

    gmb32

    Registriert seit:
    17. Juni 2014
    Beiträge:
    58
    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):
    Code (Javascript):
    1.  
    2. public static boolean event = false;
    3.     public static ArrayList<Player> list = new ArrayList<>();
    4.     public static ArrayList<Player> team1 = new ArrayList<>();
    5.     public static ArrayList<Player> team2 = new ArrayList<>();
    6.     public static ArrayList<Player> ingame = new ArrayList<>();
    7.  
    8. if(list.size() >= 0) {
    9.                                 Bukkit.broadcastMessage("§7[§.§7] Das Event wurde §agestartet!\n§7 Die Teams wurden aufgeteilt! ");
    10.                                 Bukkit.broadcastMessage("§7[§.§7] Team 1: Verteidigen!");
    11.                                 Bukkit.broadcastMessage("§7[§.§7] Team 2: Angreifen!");
    12.                                 int half = list.size() / 2;
    13.                                 for(int i2= 0;i2<list.size(); i2++) {
    14.                                     Player target2 = list.get(i2);
    15.                                     if(target2 != null) {
    16.                                      
    17.                                         for(int i = 0;i< half; i++) {
    18.                                             ///VERTEIDIGER!
    19.                                        
    20.                                             Player target = list.get(i);
    21.                                             File file = new File("plugins//.//Event//Punkte.yml");
    22.                                             YamlConfiguration cfg = new YamlConfiguration().loadConfiguration(file);
    23.                                             Location loc = target.getLocation();
    24.                                             loc.setX(cfg.getDouble("1.X"));
    25.                                             loc.setY(cfg.getDouble("1.Y"));
    26.                                             loc.setZ(cfg.getDouble("1.Z"));
    27.                                             loc.setYaw((float) cfg.getDouble("1.Yaw"));
    28.                                             loc.setPitch((float) cfg.getDouble("1.Pitch"));
    29.                                             World welt = Bukkit.getWorld(cfg.getString("1.Welt"));
    30.                                             loc.setWorld(welt);
    31.                                             target.teleport(loc);
    32.                                             Inventory inv = Bukkit.createInventory(null, 9,"§eWähle ein Kit");
    33.                                             ItemStack item = new ItemStack(Material.IRON_SWORD);
    34.                                             ItemMeta meta = item.getItemMeta();
    35.                                             meta.setDisplayName("§7Kämpfer");
    36.                                             item.setItemMeta(meta);
    37.                                             ///
    38.                                             ItemStack item2 = new ItemStack(Material.BOW);
    39.                                             ItemMeta meta2 = item2.getItemMeta();
    40.                                             meta2.setDisplayName("§7Jäger");
    41.                                             item2.setItemMeta(meta2);
    42.                                             ///
    43.                                             ItemStack item3 = new ItemStack(Material.POTION);
    44.                                             item3.setDurability((byte)16385);
    45.                                             ItemMeta meta3 = item3.getItemMeta();
    46.                                             meta3.setDisplayName("§7Heiler");
    47.                                             item3.setItemMeta(meta3);
    48.                                             inv.setItem(0, item);
    49.                                             inv.setItem(8, item3);
    50.                                             inv.setItem(4, item2);
    51.                                             target.openInventory(inv);
    52.                                             target.sendMessage("§7[§.§7] Du bist dem Team Verteidiger §a§lbeigetreten!");
    53.                                             team1.add(target);
    54.                                             list.remove(i);
    55.                                             ingame.add(target);
    56.                                          
    57.                                         }
    58.                                      
    59.                                         for(int i= 0; i < list.size(); i++) {
    60.                                             ///ANGREIFER!!!
    61.                                             Player target = list.get(i);
    62.                                             File file = new File("plugins//.//Event//Punkte.yml");
    63.                                             YamlConfiguration cfg = new YamlConfiguration().loadConfiguration(file);
    64.                                             Location loc = target.getLocation();
    65.                                             loc.setX(cfg.getDouble("2.X"));
    66.                                             loc.setY(cfg.getDouble("2.Y"));
    67.                                             loc.setZ(cfg.getDouble("2.Z"));
    68.                                             loc.setYaw((float) cfg.getDouble("2.Yaw"));
    69.                                             loc.setPitch((float) cfg.getDouble("2.Pitch"));
    70.                                             World welt = Bukkit.getWorld(cfg.getString("2.Welt"));
    71.                                             loc.setWorld(welt);
    72.                                             target.teleport(loc);
    73.                                             Inventory inv = Bukkit.createInventory(null, 9,"§eWähle ein Kit");
    74.                                             ItemStack item = new ItemStack(Material.IRON_SWORD);
    75.                                             ItemMeta meta = item.getItemMeta();
    76.                                             meta.setDisplayName("§7Kämpfer");
    77.                                             item.setItemMeta(meta);
    78.                                             ///
    79.                                             ItemStack item2 = new ItemStack(Material.BOW);
    80.                                             ItemMeta meta2 = item2.getItemMeta();
    81.                                             meta2.setDisplayName("§7Jäger");
    82.                                             item2.setItemMeta(meta2);
    83.                                             ///
    84.                                             ItemStack item3 = new ItemStack(Material.POTION);
    85.                                             item3.setDurability((byte)16385);
    86.                                             ItemMeta meta3 = item3.getItemMeta();
    87.                                             meta3.setDisplayName("§7Heiler");
    88.                                             item3.setItemMeta(meta3);
    89.                                             inv.setItem(0, item);
    90.                                             inv.setItem(8, item3);
    91.                                             inv.setItem(4, item2);
    92.                                             target.openInventory(inv);
    93.                                             target.sendMessage("§7[§.§7] Du bist dem Team Angreifer §a§lbeigetreten!");
    94.                                             team2.add(list.get(i));
    95.                                             list.remove(i);
    96.                                             ingame.add(target);
    97.                                          
    98.                                         }
    99.                                     }else {
    100.                                         list.remove(target2);
    101.                                     }
    102.                              
    103.                                 }
    104.                              
    105.                             }else {
    106.                                 p.sendMessage("§7[§.§7] Zu wenig Teilnehmer! "+list.size());
    107.                             }
    Das Problem dabei ist das wenn es eine ungerade Zahl ist (3) nur 2 aufgeteilt werden und der 3. garnicht

    LG Axtkämpfer
     
  2. Werbung
    Online

    Werbung

  3. Baba43
    Offline

    Baba43 Ehem. Teammitglied

    Registriert seit:
    5. November 2012
    Beiträge:
    682
    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 :)