Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package config;
- import java.util.ArrayList;
- import java.util.List;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Sound;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerQuitEvent;
- import net.md_5.bungee.api.ChatMessageType;
- import net.md_5.bungee.api.chat.TextComponent;
- public class msg implements CommandExecutor, Listener {
- private int task = 0;
- private int task1 = 1;
- @Override
- public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
- if ((command.getName().equalsIgnoreCase("msg")) || (command.getName().equalsIgnoreCase("t")) || (command.getName().equalsIgnoreCase("tell"))) {
- Player player = Bukkit.getPlayer(sender.getName());
- if(!(sender instanceof Player)) {
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("deny-messages.no-console")));
- }
- if (sender instanceof Player) {
- if (!sender.hasPermission("msg.use")) {
- player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.no-permission") + config.plugin.getConfig().getString("deny-messages.permission")));
- return true;
- }
- else if (sender.hasPermission("msg.use")) {
- if(args.length == 0) {
- player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("usage.command")));
- return true;
- }
- if(args.length == 1) {
- player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("usage.command")));
- return true;
- }
- String targetName = args[0];
- String message = getMessage(args, 1);
- Player target = Bukkit.getPlayer(targetName);
- if(args.length >= 1) {
- if(target == null || !target.isOnline()) {
- player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("deny-messages.msg-send")).replace("%t", String.valueOf(args[0])));
- return false;
- }
- }
- if(target == sender) {
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("deny-messages.self-message")));
- }
- if(args.length >= 2) {
- if(target != sender) {
- if(target != null) {
- player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("lay-out.sender").replace("%t", target.getName())) + message);
- target.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("lay-out.receiver").replace("%s", player.getName())) + message);
- target.playSound(target.getLocation(), Sound.valueOf(config.plugin.getConfig().getString("sounds.msg")), config.plugin.getConfig().getInt("volume.msg"), config.plugin.getConfig().getInt("pitch.msg"));
- task1 = Bukkit.getScheduler().scheduleSyncRepeatingTask(config.plugin, new Runnable() {
- int counter = config.plugin.getConfig().getInt("duration.msg-actionbar");
- public void run() {
- counter--;
- target.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("actionbar.msg"))));
- if(counter <= 0) {
- Bukkit.getScheduler().cancelTask(task1);
- }
- }
- }, 0L, 20L);
- return false;
- }
- if(config.lastMessageSent.containsKey(player)) {
- config.lastMessageSent.remove(player);
- }
- config.lastMessageSent.put(target, player);
- }
- }
- }
- }
- }else if (command.getName().equalsIgnoreCase("reply") || command.getName().equalsIgnoreCase("r")) {
- Player player = Bukkit.getPlayer(sender.getName());
- if(!(sender instanceof Player)) {
- player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("deny-messages.no-console")));
- }
- if (sender instanceof Player) {
- if (!sender.hasPermission("msg.use")) {
- player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.no-permission") + config.plugin.getConfig().getString("deny-messages.permission")));
- return true;
- }
- else if (sender.hasPermission("msg.use")) {
- if (sender instanceof Player) {
- Player target = config.lastMessageSent.get(player);
- String message = getMessage(args, 0);
- if (args.length == 0) {
- player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("usage.reply")));
- }
- if(args.length >= 1) {
- if(target != null) {
- if(target.isOnline()) {
- player.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("messages.reply-success").replace("%t", target.getName())));
- target.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("lay-out.receiver").replace("%s", player.getName())) + message);
- target.playSound(target.getLocation(), Sound.valueOf(config.plugin.getConfig().getString("sounds.reply")), config.plugin.getConfig().getInt("volume.reply"), config.plugin.getConfig().getInt("pitch.reply"));
- config.lastMessageSent.put(target, player);
- task = Bukkit.getScheduler().scheduleSyncRepeatingTask(config.plugin, new Runnable() {
- int counter = config.plugin.getConfig().getInt("duration.reply-actionbar");
- public void run() {
- counter--;
- target.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("actionbar.reply"))));
- if(counter <= 0) {
- Bukkit.getScheduler().cancelTask(task);
- }
- }
- }, 0L, 20L);
- return false;
- } else {
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("deny-messages.reply-send")));
- }
- } else {
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', config.plugin.getConfig().getString("prefixes.msg") + config.plugin.getConfig().getString("deny-messages.reply")));
- }
- }
- }
- }
- }
- }
- return false;
- }
- public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
- List<String> players = new ArrayList<>();
- for(Player player : Bukkit.getOnlinePlayers()) {
- if(player.getName().startsWith(args[0])) {
- players.add(player.getName());
- }
- }
- return players;
- }
- private String getMessage(String[] args, int index) {
- StringBuilder sb = new StringBuilder();
- for(int i = index; i < args.length; i++) {
- sb.append(args[i]).append(" ");
- }
- return sb.toString();
- }
- @EventHandler
- public void onPlayerQuit(PlayerQuitEvent e) {
- config.lastMessageSent.remove(e.getPlayer());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement