diff options
Diffstat (limited to 'src/main/java/net/nemez/chatapi/click')
5 files changed, 90 insertions, 132 deletions
diff --git a/src/main/java/net/nemez/chatapi/click/CallbackCommand.java b/src/main/java/net/nemez/chatapi/click/CallbackCommand.java index 8685108..1319b4c 100644 --- a/src/main/java/net/nemez/chatapi/click/CallbackCommand.java +++ b/src/main/java/net/nemez/chatapi/click/CallbackCommand.java @@ -1,12 +1,11 @@ package net.nemez.chatapi.click; -import java.util.UUID; - +import net.nemez.chatapi.ChatAPI; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import net.nemez.chatapi.ChatAPI; +import java.util.UUID; public class CallbackCommand extends Command { diff --git a/src/main/java/net/nemez/chatapi/click/CallbackMap.java b/src/main/java/net/nemez/chatapi/click/CallbackMap.java index 6735ae9..dd377e3 100644 --- a/src/main/java/net/nemez/chatapi/click/CallbackMap.java +++ b/src/main/java/net/nemez/chatapi/click/CallbackMap.java @@ -1,10 +1,10 @@ package net.nemez.chatapi.click; +import org.bukkit.command.CommandSender; + import java.util.HashMap; import java.util.UUID; -import org.bukkit.command.CommandSender; - public class CallbackMap { private static HashMap<String, HashMap<Integer, ClickCallback>> map = new HashMap<String, HashMap<Integer, ClickCallback>>(); @@ -25,7 +25,7 @@ public class CallbackMap { playerMap.put(id, callback); return id; } - + protected static void execute(CommandSender sender, UUID uuid, int id) { HashMap<Integer, ClickCallback> playerMap = map.get(uuid.toString()); if (playerMap == null) { @@ -42,11 +42,11 @@ public class CallbackMap { } }; t.start(); - }else{ + } else { cb.execute(sender); } } - + protected static void discard(UUID uuid) { map.remove(uuid.toString()); } diff --git a/src/main/java/net/nemez/chatapi/click/ClickCallback.java b/src/main/java/net/nemez/chatapi/click/ClickCallback.java index 10e8f00..f2e078e 100644 --- a/src/main/java/net/nemez/chatapi/click/ClickCallback.java +++ b/src/main/java/net/nemez/chatapi/click/ClickCallback.java @@ -1,28 +1,25 @@ package net.nemez.chatapi.click; -import org.bukkit.command.CommandSender; - import net.nemez.chatapi.ChatAPI; +import org.bukkit.command.CommandSender; public abstract class ClickCallback { private boolean repeatable, async; - private String expiredMessage; + private String expiredMessage; private boolean expired; - + public ClickCallback(boolean repeatable, boolean async, String expiredMessage) { this.repeatable = repeatable; this.async = async; this.expiredMessage = expiredMessage; this.expired = false; } - - public abstract void run(CommandSender sender); - + public final void execute(CommandSender sender) { if (!expired) { run(sender); - }else{ + } else { if (sender != null) { sender.sendMessage(ChatAPI.colorify(null, expiredMessage)); } @@ -31,15 +28,17 @@ public abstract class ClickCallback { expired = true; } } - + + public abstract void run(CommandSender sender); + public boolean isRepeatable() { return repeatable; } - + public boolean isAsynchronous() { return async; } - + public String getExpiredMessage() { return expiredMessage; } diff --git a/src/main/java/net/nemez/chatapi/click/Message.java b/src/main/java/net/nemez/chatapi/click/Message.java index cb887b5..735fa8b 100644 --- a/src/main/java/net/nemez/chatapi/click/Message.java +++ b/src/main/java/net/nemez/chatapi/click/Message.java @@ -1,129 +1,121 @@ package net.nemez.chatapi.click; +import net.md_5.bungee.api.ChatMessageType; +import net.md_5.bungee.api.chat.*; +import net.nemez.chatapi.ChatAPI; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import net.md_5.bungee.api.ChatMessageType; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.api.chat.ClickEvent; -import net.md_5.bungee.api.chat.ComponentBuilder; -import net.md_5.bungee.api.chat.HoverEvent; -import net.md_5.bungee.api.chat.TextComponent; -import net.nemez.chatapi.ChatAPI; +public class Message { -public class Message -{ - private CommandSender sender; private CommandSender permission; private TextComponent message; - private String rawMessage; - - public Message(CommandSender sender, CommandSender permission) - { + private String rawMessage; + + public Message(CommandSender sender, CommandSender permission) { this.sender = sender; this.permission = permission; message = new TextComponent(""); rawMessage = ""; } - - public Message appendText(String text) - { + + public Message appendLink(String text, String url) { text = ChatAPI.colorify(permission, text); BaseComponent[] components = TextComponent.fromLegacyText(text); - for (BaseComponent component : components) - { + for (BaseComponent component : components) { + component.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, url)); message.addExtra(component); } rawMessage += text; return this; } - - public Message appendLink(String text, String url) - { + + public Message appendSuggest(String text, String suggestion) { text = ChatAPI.colorify(permission, text); BaseComponent[] components = TextComponent.fromLegacyText(text); - for (BaseComponent component : components) - { - component.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, url)); + for (BaseComponent component : components) { + component.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, suggestion)); message.addExtra(component); } rawMessage += text; return this; } - - public Message appendSendChat(String text, String msg) - { + + public Message appendCallback(String text, ClickCallback callback) { + if (sender instanceof Player) { + int id = CallbackMap.register(((Player) sender).getUniqueId(), callback); + return appendSendChat(text, "/" + ChatAPI.getInternalCallbackCommand() + " " + id); + } else { + return appendText(text); + } + } + + public Message appendSendChat(String text, String msg) { text = ChatAPI.colorify(permission, text); BaseComponent[] components = TextComponent.fromLegacyText(text); - for (BaseComponent component : components) - { + for (BaseComponent component : components) { component.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, msg)); message.addExtra(component); } rawMessage += text; return this; } - - public Message appendSuggest(String text, String suggestion) - { + + public Message appendText(String text) { text = ChatAPI.colorify(permission, text); BaseComponent[] components = TextComponent.fromLegacyText(text); - for (BaseComponent component : components) - { - component.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, suggestion)); + for (BaseComponent component : components) { message.addExtra(component); } rawMessage += text; return this; } - - public Message appendCallback(String text, ClickCallback callback) - { - if (sender instanceof Player) - { - int id = CallbackMap.register(((Player) sender).getUniqueId(), callback); - return appendSendChat(text, "/" + ChatAPI.getInternalCallbackCommand() + " " + id); - } - else - { - return appendText(text); - } - } - - public Message appendTextHover(String text, String hover) - { + + public Message appendLinkHover(String text, String url, String hover) { text = ChatAPI.colorify(permission, text); BaseComponent[] components = TextComponent.fromLegacyText(text); - for (BaseComponent component : components) - { + for (BaseComponent component : components) { + component.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, url)); addHoverText(component, hover); message.addExtra(component); } rawMessage += text; return this; } - - public Message appendLinkHover(String text, String url, String hover) - { + + private void addHoverText(BaseComponent comp, String text) { + comp.setHoverEvent(new HoverEvent( + HoverEvent.Action.SHOW_TEXT, + new ComponentBuilder(ChatAPI.colorify(permission, text)).create() + )); + } + + public Message appendSuggestHover(String text, String suggestion, String hover) { text = ChatAPI.colorify(permission, text); BaseComponent[] components = TextComponent.fromLegacyText(text); - for (BaseComponent component : components) - { - component.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, url)); + for (BaseComponent component : components) { + component.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, suggestion)); addHoverText(component, hover); message.addExtra(component); } rawMessage += text; return this; } - - public Message appendSendChatHover(String text, String msg, String hover) - { + + public Message appendCallbackHover(String text, ClickCallback callback, String hover) { + if (sender instanceof Player) { + int id = CallbackMap.register(((Player) sender).getUniqueId(), callback); + return appendSendChatHover(text, "/" + ChatAPI.getInternalCallbackCommand() + " " + id, hover); + } else { + return appendTextHover(text, hover); + } + } + + public Message appendSendChatHover(String text, String msg, String hover) { text = ChatAPI.colorify(permission, text); BaseComponent[] components = TextComponent.fromLegacyText(text); - for (BaseComponent component : components) - { + for (BaseComponent component : components) { component.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, msg)); addHoverText(component, hover); message.addExtra(component); @@ -131,79 +123,47 @@ public class Message rawMessage += text; return this; } - - public Message appendSuggestHover(String text, String suggestion, String hover) - { + + public Message appendTextHover(String text, String hover) { text = ChatAPI.colorify(permission, text); BaseComponent[] components = TextComponent.fromLegacyText(text); - for (BaseComponent component : components) - { - component.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, suggestion)); + for (BaseComponent component : components) { addHoverText(component, hover); message.addExtra(component); } rawMessage += text; return this; } - - public Message appendCallbackHover(String text, ClickCallback callback, String hover) - { - if (sender instanceof Player) - { - int id = CallbackMap.register(((Player) sender).getUniqueId(), callback); - return appendSendChatHover(text, "/" + ChatAPI.getInternalCallbackCommand() + " " + id, hover); - } - else - { - return appendTextHover(text, hover); - } - } - + public Message appendMessage(Message msg) { message.addExtra(msg.message); rawMessage += msg.rawMessage; return this; } - - public void send() - { - if (sender == null || !ChatAPI.canChat(this.permission)) - { + + public void send() { + if (sender == null || !ChatAPI.canChat(this.permission)) { return; } - if (sender instanceof Player) - { + if (sender instanceof Player) { ((Player) sender).spigot().sendMessage(message); - } - else - { + } else { sender.sendMessage(rawMessage); } } - - public void sendAsActionBar() - { - if (sender == null) - { + + public void sendAsActionBar() { + if (sender == null) { return; } - if (sender instanceof Player) - { + if (sender instanceof Player) { ((Player) sender).spigot().sendMessage(ChatMessageType.ACTION_BAR, message); - } - else - { + } else { sender.sendMessage(rawMessage); } } - + public String getRawMessage() { return rawMessage; } - - private void addHoverText(BaseComponent comp, String text) - { - comp.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, - new ComponentBuilder(ChatAPI.colorify(permission, text)).create())); - } } diff --git a/src/main/java/net/nemez/chatapi/click/RunnableCallback.java b/src/main/java/net/nemez/chatapi/click/RunnableCallback.java index 2ee16da..5299fa2 100644 --- a/src/main/java/net/nemez/chatapi/click/RunnableCallback.java +++ b/src/main/java/net/nemez/chatapi/click/RunnableCallback.java @@ -5,7 +5,7 @@ import org.bukkit.command.CommandSender; public class RunnableCallback extends ClickCallback { private Runnable runnable; - + public RunnableCallback(Runnable runnable, boolean repeatable, boolean async, String expiredMessage) { super(repeatable, async, expiredMessage); this.runnable = runnable; |