Compass Tracking return error...

Discussion in 'Plugin Development' started by ChocoCraft, Nov 23, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    ChocoCraft

    Hello,
    Since few day, I try to make a Compass Tracking Player for an UHC Plugin. But I've some problems.

    In IntelliJ, it return to me an error:
    Imcompatible Type:
    Required: org.bukkit.entity.Player[]
    Found: org.bukkit.entity.Player

    Or if I put (Player[]), it doesn't Work anymore.

    This is my source (I've use a founded plugin on forum, which could be modify in some time, for eject player in Adventure Mode...)

    Code:java
    1.  
    2. package me.chococraft74.cuhc;
    3.  
    4. import org.bukkit.Bukkit;
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.Material;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.player.PlayerMoveEvent;
    11. import org.bukkit.inventory.ItemStack;
    12. import org.bukkit.inventory.meta.ItemMeta;
    13. import org.bukkit.plugin.java.JavaPlugin;
    14.  
    15. import java.util.Collection;
    16.  
    17. public class tracker extends JavaPlugin implements Listener {
    18.  
    19. public tracker(PlayerMoveEvent e) {
    20. if(e.getPlayer().getItemInHand() != null && e.getPlayer().getItemInHand().getType() == Material.COMPASS) {
    21. ItemStack compass = e.getPlayer().getItemInHand();
    22. Player[] var6;
    23. int var5 = (var6 = (Player) Bukkit.getOnlinePlayers()).length;
    24.  
    25. for(int var4 = 0; var4 < var5; ++var4) {
    26. Player pl = var6[var4];
    27. if(e.getPlayer() != pl) {
    28. e.getPlayer().setCompassTarget(pl.getLocation());
    29. String cmpsname = ChatColor.AQUA + "Distance: " + ChatColor.GOLD + Math.floor(pl.getLocation().distance(e.getPlayer().getLocation())) + ChatColor.AQUA + " Height: " + ChatColor.GOLD + Math.floor(e.getPlayer().getLocation().getY() - pl.getLocation().getY());
    30. ItemMeta compm = compass.getItemMeta();
    31. compm.setDisplayName(cmpsname);
    32. compass.setItemMeta(compm);
    33.  
    34. e.getPlayer().sendMessage(ChatColor.RED + "" + ChatColor.BOLD + " Votre bousole sur un connard (et c\'est pas BlueSlime)...");
    35. }
    36. }
    37. }
    38.  
    39. }
    40. }
    41.  
     
  2. Offline

    timtower Administrator Administrator Moderator

    ChocoCraft I think that you need to loop to find the closest player first.
     
  3. Offline

    ChocoCraft

    1. for(int var4 = 0; var4 < var5; ++var4) {
    2. Player pl = var6[var4];
    Doesn't make that ?
     
  4. Offline

    mythbusterma

  5. Offline

    timtower Administrator Administrator Moderator

    No, that just loops through the player and puts the last one as compass target.
     
  6. Offline

    Rocoty

    You should really work on properly naming variables.
     
Thread Status:
Not open for further replies.

Share This Page