MessageCommand.java (2210B)
1 package me.night.nullvalkyrie.commands; 2 3 import org.bukkit.Bukkit; 4 import org.bukkit.ChatColor; 5 import org.bukkit.command.CommandSender; 6 import org.bukkit.entity.Player; 7 import org.bukkit.util.StringUtil; 8 9 import java.util.ArrayList; 10 import java.util.List; 11 12 public class MessageCommand extends Command { 13 public MessageCommand() { 14 super("message", new String[]{"msg"}, "Send message to someone", ""); 15 } 16 17 @Override 18 public void onCommand(CommandSender sender, String[] args) { 19 if (sender instanceof Player player) { 20 if (args.length >= 2) { 21 if (Bukkit.getPlayerExact(args[0]) != null) { 22 Player target = Bukkit.getPlayerExact(args[0]); 23 if (!target.equals(player)) { 24 StringBuilder builder = new StringBuilder(); 25 for (int i = 1; i < args.length; i++) { 26 builder.append(args[i]).append(" "); 27 } 28 player.sendMessage(ChatColor.DARK_AQUA + "TO " + ChatColor.RED + target.getName() + ChatColor.WHITE + " : " + builder); 29 target.sendMessage(ChatColor.DARK_AQUA + "FROM " + ChatColor.RED + player.getName() + ChatColor.WHITE + " : " + builder); 30 } else { 31 player.sendMessage(ChatColor.RED + "You cannot send message to yourself"); 32 } 33 } else { 34 player.sendMessage(ChatColor.RED + "You cannot send message to offline players"); 35 } 36 } else { 37 player.sendMessage(ChatColor.RED + "Invalid parameter, use /msg <Player> <Message>"); 38 } 39 } 40 } 41 42 @Override 43 public List<String> onTabComplete(CommandSender sender, String[] args) { 44 if (args.length == 1) { 45 List<String> names = new ArrayList<>(); 46 for (Player player : Bukkit.getOnlinePlayers()) { 47 names.add(player.getName()); 48 } 49 return StringUtil.copyPartialMatches(args[0], names, new ArrayList<>()); 50 } 51 return new ArrayList<>(); 52 } 53 }