diff options
author | Minenash <minenash@protonmail.com> | 2018-12-11 18:41:11 -0500 |
---|---|---|
committer | Minenash <minenash@protonmail.com> | 2018-12-11 18:41:11 -0500 |
commit | da695a7fc0928b3fdf7a5d47a755d64b8818fa39 (patch) | |
tree | eaf0efcf1bf26028588c9500f976ecda76da99a9 | |
parent | 0ef0d4f74ef17c7a7dabf118248f14e4843edd6c (diff) |
Added ChatAPI Message in broadcasts
-rw-r--r-- | src/main/java/com/redstoner/misc/Utils.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/main/java/com/redstoner/misc/Utils.java b/src/main/java/com/redstoner/misc/Utils.java index 8186bcb..d950d67 100644 --- a/src/main/java/com/redstoner/misc/Utils.java +++ b/src/main/java/com/redstoner/misc/Utils.java @@ -12,6 +12,9 @@ import org.bukkit.entity.Player; import com.redstoner.annotations.Version; +import net.nemez.chatapi.ChatAPI; +import net.nemez.chatapi.click.Message; + /** The utils class containing utility functions. Those include but are not limited to sending formatted messages, broadcasts and more. * * @author Pepich */ @@ -69,6 +72,45 @@ public final class Utils } } + /** This method broadcasts a message to all players and console that are allowed by the filter. Set the filter to NULL to broadcast to everyone.</br> + * If you want to, you can set a message that will be logged to console. Set to null to not log anything.</br> + * You can still allow console in the filter to log the original message. + * + * @param prefix The prefix for the message. Set to NULL to let it auto generate. + * @param message the message to be sent around + * @param filter the BroadcastFilter to be applied.</br> + * Write a class implementing the interface and pass it to this method, the "sendTo()" method will be called for each recipient. + * @param logmessage the log message to appear in console. Set to null to not log this (you can still log the original message by returning true in the filter). + */ + public static int broadcast(String prefix, Message message, BroadcastFilter filter) + { + if (prefix == null) + prefix = "§8[§2" + getCaller() + "§8]: "; + if (filter == null) + { + for (Player p : Bukkit.getOnlinePlayers()) + ChatAPI.createMessage(p).appendText(prefix).appendMessage(message).send(); + Bukkit.getConsoleSender().sendMessage(prefix + message); + return Bukkit.getOnlinePlayers().size() + 1; + } + else + { + int count = 0; + for (Player p : Bukkit.getOnlinePlayers()) + if (filter.sendTo(p)) + { + ChatAPI.createMessage(p).appendText(prefix).appendMessage(message).send(); + count++; + } + if (filter.sendTo(Bukkit.getConsoleSender())) + { + Bukkit.getConsoleSender().sendMessage(prefix + message); + count++; + } + return count; + } + } + /** This method will find the next parent caller and return their class name, omitting package names. * * @return the Name of the calling class. */ |