summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinenash <minenash@protonmail.com>2018-12-11 18:41:11 -0500
committerMinenash <minenash@protonmail.com>2018-12-11 18:41:11 -0500
commitda695a7fc0928b3fdf7a5d47a755d64b8818fa39 (patch)
treeeaf0efcf1bf26028588c9500f976ecda76da99a9
parent0ef0d4f74ef17c7a7dabf118248f14e4843edd6c (diff)
Added ChatAPI Message in broadcasts
-rw-r--r--src/main/java/com/redstoner/misc/Utils.java42
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. */