UUID Problem ?

Discussion in 'Plugin Development' started by JordyPwner, Oct 3, 2014.

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

    JordyPwner

    Im creating a simple /list command but now i have a error what i cant resolve :?

    error:
    Show Spoiler
    [08:27:31 ERROR]: Could not pass event PlayerJoinEvent to SimpleList v1.0
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:294) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:501) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:486) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at net.minecraft.server.v1_7_R4.PlayerList.c(PlayerList.java:251) [craft
    bukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at net.minecraft.server.v1_7_R4.PlayerList.a(PlayerList.java:138) [craft
    bukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at net.minecraft.server.v1_7_R4.LoginListener.c(LoginListener.java:76) [
    craftbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at net.minecraft.server.v1_7_R4.LoginListener.a(LoginListener.java:42) [
    craftbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:160
    ) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at net.minecraft.server.v1_7_R4.ServerConnection.c(SourceFile:134) [craf
    tbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:6
    67) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:2
    58) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:5
    58) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java
    :469) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:6
    28) [craftbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    Caused by: java.lang.Error: Unresolved compilation problems:
    The method add(UUID) in the type List<UUID> is not applicable for the ar
    guments (Player)
    The method add(UUID) in the type List<UUID> is not applicable for the ar
    guments (Player)
    The method add(UUID) in the type List<UUID> is not applicable for the ar
    guments (Player)

    at com.jordypwner.simplelist2.Players.onPlayerJoin(Players.java:17) ~[?:
    ?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0
    _60]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0
    _60]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    .7.0_60]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_60]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:292) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.2-22-g95cfb92-b3111jnks]
    ... 14 more


    The Player Class:
    Show Spoiler

    Code:java
    1. package com.jordypwner.simplelist2;
    2.  
    3. import org.bukkit.entity.Player;
    4. import org.bukkit.event.EventHandler;
    5. import org.bukkit.event.Listener;
    6. import org.bukkit.event.player.PlayerJoinEvent;
    7. import org.bukkit.event.player.PlayerQuitEvent;
    8.  
    9. public class Players implements Listener {
    10.  
    11. @EventHandler
    12. public void onPlayerJoin(PlayerJoinEvent e){
    13. Player player = e.getPlayer();
    14. Commands.members.add(player.getUniqueId());
    15.  
    16. if(player.hasPermission("list.Donator")){
    17. Commands.donators.add(player.getUniqueId());
    18. }else if(player.hasPermission("list.Staff")){
    19. Commands.staff.add(player.getUniqueId());
    20. }
    21. }
    22. @EventHandler
    23. public void onPlayerJoin(PlayerQuitEvent e){
    24. Player player = e.getPlayer();
    25. if(player.hasPermission("list.member"))
    26. Commands.members.remove(player.getUniqueId());
    27.  
    28. if(player.hasPermission("list.Donator")){
    29. Commands.donators.remove(player.getUniqueId());
    30. }else if(player.hasPermission("list.Staff")){
    31. Commands.staff.remove(player.getUniqueId());
    32. }
    33. }
    34. }
    35.  
     
  2. JordyPwner Ensure that you are running the latest version of your code, and that your code matches the above.
     
  3. Offline

    JordyPwner

    What you mean?
     
  4. JordyPwner Your stacktrace says that you're trying to add the player rather than their UUID
     
  5. Offline

    JordyPwner

    yeah so how will i fix it?
     
  6. JordyPwner Firstly make sure that you don't try to add the player to the list :)
     
  7. Offline

    JordyPwner

    still dont understand :p
     
  8. JordyPwner Your stacktrace is telling you that somewhere you're trying to do list.add(player) rather than list.add(player.getUniqueId())
     
  9. Offline

    JordyPwner

    well then u may tell me where cause on line 17 it says: Commands.donators.add(player.getUniqueId());
     
  10. JordyPwner Exactly, that's why I said make sure that you're running the latest version of the code. I'd try re-exporting to see if that changes anything.
     
  11. Offline

    JordyPwner

    Still dont know the fix. BUMP
     
  12. Offline

    Skionz

    Show us the entire class and the new stack trace.
     
  13. Offline

    JordyPwner

    its still the same if u can read
     
  14. Offline

    Skionz

    JordyPwner No need to be an asshole. Your stack trace says you are trying to do something like this
    Code:
    ArrayList<UUID> list = new ArrayList<UUID>();
    list.add(player);
    instead of
    Code:
    ArrayList<UUID> list = new ArrayList<UUID>();
    list.add(player.getUniqueId());
    Show me the commands class.
     
    Jaaakee224 likes this.
  15. Offline

    JordyPwner

    I didnt mean to say it angry just saying that if have readed u have might know it that it is still the same :p also thx for the fix :)

    Also where do u put: list.add(player);
    :/ sorry :D

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
    Skionz likes this.
  16. Offline

    Skionz

    JordyPwner The stack trace says your trying to add a Player to a list of UUID's instead of a UUID to a list of UUID's
     
  17. Offline

    JordyPwner

    then it says list is not defined or something
     
  18. Offline

    Skionz

    post your commands class
     
  19. Offline

    JordyPwner

    It said: list cannot be resolved

    Command class:
    Show Spoiler

    Code:java
    1. package com.jordypwner.simplelist2;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.List;
    5. import java.util.UUID;
    6.  
    7. import org.bukkit.ChatColor;
    8. import org.bukkit.command.Command;
    9. import org.bukkit.command.CommandExecutor;
    10. import org.bukkit.command.CommandSender;
    11. import org.bukkit.entity.Player;
    12.  
    13. public class Commands implements CommandExecutor {
    14.  
    15. ArrayList<UUID> list = new ArrayList<UUID>();
    16. ArrayList<UUID> donators = new ArrayList<UUID>();
    17. ArrayList<UUID> staff = new ArrayList<UUID>();
    18.  
    19. public boolean onCommand(CommandSender sender, Command cmd, String cl,
    20. String[] args) {
    21. if (!(sender instanceof Player)) {
    22. sender.sendMessage("Only Players Can Do This!");
    23. return true;
    24. }
    25. Player p =(Player) sender;
    26. {
    27. if(cmd.getName().equalsIgnoreCase("list"))
    28.  
    29. p.sendMessage(ChatColor.GOLD + "=====================================================");
    30. p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.YELLOW + "+" + ChatColor.DARK_GRAY + "]" + ChatColor.YELLOW + " Players Online:" + ChatColor.GOLD + " " + list.size());
    31. p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.YELLOW + "+" + ChatColor.DARK_GRAY + "]" + ChatColor.YELLOW + " Donors Online:" + ChatColor.GOLD + " " + donators.size());
    32. p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.YELLOW + "+" + ChatColor.DARK_GRAY + "]" + ChatColor.YELLOW + " Staff Online:" + ChatColor.GOLD + " " + staff.size());
    33. p.sendMessage(ChatColor.GOLD + "=====================================================");
    34. }
    35. return false;
    36. }
    37.  
    38. }
    39.  
    40.  


    Player class:
    Show Spoiler

    Code:java
    1. package com.jordypwner.simplelist2;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.UUID;
    5.  
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.Listener;
    8. import org.bukkit.event.player.PlayerJoinEvent;
    9. import org.bukkit.event.player.PlayerQuitEvent;
    10.  
    11. public class Players implements Listener {
    12.  
    13.  
    14.  
    15. public void onPlayerJoin(PlayerJoinEvent e){
    16. Player player = e.getPlayer();
    17. list.add(player);
    18.  
    19. if(player.hasPermission("list.Donator")){
    20. Commands.donators.add(player);
    21. }else if(player.hasPermission("list.Staff")){
    22. Commands.staff.add(player);
    23. }
    24. }
    25. public void onPlayerJoin(PlayerQuitEvent e){
    26. Player player = e.getPlayer();
    27. Commands.members.remove(player);
    28.  
    29. if(player.hasPermission("list.Donator")){
    30. Commands.donators.remove(player);
    31. }else if(player.hasPermission("list.Staff")){
    32. Commands.staff.remove(player);
    33. }
    34. }
    35. }
    36.  

     
  20. Offline

    Skionz

    change all of these
    Code:
    Commands.donators.add(player);
    to
    Code:
    Commands.donators.add(player.getUniqueId());
     
  21. Offline

    JordyPwner

    then it says: Cannot make a static reference to the non-static field Commands.donators
     
  22. Offline

    Skionz

    Change it to static then
     
  23. Offline

    JordyPwner

    then it gives the UUID error back

    this is the player class of now what i have when i decompile it:


    Show Spoiler
    package com.jordypwner.simplelist2;

    import java.util.List;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;

    public class Players
    implements Listener
    {
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent paramPlayerJoinEvent)
    {
    throw new Error("Unresolved compilation problems: \n\tThe method add(UUID) in the type List<UUID> is not applicable for the arguments (Player)\n\tThe method add(UUID) in the type List<UUID> is not applicable for the arguments (Player)\n\tThe method add(UUID) in the type List<UUID> is not applicable for the arguments (Player)\n");
    }

    @EventHandler
    public void onPlayerJoin(PlayerQuitEvent e)
    {
    Player player = e.getPlayer();
    if (player.hasPermission("list.member")) {
    Commands.members.remove(player);
    }
    if (player.hasPermission("list.Donator")) {
    Commands.donators.remove(player);
    } else if (player.hasPermission("list.Staff")) {
    Commands.staff.remove(player);
    }
    }
    }
    [/spoiler

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
  24. Offline

    teej107

    Jaaakee224 likes this.
  25. Offline

    JordyPwner

  26. Offline

    Hawktasard

    He is trying to help you, If you want help on this forum don't be an asshole to the people.

    Anyway, to the fix (as many people have said in this thread before);
    Code:
    The method add(UUID) in the type List<UUID> is not applicable for the ar
    guments (Player)
    This says exactly what your problem is.


    Code:java
    1. Commands.donators.add(player);

    To
    Code:java
    1. Commands.donators.add(player.getUniqueId());


    The problem is you're trying to store the entire player where you should actually be storing his UUID.
     
  27. Offline

    teej107

    What's wrong with English? It's the dominant language on this forum and you seem to read my posts just fine. Did you just TLDNR that link?
     
  28. Offline

    JordyPwner

    You know im not english but dutch? and only understand basic english not coding english :/

    Thats why i have!
    This is my current class
    Players:
    Show Spoiler
    package com.jordypwner.simplelist2;

    import java.util.ArrayList;
    import java.util.UUID;

    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;

    public class Players implements Listener {



    public void onPlayerJoin(PlayerJoinEvent e){
    Player player = e.getPlayer();
    Commands.list.add(player.getUniqueId());

    if(player.hasPermission("list.Donator")){
    Commands.donators.add(player.getUniqueId());
    }else if(player.hasPermission("list.Staff")){
    Commands.staff.add(player.getUniqueId());
    }
    }
    public void onPlayerJoin(PlayerQuitEvent e){
    Player player = e.getPlayer();
    Commands.list.remove(player);

    if(player.hasPermission("list.Donator")){
    Commands.donators.remove(player.getUniqueId());
    }else if(player.hasPermission("list.Staff")){
    Commands.staff.remove(player.getUniqueId());
    }
    }
    }

    Commands:
    Show Spoiler
    package com.jordypwner.simplelist2;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.UUID;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    public class Commands implements CommandExecutor {
    ArrayList<UUID> list = new ArrayList<UUID>();
    ArrayList<UUID> donators = new ArrayList<UUID>();
    ArrayList<UUID> staff = new ArrayList<UUID>();

    public boolean onCommand(CommandSender sender, Command cmd, String cl,
    String[] args) {
    if (!(sender instanceof Player)) {
    sender.sendMessage("Only Players Can Do This!");
    return true;
    }
    Player p =(Player) sender;
    {
    if(cmd.getName().equalsIgnoreCase("list"))

    p.sendMessage(ChatColor.GOLD + "=====================================================");
    p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.YELLOW + "+" + ChatColor.DARK_GRAY + "]" + ChatColor.YELLOW + " Players Online:" + ChatColor.GOLD + " " + list.size());
    p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.YELLOW + "+" + ChatColor.DARK_GRAY + "]" + ChatColor.YELLOW + " Donors Online:" + ChatColor.GOLD + " " + donators.size());
    p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.YELLOW + "+" + ChatColor.DARK_GRAY + "]" + ChatColor.YELLOW + " Staff Online:" + ChatColor.GOLD + " " + staff.size());
    p.sendMessage(ChatColor.GOLD + "=====================================================");
    }
    return false;
    }
    }


    The error i have on the lines Commands.donators.add(player.getUniqueId());
    is: "Cannot make a static reference to the non-static field Commands.donators"
    so how will i fix that error?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
  29. Offline

    Mysticate

    JordyPwner
    1: Learn java
    2: put the word "static" in front of each of the arraylists.

    EDIT: Make sure you put a space after the "static"
     
  30. Offline

    Hawktasard

    PHP:
    Commands.list.remove(player);
    Your IDE should have told you how to fix this, but anything that says "player" in your code (where you're doing anything with these lists) change it to "player.getUniqueId()"
     
Thread Status:
Not open for further replies.

Share This Page