Pex Team command help 1.22.5

Discussion in 'Plugin Development' started by shotgun528, Oct 19, 2014.

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

    shotgun528

    I have Pex 1.22.5 and i code a Team list Command but it is false ...
    Code:java
    1. PermissionsEx pex = (PermissionsEx) PermissionsEx.getPlugin();
    2. Set<PermissionUser> supp = pex.getPermissionsManager().getGroup("Supporter").getUsers();
    3. for(PermissionUser supporter : supp) {
    4. String suppname = supporter.getName();
    5. if(Bukkit.getPlayer(suppname) == null) {
    6. cs.sendMessage("§aSupporters: §7§o" + suppname);
    7. }else{
    8. cs.sendMessage("§aSupporters: §a§o" + suppname);
    9. }
    10.  


    Output
    Supporters: shot1932
    Supporters: holeInBlocks1

    But i will have it so
    Supporters: shot1932, holeInBlocks1
     
  2. Offline

    Dudemister1999

    It's because for every player, you send a new chat message. you need to do something like this:

    Code:java
    1.  
    2. StringBuilder list = new StringBuilder(ChatColor.GREEN + "Supporters: ");
    3.  
    4. for(PermissionUser supporter : supp)
    5. {
    6. String suppname = supporter.getName();
    7. if(Bukkit.getPlayer(suppname) != null)
    8. {
    9. list.append(ChatColor.translateAlternateColorCode('&', "&a&o" + suppname + "&a, "));
    10. }
    11. else
    12. {
    13. list.append(ChatColor.translateAlternateColorCode('&', "&7&o" + suppname + "&a, "));
    14. }
    15. }
    16.  
    17. cs.sendMessage(list.toString());
    18.  
     
  3. Offline

    shotgun528

    it gives an error ...
     
  4. Offline

    Dudemister1999

    shotgun528 Can you post the error? I cannot help if I don't know what's going wrong.
     
  5. Offline

    shotgun528

    Code:java
    1. @Override
    2. public boolean onCommand(CommandSender sender, Command cmd, String label,
    3. String[] args) {
    4. PermissionManager pex=null;
    5.  
    6.  
    7.  
    8.  
    9. Player p = (Player) sender;
    10. StringBuilder list = new StringBuilder(ChatColor.GREEN + "Supporters: ");
    11. String supp = null;
    12.  
    13. for(PermissionUser supporter : supp)
    14. {
    15. String suppname = supporter.getName();
    16. if(Bukkit.getPlayer(suppname) != null)
    17. {
    18. list.append(ChatColor.translateAlternateColorCodes('&', "&a&o" + suppname + "&a, "));
    19. }
    20. else
    21. {
    22. list.append(ChatColor.translateAlternateColorCodes('&', "&7&o" + suppname + "&a, "));
    23. }
    24. }
    25.  
    26. p.sendMessage(list.toString());
    27. }
    28. }
    29.  

    for(PermissionUser supporter : supp)
    Can only iterate over an array or an instance of java.lang.Iterable
     
  6. Offline

    Dudemister1999

    shotgun528 You still need bits of your old code. Here, I'll stitch it together. :)

    Code:java
    1. PermissionsEx pex = (PermissionsEx) PermissionsEx.getPlugin();
    2. Set<PermissionUser> supp = pex.getPermissionsManager().getGroup("Supporter").getUsers();
    3.  
    4. StringBuilder list = new StringBuilder(ChatColor.GREEN + "Supporters: ");
    5.  
    6. for(PermissionUser supporter : supp)
    7. {
    8. String suppname = supporter.getName();
    9.  
    10. if(Bukkit.getPlayer(suppname) != null)
    11. {
    12. list.append(ChatColor.translateAlternateColorCode('&', "&a&o" + suppname + "&a, "));
    13. }
    14. else
    15. {
    16. list.append(ChatColor.translateAlternateColorCode('&', "&7&o" + suppname + "&a, "));
    17. }
    18. }
    19.  
    20. cs.sendMessage(list.toString());
     
  7. Offline

    shotgun528

    I Got an Error ? :confused:

    Code:java
    1. package Commands;
    2.  
    3. import java.util.Set;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.command.Command;
    8. import org.bukkit.command.CommandExecutor;
    9. import org.bukkit.command.CommandSender;
    10. import org.bukkit.entity.Player;
    11.  
    12. import ru.tehkode.permissions.PermissionManager;
    13. import ru.tehkode.permissions.PermissionUser;
    14. import ru.tehkode.permissions.bukkit.PermissionsEx;
    15.  
    16. public class COMMAND_team implements CommandExecutor{
    17. PermissionManager pex=null;
    18.  
    19. @Override
    20. public boolean onCommand(CommandSender sender, Command cmd, String label,
    21. String[] args) {
    22. PermissionManager pex = null;
    23.  
    24.  
    25.  
    26.  
    27. Player p = (Player) sender;
    28. PermissionsEx pex = (PermissionsEx) PermissionsEx.getPlugin();
    29. Set<PermissionUser> supp = pex.getPermissionsManager().getGroup("Supporter").getUsers();
    30.  
    31. StringBuilder list = new StringBuilder(ChatColor.GREEN + "Supporters: ");
    32.  
    33. for(PermissionUser supporter : supp)
    34. {
    35. String suppname = supporter.getName();
    36.  
    37. if(Bukkit.getPlayer(suppname) != null)
    38. {
    39. list.append(ChatColor.translateAlternateColorCodes('&', "&a&o" + suppname + "&a, "));
    40. }
    41. else
    42. {
    43. list.append(ChatColor.translateAlternateColorCodes('&', "&7&o" + suppname + "&a, "));
    44. }
    45. }
    46.  
    47. p.sendMessage(list.toString());
    48. }
    49. }


    PermissionsEx pex = (PermissionsEx) PermissionsEx.getPlugin();
    Rename in File
     
  8. Offline

    Dudemister1999

    shotgun528 Above all that, you already created a variable called pex (PermissionManager pex = null;).
     
  9. Offline

    shotgun528

    Ok it works But
    OUTPUT
    Supporters: user1, user2,

    I would have it so

    Supporters: user1, user2

    Without the ","at the and
     
  10. Offline

    Dudemister1999

    shotgun528 Then where it says
    list.toString() at the end, just set it to
    list.toString().replaceLast(ChatColor.GREEN + ", ", "")

    shotgun528 Or, a better thing to do is this:

    list.append(ChatColor.translateAlternateColorCodes('&', "&a, " + "&a&o" + suppname));

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

    shotgun528

    Can you send me the Full code pls? :(
     
  12. Offline

    Dudemister1999

    shotgun528 It is a simple task, don't worry. All you have to do is replace that line where it says:
    Code:java
    1.  
    2. return list.toString();
    3.  


    with

    Code:java
    1.  
    2. return list.toString.replaceLast(ChatColor.GREEN + ", ", "");
    3.  


    and it should work.
     
  13. Offline

    shotgun528

    Ty!

    It give an Error theres NO return list.toString.replaceLast(ChatColor.GREEN+", ", "") :confused:

    toString cannot be resolved or is not a field

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

    Dudemister1999

    shotgun528 Oh whoops, my bad. It's cs.sendMessage(list.toString.replaceLast(ChatColor.GREEN + ", ", ""));

    I've posted a lot today, got mixed up. :/
     
  15. Offline

    shotgun528

    p.sendMessage(list5.toString.replaceLast(" §b§l| ", ""));
    It Give an error :(

    Can you help me???

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

    Dudemister1999

Thread Status:
Not open for further replies.

Share This Page