summaryrefslogtreecommitdiff
path: root/src/main/java/net/nemez/chatapi/ChatAPI.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/nemez/chatapi/ChatAPI.java')
-rw-r--r--src/main/java/net/nemez/chatapi/ChatAPI.java186
1 files changed, 91 insertions, 95 deletions
diff --git a/src/main/java/net/nemez/chatapi/ChatAPI.java b/src/main/java/net/nemez/chatapi/ChatAPI.java
index 00f97de..0e8b8bb 100644
--- a/src/main/java/net/nemez/chatapi/ChatAPI.java
+++ b/src/main/java/net/nemez/chatapi/ChatAPI.java
@@ -1,56 +1,49 @@
package net.nemez.chatapi;
-import java.lang.reflect.Field;
-import java.util.Random;
-
+import net.md_5.bungee.api.ChatMessageType;
+import net.md_5.bungee.api.chat.TextComponent;
+import net.nemez.chatapi.click.CallbackCommand;
+import net.nemez.chatapi.click.Message;
+import net.nemez.chatapi.click.PlayerQuitListener;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandMap;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
-import net.md_5.bungee.api.chat.TextComponent;
-import net.md_5.bungee.api.ChatMessageType;
-import net.nemez.chatapi.click.CallbackCommand;
-import net.nemez.chatapi.click.Message;
-import net.nemez.chatapi.click.PlayerQuitListener;
+import java.lang.reflect.Field;
+import java.util.Random;
+
+public class ChatAPI {
-public class ChatAPI
-{
-
/* message coloring permission */
- public static final String PERMISSION_CHAT_COLOR = "chat.color";
+ public static final String PERMISSION_CHAT_COLOR = "chat.color";
/* message formatting permission */
- public static final String PERMISSION_CHAT_FORMAT = "chat.format";
+ public static final String PERMISSION_CHAT_FORMAT = "chat.format";
/* message magic formatting permission */
- public static final String PERMISSION_CHAT_MAGIC = "chat.magic";
+ public static final String PERMISSION_CHAT_MAGIC = "chat.magic";
/* permission to send messages in chat */
- public static final String PERMISSION_CHAT_USE = "chat.use";
+ public static final String PERMISSION_CHAT_USE = "chat.use";
/* message to send when the internal command is not ran correctly (ran by user) */
- public static final String MESSAGE_HELP_CLICK_CALLBACK = "&cThis is an internal command for ChatAPI and should not be ran by players manually.";
+ public static final String MESSAGE_HELP_CLICK_CALLBACK = "&cThis is an internal command for ChatAPI and should not be ran by players manually.";
/* message to send when the internal command is not ran by a player */
public static final String MESSAGE_PLAYER_CLICK_CALLBACK = "&cThis command can only be run by a player";
/* the actual command name for use in click callbacks */
- private static String internalCommandName;
-
+ private static String internalCommandName;
+
/** Initializes ChatAPI and registers the required commands for clickable chat to function. */
- public static void initialize(JavaPlugin plugin)
- {
- if (internalCommandName != null)
- {
+ public static void initialize(JavaPlugin plugin) {
+ if (internalCommandName != null) {
return;
}
Random rand = new Random(System.currentTimeMillis());
internalCommandName = "chatapi-exec-" + Integer.toHexString(rand.nextInt(0xEFFF) + 0x1000);
- try
- {
+ try {
final Field cmdMap = Bukkit.getServer().getClass().getDeclaredField("commandMap");
cmdMap.setAccessible(true);
CommandMap map = (CommandMap) cmdMap.get(Bukkit.getServer());
map.register("net/nemez/chatapi", new CallbackCommand(internalCommandName));
- }
- catch (Exception e)
- {
+ } catch (Exception e) {
plugin.getLogger().severe("Failed to register internal command '" + internalCommandName + "'");
e.printStackTrace();
}
@@ -59,97 +52,100 @@ public class ChatAPI
plugin.getServer().getPluginManager().registerEvents(new PlayerQuitListener(), plugin);
plugin.getLogger().info("ChatAPI initialized");
}
-
- /** Colorifies a message using &format codes. Respects permissions.
- *
- * @param sender the command sender whose permissions to use. null if permissions are to be ignored.
+
+ /**
+ * Sends a colorified message to the command sender.
+ *
+ * @param sender the command sender to whom to send the message.
+ * @param message the message to send.
+ */
+ public static void send(CommandSender sender, String message) {
+ if (sender == null) {
+ return;
+ }
+ sender.sendMessage(colorify(null, message));
+ }
+
+ /**
+ * Colorifies a message using &format codes. Respects permissions.
+ *
+ * @param sender the command sender whose permissions to use. null if permissions are to be ignored.
* @param message the message to color
- * @return colored message */
- public static String colorify(CommandSender sender, String message)
- {
- if (sender == null || sender.hasPermission(PERMISSION_CHAT_COLOR))
- {
+ *
+ * @return colored message
+ */
+ public static String colorify(CommandSender sender, String message) {
+ if (sender == null || sender.hasPermission(PERMISSION_CHAT_COLOR)) {
message = message.replaceAll("&([0-9a-fA-FrR])", "§$1");
}
- if (sender == null || sender.hasPermission(PERMISSION_CHAT_FORMAT))
- {
+ if (sender == null || sender.hasPermission(PERMISSION_CHAT_FORMAT)) {
message = message.replaceAll("&([l-oL-OrR])", "§$1");
}
- if (sender == null || sender.hasPermission(PERMISSION_CHAT_MAGIC))
- {
+ if (sender == null || sender.hasPermission(PERMISSION_CHAT_MAGIC)) {
message = message.replaceAll("&([kKrR])", "§$1");
}
message = message.replace("&§", "&");
return message;
}
-
- /** Sends a colorified message to the command sender.
- *
- * @param sender the command sender to whom to send the message.
- * @param message the message to send. */
- public static void send(CommandSender sender, String message)
- {
- if (sender == null)
- {
- return;
- }
- sender.sendMessage(colorify(null, message));
- }
-
- /** Sends a colorified action bar message to the command sender.
- *
- * @param sender the command sender to whom to send the action bar message.
- * @param message the message to send. */
- public static void sendActionBar(CommandSender sender, String message)
- {
- if (sender instanceof Player)
- {
+
+ /**
+ * Sends a colorified action bar message to the command sender.
+ *
+ * @param sender the command sender to whom to send the action bar message.
+ * @param message the message to send.
+ */
+ public static void sendActionBar(CommandSender sender, String message) {
+ if (sender instanceof Player) {
((Player) sender).spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(colorify(null, message)));
}
-
+
}
-
- /** Checks if a command sender has the permission node required to send chat messages.
- *
+
+ /**
+ * Checks if a command sender has the permission node required to send chat messages.
+ *
* @param sender the command sender to check.
- * @return true/false if sender can chat or is null. */
- public static boolean canChat(CommandSender sender)
- {
- if (sender == null)
- {
+ *
+ * @return true/false if sender can chat or is null.
+ */
+ public static boolean canChat(CommandSender sender) {
+ if (sender == null) {
return true;
- }
- else
- {
+ } else {
return sender.hasPermission(PERMISSION_CHAT_USE);
}
}
-
- /** Creates a new message object that will be sent to the given command sender with regards to the second command sender's permissions.
- *
+
+ /**
+ * Creates a new message object that will be sent to the given command sender.
+ *
* @param sender the command sender to whom to send the message.
+ *
+ * @return message object.
+ */
+ public static Message createMessage(CommandSender sender) {
+ return createMessage(sender, null);
+ }
+
+ /**
+ * Creates a new message object that will be sent to the given command sender with regards to the second command sender's permissions.
+ *
+ * @param sender the command sender to whom to send the message.
* @param permissionSender the command sender whose permissions to use.
- * @return message object */
- public static Message createMessage(CommandSender sender, CommandSender permissionSender)
- {
+ *
+ * @return message object
+ */
+ public static Message createMessage(CommandSender sender, CommandSender permissionSender) {
return new Message(sender, permissionSender);
}
-
- /** Creates a new message object that will be sent to the given command sender.
- *
- * @param sender the command sender to whom to send the message.
- * @return message object. */
- public static Message createMessage(CommandSender sender)
- {
- return createMessage(sender, null);
- }
-
- /** Gets the name of the internal ChatAPI command used for click callbacks.
+
+ /**
+ * Gets the name of the internal ChatAPI command used for click callbacks.
* This function is used internally and you don't need to worry about it.
- *
- * @return callback command name */
- public static String getInternalCallbackCommand()
- {
+ *
+ * @return callback command name
+ */
+ public static String getInternalCallbackCommand() {
return internalCommandName;
}
}