mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-02-12 04:20:41 +00:00
Cleanup broadcast, allow limited keywords in.
This commit is contained in:
parent
f5986194aa
commit
aa6d85eacc
11 changed files with 59 additions and 30 deletions
|
@ -31,6 +31,9 @@ import com.earth2me.essentials.register.payment.Methods;
|
|||
import com.earth2me.essentials.signs.SignBlockListener;
|
||||
import com.earth2me.essentials.signs.SignEntityListener;
|
||||
import com.earth2me.essentials.signs.SignPlayerListener;
|
||||
import com.earth2me.essentials.textreader.IText;
|
||||
import com.earth2me.essentials.textreader.KeywordReplacer;
|
||||
import com.earth2me.essentials.textreader.SimpleTextInput;
|
||||
import com.earth2me.essentials.utils.DateUtil;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
|
@ -613,6 +616,12 @@ public class Essentials extends JavaPlugin implements IEssentials
|
|||
return paymentMethod;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int broadcastMessage(final String message)
|
||||
{
|
||||
return broadcastMessage(null, null, message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int broadcastMessage(final IUser sender, final String message)
|
||||
{
|
||||
|
@ -620,21 +629,20 @@ public class Essentials extends JavaPlugin implements IEssentials
|
|||
}
|
||||
|
||||
@Override
|
||||
public int broadcastMessage(final CommandSender sender, final String permission, final String message)
|
||||
public int broadcastMessage(final String permission, final String message)
|
||||
{
|
||||
return broadcastMessage(null, permission, message);
|
||||
}
|
||||
|
||||
private int broadcastMessage(final IUser sender, final String permission, final String message)
|
||||
{
|
||||
if (sender == null && permission == null)
|
||||
{
|
||||
return getServer().broadcastMessage(message);
|
||||
}
|
||||
if (sender != null && sender.isHidden())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
final IText input = new SimpleTextInput(message);
|
||||
|
||||
final Player[] players = getServer().getOnlinePlayers();
|
||||
|
||||
for (Player player : players)
|
||||
|
@ -643,7 +651,11 @@ public class Essentials extends JavaPlugin implements IEssentials
|
|||
if ((permission == null && (sender == null || !user.isIgnoredPlayer(sender)))
|
||||
|| (permission != null && user.isAuthorized(permission)))
|
||||
{
|
||||
player.sendMessage(message);
|
||||
final IText output = new KeywordReplacer(input, player, this, false);
|
||||
for (String messageText : output.getLines())
|
||||
{
|
||||
player.sendMessage(messageText);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,9 +30,11 @@ public interface IEssentials extends Plugin
|
|||
|
||||
World getWorld(String name);
|
||||
|
||||
int broadcastMessage(String message);
|
||||
|
||||
int broadcastMessage(IUser sender, String message);
|
||||
|
||||
int broadcastMessage(CommandSender sender, String permission, String message);
|
||||
int broadcastMessage(String permission, String message);
|
||||
|
||||
ISettings getSettings();
|
||||
|
||||
|
|
|
@ -75,6 +75,6 @@ public class Commandban extends EssentialsCommand
|
|||
sender.sendMessage(_("userUnknown", user.getName()));
|
||||
}
|
||||
|
||||
ess.broadcastMessage(sender, "essentials.ban.notify", _("playerBanned", senderName, user.getName(), banReason));
|
||||
ess.broadcastMessage("essentials.ban.notify", _("playerBanned", senderName, user.getName(), banReason));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,6 +53,6 @@ public class Commandbanip extends EssentialsCommand
|
|||
ess.getServer().banIP(ipAddress);
|
||||
server.getLogger().log(Level.INFO, _("playerBanIpAddress", senderName, ipAddress));
|
||||
|
||||
ess.broadcastMessage(sender, "essentials.ban.notify", _("playerBanIpAddress", senderName, ipAddress));
|
||||
ess.broadcastMessage("essentials.ban.notify", _("playerBanIpAddress", senderName, ipAddress));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,22 +17,22 @@ public class Commandbroadcast extends EssentialsCommand
|
|||
@Override
|
||||
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (args.length < 1)
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
ess.broadcastMessage(null, _("broadcast", FormatUtil.replaceFormat(getFinalArg(args, 0)), user.getDisplayName()));
|
||||
sendBroadcast(user.getDisplayName(), args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
sendBroadcast(sender.getName(), args);
|
||||
}
|
||||
|
||||
private void sendBroadcast(final String name, final String[] args) throws NotEnoughArgumentsException
|
||||
{
|
||||
if (args.length < 1)
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
ess.broadcastMessage(null, _("broadcast", FormatUtil.replaceFormat(getFinalArg(args, 0)), sender.getName()));
|
||||
ess.broadcastMessage(_("broadcast", FormatUtil.replaceFormat(getFinalArg(args, 0)), name));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,6 +47,6 @@ public class Commandkick extends EssentialsCommand
|
|||
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
|
||||
|
||||
server.getLogger().log(Level.INFO, _("playerKicked", senderName, target.getName(), kickReason));
|
||||
ess.broadcastMessage(sender, "essentials.kick.notify", _("playerKicked", senderName, target.getName(), kickReason));
|
||||
ess.broadcastMessage("essentials.kick.notify", _("playerKicked", senderName, target.getName(), kickReason));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ public class Commandmute extends EssentialsCommand
|
|||
sender.sendMessage(_("mutedPlayer", player.getDisplayName()));
|
||||
player.sendMessage(_("playerMuted"));
|
||||
}
|
||||
ess.broadcastMessage(sender, "essentials.mute.notify", _("muteNotify", sender.getName(), player.getName()));
|
||||
ess.broadcastMessage("essentials.mute.notify", _("muteNotify", sender.getName(), player.getName()));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -60,6 +60,6 @@ public class Commandtempban extends EssentialsCommand
|
|||
user.setBanned(true);
|
||||
user.kickPlayer(banReason);
|
||||
|
||||
ess.broadcastMessage(sender, "essentials.ban.notify", _("playerBanned", senderName, user.getName(), banReason));
|
||||
ess.broadcastMessage("essentials.ban.notify", _("playerBanned", senderName, user.getName(), banReason));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,6 +46,6 @@ public class Commandunban extends EssentialsCommand
|
|||
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
|
||||
server.getLogger().log(Level.INFO, _("playerUnbanned", senderName, name));
|
||||
|
||||
ess.broadcastMessage(sender, "essentials.ban.notify", _("playerUnbanned", senderName, name));
|
||||
ess.broadcastMessage("essentials.ban.notify", _("playerUnbanned", senderName, name));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,6 +52,6 @@ public class Commandunbanip extends EssentialsCommand
|
|||
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
|
||||
server.getLogger().log(Level.INFO, _("playerUnbanIpAddress", senderName, ipAddress));
|
||||
|
||||
ess.broadcastMessage(sender, "essentials.ban.notify", _("playerUnbanIpAddress", senderName, ipAddress));
|
||||
ess.broadcastMessage("essentials.ban.notify", _("playerUnbanIpAddress", senderName, ipAddress));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,12 +20,23 @@ public class KeywordReplacer implements IText
|
|||
private final transient IText input;
|
||||
private final transient List<String> replaced;
|
||||
private final transient IEssentials ess;
|
||||
private final transient boolean extended;
|
||||
|
||||
public KeywordReplacer(final IText input, final CommandSender sender, final IEssentials ess)
|
||||
{
|
||||
this.input = input;
|
||||
this.replaced = new ArrayList<String>(this.input.getLines().size());
|
||||
this.ess = ess;
|
||||
this.extended = true;
|
||||
replaceKeywords(sender);
|
||||
}
|
||||
|
||||
public KeywordReplacer(final IText input, final CommandSender sender, final IEssentials ess, final boolean extended)
|
||||
{
|
||||
this.input = input;
|
||||
this.replaced = new ArrayList<String>(this.input.getLines().size());
|
||||
this.ess = ess;
|
||||
this.extended = extended;
|
||||
replaceKeywords(sender);
|
||||
}
|
||||
|
||||
|
@ -34,15 +45,13 @@ public class KeywordReplacer implements IText
|
|||
String displayName, ipAddress, balance, mails, world;
|
||||
String worlds, online, unique, playerlist, date, time;
|
||||
String worldTime12, worldTime24, worldDate, plugins;
|
||||
String userName, address, version;
|
||||
String userName, version;
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
final User user = ess.getUser(sender);
|
||||
user.setDisplayNick();
|
||||
displayName = user.getDisplayName();
|
||||
userName = user.getName();
|
||||
ipAddress = user.getAddress() == null || user.getAddress().getAddress() == null ? "" : user.getAddress().getAddress().toString();
|
||||
address = user.getAddress() == null ? "" : user.getAddress().toString();
|
||||
balance = NumberUtil.displayCurrency(user.getMoney(), ess);
|
||||
mails = Integer.toString(user.getMails().size());
|
||||
world = user.getLocation() == null || user.getLocation().getWorld() == null ? "" : user.getLocation().getWorld().getName();
|
||||
|
@ -55,6 +64,7 @@ public class KeywordReplacer implements IText
|
|||
displayName = ipAddress = balance = mails = world = worldTime12 = worldTime24 = worldDate = "";
|
||||
}
|
||||
|
||||
userName = sender.getName();
|
||||
int playerHidden = 0;
|
||||
for (Player p : ess.getServer().getOnlinePlayers())
|
||||
{
|
||||
|
@ -114,9 +124,7 @@ public class KeywordReplacer implements IText
|
|||
|
||||
line = line.replace("{PLAYER}", displayName);
|
||||
line = line.replace("{DISPLAYNAME}", displayName);
|
||||
line = line.replace("{USERNAME}", displayName);
|
||||
line = line.replace("{IP}", ipAddress);
|
||||
line = line.replace("{ADDRESS}", ipAddress);
|
||||
line = line.replace("{USERNAME}", userName);
|
||||
line = line.replace("{BALANCE}", balance);
|
||||
line = line.replace("{MAILS}", mails);
|
||||
line = line.replace("{WORLD}", world);
|
||||
|
@ -129,8 +137,15 @@ public class KeywordReplacer implements IText
|
|||
line = line.replace("{WORLDTIME12}", worldTime12);
|
||||
line = line.replace("{WORLDTIME24}", worldTime24);
|
||||
line = line.replace("{WORLDDATE}", worldDate);
|
||||
line = line.replace("{PLUGINS}", plugins);
|
||||
line = line.replace("{VERSION}", version);
|
||||
|
||||
if (extended)
|
||||
{
|
||||
line = line.replace("{IP}", ipAddress);
|
||||
line = line.replace("{ADDRESS}", ipAddress);
|
||||
line = line.replace("{PLUGINS}", plugins);
|
||||
line = line.replace("{VERSION}", version);
|
||||
}
|
||||
|
||||
replaced.add(line);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue