Files
MobArena/src/main/java/com/garbagemule/MobArena/Messenger.java
T
Andreas Troelsen 56dc504bec Refactor Messenger to allow for custom prefixes.
- Messenger no longer has a static nature and must be instantiated to be used. The prefix is provided in the constructor.
- MobArena instantiates a global Messenger in onEnable() with a prefix string from global-settings. This instance is used by anything that isn't arena-specific, as well as for arenas with no prefix.
- ArenaImpl instantiates a local Messenger in its constructor if, and only if, its arena-specific prefix setting is non-empty. Otherwise it uses the plugin's global instance.
2017-03-10 23:32:52 +01:00

60 lines
1.6 KiB
Java

package com.garbagemule.MobArena;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.garbagemule.MobArena.framework.Arena;
public class Messenger
{
private final String prefix;
public Messenger(String prefix) {
if (prefix.contains("&")) {
prefix = ChatColor.translateAlternateColorCodes('&', prefix);
}
this.prefix = prefix;
}
public boolean tell(CommandSender p, String msg) {
// If the input sender is null or the string is empty, return.
if (p == null || msg.equals("")) {
return false;
}
// Otherwise, send the message with the [MobArena] tag.
p.sendMessage(prefix + ChatColor.RESET + msg);
return true;
}
public boolean tell(CommandSender p, Msg msg, String s) {
return tell(p, msg.format(s));
}
public boolean tell(CommandSender p, Msg msg) {
return tell(p, msg.toString());
}
public void announce(Arena arena, String msg) {
List<Player> players = new ArrayList<Player>();
players.addAll(arena.getPlayersInArena());
players.addAll(arena.getPlayersInLobby());
players.addAll(arena.getSpectators());
for (Player p : players) {
tell(p, msg);
}
}
public void announce(Arena arena, Msg msg, String s) {
announce(arena, msg.format(s));
}
public void announce(Arena arena, Msg msg) {
announce(arena, msg.toString());
}
}