Advertisement
Guest User

Untitled

a guest
Jun 16th, 2023
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. public class GNickCommand implements CommandExecutor, TabCompleter {
  2.  
  3. private final GradientNick plugin;
  4.  
  5. public GNickCommand(GradientNick plugin) {
  6. this.plugin = plugin;
  7. }
  8.  
  9.  
  10. @Override
  11. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  12. if (args.length == 4 && args[0].equalsIgnoreCase("set")) {
  13. //Проверка аргументов
  14. String nickname = args[1];
  15.  
  16. if (!(args[2].startsWith("#") || args[3].startsWith("#"))) {
  17. Player player = Bukkit.getPlayer(nickname);
  18.  
  19. if (player != null) {
  20. FileConfiguration config = plugin.getConfig();
  21.  
  22. String startColor = args[2];
  23. String endColor = args[3];
  24.  
  25.  
  26. String firstColor = config.getString(startColor);
  27. String secondColor = config.getString(endColor);
  28.  
  29. Component mmdisplayName = MiniMessage.miniMessage().deserialize("<gradient:" + firstColor + ":" + secondColor + ">" + nickname + "</gradient>");
  30. final String displayName = LegacyComponentSerializer.builder().useUnusualXRepeatedCharacterHexFormat().hexColors().build().serialize(mmdisplayName);
  31.  
  32. player.setDisplayName(displayName);
  33. player.setPlayerListName(displayName);
  34. return true;
  35. } else {
  36. sender.sendMessage(ChatColor.RED + "Игрок не в сети");
  37. }
  38. }
  39. }
  40. if(args[0].equalsIgnoreCase("reload")){
  41. plugin.savePluginConfig();
  42. Player p = (Player) sender;
  43.  
  44. p.sendMessage(ChatColor.AQUA + "" + ChatColor.BOLD + " [GradientNickname] " + ChatColor.WHITE + " Конфиг перезагружен.");
  45. return true;
  46. }
  47. return false;
  48. }
  49.  
  50. @Override
  51. public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
  52. List<String> completions = new ArrayList<>();
  53. FileConfiguration config = plugin.getConfig(); // получаем объект конфига
  54.  
  55. if (args.length == 1) {
  56. // Автодополнение для args[0]
  57. completions.add("set");
  58. completions.add("reload");
  59. } else if (args.length == 2) {
  60. // Автодополнение для args[1]
  61. for (Player player : Bukkit.getOnlinePlayers()) {
  62. completions.add(player.getName());
  63. }
  64. } else if (args.length == 3 || args.length == 4) {
  65. // Автодополнение для args[2] и args[3]
  66. for (String key : config.getKeys(false)) { // перебираем все ключи в конфиге
  67. completions.add(key); // добавляем первую часть ключа (до ":") в список
  68. }
  69. }
  70. return completions;
  71. }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement