Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.46 KB | None | 0 0
  1. /**
  2. * Auteur: Xavier W.
  3. * Date: 12/04/2019
  4. * Heure: 11:46
  5. */
  6. public class NickCommand implements CommandExecutor {
  7.  
  8. private String nickPrefix = ChatColor.WHITE + "[" + ChatColor.GOLD + "Nick" + ChatColor.WHITE + "] ";
  9.  
  10. @Override
  11. public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
  12. if (sender instanceof Player) {
  13. Player player = (Player) sender;
  14.  
  15. if (args.length == 0) {
  16. if (NickPlugin.getInstance().getMysql().isNicked(player)) {
  17. NickManager.removeNick(player.getUniqueId());
  18. NickPlugin.getInstance().getMysql().setNick(player, false);
  19. player.sendMessage(nickPrefix + ChatColor.WHITE + "Vous venez de " + ChatColor.RED + "désactiver" + ChatColor.WHITE + " votre nick.");
  20. player.sendMessage(nickPrefix + ChatColor.RED + "Changer de serveur pour appliquer les changements...");
  21. return true;
  22. } else {
  23. String nickName = NickPseudoEnum.getRandomPseudo();
  24. NickManager.enableNick(player.getUniqueId(), player.getName(), nickName, NickPseudoEnum.getRandomPseudo());
  25. NickPlugin.getInstance().getMysql().setNick(player, true);
  26. player.sendMessage(nickPrefix + ChatColor.WHITE + "Vous venez d'" + ChatColor.GREEN + "activer"
  27. + ChatColor.WHITE + " votre nick, votre" + " nouveau pseudo est maintenant: "
  28. + ChatColor.AQUA + nickName + ChatColor.WHITE + ".");
  29. player.sendMessage(nickPrefix + ChatColor.RED + "Changer de serveur pour appliquer les changements...");
  30. return true;
  31. }
  32. } else if (args.length == 1) {
  33. if (args[0].equalsIgnoreCase("ranklist")) {
  34. player.sendMessage(nickPrefix + ChatColor.WHITE + "Grades disponibles: §7PLAYER§f, §f[MiniVIP]§f, §e[VIP] §fou §a[VIP+]§f.");
  35. return true;
  36. } else if (args[0].equalsIgnoreCase("help")) {
  37. helpInfo(player);
  38. return true;
  39. } else if (args[0].equalsIgnoreCase("rank") || args[0].equalsIgnoreCase("skin")) {
  40. player.sendMessage(nickPrefix + ChatColor.RED + "Erreur: Utiliser la commande complète.");
  41. return true;
  42. } else if (args[0].equalsIgnoreCase("infos") || args[0].equalsIgnoreCase("info")) {
  43. if (!NickPlugin.getInstance().getMysql().isNicked(player)) {
  44. player.sendMessage(nickPrefix + ChatColor.RED + "Erreur: Votre nick n'est pas activé.");
  45. return true;
  46. } else {
  47. player.sendMessage("");
  48. player.sendMessage(ChatColor.YELLOW + "" + ChatColor.BOLD + "Nick" + ChatColor.GRAY + " » " + ChatColor.YELLOW + "" + ChatColor.BOLD + "Informations");
  49. player.sendMessage("");
  50. player.sendMessage(" " + ChatColor.DARK_GRAY + "" + ChatColor.BOLD + "■ " + ChatColor.WHITE + "Pseudo " + ChatColor.GRAY + "» " + ChatColor.GREEN
  51. + NickManager.getNickName(player.getUniqueId()));
  52. player.sendMessage(" " + ChatColor.DARK_GRAY + "" + ChatColor.BOLD + "■ " + ChatColor.WHITE + "Skin " + ChatColor.GRAY + "» " + ChatColor.GREEN
  53. + NickManager.getSkinName(player.getUniqueId()));
  54. player.sendMessage(" " + ChatColor.DARK_GRAY + "" + ChatColor.BOLD + "■ " + ChatColor.WHITE + "Grade "
  55. + ChatColor.GRAY + "» " + NickManager.getRankName(player.getUniqueId()));
  56. player.sendMessage("");
  57. }
  58. } else if (args[0].equalsIgnoreCase("reset")) {
  59. if (!NickPlugin.getInstance().getMysql().isNicked(player)) {
  60. player.sendMessage(nickPrefix + ChatColor.RED + "Erreur: Votre nick n'est pas activé.");
  61. return true;
  62. } else {
  63. NickManager.removeNick(player.getUniqueId());
  64. NickPlugin.getInstance().getMysql().setNick(player, false);
  65. player.sendMessage(nickPrefix + ChatColor.WHITE + "Vous venez de " + ChatColor.RED + "désactiver" + ChatColor.WHITE + " votre nick.");
  66. player.sendMessage(nickPrefix + ChatColor.RED + "Changer de serveur pour appliquer les changements...");
  67. return true;
  68. }
  69. } else {
  70. String nickName = args[0];
  71. if (nickName.length() <= 2) {
  72. player.sendMessage(nickPrefix + ChatColor.RED + "Erreur: Le pseudo '" + nickName + "' est trop court.");
  73. return true;
  74. } else if (nickName.length() > 16) {
  75. player.sendMessage(nickPrefix + ChatColor.RED + "Erreur: Le pseudo '" + nickName + "' est trop long.");
  76. return true;
  77. } else {
  78. // Vérifier si le pseudo n'est pas déjà utilisé.
  79. if (UUIDFetcher.getUUID(nickName) != null) {
  80. player.sendMessage(nickPrefix + ChatColor.RED + "Erreur: Le pseudo '" + nickName + "' est déjà utilisé.");
  81. return true;
  82. }
  83.  
  84. // Déjà utilisé par un autre joueur en ligne.
  85. if (NickManager.getNickList().contains(nickName)) {
  86. player.sendMessage(nickPrefix + ChatColor.RED + "Erreur: Le pseudo '" + nickName + "' est déjà utilisé.");
  87. return true;
  88. }
  89.  
  90. // Vérifier d'un nom correct.
  91. String checkName = safeChar(nickName);
  92. if (checkName.length() != nickName.length()) {
  93. player.sendMessage(nickPrefix + ChatColor.RED + "Erreur: Utiliser les caractères alphanumérique.");
  94. return true;
  95. }
  96.  
  97. // Changer le pseudo du Joueur.
  98. if (NickPlugin.getInstance().getMysql().isNicked(player)) {
  99. NickManager.enableNick(player.getUniqueId(), NickManager.getRealName(player.getUniqueId()), nickName, NickManager.getSkinName(player.getUniqueId()));
  100. } else {
  101. NickManager.enableNick(player.getUniqueId(), player.getName(), nickName, NickPseudoEnum.getRandomPseudo());
  102. }
  103. NickPlugin.getInstance().getMysql().setNick(player, true);
  104. player.sendMessage(nickPrefix + ChatColor.WHITE + "Vous venez d'" + ChatColor.GREEN + "activer"
  105. + ChatColor.WHITE + " votre nick, votre" + " nouveau pseudo est maintenant: "
  106. + ChatColor.AQUA + nickName + ChatColor.WHITE + ".");
  107. player.sendMessage(nickPrefix + ChatColor.RED + "Changer de serveur pour appliquer les changements...");
  108. return true;
  109. }
  110. }
  111. } else if (args.length == 2) {
  112. if ((args[0].equalsIgnoreCase("rank")) || (args[0].equalsIgnoreCase("grade"))) {
  113.  
  114. // Vérifier si le joueur est en nick.
  115. if (!(NickPlugin.getInstance().getMysql().isNicked(player))) {
  116. player.sendMessage(nickPrefix + ChatColor.RED + "Erreur: Votre nick n'est pas activé.");
  117. return true;
  118. }
  119.  
  120. String rankName = args[1];
  121.  
  122. // Grade trop puissant.
  123. if ((rankName == null)) {
  124. player.sendMessage(nickPrefix + ChatColor.RED + "Le grade que vous cherchez est introuvable.");
  125. player.sendMessage(nickPrefix + ChatColor.WHITE + "Grades disponibles: §7PLAYER§f, §f[MiniVIP]§f, §e[VIP] §fou §a[VIP+]§f.");
  126. return true;
  127. }
  128.  
  129. // Appplication du nouveau grade.
  130. NickManager.updateRank(player.getUniqueId(), rankName);
  131. player.sendMessage(nickPrefix + ChatColor.WHITE + "Vous utilisez maintenant le grade: " + rankName + ChatColor.WHITE + ".");
  132. player.sendMessage(nickPrefix + ChatColor.RED + "Changer de serveur pour appliquer les changements...");
  133. return true;
  134.  
  135. // Changer de Skin.
  136. } else if (args[0].equalsIgnoreCase("skin")) {
  137.  
  138. // Vérifier si le joueur est en nick.
  139. if (!(NickPlugin.getInstance().getMysql().isNicked(player))) {
  140. player.sendMessage(nickPrefix + ChatColor.RED + "Erreur: Votre nick n'est pas activé.");
  141. return true;
  142. }
  143.  
  144. // Commande.
  145. String skinName = args[1];
  146.  
  147. // Vérifier si le pseudo existe.
  148. if (UUIDFetcher.getUUID(skinName) == null) {
  149. player.sendMessage(nickPrefix + ChatColor.RED + "Erreur: Le pseudo '" + skinName + "' n'existe pas.");
  150. return true;
  151. }
  152.  
  153. NickManager.updateSkin(player.getUniqueId(), skinName);
  154. player.sendMessage(nickPrefix + ChatColor.WHITE + "Vous utilisez maintenant le skin: " + ChatColor.LIGHT_PURPLE + skinName + ChatColor.WHITE + ".");
  155. player.sendMessage(nickPrefix + ChatColor.RED + "Changer de serveur pour appliquer les changements...");
  156. return true;
  157.  
  158. } else {
  159. player.sendMessage(nickPrefix + ChatColor.RED + "Erreur: La commande /nick '" + args[0] + "' est introuvable.");
  160. return true;
  161. }
  162. } else {
  163. helpInfo(player);
  164. return true;
  165. }
  166. }
  167. return false;
  168. }
  169.  
  170. private String safeChar(String input) {
  171. char[] allowed = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_".toCharArray();
  172. char[] charArray = input.toCharArray();
  173. StringBuilder result = new StringBuilder();
  174. for (char c : charArray) for (char a : allowed) if (c == a) result.append(a);
  175. return result.toString();
  176. }
  177.  
  178. public void helpInfo(Player player) {
  179. player.sendMessage("");
  180. player.sendMessage(" " + ChatColor.GRAY + "» " + ChatColor.YELLOW + "" + ChatColor.BOLD + "Aide"
  181. + ChatColor.WHITE + "│ " + ChatColor.YELLOW + "" + ChatColor.BOLD + "Nick");
  182. player.sendMessage("");
  183. player.sendMessage(" " + ChatColor.GRAY + "" + ChatColor.BOLD + "■ " + ChatColor.GOLD + "/nick [pseudo] "
  184. + ChatColor.WHITE + "» " + ChatColor.AQUA + "Activer l'nick.");
  185. player.sendMessage(" " + ChatColor.GRAY + "" + ChatColor.BOLD + "■ " + ChatColor.GOLD + "/nick skin [pseudo] "
  186. + ChatColor.WHITE + "» " + ChatColor.AQUA + "Utiliser un nouveau skin.");
  187. player.sendMessage(" " + ChatColor.GRAY + "" + ChatColor.BOLD + "■ " + ChatColor.GOLD + "/nick rank [grade] "
  188. + ChatColor.WHITE + "» " + ChatColor.AQUA + "Utiliser un nouveau grade.");
  189. player.sendMessage(" " + ChatColor.GRAY + "" + ChatColor.BOLD + "■ " + ChatColor.GOLD + "/nick ranklist "
  190. + ChatColor.WHITE + "» " + ChatColor.AQUA + "Afficher la liste des grades.");
  191. player.sendMessage(" " + ChatColor.GRAY + "" + ChatColor.BOLD + "■ " + ChatColor.GOLD + "/nick infos "
  192. + ChatColor.WHITE + "» " + ChatColor.AQUA + "Informations de votre nick.");
  193. player.sendMessage(" " + ChatColor.GRAY + "" + ChatColor.BOLD + "■ " + ChatColor.GOLD + "/nick reset "
  194. + ChatColor.WHITE + "» " + ChatColor.AQUA + "Désactiver le nick.");
  195. player.sendMessage(" " + ChatColor.GRAY + "" + ChatColor.BOLD + "■ " + ChatColor.GOLD + "/nicklist "
  196. + ChatColor.WHITE + "» " + ChatColor.AQUA + "Afficher les joueurs en nick.");
  197. player.sendMessage("");
  198. }
  199.  
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement