Guest User

Untitled

a guest
Dec 6th, 2023
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.75 KB | None | 0 0
  1. package io.github.adrew1.cityrpchat.Commands;
  2.  
  3. import io.github.adrew1.cityrpchat.CityRPChat;
  4. import io.github.adrew1.cityrpchat.Utils.DataFile;
  5. import net.luckperms.api.LuckPerms;
  6. import org.bukkit.Bukkit;
  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.configuration.ConfigurationSection;
  12. import org.bukkit.entity.Player;
  13.  
  14. import java.util.UUID;
  15.  
  16. public class CallsignCommand implements CommandExecutor {
  17.  
  18.     private final LuckPerms luckPerms;
  19.     public CallsignCommand(LuckPerms luckPerms) {
  20.         this.luckPerms = luckPerms;
  21.     }
  22.  
  23.  
  24.     // COMMAND: /callsign <set/remove> <player> <callsign>
  25.     @Override
  26.     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  27.  
  28.         DataFile classDataFile = new DataFile();
  29.  
  30.         String prefix = CityRPChat.getPlugin().getConfig().getString("ServerPrefix");
  31.         String noPermMsg = CityRPChat.getPlugin().getConfig().getString("NoPermMsg");
  32.  
  33.         if (sender instanceof Player) {
  34.  
  35.             if (sender.hasPermission("cityrp.chat.callsigns")) {
  36.  
  37.                 if (args[0].equalsIgnoreCase("set")) {
  38.                     Player target = Bukkit.getPlayer(args[1]);
  39.                     if (target == null) {
  40.                         sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &cError! &7The target player is not online or does not exist."));
  41.                         return true;
  42.                     }
  43.                     if (args[2] == null) {
  44.                         sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &cError! &7Incorrect usage. Use /callsign <set/remove> <player> <callsign>"));
  45.                         return true;
  46.                     }
  47.                     String csStr = args[2];
  48.                     UUID targetUUID = target.getUniqueId();
  49.  
  50.                     // set function
  51.                     classDataFile.getCallsignMap().put(targetUUID, csStr);
  52.  
  53.                     sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &7You have set &e" + target.getName() + "&7's callsign to &e" + csStr));
  54.                     return true;
  55.  
  56.                 }
  57.  
  58.                 if (args[0].equalsIgnoreCase("remove")) {
  59.                     Player target = Bukkit.getPlayer(args[1]);
  60.                     String csStr = args[2];
  61.                     if (target == null) {
  62.                         sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &cError! &7The target player is not online or does not exist."));
  63.                         return true;
  64.                     }
  65.                     if (args[2] == null) {
  66.                         sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &cError! &7Incorrect usage. Use /callsign <set/remove> <player> <callsign>"));
  67.                         return true;
  68.                     }
  69.                     UUID targetUUID = target.getUniqueId();
  70.  
  71.                     if (!classDataFile.getCallsignMap().containsKey(targetUUID)) {
  72.                         sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &cError! &7This user does not have a callsign."));
  73.                         return true;
  74.                     }
  75.                     // remove function
  76.                     classDataFile.getCallsignMap().remove(targetUUID, csStr);
  77.                     DataFile.getDataFile().getConfigurationSection("callsigns");
  78.  
  79.                     for (String key : DataFile.getDataFile().getConfigurationSection("callsigns" ).getKeys(false)) {
  80.                         if (key.equalsIgnoreCase(targetUUID.toString())) {
  81.                             ConfigurationSection dataFileSec = DataFile.getDataFile().getConfigurationSection("callsigns." + key);
  82.                             String existingCs = dataFileSec.getString("cs");
  83.                             dataFileSec.set(key, dataFileSec.getString("cs").replace(existingCs, "null"));
  84.                         }
  85.                     }
  86.  
  87.                     sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &7You have removed &e" + target.getName() + "&7's callsign."));
  88.                     return true;
  89.  
  90.                 }
  91.                 sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " &cError! &7Incorrect usage. Use /callsign <set/remove> <player> <callsign>"));
  92.                 return true;
  93.             }
  94.             sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " " + noPermMsg));
  95.             return true;
  96.         }
  97.         CityRPChat.getPlugin().getLogger().severe("You must be a player to run this command!");
  98.         return true;
  99.     }
  100. }
  101.  
Advertisement
Add Comment
Please, Sign In to add comment