diff --git a/.idea/ButtonChat.iml b/.idea/ButtonChat.iml index 051580a..9b778e4 100644 --- a/.idea/ButtonChat.iml +++ b/.idea/ButtonChat.iml @@ -11,35 +11,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/src/main/java/buttondevteam/chat/components/fun/FunComponent.java b/src/main/java/buttondevteam/chat/components/fun/FunComponent.java index b0f18e2..53bfb23 100644 --- a/src/main/java/buttondevteam/chat/components/fun/FunComponent.java +++ b/src/main/java/buttondevteam/chat/components/fun/FunComponent.java @@ -2,17 +2,26 @@ package buttondevteam.chat.components.fun; import buttondevteam.chat.ChatPlayer; import buttondevteam.chat.PluginMain; -import buttondevteam.chat.listener.PlayerListener; import buttondevteam.lib.TBMCChatEventBase; +import buttondevteam.lib.TBMCCommandPreprocessEvent; +import buttondevteam.lib.TBMCSystemChatEvent; +import buttondevteam.lib.ThorpeUtils; import buttondevteam.lib.architecture.Component; +import buttondevteam.lib.chat.TBMCChatAPI; +import buttondevteam.lib.player.ChromaGamerBase; import buttondevteam.lib.player.TBMCPlayer; import lombok.val; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.help.HelpTopic; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; import org.bukkit.scheduler.BukkitTask; import java.util.ArrayList; @@ -25,8 +34,10 @@ public class FunComponent extends Component implements Listener { private BukkitTask Ftask = null; private ArrayList Fs = new ArrayList<>(); private UnlolCommand command; + private TBMCSystemChatEvent.BroadcastTarget unlolTarget; @Override protected void enable() { + unlolTarget = TBMCSystemChatEvent.BroadcastTarget.add("unlol"); val pc = new PressCommand(); registerCommand(pc); registerListener(pc); @@ -91,4 +102,36 @@ public class FunComponent extends Component implements Listener { public void onPlayerLeave(PlayerQuitEvent event) { command.Lastlol.values().removeIf(lld -> lld.getLolowner().equals(event.getPlayer())); } + + @EventHandler(priority = EventPriority.LOWEST) + public void onCommandPreprocess(TBMCCommandPreprocessEvent event) { + if (event.isCancelled()) return; + final String cmd = event.getMessage(); + // We don't care if we have arguments + if (cmd.toLowerCase().startsWith("/un")) { + for (HelpTopic ht : PluginMain.Instance.getServer().getHelpMap().getHelpTopics()) { + if (ht.getName().equalsIgnoreCase(cmd)) + return; + } + if (PluginMain.permission.has(event.getSender(), "thorpe.unanything")) { + event.setCancelled(true); + String s = cmd.substring(3); + int index = event.getMessage().indexOf(' '); + if (index == -1) { + event.getSender().sendMessage("§cUsage: /un" + s + " "); + return; + } + Player target = Bukkit.getPlayer(event.getMessage().substring(index + 1)); + if (target == null) { + event.getSender().sendMessage("§cError: Player not found. (/un" + s + " )"); + return; + } + val user = ChromaGamerBase.getFromSender(event.getSender()); + target.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 10 * 20, 5, false, false)); + val chan = user.channel().get(); + TBMCChatAPI.SendSystemMessage(chan, chan.getRTR(event.getSender()), ThorpeUtils.getDisplayName(event.getSender()) + " un" + s + + "'d " + target.getDisplayName(), unlolTarget); + } + } + } } diff --git a/src/main/java/buttondevteam/chat/listener/PlayerListener.java b/src/main/java/buttondevteam/chat/listener/PlayerListener.java index 1b50b8c..28fb592 100644 --- a/src/main/java/buttondevteam/chat/listener/PlayerListener.java +++ b/src/main/java/buttondevteam/chat/listener/PlayerListener.java @@ -5,7 +5,6 @@ import buttondevteam.chat.ChatProcessing; import buttondevteam.chat.PluginMain; import buttondevteam.chat.commands.ucmds.HistoryCommand; import buttondevteam.chat.components.flair.FlairComponent; -import buttondevteam.chat.components.fun.FunComponent; import buttondevteam.chat.components.towncolors.TownColorComponent; import buttondevteam.core.ComponentManager; import buttondevteam.core.component.channel.Channel; @@ -13,6 +12,8 @@ import buttondevteam.core.component.channel.ChatChannelRegisterEvent; import buttondevteam.core.component.channel.ChatRoom; import buttondevteam.lib.TBMCChatEvent; import buttondevteam.lib.TBMCCoreAPI; +import buttondevteam.lib.TBMCSystemChatEvent; +import buttondevteam.lib.ThorpeUtils; import buttondevteam.lib.chat.ChatMessage; import buttondevteam.lib.chat.TBMCChatAPI; import buttondevteam.lib.player.ChromaGamerBase; @@ -33,16 +34,13 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.player.*; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerChatTabCompleteEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.server.ServerCommandEvent; -import org.bukkit.help.HelpTopic; -import org.bukkit.potion.PotionEffect; -import org.bukkit.potion.PotionEffectType; import java.util.Arrays; import java.util.Map.Entry; -import java.util.Random; import java.util.UUID; import java.util.function.BiPredicate; @@ -100,12 +98,12 @@ public class PlayerListener implements Listener { if (cmd.equalsIgnoreCase("tpahere")) { Player player = Bukkit.getPlayer(message.substring(index + 1)); if (player != null && sender instanceof Player) - player.sendMessage("§b" + ((Player) sender).getDisplayName() + " §bis in this world: " + player.sendMessage("§b" + ((Player) sender).getDisplayName() + " §bis in this world: " //TODO: Move to the Core + ((Player) sender).getWorld().getName()); } else if (cmd.equalsIgnoreCase("minecraft:me")) { if (!(sender instanceof Player) || !PluginMain.essentials.getUser((Player) sender).isMuted()) { String msg = message.substring(index + 1); - Bukkit.broadcastMessage(String.format("* %s %s", sender instanceof Player ? ((Player) sender).getDisplayName() : sender.getName(), msg)); + TBMCChatAPI.SendSystemMessage(Channel.GlobalChat, Channel.RecipientTestResult.ALL, String.format("* %s %s", ThorpeUtils.getDisplayName(sender), msg), TBMCSystemChatEvent.BroadcastTarget.ALL); //TODO: Don't send to all return true; } else { sender.sendMessage("§cCan't use /minecraft:me while muted."); @@ -129,26 +127,6 @@ public class PlayerListener implements Listener { } // TODO: Target selectors } - // We don't care if we have arguments - if (cmd.toLowerCase().startsWith("un")) { - for (HelpTopic ht : PluginMain.Instance.getServer().getHelpMap().getHelpTopics()) { - if (ht.getName().equalsIgnoreCase("/" + cmd)) - return false; - } - if (PluginMain.permission.has(sender, "tbmc.admin")) { - String s = cmd.substring(2); - Player target = Bukkit.getPlayer(message.substring(index + 1)); - if (target == null) { - sender.sendMessage("§cError: Player not found. (/un" + s + " )"); - return true; - } - target.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 10 * 20, 5, false, false)); - Bukkit.broadcastMessage( - (sender instanceof Player ? ((Player) sender).getDisplayName() : sender.getName()) + " un" + s - + "'d " + target.getDisplayName()); - return true; - } - } return false; }