0

Move to Master #8

Merged
Minenash merged 24 commits from gradle into master 2019-02-08 16:31:21 +00:00
Showing only changes of commit da695a7fc0 - Show all commits

View File

@ -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. */