Trying to get 2 different Players

Discussion in 'Spigot Plugin Development' started by GoRoK, Jun 24, 2016.

  1. Code (Text):

    public ArrayList<Player> online = new ArrayList<>();
        @EventHandler
        public void onJoin(PlayerJoinEvent e)
        {
            onlineplayers.add("Fuellstring" + 1);
            List <String> lore = new ArrayList<String>();
            lore.add("Bricht die Aktion ab.");
            ItemStack surrendery = new ItemStack(Material.RED_ROSE);
            ItemMeta mett = surrendery.getItemMeta();
            mett.setDisplayName(ChatColor.RED + "Abbrechen!");
            mett.setLore(lore);
            surrendery.setItemMeta(mett);
            surrenderInv.setItem(14, surrendery);
           
            ItemStack surrendern = new ItemStack(Material.YELLOW_FLOWER);
            List<String> lore2 = new ArrayList<String>();
            lore2.add("Verschwinde wie ein feiges Huhn!");
            ItemMeta surrenderinvmeta = surrendern.getItemMeta();
            surrenderinvmeta.setDisplayName(ChatColor.GREEN + "Aufgeben!");
            surrenderinvmeta.setLore(lore2);
            surrendern.setItemMeta(surrenderinvmeta);
            surrenderInv.setItem(12, surrendern);
           
           
           
           
           
           
           
            Player p = e.getPlayer();
            online.add(p);
            String pname = e.getPlayer().getDisplayName();
            e.setJoinMessage(ChatColor.BLUE + "[" + ChatColor.AQUA + "JumpBattle" + ChatColor.BLUE + "] " + pname + ChatColor.GRAY + " ist dem Spiel beigetreten.");
            World world = p.getWorld();
           
           
            int x = plugin.getConfig().getInt("Jump_Battle.SpawnX");
            int y = plugin.getConfig().getInt("Jump_Battle.SpawnY");
            int z = plugin.getConfig().getInt("Jump_Battle.SpawnZ");
           
            int x1 = plugin.getConfig().getInt("Jump_Battle1.SpawnX");
            int y1 = plugin.getConfig().getInt("Jump_Battle1.SpawnY");
            int z1 = plugin.getConfig().getInt("Jump_Battle1.SpawnZ");
            Location player1 = new Location(world, x, y, z);
            Location player2= new Location(world, x1, y1, z1);
            int size = online.size();
            Random r = new Random();
            size = r.nextInt(size);
            online.get(size).teleport(player1);
            online.get(size).teleport(player2);
            int online = Bukkit.getServer().getOnlinePlayers().size();
            if(e.getPlayer() instanceof Player)
            {
           
                if(online == 2)
                {
                    new BukkitRunnable (){
                        int i = 20;
                        ItemStack[] armor = p.getInventory().getArmorContents();

                        public void run (){
                         i -= 1;
                         for( Player all : Bukkit.getOnlinePlayers())
                         {
                             all.setLevel(i);
                             all.getInventory().clear();
                         }
                         Bukkit.broadcastMessage(ChatColor.BLUE + "[" + ChatColor.AQUA + "JumpBattle" + ChatColor.BLUE + "] " +ChatColor.RED + "Das Spiel startet in " + ChatColor.GRAY + i + ChatColor.GRAY + "Sekunden");
                        if (i == 0){
                            p.setLevel(0);
                           Bukkit.broadcastMessage(ChatColor.AQUA + "Das Spiel startet!");
                           p.getInventory().setArmorContents(armor);
                           
                           cancel();
                        }
                        }
                        }.runTaskTimer(plugin, 10, 20);
                        ItemStack SurrenderItem = new ItemStack(Material.REDSTONE_TORCH_ON);
                        ItemMeta meta = SurrenderItem.getItemMeta();
                        List<String> surrenderlist = new ArrayList<String>();
                        surrenderlist.add(ChatColor.RED + "Benutze dieses Item um Aufzugeben.");
                        meta.setDisplayName(ChatColor.RED + "Surrender");
                        meta.setLore(surrenderlist);
                        meta.addEnchant(Enchantment.DIG_SPEED, 10, true);
                        SurrenderItem.setItemMeta(meta);
                        p.getInventory().setItem(8, SurrenderItem);
                       
                        ItemStack fix = new ItemStack(Material.EMERALD);
                        ItemMeta fixmeta = fix.getItemMeta();
                        List<String> fixlist = new ArrayList<>();
                        fixlist.add(ChatColor.GREEN + "Sollte deine Surrenderlampe nicht funktionieren,");
                        fixlist.add(ChatColor.GREEN + "benutze dieses Item.");
                        fixmeta.setLore(fixlist);
                        fixmeta.setDisplayName(ChatColor.GREEN + "Surrender Fix");
                        fix.setItemMeta(fixmeta);
                        p.getInventory().setItem(7, fix);
                       
                        }
               
                else if (online < 2)
                {
                    new BukkitRunnable() {
                       
                        @Override
                        public void run() {
                           
                                int i = Bukkit.getServer().getOnlinePlayers().size();
                                Bukkit.broadcastMessage(ChatColor.BLUE + "[" + ChatColor.AQUA + "JumpBattle" + ChatColor.BLUE + "] " +ChatColor.RED + "Zu wenige Spieler Online, " + ChatColor.GRAY + i + ChatColor.GRAY + "/ 2 Spieler");
                           
                            if( i == 2)
                            {
                                cancel();
                            }
                        }
                    }.runTaskTimer(plugin, 40, 200);
                    ItemStack SurrenderItem = new ItemStack(Material.REDSTONE_TORCH_ON);
                    ItemMeta meta = SurrenderItem.getItemMeta();
                    List<String> surrenderlist = new ArrayList<String>();
                    surrenderlist.add(ChatColor.RED + "Benutze dieses Item um Aufzugeben.");
                    meta.setDisplayName(ChatColor.RED + "Surrender");
                    meta.setLore(surrenderlist);
                    meta.addEnchant(Enchantment.DIG_SPEED, 10, true);
                    SurrenderItem.setItemMeta(meta);
                    p.getInventory().setItem(8, SurrenderItem);
                   
                    ItemStack fix = new ItemStack(Material.EMERALD);
                    ItemMeta fixmeta = fix.getItemMeta();
                    List<String> fixlist = new ArrayList<>();
                    fixlist.add(ChatColor.GREEN + "Sollte deine Surrenderlampe nicht funktionieren,");
                    fixlist.add(ChatColor.GREEN + "benutze dieses Item.");
                    fixmeta.setLore(fixlist);
                    fixmeta.setDisplayName(ChatColor.GREEN + "Surrender Fix");
                    fix.setItemMeta(fixmeta);
                    p.getInventory().setItem(7, fix);
                    Player p1 = e.getPlayer();
                    p1.sendMessage(ChatColor.BLUE + "[" + ChatColor.AQUA + "JumpBattle" + ChatColor.BLUE + "] " + ChatColor.GRAY + "Dieser Server befindet sich im " + ChatColor.DARK_RED +  Main.gs    + ChatColor.GRAY + " Status.");
                }
                }
        }

     
    So with this im trying to get 2 Different Players example:

    GoRoK joined the game. (GoRoK = p)
    TestPlayer joined the game. (TestPlayer = p1)
    I need to get those to teleport them to different spawns, and save locations for checkpoints for each.

    Im not sure if this is going to work doe...
     
  2. Choco

    Moderator

    Use a Map<Player, Location>? Or Map<Location, Player>. Not sure if the Player is dependent on the location or vise-versa. Your question was strangely phrased
     
  3. Yeah, didnt really know how explain it... But how ill get 2 different players @Join? They get teleported to 1 Spawn..
     
  4. So, the Server doesnt really like:
    Code (Text):
     
    loci.get(p).teleport(player1);
            loci.get(p).teleport(player2);
     
    Code (Text):

    Player p = e.getPlayer();
            Location playerloc = p.getLocation();
            loci.put(playerloc, p);
     
    Im putting it in like this above.
    Using a HashMap
    Code (Text):

    public HashMap<Location, Player> loci = new HashMap<>();