NickName Plugin isn't working

Discussion in 'Plugin Development' started by Smootey, Sep 1, 2014.

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

    Smootey

    Okay, so I've tried to make a NickName Plugin with TagAPI, but every player sees his own name over the heads of the other players - also when the nickname is entered, I see my nickname over the heads and nobody sees my nickname (everything else with display name and tablist name works)

    Code:java
    1.  
    2.  
    3. // NickCommand:
    4.  
    5. package de.smoothie2.server;
    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. /**
    14.   * Created by Marc on 01.09.2014.
    15.   */
    16. public class NickCommand implements CommandExecutor {
    17.  
    18. public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) {
    19.  
    20. if(sender instanceof Player) {
    21.  
    22. if(!sender.hasPermission("Nick")) {
    23.  
    24. sender.sendMessage(ChatColor.RED + "Du hast keine Berechtigung.");
    25.  
    26. return true;
    27.  
    28. }
    29.  
    30. }
    31.  
    32. if(!(sender instanceof Player)) {
    33.  
    34. sender.sendMessage(ChatColor.RED + "Die Console kann keinen Nicknamen haben.");
    35.  
    36. return true;
    37.  
    38. }
    39.  
    40. if(args.length < 1) {
    41.  
    42. if(NickManager.isSet(((Player)sender).getUniqueId().toString())) {
    43.  
    44. NickManager.removeNick(((Player)sender).getUniqueId().toString());
    45.  
    46. sender.sendMessage(ChatColor.GRAY + "Dein Nickname wurde erfolgreich entfernt!");
    47.  
    48. return true;
    49.  
    50. }
    51.  
    52. sender.sendMessage(ChatColor.RED + "/nick <Nickname>");
    53.  
    54. return true;
    55.  
    56. }
    57.  
    58. NickManager.setNick(((Player)sender).getUniqueId().toString(), args[0]);
    59.  
    60. sender.sendMessage(ChatColor.GRAY + "Dein Nickname lautet nun: " + ((Player)sender).getDisplayName());
    61.  
    62. return true;
    63.  
    64. }
    65.  
    66. }
    67.  
    68. //NickManager
    69.  
    70. package de.smoothie2.server;
    71.  
    72. import org.bukkit.Bukkit;
    73. import org.bukkit.ChatColor;
    74. import org.bukkit.entity.Player;
    75. import org.kitteh.tag.TagAPI;
    76.  
    77. /**
    78.   * Created by Marc on 01.09.2014.
    79.   */
    80. public class NickManager {
    81.  
    82. public static void setNick(String uuid, String nick) {
    83.  
    84. Main.getInstance().getConfig().set("Players." + uuid + ".Nick", nick);
    85.  
    86. Main.getInstance().saveConfig();
    87.  
    88. TagAPI.refreshPlayer(Bukkit.getPlayer(UUIDManager.getName(uuid)));
    89.  
    90. Player player = Bukkit.getPlayer(UUIDManager.getName(uuid));
    91.  
    92. player.setDisplayName(ChatColor.GOLD + nick);
    93. player.setPlayerListName(ChatColor.GOLD + nick);
    94.  
    95. }
    96.  
    97. public static void removeNick(String uuid) {
    98.  
    99. Main.getInstance().getConfig().set("Players." + uuid + ".Nick", null);
    100.  
    101. Main.getInstance().saveConfig();
    102.  
    103. NameManager.updateName(Bukkit.getPlayer(UUIDManager.getName(uuid)));
    104.  
    105. }
    106.  
    107. public static boolean isSet(String uuid) {
    108.  
    109. return Main.getInstance().getConfig().isSet("Players." + uuid + ".Nick");
    110.  
    111. }
    112.  
    113. public static String getNick(String uuid) {
    114.  
    115. return Main.getInstance().getConfig().getString("Players." + uuid + ".Nick");
    116.  
    117. }
    118.  
    119. }
    120.  
    121. //NameManager
    122.  
    123. package de.smoothie2.server;
    124.  
    125. import org.bukkit.ChatColor;
    126. import org.bukkit.entity.Player;
    127. import org.bukkit.event.EventHandler;
    128. import org.bukkit.event.Listener;
    129. import org.kitteh.tag.AsyncPlayerReceiveNameTagEvent;
    130. import org.kitteh.tag.TagAPI;
    131.  
    132. /**
    133.   * Created by Marc on 31.08.2014.
    134.   */
    135. public class NameManager implements Listener {
    136.  
    137. public static void updateName(Player player) {
    138.  
    139. if(player.hasPermission("Group.Administrator")) {
    140.  
    141. player.setDisplayName(ChatColor.DARK_RED + player.getName());
    142. player.setPlayerListName(ChatColor.DARK_RED + player.getName());
    143. TagAPI.refreshPlayer(player);
    144.  
    145. return;
    146.  
    147. }
    148.  
    149. if(player.hasPermission("Group.Moderator")) {
    150.  
    151. player.setDisplayName(ChatColor.RED + player.getName());
    152. player.setPlayerListName(ChatColor.RED + player.getName());
    153. TagAPI.refreshPlayer(player);
    154.  
    155. return;
    156.  
    157. }
    158.  
    159. if(player.hasPermission("Group.Premium")) {
    160.  
    161. player.setDisplayName(ChatColor.GOLD + player.getName());
    162. player.setPlayerListName(ChatColor.GOLD + player.getName());
    163. TagAPI.refreshPlayer(player);
    164.  
    165. return;
    166.  
    167. }
    168.  
    169. player.setDisplayName(ChatColor.GRAY + player.getName());
    170. player.setPlayerListName(ChatColor.GRAY + player.getName());
    171. TagAPI.refreshPlayer(player);
    172.  
    173. return;
    174.  
    175. }
    176.  
    177. @EventHandler
    178. public void onTag(AsyncPlayerReceiveNameTagEvent e) {
    179.  
    180. if(NickManager.isSet(e.getPlayer().getUniqueId().toString())) {
    181.  
    182. e.setTag(ChatColor.GOLD + NickManager.getNick(e.getPlayer().getUniqueId().toString()));
    183.  
    184. return;
    185.  
    186. }
    187.  
    188. if(e.getPlayer().hasPermission("Group.Administrator")) {
    189.  
    190. e.setTag(ChatColor.DARK_RED + e.getPlayer().getName());
    191.  
    192. return;
    193.  
    194. }
    195.  
    196. if(e.getPlayer().hasPermission("Group.Moderator")) {
    197.  
    198. e.setTag(ChatColor.RED + e.getPlayer().getName());
    199.  
    200. return;
    201.  
    202. }
    203.  
    204. if(e.getPlayer().hasPermission("Group.Premium")) {
    205.  
    206. e.setTag(ChatColor.GOLD + e.getPlayer().getName());
    207.  
    208. return;
    209.  
    210. }
    211.  
    212. e.setTag(ChatColor.GRAY + e.getPlayer().getName());
    213.  
    214. return;
    215.  
    216. }
    217.  
    218. }
    219.  
    220.  


    The //<Text> comes when a new class is opened. :)

    Thanks for your help!

    Greets, Smootey
     
  2. Offline

    MnMaxon

    Smootey I haven't used TagAPI in a while, but I had this problem and I think I fixed it by changing e.getPlayer() to e.getNamedPlayer(), so it would look like
    Code:java
    1. @EventHandler
    2. public void onTag(AsyncPlayerReceiveNameTagEvent e) {
    3.  
    4. if(NickManager.isSet(e.getNamedPlayer().getUniqueId().toString())) {
    5.  
    6. e.setTag(ChatColor.GOLD + NickManager.getNick(e.getNamedPlayer().getUniqueId().toString()));
    7.  
    8. return;
    9.  
    10. }
    11.  
    12. if(e.getNamedPlayer().hasPermission("Group.Administrator")) {
    13.  
    14. e.setTag(ChatColor.DARK_RED + e.getNamedPlayer().getName());
    15.  
    16. return;
    17.  
    18. }
    19.  
    20. if(e.getNamedPlayer().hasPermission("Group.Moderator")) {
    21.  
    22. e.setTag(ChatColor.RED + e.getNamedPlayer().getName());
    23.  
    24. return;
    25.  
    26. }
    27.  
    28. if(e.getNamedPlayer().hasPermission("Group.Premium")) {
    29.  
    30. e.setTag(ChatColor.GOLD + e.getNamedPlayer().getName());
    31.  
    32. return;
    33.  
    34. }
    35.  
    36. e.setTag(ChatColor.GRAY + e.getNamedPlayer().getName());
    37.  
    38. return;
    39.  
    40. }
    41.  
    42. }

    I think e.getPlayer() is the player that is seeing the name tag
     
  3. Offline

    SantaClawz69

    MnMaxon is correct. You must replace the e.getPlayer()"s to e.getNamedPlayer()
     
  4. Offline

    Smootey

    Aaaaaahh, thanks! :)
     
Thread Status:
Not open for further replies.

Share This Page