diff --git a/pom.xml b/pom.xml
index e28f071..7b4fe91 100644
--- a/pom.xml
+++ b/pom.xml
@@ -258,9 +258,9 @@
junit
junit
- 4.12
- test
-
+ 4.12
+ test
+
org.apache.logging.log4j
@@ -268,6 +268,13 @@
2.8.1
provided
+
+
+ org.mockito
+ mockito-core
+ 3.0.0
+ test
+
Chroma-Chat
diff --git a/src/main/java/buttondevteam/chat/PluginMain.java b/src/main/java/buttondevteam/chat/PluginMain.java
index acfd694..0e5ce6f 100644
--- a/src/main/java/buttondevteam/chat/PluginMain.java
+++ b/src/main/java/buttondevteam/chat/PluginMain.java
@@ -1,6 +1,7 @@
package buttondevteam.chat;
import buttondevteam.chat.commands.MWikiCommand;
+import buttondevteam.chat.commands.MeCommand;
import buttondevteam.chat.commands.SnapCommand;
import buttondevteam.chat.commands.ucmds.HelpCommand;
import buttondevteam.chat.commands.ucmds.HistoryCommand;
@@ -76,6 +77,7 @@ public class PluginMain extends ButtonPlugin { // Translated to Java: 2015.07.15
registerCommand(new MWikiCommand());
registerCommand(new ReloadCommand());
registerCommand(new SnapCommand());
+ registerCommand(new MeCommand());
}
public static Essentials essentials = null;
diff --git a/src/main/java/buttondevteam/chat/commands/MeCommand.java b/src/main/java/buttondevteam/chat/commands/MeCommand.java
new file mode 100644
index 0000000..5e9a500
--- /dev/null
+++ b/src/main/java/buttondevteam/chat/commands/MeCommand.java
@@ -0,0 +1,15 @@
+package buttondevteam.chat.commands;
+
+import buttondevteam.lib.TBMCSystemChatEvent;
+import buttondevteam.lib.chat.*;
+
+@CommandClass(helpText = {
+ "Me",
+ "Displays a message starting with your name in your current channel."
+})
+public class MeCommand extends ICommand2MC {
+ @Command2.Subcommand
+ public void def(Command2MCSender sender, @Command2.TextArg String message) {
+ TBMCChatAPI.SendSystemMessage(sender.getChannel(), sender.getChannel().getRTR(sender.getPermCheck()), "§5* " + sender.getName() + " " + message, TBMCSystemChatEvent.BroadcastTarget.ALL);
+ }
+}
diff --git a/src/main/java/buttondevteam/chat/commands/ucmds/HistoryCommand.java b/src/main/java/buttondevteam/chat/commands/ucmds/HistoryCommand.java
index 25393be..4d8435f 100644
--- a/src/main/java/buttondevteam/chat/commands/ucmds/HistoryCommand.java
+++ b/src/main/java/buttondevteam/chat/commands/ucmds/HistoryCommand.java
@@ -15,7 +15,7 @@ import java.util.function.Function;
import java.util.stream.Stream;
@CommandClass(helpText = {
- "§6--- Chat History ----", //
+ "Chat History", //
"Returns the last 10 messages the player can see." //
})
public class HistoryCommand extends UCommandBase {
diff --git a/src/main/java/buttondevteam/chat/commands/ucmds/admin/DebugCommand.java b/src/main/java/buttondevteam/chat/commands/ucmds/admin/DebugCommand.java
index 838236c..5beb2cc 100644
--- a/src/main/java/buttondevteam/chat/commands/ucmds/admin/DebugCommand.java
+++ b/src/main/java/buttondevteam/chat/commands/ucmds/admin/DebugCommand.java
@@ -13,7 +13,7 @@ public class DebugCommand extends AdminCommandBase {
public static boolean DebugMode = false;
@Command2.Subcommand
- public boolean def(CommandSender sender, String alias, String[] args) {
+ public boolean def(CommandSender sender) {
sender.sendMessage("§eDebug mode " + ((DebugMode = !DebugMode) ? "§aenabled." : "§cdisabled."));
return true;
}
diff --git a/src/main/java/buttondevteam/chat/components/appendext/AppendTextComponent.java b/src/main/java/buttondevteam/chat/components/appendext/AppendTextComponent.java
index 8d9c3dd..dd81f9c 100644
--- a/src/main/java/buttondevteam/chat/components/appendext/AppendTextComponent.java
+++ b/src/main/java/buttondevteam/chat/components/appendext/AppendTextComponent.java
@@ -7,7 +7,6 @@ import buttondevteam.lib.architecture.IHaveConfig;
import buttondevteam.lib.chat.*;
import buttondevteam.lib.player.ChromaGamerBase;
import lombok.val;
-import org.bukkit.command.CommandSender;
import java.lang.reflect.Method;
import java.util.HashMap;
@@ -101,9 +100,9 @@ public class AppendTextComponent extends Component {
}
@Command2.Subcommand
- public void def(CommandSender sender, @Command2.OptionalArg @Command2.TextArg String message) {
- TBMCChatAPI.SendChatMessage(ChatMessage.builder(sender, ChromaGamerBase.getFromSender(sender),
- (message == null ? "" : message + " ") + appendedText).fromCommand(true).build());
+ public void def(Command2MCSender sender, @Command2.OptionalArg @Command2.TextArg String message) {
+ TBMCChatAPI.SendChatMessage(ChatMessage.builder(sender.getSender(), ChromaGamerBase.getFromSender(sender.getSender()),
+ (message == null ? "" : message + " ") + appendedText).fromCommand(true).permCheck(sender.getPermCheck()).build());
}
@Override
diff --git a/src/main/java/buttondevteam/chat/components/chatonly/ChatonlyCommand.java b/src/main/java/buttondevteam/chat/components/chatonly/ChatonlyCommand.java
index 5add48d..e78d1e5 100644
--- a/src/main/java/buttondevteam/chat/components/chatonly/ChatonlyCommand.java
+++ b/src/main/java/buttondevteam/chat/components/chatonly/ChatonlyCommand.java
@@ -8,7 +8,7 @@ import org.bukkit.GameMode;
import org.bukkit.entity.Player;
@CommandClass(modOnly = false, helpText = {
- "§6---- Chat-only mode ----", //
+ "Chat-only mode", //
"This mode makes you invincible but unable to move, teleport or interact with the world in any way", //
"It was designed for chat clients", //
"Once enabled, the only way of disabling it is by relogging to the server" //
diff --git a/src/main/java/buttondevteam/chat/components/flair/SetFlairCommand.java b/src/main/java/buttondevteam/chat/components/flair/SetFlairCommand.java
index 575d57f..2f16507 100644
--- a/src/main/java/buttondevteam/chat/components/flair/SetFlairCommand.java
+++ b/src/main/java/buttondevteam/chat/components/flair/SetFlairCommand.java
@@ -10,7 +10,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandClass(helpText = {
- "§6---- Set flair -----", "Set a flair for a player",
+ "Set flair", "Set a flair for a player",
"Usage: /u admin setflair [username]",
"Example 1: /u admin setflair NorbiPeti 19 false NorbiPeti --> orange (19s)",
"Example 2: /u admin setflair iie 0 true asde --> purple (0s)"
diff --git a/src/main/java/buttondevteam/chat/components/fun/FTopCommand.java b/src/main/java/buttondevteam/chat/components/fun/FTopCommand.java
index 4c3f99f..04b4f83 100644
--- a/src/main/java/buttondevteam/chat/components/fun/FTopCommand.java
+++ b/src/main/java/buttondevteam/chat/components/fun/FTopCommand.java
@@ -18,7 +18,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@CommandClass(helpText = {
- "§6---- F Top ----", //
+ "F Top", //
"Shows the respect leaderboard" //
})
public class FTopCommand extends ICommand2MC {
diff --git a/src/main/java/buttondevteam/chat/components/fun/UnlolCommand.java b/src/main/java/buttondevteam/chat/components/fun/UnlolCommand.java
index 8a0ea93..3b55410 100644
--- a/src/main/java/buttondevteam/chat/components/fun/UnlolCommand.java
+++ b/src/main/java/buttondevteam/chat/components/fun/UnlolCommand.java
@@ -20,7 +20,7 @@ import java.util.HashMap;
import java.util.Map;
@CommandClass(modOnly = false, helpText = {
- "§6---- Unlol/unlaugh ----",
+ "Unlol/unlaugh",
"This command is based on a joke between NorbiPeti and Ghostise",
"It will make the last person saying one of the recognized laugh strings blind for a few seconds",
"Note that you can only unlaugh laughs that weren't unlaughed before"
diff --git a/src/main/java/buttondevteam/chat/listener/PlayerListener.java b/src/main/java/buttondevteam/chat/listener/PlayerListener.java
index b9c05e7..dbaf99b 100644
--- a/src/main/java/buttondevteam/chat/listener/PlayerListener.java
+++ b/src/main/java/buttondevteam/chat/listener/PlayerListener.java
@@ -8,38 +8,24 @@ import buttondevteam.chat.components.flair.FlairComponent;
import buttondevteam.chat.components.formatter.FormatterComponent;
import buttondevteam.chat.components.towncolors.TownColorComponent;
import buttondevteam.core.ComponentManager;
-import buttondevteam.core.component.channel.Channel;
-import buttondevteam.core.component.channel.ChatRoom;
-import buttondevteam.lib.ChromaUtils;
import buttondevteam.lib.TBMCChatEvent;
import buttondevteam.lib.TBMCCoreAPI;
-import buttondevteam.lib.TBMCSystemChatEvent;
-import buttondevteam.lib.chat.ChatMessage;
-import buttondevteam.lib.chat.TBMCChatAPI;
-import buttondevteam.lib.player.ChromaGamerBase;
import buttondevteam.lib.player.ChromaGamerBase.InfoTarget;
import buttondevteam.lib.player.TBMCPlayerGetInfoEvent;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
-import lombok.val;
import net.ess3.api.events.NickChangeEvent;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
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 java.util.Arrays;
import java.util.Map.Entry;
import java.util.UUID;
-import java.util.function.BiPredicate;
public class PlayerListener implements Listener {
/**
@@ -56,77 +42,6 @@ public class PlayerListener implements Listener {
event.setCancelled(true); // The custom event should only be cancelled when muted or similar
}
- @EventHandler(priority = EventPriority.HIGHEST)
- public void PlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
- if (!event.isCancelled())
- event.setCancelled(onCommandPreprocess(event.getPlayer(), event.getMessage()));
- }
-
- private boolean onCommandPreprocess(CommandSender sender, String message) {
- if (message.length() < 2)
- return false;
- int index = message.indexOf(" ");
- val mp = ChromaGamerBase.getFromSender(sender);
- String cmd;
- final BiPredicate checkchid = (chan, cmd1) -> cmd1.equalsIgnoreCase(chan.ID) || (Arrays.stream(chan.IDs().get()).anyMatch(cmd1::equalsIgnoreCase));
- if (index == -1) { // Only the command is run
- if (!(sender instanceof Player || sender instanceof ConsoleCommandSender))
- return false;
- // ^^ We can only store player or console channels - Directly sending to channels would still work if they had an event
- cmd = sender instanceof ConsoleCommandSender ? message : message.substring(1);
- for (Channel channel : ((Iterable) Channel.getChannels()::iterator)) { //Using Stream.forEach would be too easy
- if (checkchid.test(channel, cmd)) {
- Channel oldch = mp.channel().get();
- if (oldch instanceof ChatRoom)
- ((ChatRoom) oldch).leaveRoom(sender);
- if (oldch.equals(channel))
- mp.channel().set(Channel.GlobalChat);
- else {
- mp.channel().set(channel);
- if (channel instanceof ChatRoom)
- ((ChatRoom) channel).joinRoom(sender);
- }
- sender.sendMessage("§6You are now talking in: §b" + mp.channel().get().DisplayName().get());
- return true;
- }
- }
- } else { // We have arguments
- cmd = sender instanceof ConsoleCommandSender ? message.substring(0, index) : message.substring(1, index);
- 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: " //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);
- TBMCChatAPI.SendSystemMessage(Channel.GlobalChat, Channel.RecipientTestResult.ALL, String.format("* %s %s", ChromaUtils.getDisplayName(sender), msg), TBMCSystemChatEvent.BroadcastTarget.ALL); //TODO: Don't send to all
- return true;
- } else {
- sender.sendMessage("§cCan't use /minecraft:me while muted.");
- return true;
- }
- } else if (cmd.equalsIgnoreCase("me")) { //Take over for Discord broadcast
- if (!(sender instanceof Player) || !PluginMain.essentials.getUser((Player) sender).isMuted()) {
- String msg = message.substring(index + 1);
- Bukkit.broadcastMessage(String.format("§5* %s %s", sender instanceof Player ? ((Player) sender).getDisplayName() : sender.getName(), msg));
- return true;
- } else {
- sender.sendMessage("§cCan't use /me while muted.");
- return true;
- }
- } else
- for (Channel channel : (Iterable) Channel.getChannels()::iterator) {
- if (checkchid.test(channel, cmd)) { //Apparently method references don't require final variables
- TBMCChatAPI.SendChatMessage(ChatMessage.builder(sender, mp, message.substring(index + 1)).build(), channel);
- return true;
- }
- }
- // TODO: Target selectors
- }
- return false;
- }
-
@EventHandler
public void onTabComplete(PlayerChatTabCompleteEvent e) {
String name = e.getLastToken();
@@ -136,12 +51,6 @@ public class PlayerListener implements Listener {
}
}
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onConsoleCommand(ServerCommandEvent event) {
- if (onCommandPreprocess(event.getSender(), event.getCommand()))
- event.setCommand("dontrunthiscmd");
- }
-
@EventHandler
public void onGetInfo(TBMCPlayerGetInfoEvent e) {
try (ChatPlayer cp = e.getPlayer().getAs(ChatPlayer.class)) {