Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.29 KB | None | 0 0
  1. package config;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.ChatColor;
  8. import org.bukkit.Sound;
  9. import org.bukkit.command.Command;
  10. import org.bukkit.command.CommandExecutor;
  11. import org.bukkit.command.CommandSender;
  12. import org.bukkit.entity.Player;
  13. import org.bukkit.event.EventHandler;
  14. import org.bukkit.event.Listener;
  15. import org.bukkit.event.player.PlayerQuitEvent;
  16.  
  17. import net.md_5.bungee.api.ChatMessageType;
  18. import net.md_5.bungee.api.chat.TextComponent;
  19.  
  20. public class msg implements CommandExecutor, Listener {
  21.    
  22.  
  23.     private int task = 0;
  24.     private int task1 = 1;
  25.     @Override
  26.     public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
  27.         if ((command.getName().equalsIgnoreCase("msg")) || (command.getName().equalsIgnoreCase("t")) || (command.getName().equalsIgnoreCase("tell"))) {
  28.             Player player = Bukkit.getPlayer(sender.getName());
  29.             if(!(sender instanceof Player)) {
  30.                 sender.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("deny-messages.no-console")));
  31.             }
  32.             if (sender instanceof Player) {
  33.                 if (!sender.hasPermission("msg.use")) {
  34.                     player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.no-permission") + config.plugin.getConfig().getString("deny-messages.permission")));
  35.                     return true;
  36.                 }
  37.                 else if (sender.hasPermission("msg.use")) {
  38.                     if(args.length == 0) {
  39.                         player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("usage.command")));
  40.                         return true;
  41.                     }
  42.                     if(args.length == 1) {
  43.                         player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("usage.command")));
  44.                         return true;
  45.                     }
  46.                     String targetName = args[0];
  47.                     String message = getMessage(args, 1);
  48.                     Player target = Bukkit.getPlayer(targetName);
  49.                     if(args.length >= 1) {
  50.                         if(target == null || !target.isOnline()) {
  51.                             player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("deny-messages.msg-send")).replace("%t", String.valueOf(args[0])));
  52.                             return false;
  53.                         }
  54.                     }
  55.                     if(target == sender) {
  56.                         sender.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("deny-messages.self-message")));
  57.                     }
  58.                     if(args.length >= 2) {
  59.                         if(target != sender) {
  60.                             if(target != null) {
  61.                                     player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("lay-out.sender").replace("%t", target.getName())) + message);
  62.                                     target.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("lay-out.receiver").replace("%s", player.getName())) + message);
  63.                                     target.playSound(target.getLocation(), Sound.valueOf(config.plugin.getConfig().getString("sounds.msg")), config.plugin.getConfig().getInt("volume.msg"), config.plugin.getConfig().getInt("pitch.msg"));
  64.                                     task1 = Bukkit.getScheduler().scheduleSyncRepeatingTask(config.plugin, new Runnable() {
  65.                                         int counter = config.plugin.getConfig().getInt("duration.msg-actionbar");
  66.                                         public void run() {
  67.                                             counter--;
  68.                                             target.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("actionbar.msg"))));
  69.                                             if(counter <= 0) {
  70.                                                 Bukkit.getScheduler().cancelTask(task1);
  71.                                             }
  72.                                         }
  73.                                     }, 0L, 20L);
  74.                                     return false;
  75.                             }
  76.                             if(config.lastMessageSent.containsKey(player)) {
  77.                                 config.lastMessageSent.remove(player);
  78.                             }
  79.                             config.lastMessageSent.put(target, player);
  80.                         }
  81.                     }
  82.                 }
  83.             }
  84.         }else if (command.getName().equalsIgnoreCase("reply") || command.getName().equalsIgnoreCase("r")) {
  85.             Player player = Bukkit.getPlayer(sender.getName());
  86.             if(!(sender instanceof Player)) {
  87.                 player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("deny-messages.no-console")));
  88.             }
  89.             if (sender instanceof Player) {
  90.                 if (!sender.hasPermission("msg.use")) {
  91.                     player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.no-permission") + config.plugin.getConfig().getString("deny-messages.permission")));
  92.                     return true;
  93.                 }
  94.                 else if (sender.hasPermission("msg.use")) {
  95.                     if (sender instanceof Player) {
  96.                         Player target = config.lastMessageSent.get(player);
  97.                         String message = getMessage(args, 0);
  98.                         if (args.length == 0) {
  99.                             player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("usage.reply")));
  100.                         }
  101.                         if(args.length >= 1) {
  102.                             if(target != null) {
  103.                                 if(target.isOnline()) {
  104.                                     player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("messages.reply-success").replace("%t", target.getName())));
  105.                                     target.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("lay-out.receiver").replace("%s", player.getName())) + message);
  106.                                     target.playSound(target.getLocation(), Sound.valueOf(config.plugin.getConfig().getString("sounds.reply")), config.plugin.getConfig().getInt("volume.reply"), config.plugin.getConfig().getInt("pitch.reply"));
  107.                                     config.lastMessageSent.put(target, player);
  108.                                     task = Bukkit.getScheduler().scheduleSyncRepeatingTask(config.plugin, new Runnable() {
  109.                                         int counter = config.plugin.getConfig().getInt("duration.reply-actionbar");
  110.                                         public void run() {
  111.                                             counter--;
  112.                                             target.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("actionbar.reply"))));
  113.                                             if(counter <= 0) {
  114.                                                 Bukkit.getScheduler().cancelTask(task);
  115.                                             }
  116.                                         }
  117.                                     }, 0L, 20L);
  118.                                     return false;
  119.                                 } else {
  120.                                     sender.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("deny-messages.reply-send")));
  121.                                 }
  122.                             } else {
  123.                                 sender.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("deny-messages.reply")));
  124.                             }
  125.                         }
  126.                     }
  127.                 }
  128.             }
  129.         }
  130.         return false;
  131.     }
  132.  
  133.     public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
  134.         List<String> players = new ArrayList<>();
  135.         for(Player player : Bukkit.getOnlinePlayers()) {
  136.             if(player.getName().startsWith(args[0])) {
  137.                 players.add(player.getName());
  138.             }
  139.         }
  140.         return players;
  141.     }
  142.  
  143.     private String getMessage(String[] args, int index) {
  144.         StringBuilder sb = new StringBuilder();
  145.         for(int i = index; i < args.length; i++) {
  146.             sb.append(args[i]).append(" ");
  147.         }
  148.         return sb.toString();
  149.     }
  150.  
  151.     @EventHandler
  152.     public void onPlayerQuit(PlayerQuitEvent e) {
  153.         config.lastMessageSent.remove(e.getPlayer());
  154.     }
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement