Guest User

Untitled

a guest
Jan 25th, 2023
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.21 KB | None | 0 0
  1. package eu.decoiled.commands;
  2.  
  3. import org.bukkit.ChatColor;
  4. import org.bukkit.command.Command;
  5. import org.bukkit.command.CommandExecutor;
  6. import org.bukkit.command.CommandSender;
  7. import org.bukkit.entity.Player;
  8.  
  9. import java.util.Arrays;
  10. import java.util.List;
  11.  
  12. import static eu.decoiled.Main.config;
  13.  
  14. public class Gang implements CommandExecutor {
  15.  
  16. @Override
  17. public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
  18.  
  19. String arg1 = args[0];
  20. if(arg1.equals("create")) {
  21.  
  22. if (!(sender instanceof Player)) {
  23. sender.sendMessage(ChatColor.RED + "Solo i giocatori possono utilizzare questo comando.");
  24. return true;
  25. }
  26.  
  27. Player player = (Player) sender;
  28.  
  29. String gangName = args[1];
  30.  
  31. if (!gangName.matches("[a-zA-Z0-9]+")) {
  32. player.sendMessage(ChatColor.RED + "Il nome della gang non può contenere caratteri speciali.");
  33. return true;
  34. }
  35.  
  36. if (gangName.length() > 10) {
  37. player.sendMessage(ChatColor.RED + "Il nome della gang non può essere più lungo di 10 caratteri.");
  38. return true;
  39. }
  40.  
  41. if (isInAGang(player)) {
  42. player.sendMessage(ChatColor.RED + "Sei già in una gang.");
  43. return true;
  44. }
  45.  
  46. if (gangExists(gangName)) {
  47. player.sendMessage(ChatColor.RED + "Esiste già una gang con quel nome.");
  48. return true;
  49. }
  50.  
  51. createGang(gangName, player);
  52. player.sendMessage(ChatColor.GREEN + "Hai creato la gang " + gangName + " con successo.");
  53. } else if (arg1.equals("leave")) {
  54.  
  55. if (!(sender instanceof Player)) {
  56. sender.sendMessage(ChatColor.RED + "Solo i giocatori possono utilizzare questo comando.");
  57. return true;
  58. }
  59.  
  60. Player player = (Player) sender;
  61.  
  62. if (!isInAGang(player)) {
  63. player.sendMessage(ChatColor.RED + "Non sei già in una gang.");
  64. return true;
  65. }
  66.  
  67. gangLeave(player);
  68.  
  69.  
  70. }
  71. return true;
  72. }
  73.  
  74. public boolean isInAGang(Player player) {
  75. for (String key : config.getConfigurationSection("gangs").getKeys(false)) {
  76. List<String> members = config.getStringList("gangs." + key + ".members");
  77. if (members.contains(player.getName())) {
  78. return true;
  79. }
  80. }
  81. return false;
  82. }
  83.  
  84. public boolean gangExists(String gangName) {
  85. return config.isSet("gangs." + gangName);
  86. }
  87.  
  88. public void createGang(String gangName, Player leader) {
  89. leader.setPlayerListName("§7[§b " + gangName + "§7]" + "§f " + leader.getName());
  90. config.set("gangs." + gangName + ".leader", leader.getName());
  91. config.set("gangs." + gangName + ".members", Arrays.asList(leader.getName()));
  92. }
  93.  
  94. private void addMemberToGang(String gangName, Player member) {
  95. List<String> members = config.getStringList("gangs." + gangName + ".members");
  96. members.add(member.getName());
  97. config.set("gangs." + gangName + ".members", members);
  98. }
  99.  
  100.  
  101. public void gangLeave(Player player) {
  102. for (String key : config.getConfigurationSection("gangs").getKeys(false)) {
  103. List<String> members = config.getStringList("gangs." + key + ".members");
  104. String leader = config.getString("gangs." + key + ".leader");
  105. if (members.contains(player.getName())) {
  106. members.remove(player.getName());
  107. if (leader.equals(player.getName())) {
  108. config.set("gangs." + key, null);
  109. player.sendMessage(ChatColor.RED + "Hai lasciato la gang e l'hai cancellata.");
  110. } else {
  111. config.set("gangs." + key + ".members", members);
  112. player.sendMessage(ChatColor.GREEN + "Hai lasciato la gang.");
  113. }
  114. return;
  115. }
  116. }
  117. player.sendMessage(ChatColor.RED + "Non sei in alcuna gang.");
  118. }
  119. }
  120.  
Add Comment
Please, Sign In to add comment