Guest User

Untitled

a guest
Dec 15th, 2023
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.67 KB | None | 0 0
  1. package net.mccity.adrew1.mccitychat.commands;
  2.  
  3. import com.google.common.io.ByteArrayDataOutput;
  4. import com.google.common.io.ByteStreams;
  5. import net.kyori.adventure.text.minimessage.MiniMessage;
  6. import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
  7. import net.luckperms.api.LuckPerms;
  8. import net.luckperms.api.model.user.User;
  9. import net.mccity.adrew1.mccitychat.McCityChat;
  10. import org.bukkit.command.Command;
  11. import org.bukkit.command.CommandExecutor;
  12. import org.bukkit.command.CommandSender;
  13. import org.bukkit.entity.Player;
  14. import org.jetbrains.annotations.NotNull;
  15.  
  16. public class StaffChat implements CommandExecutor {
  17.  
  18.     private final LuckPerms luckPerms;
  19.  
  20.     public StaffChat(LuckPerms luckPerms) {
  21.         this.luckPerms = luckPerms;
  22.     }
  23.     @Override
  24.     public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
  25.  
  26.         if (!(sender instanceof Player player)) {
  27.             sender.sendMessage("You must be a player to run this command.");
  28.             return true;
  29.         }
  30.         String serverPrefix = McCityChat.plugin.getConfig().getString("Server Prefix");
  31.  
  32.         if (!sender.hasPermission("mccitychat.staffchat")) {
  33.             sender.sendMessage(MiniMessage.miniMessage().deserialize(serverPrefix + " <red>Error! <gray>You must be <dark_aqua>[Staff] <gray>to use this."));
  34.             return true;
  35.         }
  36.         if (!(args.length >= 1)) {
  37.             sender.sendMessage(serverPrefix + " <red>Error! <gray>Incorrect Usage: /staffchat (message)");
  38.             return true;
  39.         }
  40.  
  41.         StringBuilder builder = new StringBuilder();
  42.         for (String string : args) {
  43.             builder.append(string).append(" ");
  44.         }
  45.  
  46.         String msg = builder.toString().trim();
  47.  
  48.         User user = luckPerms.getPlayerAdapter(Player.class).getUser(player);
  49.         String prefix = user.getCachedData().getMetaData().getPrefix();
  50.         String suffix = user.getCachedData().getMetaData().getSuffix();
  51.         String chatPrefix = McCityChat.plugin.getConfig().getString("Staff Prefix");
  52.         String color = McCityChat.plugin.getConfig().getString("Staff Chat Color");
  53.         String chatSep = McCityChat.plugin.getConfig().getString("Chat Separator");
  54.  
  55.         String message = chatPrefix + " " + prefix + sender.getName() + suffix + chatSep + color + msg;
  56.  
  57.         ByteArrayDataOutput out = ByteStreams.newDataOutput();
  58.         out.writeUTF(GsonComponentSerializer.gson().serialize(MiniMessage.miniMessage().deserialize(message)));
  59.  
  60.         player.sendPluginMessage(McCityChat.plugin, "mccity:staff", out.toByteArray());
  61.         return true;
  62.     }
  63. }
  64.  
Add Comment
Please, Sign In to add comment