mirror of
https://github.com/plexusorg/Plex.git
synced 2026-06-04 05:26:55 +00:00
Pass through the messages and clean them up
This commit is contained in:
@@ -105,7 +105,7 @@ public abstract class PlexCommand extends Command
|
||||
catch (PlayerNotFoundException | CommandFailException | ConsoleOnlyException |
|
||||
ConsoleMustDefinePlayerException | PlayerNotBannedException | NumberFormatException ex)
|
||||
{
|
||||
send(sender, mmString(ex.getMessage()));
|
||||
send(sender, exceptionComponent(ex));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -192,12 +192,33 @@ public abstract class PlexCommand extends Command
|
||||
|
||||
protected Component usage()
|
||||
{
|
||||
return Component.text("Correct Usage: ").color(NamedTextColor.YELLOW).append(componentFromString(getUsage()).color(NamedTextColor.GRAY));
|
||||
return messageComponent("correctUsagePrefix").append(componentFromString(getUsage()).color(NamedTextColor.GRAY));
|
||||
}
|
||||
|
||||
protected Component usage(String s)
|
||||
{
|
||||
return Component.text("Correct Usage: ").color(NamedTextColor.YELLOW).append(componentFromString(s).color(NamedTextColor.GRAY));
|
||||
return messageComponent("correctUsagePrefix").append(componentFromString(s).color(NamedTextColor.GRAY));
|
||||
}
|
||||
|
||||
private Component exceptionComponent(RuntimeException ex)
|
||||
{
|
||||
if (ex instanceof PlayerNotFoundException && "PlayerNotFoundException".equals(ex.getMessage()))
|
||||
{
|
||||
return messageComponent("playerNotFound");
|
||||
}
|
||||
if (ex instanceof PlayerNotBannedException && "PlayerNotBannedException".equals(ex.getMessage()))
|
||||
{
|
||||
return messageComponent("playerNotBanned");
|
||||
}
|
||||
if (ex instanceof ConsoleOnlyException && "ConsoleOnlyException".equals(ex.getMessage()))
|
||||
{
|
||||
return messageComponent("consoleOnly");
|
||||
}
|
||||
if (ex instanceof ConsoleMustDefinePlayerException && "ConsoleMustDefinePlayerException".equals(ex.getMessage()))
|
||||
{
|
||||
return messageComponent("consoleMustDefinePlayer");
|
||||
}
|
||||
return mmString(ex.getMessage());
|
||||
}
|
||||
|
||||
protected Player getNonNullPlayer(String name)
|
||||
|
||||
@@ -170,7 +170,7 @@ public abstract class ServerCommand extends Command implements PluginIdentifiabl
|
||||
catch (PlayerNotFoundException | CommandFailException | ConsoleOnlyException |
|
||||
ConsoleMustDefinePlayerException | PlayerNotBannedException | NumberFormatException ex)
|
||||
{
|
||||
send(sender, PlexUtils.mmDeserialize(ex.getMessage()));
|
||||
send(sender, exceptionComponent(ex));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -385,7 +385,7 @@ public abstract class ServerCommand extends Command implements PluginIdentifiabl
|
||||
*/
|
||||
protected Component usage()
|
||||
{
|
||||
return Component.text("Correct Usage: ").color(NamedTextColor.YELLOW).append(componentFromString(this.getUsage()).color(NamedTextColor.GRAY));
|
||||
return messageComponent("correctUsagePrefix").append(componentFromString(this.getUsage()).color(NamedTextColor.GRAY));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -397,7 +397,28 @@ public abstract class ServerCommand extends Command implements PluginIdentifiabl
|
||||
*/
|
||||
protected Component usage(String s)
|
||||
{
|
||||
return Component.text("Correct Usage: ").color(NamedTextColor.YELLOW).append(componentFromString(s).color(NamedTextColor.GRAY));
|
||||
return messageComponent("correctUsagePrefix").append(componentFromString(s).color(NamedTextColor.GRAY));
|
||||
}
|
||||
|
||||
private Component exceptionComponent(RuntimeException ex)
|
||||
{
|
||||
if (ex instanceof PlayerNotFoundException && "PlayerNotFoundException".equals(ex.getMessage()))
|
||||
{
|
||||
return messageComponent("playerNotFound");
|
||||
}
|
||||
if (ex instanceof PlayerNotBannedException && "PlayerNotBannedException".equals(ex.getMessage()))
|
||||
{
|
||||
return messageComponent("playerNotBanned");
|
||||
}
|
||||
if (ex instanceof ConsoleOnlyException && "ConsoleOnlyException".equals(ex.getMessage()))
|
||||
{
|
||||
return messageComponent("consoleOnly");
|
||||
}
|
||||
if (ex instanceof ConsoleMustDefinePlayerException && "ConsoleMustDefinePlayerException".equals(ex.getMessage()))
|
||||
{
|
||||
return messageComponent("consoleMustDefinePlayer");
|
||||
}
|
||||
return PlexUtils.mmDeserialize(ex.getMessage());
|
||||
}
|
||||
|
||||
protected Player getNonNullPlayer(String name)
|
||||
|
||||
@@ -16,7 +16,6 @@ import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -37,7 +36,7 @@ public class AdminChatCMD extends ServerCommand
|
||||
{
|
||||
player = plugin.getPlayerCache().getPlexPlayer(playerSender.getUniqueId());
|
||||
player.setStaffChat(!player.isStaffChat());
|
||||
return messageComponent("adminChatToggled", BooleanUtils.toStringOnOff(player.isStaffChat()));
|
||||
return messageComponent("adminChatToggled", messageString(player.isStaffChat() ? "stateOn" : "stateOff"));
|
||||
}
|
||||
return usage();
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ public class BanListCommand extends ServerCommand
|
||||
{
|
||||
plugin.getPunishmentManager().getActiveBans().whenComplete((punishments, throwable) ->
|
||||
{
|
||||
send(sender, mmString("<gold>Active Bans (" + punishments.size() + "): <yellow>" + StringUtils.join(punishments.stream().map(Punishment::getPunishedUsername).collect(Collectors.toList()), ", ")));
|
||||
send(sender, messageComponent("activeBansList", punishments.size(), StringUtils.join(punishments.stream().map(Punishment::getPunishedUsername).collect(Collectors.toList()), ", ")));
|
||||
});
|
||||
return null;
|
||||
}
|
||||
@@ -47,7 +47,7 @@ public class BanListCommand extends ServerCommand
|
||||
plugin.getPunishmentManager().getActiveBans().whenComplete((punishments, throwable) ->
|
||||
{
|
||||
punishments.forEach(plugin.getPunishmentManager()::unban);
|
||||
send(sender, mmString("<gold>Unbanned " + punishments.size() + " players."));
|
||||
send(sender, messageComponent("unbannedPlayers", punishments.size()));
|
||||
});
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -46,7 +46,7 @@ public class BcastLoginMessageCMD extends ServerCommand
|
||||
}
|
||||
else
|
||||
{
|
||||
return mmString("<red>This player does not have a login message.");
|
||||
return messageComponent("playerHasNoLoginMessage");
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -39,18 +39,18 @@ public class BlockEditCMD extends ServerCommand
|
||||
int count = 0;
|
||||
for (String player : bl.blockedPlayers.stream().toList())
|
||||
{
|
||||
send(sender, "- " + player);
|
||||
send(sender, messageComponent("blockeditListEntry", player));
|
||||
++count;
|
||||
}
|
||||
if (count == 0)
|
||||
{
|
||||
send(sender, "- none");
|
||||
send(sender, messageComponent("blockeditListNone"));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("purge"))
|
||||
{
|
||||
PlexUtils.broadcast(messageComponent("unblockingEdits", sender.getName(), "all players"));
|
||||
PlexUtils.broadcast(messageComponent("unblockingEdits", sender.getName(), messageString("blockeditAllPlayers")));
|
||||
int count = 0;
|
||||
for (String player : bl.blockedPlayers.stream().toList())
|
||||
{
|
||||
@@ -60,11 +60,11 @@ public class BlockEditCMD extends ServerCommand
|
||||
++count;
|
||||
}
|
||||
}
|
||||
return messageComponent("blockeditSize", "Unblocked", count);
|
||||
return messageComponent("blockeditSize", messageString("blockeditUnblockedAction"), count);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("all"))
|
||||
{
|
||||
PlexUtils.broadcast(messageComponent("blockingEdits", sender.getName(), "all non-admins"));
|
||||
PlexUtils.broadcast(messageComponent("blockingEdits", sender.getName(), messageString("blockeditAllNonAdmins")));
|
||||
int count = 0;
|
||||
for (final Player player : Bukkit.getOnlinePlayers())
|
||||
{
|
||||
@@ -75,7 +75,7 @@ public class BlockEditCMD extends ServerCommand
|
||||
}
|
||||
}
|
||||
|
||||
return messageComponent("blockeditSize", "Blocked", count);
|
||||
return messageComponent("blockeditSize", messageString("blockeditBlockedAction"), count);
|
||||
}
|
||||
|
||||
final Player player = getNonNullPlayer(args[0]);
|
||||
@@ -88,14 +88,14 @@ public class BlockEditCMD extends ServerCommand
|
||||
}
|
||||
PlexUtils.broadcast(messageComponent("blockingEdits", sender.getName(), player.getName()));
|
||||
bl.blockedPlayers.add(player.getName());
|
||||
send(player, messageComponent("editsModified", "blocked"));
|
||||
send(player, messageComponent("editsModified", messageString("blockeditBlockedState")));
|
||||
send(sender, messageComponent("editsBlocked", player.getName()));
|
||||
}
|
||||
else
|
||||
{
|
||||
PlexUtils.broadcast(messageComponent("unblockingEdits", sender.getName(), player.getName()));
|
||||
bl.blockedPlayers.remove(player.getName());
|
||||
send(player, messageComponent("editsModified", "unblocked"));
|
||||
send(player, messageComponent("editsModified", messageString("blockeditUnblockedState")));
|
||||
send(sender, messageComponent("editsUnblocked", player.getName()));
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -35,7 +35,7 @@ public class MobLimitCMD extends ServerCommand
|
||||
.filter(entity -> entity instanceof LivingEntity && !(entity instanceof Player))
|
||||
.count();
|
||||
|
||||
String status = plugin.config.getBoolean("entity_limit.mob_limit_enabled") ? "<green>Enabled" : "<red>Disabled";
|
||||
String status = PlexUtils.messageString(plugin.config.getBoolean("entity_limit.mob_limit_enabled") ? "mobLimitEnabled" : "mobLimitDisabled");
|
||||
return PlexUtils.messageComponent("mobLimitStatus", status, currentMobCount, currentLimit, chunk.getX(), chunk.getZ());
|
||||
}
|
||||
|
||||
@@ -44,11 +44,11 @@ public class MobLimitCMD extends ServerCommand
|
||||
case "on":
|
||||
plugin.config.set("entity_limit.mob_limit_enabled", true);
|
||||
plugin.config.save();
|
||||
return PlexUtils.messageComponent("mobLimitToggle", "enabled");
|
||||
return PlexUtils.messageComponent("mobLimitToggle", PlexUtils.messageString("stateEnabled"));
|
||||
case "off":
|
||||
plugin.config.set("entity_limit.mob_limit_enabled", false);
|
||||
plugin.config.save();
|
||||
return PlexUtils.messageComponent("mobLimitToggle", "disabled");
|
||||
return PlexUtils.messageComponent("mobLimitToggle", PlexUtils.messageString("stateDisabled"));
|
||||
case "setmax":
|
||||
try
|
||||
{
|
||||
|
||||
@@ -71,7 +71,7 @@ public class MobPurgeCMD extends ServerCommand
|
||||
PlexUtils.broadcast(messageComponent("removedMobs", sender.getName(), count));
|
||||
PlexLog.debug("All " + count + " valid mobs were removed");
|
||||
}
|
||||
sender.sendMessage(messageComponent("amountOfMobsRemoved", count, (type != null ? mobName : "mob") + multipleS(count)));
|
||||
sender.sendMessage(messageComponent("amountOfMobsRemoved", count, type != null ? mobName + multipleS(count) : messageString(count == 1 ? "mobSingular" : "mobPlural")));
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ public class PlexCMD extends ServerCommand
|
||||
{
|
||||
if (!hasUpdateAccess(playerSender, sender))
|
||||
{
|
||||
return messageComponent("noPermissionRank", "a Developer");
|
||||
return mmString("<red>You must be a Developer to use this command.");
|
||||
}
|
||||
for (PlexModule module : plugin.getModuleManager().getModules())
|
||||
{
|
||||
@@ -111,7 +111,7 @@ public class PlexCMD extends ServerCommand
|
||||
{
|
||||
if (!hasUpdateAccess(playerSender, sender))
|
||||
{
|
||||
return messageComponent("noPermissionRank", "a Developer");
|
||||
return mmString("<red>You must be a Developer to use this command.");
|
||||
}
|
||||
if (!plugin.getUpdateChecker().getUpdateStatusMessage(sender, false, 0))
|
||||
{
|
||||
|
||||
@@ -11,7 +11,6 @@ import dev.plex.util.PlexUtils;
|
||||
import java.util.List;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -28,13 +27,13 @@ public class ToggleCMD extends ServerCommand
|
||||
{
|
||||
if (args.length == 0)
|
||||
{
|
||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray>Available toggles:"));
|
||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Explosions" + status("explosions")));
|
||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Fluidspread" + status("fluidspread")));
|
||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Drops" + status("drops")));
|
||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Redstone" + status("redstone")));
|
||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - PVP" + status("pvp")));
|
||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Chat" + status("chat")));
|
||||
sender.sendMessage(messageComponent("toggleAvailable"));
|
||||
sender.sendMessage(toggleListItem("toggleExplosions", "explosions"));
|
||||
sender.sendMessage(toggleListItem("toggleFluidSpread", "fluidspread"));
|
||||
sender.sendMessage(toggleListItem("toggleDrops", "drops"));
|
||||
sender.sendMessage(toggleListItem("toggleRedstone", "redstone"));
|
||||
sender.sendMessage(toggleListItem("togglePvp", "pvp"));
|
||||
sender.sendMessage(toggleListItem("toggleChat", "chat"));
|
||||
return null;
|
||||
}
|
||||
switch (args[0].toLowerCase())
|
||||
@@ -61,7 +60,7 @@ public class ToggleCMD extends ServerCommand
|
||||
}
|
||||
case "chat" ->
|
||||
{
|
||||
PlexUtils.broadcast(PlexUtils.messageComponent("chatToggled", sender.getName(), plugin.toggles.getBoolean("chat") ? "off" : "on"));
|
||||
PlexUtils.broadcast(PlexUtils.messageComponent("chatToggled", sender.getName(), messageString(plugin.toggles.getBoolean("chat") ? "stateOff" : "stateOn")));
|
||||
return toggle("chat");
|
||||
}
|
||||
default ->
|
||||
@@ -80,14 +79,33 @@ public class ToggleCMD extends ServerCommand
|
||||
return args.length == 1 && silentCheckPermission(sender, this.getPermission()) ? PlexUtils.getPlayerNameList() : ImmutableList.of();
|
||||
}
|
||||
|
||||
private String status(String toggle)
|
||||
private Component toggleListItem(String nameKey, String toggle)
|
||||
{
|
||||
return plugin.toggles.getBoolean(toggle) ? " (enabled)" : " (disabled)";
|
||||
return messageComponent("toggleListItem", messageString(nameKey), status(toggle));
|
||||
}
|
||||
|
||||
private Component toggle(String toggle)
|
||||
{
|
||||
plugin.toggles.set(toggle, !plugin.getToggles().getBoolean(toggle));
|
||||
return Component.text("Toggled " + toggle + status(toggle)).color(NamedTextColor.GRAY);
|
||||
return messageComponent("toggleCommandResult", messageString(toggleNameKey(toggle)), status(toggle));
|
||||
}
|
||||
|
||||
private String status(String toggle)
|
||||
{
|
||||
return messageString(plugin.toggles.getBoolean(toggle) ? "stateEnabled" : "stateDisabled");
|
||||
}
|
||||
|
||||
private String toggleNameKey(String toggle)
|
||||
{
|
||||
return switch (toggle)
|
||||
{
|
||||
case "explosions" -> "toggleExplosions";
|
||||
case "fluidspread" -> "toggleFluidSpread";
|
||||
case "drops" -> "toggleDrops";
|
||||
case "redstone" -> "toggleRedstone";
|
||||
case "pvp" -> "togglePvp";
|
||||
case "chat" -> "toggleChat";
|
||||
default -> toggle;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ import com.google.common.collect.ImmutableList;
|
||||
import dev.plex.command.ServerCommand;
|
||||
import dev.plex.command.annotation.CommandParameters;
|
||||
import dev.plex.command.annotation.CommandPermissions;
|
||||
import dev.plex.command.exception.PlayerNotBannedException;
|
||||
import dev.plex.command.exception.PlayerNotFoundException;
|
||||
import dev.plex.command.source.RequiredCommandSource;
|
||||
import dev.plex.player.PlexPlayer;
|
||||
@@ -45,7 +44,7 @@ public class UnbanCMD extends ServerCommand
|
||||
{
|
||||
if (!aBoolean)
|
||||
{
|
||||
send(sender, PlexUtils.mmDeserialize(new PlayerNotBannedException().getMessage()));
|
||||
send(sender, messageComponent("playerNotBanned"));
|
||||
return;
|
||||
}
|
||||
plugin.getPunishmentManager().unban(target.getUuid());
|
||||
|
||||
@@ -2,8 +2,7 @@ package dev.plex.listener.impl;
|
||||
|
||||
import dev.plex.listener.ServerListenerBase;
|
||||
import dev.plex.player.PlexPlayer;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import dev.plex.util.PlexUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@@ -25,7 +24,7 @@ public class CommandListener extends ServerListenerBase
|
||||
String command = event.getMessage();
|
||||
if (!pl.getUniqueId().equals(player.getUniqueId()))
|
||||
{
|
||||
pl.sendMessage(Component.text(player.getName() + ": " + command).color(NamedTextColor.GRAY));
|
||||
pl.sendMessage(PlexUtils.messageComponent("commandSpyFormat", player.getName(), command));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -42,21 +42,21 @@ public class MenuListener extends ServerListenerBase
|
||||
final ItemMeta meta = event.getCurrentItem().getItemMeta();
|
||||
if (meta != null && meta.displayName() != null)
|
||||
{
|
||||
if (meta.displayName().equals(PageableMenu.PREVIOUS.getItemMeta().displayName()))
|
||||
if (meta.displayName().equals(PageableMenu.previousItem().getItemMeta().displayName()))
|
||||
{
|
||||
page.parent().currentPage(page.parent().currentPage() - 1);
|
||||
page.parent().open(player, page.parent().currentPage());
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
else if (meta.displayName().equals(PageableMenu.NEXT.getItemMeta().displayName()))
|
||||
else if (meta.displayName().equals(PageableMenu.nextItem().getItemMeta().displayName()))
|
||||
{
|
||||
page.parent().currentPage(page.parent().currentPage() + 1);
|
||||
page.parent().open(player, page.parent().currentPage());
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
else if (meta.displayName().equals(PageableMenu.CLOSE.getItemMeta().displayName()))
|
||||
else if (meta.displayName().equals(PageableMenu.closeItem().getItemMeta().displayName()))
|
||||
{
|
||||
player.closeInventory();
|
||||
event.setCancelled(true);
|
||||
|
||||
@@ -5,6 +5,7 @@ import dev.plex.menu.pagination.PageableMenu;
|
||||
import dev.plex.player.PlayerService;
|
||||
import dev.plex.player.PlexPlayer;
|
||||
import dev.plex.punishment.Punishment;
|
||||
import dev.plex.util.PlexUtils;
|
||||
import dev.plex.util.TimeUtils;
|
||||
import dev.plex.util.item.ItemBuilder;
|
||||
|
||||
@@ -20,7 +21,7 @@ public class PunishedPlayerMenu extends PageableMenu<Punishment>
|
||||
|
||||
public PunishedPlayerMenu(PlexPlayer player, PlayerService playerService)
|
||||
{
|
||||
super("<red><bold>Punishments - " + player.getName(), AbstractMenu.Rows.SIX);
|
||||
super(PlexUtils.messageComponent("punishedPlayerMenuTitle", player.getName()), AbstractMenu.Rows.SIX);
|
||||
this.punishedPlayer = player;
|
||||
this.playerService = playerService;
|
||||
onClick((inventoryView, itemStacks, player1, itemStack) -> true);
|
||||
@@ -30,7 +31,13 @@ public class PunishedPlayerMenu extends PageableMenu<Punishment>
|
||||
@Override
|
||||
protected ItemStack toItem(Punishment object)
|
||||
{
|
||||
return new ItemBuilder(Material.PAPER).displayName("<!italic><red>" + object.getType().name()).lore("<!italic><red>By: <gold>" + (object.getPunisher() == null ? "CONSOLE" : playerService.getNameByUUID(object.getPunisher())), "<!italic><red>Issued: <gold>" + TimeUtils.useTimezone(object.getIssueDate()), "<!italic><red>Expire(d/s): <gold>" + TimeUtils.useTimezone(object.getEndDate()), "<!italic><red>Reason: <gold>" + object.getReason()).build();
|
||||
return new ItemBuilder(Material.PAPER)
|
||||
.displayName(PlexUtils.messageComponent("punishmentItemTitle", object.getType().name()))
|
||||
.lore(PlexUtils.messageComponent("punishmentItemPunisher", object.getPunisher() == null ? "CONSOLE" : playerService.getNameByUUID(object.getPunisher())),
|
||||
PlexUtils.messageComponent("punishmentItemIssued", TimeUtils.useTimezone(object.getIssueDate())),
|
||||
PlexUtils.messageComponent("punishmentItemExpires", TimeUtils.useTimezone(object.getEndDate())),
|
||||
PlexUtils.messageComponent("punishmentItemReason", object.getReason()))
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -5,12 +5,11 @@ import dev.plex.menu.pagination.PageableMenu;
|
||||
import dev.plex.player.PlayerService;
|
||||
import dev.plex.player.PlexPlayer;
|
||||
import dev.plex.util.PlexLog;
|
||||
import dev.plex.util.PlexUtils;
|
||||
import dev.plex.util.item.ItemBuilder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
@@ -24,7 +23,7 @@ public class PunishmentMenu extends PageableMenu<Player>
|
||||
|
||||
public PunishmentMenu(PlayerService playerService)
|
||||
{
|
||||
super("<aqua><bold>Punishments", AbstractMenu.Rows.SIX);
|
||||
super(PlexUtils.messageComponent("punishmentMenuTitle"), AbstractMenu.Rows.SIX);
|
||||
this.playerService = playerService;
|
||||
PlexLog.debug("list: {0}", list().size());
|
||||
onClick((inventoryView, itemStacks, player, itemStack) ->
|
||||
@@ -41,7 +40,7 @@ public class PunishmentMenu extends PageableMenu<Player>
|
||||
PlexPlayer punishedPlayer = playerService.getPlayer(meta.getOwningPlayer().getUniqueId());
|
||||
if (punishedPlayer == null)
|
||||
{
|
||||
player.sendMessage(Component.text("This player does not exist. Try doing /punishments <player> instead.").color(NamedTextColor.RED));
|
||||
player.sendMessage(PlexUtils.messageComponent("punishmentPlayerNotFound"));
|
||||
player.closeInventory();
|
||||
return true;
|
||||
}
|
||||
@@ -55,7 +54,7 @@ public class PunishmentMenu extends PageableMenu<Player>
|
||||
@Override
|
||||
protected ItemStack toItem(Player object)
|
||||
{
|
||||
return new ItemBuilder(Material.PLAYER_HEAD).owner(object).displayName("<!italic><yellow>" + object.getName()).build();
|
||||
return new ItemBuilder(Material.PLAYER_HEAD).owner(object).displayName(PlexUtils.messageComponent("punishmentPlayerItem", object.getName())).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -20,7 +20,7 @@ public class ToggleMenu extends AbstractMenu
|
||||
|
||||
public ToggleMenu(Plex plugin)
|
||||
{
|
||||
super("<green><bold>Toggles", Rows.ONE);
|
||||
super(PlexUtils.messageComponent("toggleMenuTitle"), Rows.ONE);
|
||||
this.plugin = plugin;
|
||||
resetExplosionItem(this.inventory());
|
||||
resetFluidspreadItem(this.inventory());
|
||||
@@ -34,8 +34,8 @@ public class ToggleMenu extends AbstractMenu
|
||||
{
|
||||
ItemStack explosions = new ItemStack(Material.TNT);
|
||||
ItemMeta explosionsItemMeta = explosions.getItemMeta();
|
||||
explosionsItemMeta.displayName(PlexUtils.mmDeserialize("<!italic><light_purple>Toggle explosions"));
|
||||
explosionsItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>Explosions are " + (plugin.toggles.getBoolean("explosions") ? "<red>enabled" : "<green>disabled"))));
|
||||
explosionsItemMeta.displayName(PlexUtils.messageComponent("toggleMenuExplosionsName"));
|
||||
explosionsItemMeta.lore(List.of(PlexUtils.messageComponent("toggleMenuExplosionsLore", status("explosions", true))));
|
||||
explosions.setItemMeta(explosionsItemMeta);
|
||||
inventory.setItem(0, explosions);
|
||||
}
|
||||
@@ -44,8 +44,8 @@ public class ToggleMenu extends AbstractMenu
|
||||
{
|
||||
ItemStack water = new ItemStack(Material.WATER_BUCKET);
|
||||
ItemMeta waterItemMeta = water.getItemMeta();
|
||||
waterItemMeta.displayName(PlexUtils.mmDeserialize("<!italic><light_purple>Toggle fluid spread"));
|
||||
waterItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>Fluid spread is " + (plugin.toggles.getBoolean("fluidspread") ? "<green>enabled" : "<red>disabled"))));
|
||||
waterItemMeta.displayName(PlexUtils.messageComponent("toggleMenuFluidSpreadName"));
|
||||
waterItemMeta.lore(List.of(PlexUtils.messageComponent("toggleMenuFluidSpreadLore", status("fluidspread", false))));
|
||||
water.setItemMeta(waterItemMeta);
|
||||
inventory.setItem(1, water);
|
||||
}
|
||||
@@ -54,8 +54,8 @@ public class ToggleMenu extends AbstractMenu
|
||||
{
|
||||
ItemStack feather = new ItemStack(Material.FEATHER);
|
||||
ItemMeta featherItemMeta = feather.getItemMeta();
|
||||
featherItemMeta.displayName(PlexUtils.mmDeserialize("<!italic><light_purple>Toggle drops"));
|
||||
featherItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>Drops are " + (plugin.toggles.getBoolean("drops") ? "<green>enabled" : "<red>disabled"))));
|
||||
featherItemMeta.displayName(PlexUtils.messageComponent("toggleMenuDropsName"));
|
||||
featherItemMeta.lore(List.of(PlexUtils.messageComponent("toggleMenuDropsLore", status("drops", false))));
|
||||
feather.setItemMeta(featherItemMeta);
|
||||
inventory.setItem(2, feather);
|
||||
}
|
||||
@@ -64,8 +64,8 @@ public class ToggleMenu extends AbstractMenu
|
||||
{
|
||||
ItemStack redstone = new ItemStack(Material.REDSTONE);
|
||||
ItemMeta redstoneItemMeta = redstone.getItemMeta();
|
||||
redstoneItemMeta.displayName(PlexUtils.mmDeserialize("<!italic><light_purple>Redstone"));
|
||||
redstoneItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>Redstone is " + (plugin.toggles.getBoolean("redstone") ? "<green>enabled" : "<red>disabled"))));
|
||||
redstoneItemMeta.displayName(PlexUtils.messageComponent("toggleMenuRedstoneName"));
|
||||
redstoneItemMeta.lore(List.of(PlexUtils.messageComponent("toggleMenuRedstoneLore", status("redstone", false))));
|
||||
redstone.setItemMeta(redstoneItemMeta);
|
||||
inventory.setItem(3, redstone);
|
||||
}
|
||||
@@ -75,8 +75,8 @@ public class ToggleMenu extends AbstractMenu
|
||||
ItemStack pvp = new ItemStack(Material.IRON_SWORD);
|
||||
ItemMeta pvpItemMeta = pvp.getItemMeta();
|
||||
pvpItemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
|
||||
pvpItemMeta.displayName(PlexUtils.mmDeserialize("<!italic><light_purple>PVP"));
|
||||
pvpItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>PVP is " + (plugin.toggles.getBoolean("pvp") ? "<green>enabled" : "<red>disabled"))));
|
||||
pvpItemMeta.displayName(PlexUtils.messageComponent("toggleMenuPvpName"));
|
||||
pvpItemMeta.lore(List.of(PlexUtils.messageComponent("toggleMenuPvpLore", status("pvp", false))));
|
||||
pvp.setItemMeta(pvpItemMeta);
|
||||
inventory.setItem(4, pvp);
|
||||
}
|
||||
@@ -85,8 +85,8 @@ public class ToggleMenu extends AbstractMenu
|
||||
{
|
||||
ItemStack chat = new ItemStack(Material.OAK_SIGN);
|
||||
ItemMeta chatItemMeta = chat.getItemMeta();
|
||||
chatItemMeta.displayName(PlexUtils.mmDeserialize("<!italic><light_purple>Toggle chat"));
|
||||
chatItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>Chat is currently " + (plugin.toggles.getBoolean("chat") ? "<green>on" : "<red>off"))));
|
||||
chatItemMeta.displayName(PlexUtils.messageComponent("toggleMenuChatName"));
|
||||
chatItemMeta.lore(List.of(PlexUtils.messageComponent("toggleMenuChatLore", PlexUtils.messageString(plugin.toggles.getBoolean("chat") ? "stateOn" : "stateOff"))));
|
||||
chat.setItemMeta(chatItemMeta);
|
||||
inventory.setItem(5, chat);
|
||||
}
|
||||
@@ -102,39 +102,48 @@ public class ToggleMenu extends AbstractMenu
|
||||
{
|
||||
plugin.toggles.set("explosions", !plugin.toggles.getBoolean("explosions"));
|
||||
resetExplosionItem(inventory);
|
||||
player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled explosions."));
|
||||
player.sendMessage(PlexUtils.messageComponent("toggleToggled", PlexUtils.messageString("toggleExplosionsLower")));
|
||||
}
|
||||
if (clicked.getType() == Material.WATER_BUCKET)
|
||||
{
|
||||
plugin.toggles.set("fluidspread", !plugin.toggles.getBoolean("fluidspread"));
|
||||
resetFluidspreadItem(inventory);
|
||||
player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled fluid spread."));
|
||||
player.sendMessage(PlexUtils.messageComponent("toggleToggled", PlexUtils.messageString("toggleFluidSpreadLower")));
|
||||
}
|
||||
if (clicked.getType() == Material.FEATHER)
|
||||
{
|
||||
plugin.toggles.set("drops", !plugin.toggles.getBoolean("drops"));
|
||||
resetDropsItem(inventory);
|
||||
player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled drops."));
|
||||
player.sendMessage(PlexUtils.messageComponent("toggleToggled", PlexUtils.messageString("toggleDropsLower")));
|
||||
}
|
||||
if (clicked.getType() == Material.REDSTONE)
|
||||
{
|
||||
plugin.toggles.set("redstone", !plugin.toggles.getBoolean("redstone"));
|
||||
resetRedstoneItem(inventory);
|
||||
player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled redstone."));
|
||||
player.sendMessage(PlexUtils.messageComponent("toggleToggled", PlexUtils.messageString("toggleRedstoneLower")));
|
||||
}
|
||||
if (clicked.getType() == Material.IRON_SWORD)
|
||||
{
|
||||
plugin.toggles.set("pvp", !plugin.toggles.getBoolean("pvp"));
|
||||
resetPVPItem(inventory);
|
||||
player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled PVP"));
|
||||
player.sendMessage(PlexUtils.messageComponent("toggleToggled", PlexUtils.messageString("togglePvpLower")));
|
||||
}
|
||||
if (clicked.getType() == Material.OAK_SIGN)
|
||||
{
|
||||
plugin.toggles.set("chat", !plugin.toggles.getBoolean("chat"));
|
||||
PlexUtils.broadcast(PlexUtils.messageComponent("chatToggled", player.getName(), plugin.toggles.getBoolean("chat") ? "on" : "off"));
|
||||
PlexUtils.broadcast(PlexUtils.messageComponent("chatToggled", player.getName(), PlexUtils.messageString(plugin.toggles.getBoolean("chat") ? "stateOn" : "stateOff")));
|
||||
resetChatItem(inventory);
|
||||
player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled chat."));
|
||||
player.sendMessage(PlexUtils.messageComponent("toggleToggled", PlexUtils.messageString("toggleChatLower")));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private String status(String toggle, boolean enabledIsUnsafe)
|
||||
{
|
||||
if (enabledIsUnsafe)
|
||||
{
|
||||
return PlexUtils.messageString(plugin.toggles.getBoolean(toggle) ? "stateEnabledUnsafe" : "stateDisabledSafe");
|
||||
}
|
||||
return PlexUtils.messageString(plugin.toggles.getBoolean(toggle) ? "stateEnabled" : "stateDisabled");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@ import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.Accessors;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -28,9 +27,6 @@ import org.bukkit.inventory.ItemStack;
|
||||
@Accessors(fluent = true)
|
||||
public abstract class PageableMenu<T>
|
||||
{
|
||||
public static final ItemStack NEXT = new ItemBuilder(Material.FEATHER).displayName("<light_purple>Next Page").build();
|
||||
public static final ItemStack PREVIOUS = new ItemBuilder(Material.FEATHER).displayName("<light_purple>Previous Page").build();
|
||||
public static final ItemStack CLOSE = new ItemBuilder(Material.BARRIER).displayName("<red>Close").build();
|
||||
protected final Map<Integer, Page> pages = Maps.newHashMap();
|
||||
private final Component name;
|
||||
private final AbstractMenu.Rows rows;
|
||||
@@ -61,7 +57,7 @@ public abstract class PageableMenu<T>
|
||||
{
|
||||
final Page page = new Page(name.append(Component.space()).append(PlexUtils.mmDeserialize("(1)")), rows);
|
||||
page.parent = this;
|
||||
page.inventory().setItem(rows.slots() - 5, CLOSE);
|
||||
page.inventory().setItem(rows.slots() - 5, closeItem());
|
||||
this.pages.put(0, page);
|
||||
}
|
||||
else
|
||||
@@ -72,12 +68,12 @@ public abstract class PageableMenu<T>
|
||||
page.parent = this;
|
||||
if (i > 0) // If not first page set previous page button
|
||||
{
|
||||
page.inventory().setItem(rows.slots() - 6, PREVIOUS);
|
||||
page.inventory().setItem(rows.slots() - 6, previousItem());
|
||||
}
|
||||
page.inventory().setItem(rows.slots() - 5, CLOSE);
|
||||
page.inventory().setItem(rows.slots() - 5, closeItem());
|
||||
if (i < (list().size() / (rows.slots() - 9)) - 1) // If not last page set next page button
|
||||
{
|
||||
page.inventory().setItem(rows.slots() - 4, NEXT);
|
||||
page.inventory().setItem(rows.slots() - 4, nextItem());
|
||||
}
|
||||
this.pages.put(i, page);
|
||||
}
|
||||
@@ -126,13 +122,13 @@ public abstract class PageableMenu<T>
|
||||
{
|
||||
if (!this.initialized)
|
||||
{
|
||||
player.sendMessage(Component.text("Looks like this inventory was not initialized! Please contact a developer to report this.").color(NamedTextColor.RED));
|
||||
player.sendMessage(PlexUtils.messageComponent("pageableNotInitialized"));
|
||||
return;
|
||||
}
|
||||
final Page page = this.pages.get(pageNum);
|
||||
if (page == null)
|
||||
{
|
||||
player.sendMessage(Component.text("Could not find a page to open").color(NamedTextColor.RED));
|
||||
player.sendMessage(PlexUtils.messageComponent("pageNotFound"));
|
||||
return;
|
||||
}
|
||||
player.openInventory(page.inventory());
|
||||
@@ -144,6 +140,21 @@ public abstract class PageableMenu<T>
|
||||
this.pages.forEach((integer, page) -> page.onClick(this.onClick));
|
||||
}
|
||||
|
||||
public static ItemStack nextItem()
|
||||
{
|
||||
return new ItemBuilder(Material.FEATHER).displayName(PlexUtils.messageComponent("pageNext")).build();
|
||||
}
|
||||
|
||||
public static ItemStack previousItem()
|
||||
{
|
||||
return new ItemBuilder(Material.FEATHER).displayName(PlexUtils.messageComponent("pagePrevious")).build();
|
||||
}
|
||||
|
||||
public static ItemStack closeItem()
|
||||
{
|
||||
return new ItemBuilder(Material.BARRIER).displayName(PlexUtils.messageComponent("pageClose")).build();
|
||||
}
|
||||
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
|
||||
@@ -7,6 +7,7 @@ import dev.plex.punishment.Punishment;
|
||||
import dev.plex.punishment.PunishmentType;
|
||||
import dev.plex.services.AbstractService;
|
||||
import dev.plex.util.PlexLog;
|
||||
import dev.plex.util.PlexUtils;
|
||||
import dev.plex.util.TimeUtils;
|
||||
import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
|
||||
|
||||
@@ -51,7 +52,7 @@ public class TimingService extends AbstractService
|
||||
Player player = Bukkit.getPlayer(map.getKey());
|
||||
PlexPlayer plexPlayer = plugin.getPlayerService().getPlayer(map.getKey());
|
||||
punishment.setType(PunishmentType.TEMPBAN);
|
||||
punishment.setReason("You are temporarily banned for five minutes for using a Nuker.");
|
||||
punishment.setReason(PlexUtils.messageString("nukerTempbanReason"));
|
||||
if (player != null)
|
||||
{
|
||||
punishment.setPunishedUsername(player.getName());
|
||||
|
||||
@@ -19,7 +19,6 @@ import java.security.NoSuchAlgorithmException;
|
||||
import java.util.HexFormat;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -54,15 +53,15 @@ public class UpdateChecker
|
||||
{
|
||||
if (verbosity == 2)
|
||||
{
|
||||
sendMessage(sender, Component.text("Plex is up to date on the " + channel.id() + " channel.").color(NamedTextColor.GREEN));
|
||||
sendMessage(sender, PlexUtils.messageComponent("updateUpToDate", channel.id()));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (verbosity >= 1)
|
||||
{
|
||||
sendMessage(sender, Component.text("Plex " + metadata.version() + " is available on the " + channel.id() + " channel.", NamedTextColor.RED));
|
||||
sendMessage(sender, Component.text("Run: /plex update").color(NamedTextColor.RED));
|
||||
sendMessage(sender, PlexUtils.messageComponent("updateAvailable", metadata.version(), channel.id()));
|
||||
sendMessage(sender, PlexUtils.messageComponent("updateRunCommand"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -70,7 +69,7 @@ public class UpdateChecker
|
||||
{
|
||||
if (verbosity == 2 || (verbosity >= 1 && !e.notFound()))
|
||||
{
|
||||
sendMessage(sender, Component.text(updateMetadataErrorMessage(e)).color(NamedTextColor.RED));
|
||||
sendMessage(sender, updateMetadataErrorComponent(e));
|
||||
}
|
||||
if (!e.notFound())
|
||||
{
|
||||
@@ -94,7 +93,7 @@ public class UpdateChecker
|
||||
|
||||
if (!module && metadata.matchesCurrentBuild(plugin.getPluginMeta().getVersion(), BuildInfo.getNumber(), BuildInfo.getCommit()))
|
||||
{
|
||||
sendMessage(sender, PlexUtils.mmDeserialize("<red>Plex is already up to date on the " + channel.id() + " channel."));
|
||||
sendMessage(sender, PlexUtils.messageComponent("updateAlreadyUpToDate", channel.id()));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -102,12 +101,12 @@ public class UpdateChecker
|
||||
? new File(plugin.getModulesFolder(), metadata.fileName())
|
||||
: new File(Bukkit.getUpdateFolderFile(), metadata.fileName());
|
||||
|
||||
sendMessage(sender, PlexUtils.mmDeserialize("<green>Downloading latest JAR file: " + metadata.fileName()));
|
||||
sendMessage(sender, PlexUtils.messageComponent("updateDownloading", metadata.fileName()));
|
||||
plugin.getApi().scheduler().runAsync(() -> downloadAndInstall(sender, metadata, copyTo));
|
||||
}
|
||||
catch (UpdateMetadataClient.MetadataException e)
|
||||
{
|
||||
sendMessage(sender, PlexUtils.mmDeserialize("<red>" + updateMetadataErrorMessage(e)));
|
||||
sendMessage(sender, updateMetadataErrorComponent(e));
|
||||
if (!e.notFound())
|
||||
{
|
||||
PlexLog.error("Unable to update {0}: {1}", name, e.getMessage());
|
||||
@@ -161,7 +160,7 @@ public class UpdateChecker
|
||||
File parent = copyTo.getParentFile();
|
||||
if (parent != null && !parent.exists() && !parent.mkdirs())
|
||||
{
|
||||
sendMessage(sender, PlexUtils.mmDeserialize("<red>Unable to create update directory: " + parent.getAbsolutePath()));
|
||||
sendMessage(sender, PlexUtils.messageComponent("updateDirectoryFailed", parent.getAbsolutePath()));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -171,11 +170,11 @@ public class UpdateChecker
|
||||
download(metadata.downloadUrl(), temporaryFile);
|
||||
validateDownloadedFile(metadata, temporaryFile);
|
||||
Files.move(temporaryFile.toPath(), copyTo.toPath(), StandardCopyOption.REPLACE_EXISTING);
|
||||
sendMessage(sender, PlexUtils.mmDeserialize("<green>New JAR file downloaded and verified successfully."));
|
||||
sendMessage(sender, PlexUtils.messageComponent("updateDownloaded"));
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
sendMessage(sender, PlexUtils.mmDeserialize("<red>Something went wrong while downloading " + metadata.name() + ". Please check the log for more information."));
|
||||
sendMessage(sender, PlexUtils.messageComponent("updateDownloadFailed", metadata.name()));
|
||||
PlexLog.error("Unable to download update {0}: {1}", metadata.name(), e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -243,13 +242,13 @@ public class UpdateChecker
|
||||
return HexFormat.of().formatHex(digest.digest());
|
||||
}
|
||||
|
||||
private String updateMetadataErrorMessage(UpdateMetadataClient.MetadataException e)
|
||||
private Component updateMetadataErrorComponent(UpdateMetadataClient.MetadataException e)
|
||||
{
|
||||
if (e.notFound())
|
||||
{
|
||||
return "No compatible update is available on the " + channel.id() + " channel.";
|
||||
return PlexUtils.messageComponent("updateMetadataNotFound", channel.id());
|
||||
}
|
||||
return "There was an error checking update metadata: " + e.getMessage();
|
||||
return PlexUtils.messageComponent("updateMetadataError", e.getMessage());
|
||||
}
|
||||
|
||||
private void sendMessage(CommandSender sender, Component message)
|
||||
|
||||
@@ -27,6 +27,7 @@ indefBanMessageReason: "<red>Your {0} is indefinitely banned! You may appeal at
|
||||
playerNotFound: "<red>Player not found!"
|
||||
specifyPlayer: "<red>You must specify a player!"
|
||||
worldNotFound: "<red>World not found!"
|
||||
correctUsagePrefix: "<yellow>Correct Usage: "
|
||||
# This will always be used for punishments where the sanctioning administrator has not provided a reason. Will ignore MiniMessage tags.
|
||||
noReasonProvided: "No reason provided."
|
||||
# 0 - The world you have been teleported to
|
||||
@@ -60,12 +61,6 @@ unlockedPlayer: "<aqua>{0} - Unlocking {1}"
|
||||
noPermissionNode: "<red>You must have the permission: {0} <red>to use this command!"
|
||||
noPermissionInGame: "<red>You must be in console to use this command!"
|
||||
noPermissionConsole: "<red>You must be in-game to use this command!"
|
||||
# 0 - The username of the name history
|
||||
nameHistoryTitle: "<gold>Name History of {0}"
|
||||
nameHistorySeparator: "<gold><strikethrough>-----------------------------"
|
||||
# 0 - The name
|
||||
# 1 - The date and time of the name change
|
||||
nameHistoryBody: "<gold>{0} <dark_gray>- <gold>{1}"
|
||||
# 0 - The gamemode
|
||||
gameModeSetTo: "<gray>Your gamemode has been set to {0}."
|
||||
# 0 - The player's name
|
||||
@@ -78,33 +73,10 @@ playerSetOtherGameMode: "<gray>{0} set your gamemode to {1}."
|
||||
# 1 - The gamemode
|
||||
setEveryoneGameMode: "<aqua>{0} - Changing everyone's gamemode to {1}"
|
||||
consoleMustDefinePlayer: "<red>You must define a player since you are running this command from console."
|
||||
# 0 - The command sender
|
||||
# 1 - The player
|
||||
newAdminAdded: "<aqua>{0} - Adding {1} to the admin list"
|
||||
# 0 - The command sender
|
||||
# 1 - The player
|
||||
# 2 - The rank name
|
||||
adminReadded: "<aqua>{0} - Re-adding {1} to the admin list as rank: {2}"
|
||||
# 0 - The command sender
|
||||
# 1 - The player
|
||||
adminRemoved: "<red>{0} - Removing {1} from the admin list"
|
||||
# 0 - The command sender
|
||||
# 1 - The player
|
||||
# 2 - The rank
|
||||
adminSetRank: "<aqua>{0} - Setting {1}'s rank to {2}"
|
||||
# 0 - The world name
|
||||
teleportedToWorld: "<aqua>You have been teleported to the {0}."
|
||||
higherRankThanYou: "<red>This player is an admin or a higher rank than you."
|
||||
playerNotAdmin: "<red>That player is not an admin."
|
||||
playerIsAdmin: "<red>That player is already an admin."
|
||||
rankNotFound: "<red>The rank you entered was not found."
|
||||
rankMustBeHigherThanAdmin: "<red>The rank you entered must be higher than Admin."
|
||||
consoleOnly: "<red>This command can only be executed by the console."
|
||||
# 0 - Rank
|
||||
yourRank: "<aqua>Your rank is: {0}"
|
||||
# 0 - Player name
|
||||
# 1 - Rank
|
||||
otherRank: "<aqua>{0}'s rank is: {1}"
|
||||
# 0 - The command sender
|
||||
# 1 - The player
|
||||
banningPlayer: "<red>{0} - Banning {1}"
|
||||
@@ -117,7 +89,6 @@ playerNotMuted: "<red>That player is not muted!"
|
||||
playerBanned: "<red>That player is already banned!"
|
||||
playerFrozen: "<red>That player is already frozen!"
|
||||
playerMuted: "<red>That player is already muted!"
|
||||
playerLockedUp: "<red>That player is already locked up!"
|
||||
muted: "<red>You are currently muted - STFU!"
|
||||
pvpDisabled: "<red>PVP has been disabled!"
|
||||
chatIsOff: "<red>Chat is currently toggled off!"
|
||||
@@ -131,12 +102,21 @@ teleportedToWorldSpawn: "<aqua>Teleporting to the local spawn"
|
||||
toggleCommandSpy: "<gray>CommandSpy has been"
|
||||
enabled: "<gray>enabled."
|
||||
disabled: "<gray>disabled."
|
||||
# 0 - The player
|
||||
# 1 - The command
|
||||
commandSpyFormat: "<gray>{0}: {1}"
|
||||
# 0 - The admin / staff member
|
||||
# 1 - The player's group's prefix if any
|
||||
# 2 - The message
|
||||
adminChatFormat: '<dark_gray>[<blue>AdminChat<dark_gray>] <dark_red>{0} {1} <gray>» <gold>{2}'
|
||||
# 0 - Whether it was toggled on or off
|
||||
adminChatToggled: '<gray>AdminChat was toggled {0}'
|
||||
stateEnabled: "<green>enabled"
|
||||
stateDisabled: "<red>disabled"
|
||||
stateEnabledUnsafe: "<red>enabled"
|
||||
stateDisabledSafe: "<green>disabled"
|
||||
stateOn: "<green>on"
|
||||
stateOff: "<red>off"
|
||||
# 0 - Maximum length, configured in config.yml
|
||||
maximumPrefixLength: "<red>The maximum length for a tag may only be {0}."
|
||||
prefixCleared: "<aqua>Your prefix has been cleared."
|
||||
@@ -147,6 +127,14 @@ prefixSetTo: "<aqua>Your prefix has been set to {0}"
|
||||
# 0 - The action (blocked / unblocked)
|
||||
# 1 - The amount of players
|
||||
blockeditSize: "<gray>{0} all block modification abilities for {1} players."
|
||||
blockeditListEntry: "<gray>- {0}"
|
||||
blockeditListNone: "<gray>- none"
|
||||
blockeditAllPlayers: "all players"
|
||||
blockeditAllNonAdmins: "all non-admins"
|
||||
blockeditBlockedAction: "Blocked"
|
||||
blockeditUnblockedAction: "Unblocked"
|
||||
blockeditBlockedState: "blocked"
|
||||
blockeditUnblockedState: "unblocked"
|
||||
# The action (blocked or restored)
|
||||
editsModified: "<gray>Your block modification abilities have been {0}."
|
||||
listOfPlayersBlocked: "<gray>The following have block modification abilities restricted:"
|
||||
@@ -167,22 +155,19 @@ removedEntities: "<red>{0} - Removed {1} entities"
|
||||
# 1 - Number of entities removed
|
||||
# 2 - Entity type(s) removed
|
||||
removedEntitiesOfTypes: "<red>{0} - Removed {1} entities of type(s) {2}"
|
||||
# 0 - The command sender
|
||||
# 1 - Number of entities removed
|
||||
# 2 - Entity type removed
|
||||
removedEntitiesOfType: "<gray>Removed {1} {2}"
|
||||
# 0 - Entity type that is invalid
|
||||
invalidEntityType: "<gray>Notice: Entity type {0} is invalid!"
|
||||
noRemovedEntities: "<gray>No entities were removed."
|
||||
# 0 - Number of mobs removed
|
||||
# 1 - Type of mob removed
|
||||
amountOfMobsRemoved: "<gray>{0} {1} removed."
|
||||
mobSingular: "mob"
|
||||
mobPlural: "mobs"
|
||||
notAValidMob: "<red>That is not a valid mob."
|
||||
notAValidMobButValidEntity: "<red>That is a valid entity, but is not a valid mob."
|
||||
# 0 - The command sender
|
||||
# 1 - Number of mobs removed
|
||||
removedMobs: "<red>{0} - Removed {1} mobs"
|
||||
autoWipeDisabled: "<gray>Item wiping is currently disabled in the config!"
|
||||
# 0 - The boolean for whether the limit is enabled or disabled
|
||||
mobLimitToggle: "<gray>The mob limit has been {0}"
|
||||
# 0 - The amount that the mob limit has been set to
|
||||
@@ -195,7 +180,8 @@ mobLimitSet: "<gray>The mob limit has been set to: <em><white>{0}"
|
||||
mobLimitStatus: "<gray>({0}<gray>) <em><white>{1} <reset><gray>/ <em><white>{2} <reset><gray>per chunk (<em><white>Chunk<gray>: <reset>{3}, {4}<gray>)"
|
||||
# 0 - The max set limit in config
|
||||
mobLimitCeiling: "<gray>The limit you have entered is too high. Defaulting to the ceiling value from config"
|
||||
commandBlocked: "<gray>That command is blocked."
|
||||
mobLimitEnabled: "<green>Enabled"
|
||||
mobLimitDisabled: "<red>Disabled"
|
||||
# 0 - The command sender
|
||||
# 1 - The message being said
|
||||
sayMessage: "<blue>[Server: {0}] {1}"
|
||||
@@ -212,6 +198,46 @@ removedNote: "<green>Removed note with ID: {0}"
|
||||
# 0 - The number of notes cleared
|
||||
clearedNotes: "<green>Cleared {0} notes."
|
||||
invalidToggle: "<red>That is not a valid toggle."
|
||||
toggleAvailable: "<gray>Available toggles:"
|
||||
# 0 - The toggle name
|
||||
# 1 - The toggle status
|
||||
toggleListItem: "<gray> - {0}<gray> ({1}<gray>)"
|
||||
# 0 - The toggle name
|
||||
# 1 - The toggle status
|
||||
toggleCommandResult: "<gray>Toggled {0}<gray> ({1}<gray>)"
|
||||
# 0 - The toggle name
|
||||
toggleToggled: "<gray>Toggled {0}."
|
||||
toggleMenuTitle: "<green><bold>Toggles"
|
||||
toggleExplosions: "Explosions"
|
||||
toggleExplosionsLower: "explosions"
|
||||
toggleFluidSpread: "Fluid spread"
|
||||
toggleFluidSpreadLower: "fluid spread"
|
||||
toggleDrops: "Drops"
|
||||
toggleDropsLower: "drops"
|
||||
toggleRedstone: "Redstone"
|
||||
toggleRedstoneLower: "redstone"
|
||||
togglePvp: "PVP"
|
||||
togglePvpLower: "PVP"
|
||||
toggleChat: "Chat"
|
||||
toggleChatLower: "chat"
|
||||
toggleMenuExplosionsName: "<!italic><light_purple>Toggle explosions"
|
||||
# 0 - The toggle status
|
||||
toggleMenuExplosionsLore: "<!italic><yellow>Explosions are {0}"
|
||||
toggleMenuFluidSpreadName: "<!italic><light_purple>Toggle fluid spread"
|
||||
# 0 - The toggle status
|
||||
toggleMenuFluidSpreadLore: "<!italic><yellow>Fluid spread is {0}"
|
||||
toggleMenuDropsName: "<!italic><light_purple>Toggle drops"
|
||||
# 0 - The toggle status
|
||||
toggleMenuDropsLore: "<!italic><yellow>Drops are {0}"
|
||||
toggleMenuRedstoneName: "<!italic><light_purple>Redstone"
|
||||
# 0 - The toggle status
|
||||
toggleMenuRedstoneLore: "<!italic><yellow>Redstone is {0}"
|
||||
toggleMenuPvpName: "<!italic><light_purple>PVP"
|
||||
# 0 - The toggle status
|
||||
toggleMenuPvpLore: "<!italic><yellow>PVP is {0}"
|
||||
toggleMenuChatName: "<!italic><light_purple>Toggle chat"
|
||||
# 0 - The toggle status
|
||||
toggleMenuChatLore: "<!italic><yellow>Chat is currently {0}"
|
||||
specifyLoginMessage: "<red>Please specify a login message."
|
||||
# 0 - The login message
|
||||
setOwnLoginMessage: "<gray>Your login message is now:<newline><gray>> <reset>{0}"
|
||||
@@ -222,7 +248,7 @@ removedOwnLoginMessage: "<gray>Your login message has been removed."
|
||||
# 0 - The player
|
||||
removedOtherLoginMessage: "<gray>You removed {0}'s login message."
|
||||
nameRequired: "<red>Policy requires that you must state your player name in your login message. You can either do this by inserting your name or %player%."
|
||||
rankRequired: "<red>Policy requires that you must state your rank in your login message. You can do this by using %rank% in your login message."
|
||||
playerHasNoLoginMessage: "<red>This player does not have a login message."
|
||||
# 0 - The material name
|
||||
# 1 - The players who have the material in their inventory
|
||||
playersWithMaterial: "<gray>Players with {0} in their inventory: {1}"
|
||||
@@ -269,6 +295,7 @@ smittenQuietly: "<gray>Smitten {0} quietly."
|
||||
# 0 - The reason for being smitten
|
||||
smitten: "<red>You've been smitten. Reason: <yellow>{0}"
|
||||
nukerKickMessage: "Please turn off your nuker!"
|
||||
nukerTempbanReason: "You are temporarily banned for five minutes for using a Nuker."
|
||||
antiSpamMessage: "<gray>Please refrain from spamming messages."
|
||||
# 0 - The player
|
||||
banExpiredBroadcast: "Plex - Automatically unbanning {0}"
|
||||
@@ -285,3 +312,47 @@ prismRollbackMessage: "<gray>Rolled back {0} activities"
|
||||
# 0 - Error message returned from Prism
|
||||
prismRollbackError: "<red>Rollback failed: {0}"
|
||||
prismNoResult: "<gray>No activities have been rolled back"
|
||||
pageNext: "<light_purple>Next Page"
|
||||
pagePrevious: "<light_purple>Previous Page"
|
||||
pageClose: "<red>Close"
|
||||
pageableNotInitialized: "<red>Looks like this inventory was not initialized! Please contact a developer to report this."
|
||||
pageNotFound: "<red>Could not find a page to open"
|
||||
punishmentMenuTitle: "<aqua><bold>Punishments"
|
||||
# 0 - The player
|
||||
punishmentPlayerItem: "<!italic><yellow>{0}"
|
||||
# 0 - The player
|
||||
punishedPlayerMenuTitle: "<red><bold>Punishments - {0}"
|
||||
punishmentPlayerNotFound: '<red>This player does not exist. Try doing /punishments \<player> instead.'
|
||||
# 0 - The punishment type
|
||||
punishmentItemTitle: "<!italic><red>{0}"
|
||||
# 0 - The punisher
|
||||
punishmentItemPunisher: "<!italic><red>By: <gold>{0}"
|
||||
# 0 - The issue date
|
||||
punishmentItemIssued: "<!italic><red>Issued: <gold>{0}"
|
||||
# 0 - The expiration date
|
||||
punishmentItemExpires: "<!italic><red>Expire(d/s): <gold>{0}"
|
||||
# 0 - The reason
|
||||
punishmentItemReason: "<!italic><red>Reason: <gold>{0}"
|
||||
# 0 - The amount of active bans
|
||||
# 1 - The active ban list
|
||||
activeBansList: "<gold>Active Bans ({0}): <yellow>{1}"
|
||||
# 0 - The amount of players unbanned
|
||||
unbannedPlayers: "<gold>Unbanned {0} players."
|
||||
updateUpToDate: "<green>Plex is up to date on the {0} channel."
|
||||
# 0 - The version
|
||||
# 1 - The channel
|
||||
updateAvailable: "<red>Plex {0} is available on the {1} channel."
|
||||
updateRunCommand: "<red>Run: /plex update"
|
||||
# 0 - The channel
|
||||
updateAlreadyUpToDate: "<red>Plex is already up to date on the {0} channel."
|
||||
# 0 - The file name
|
||||
updateDownloading: "<green>Downloading latest JAR file: {0}"
|
||||
updateDownloaded: "<green>New JAR file downloaded and verified successfully."
|
||||
# 0 - The directory path
|
||||
updateDirectoryFailed: "<red>Unable to create update directory: {0}"
|
||||
# 0 - The artifact name
|
||||
updateDownloadFailed: "<red>Something went wrong while downloading {0}. Please check the log for more information."
|
||||
# 0 - The channel
|
||||
updateMetadataNotFound: "<red>No compatible update is available on the {0} channel."
|
||||
# 0 - The error message
|
||||
updateMetadataError: "<red>There was an error checking update metadata: {0}"
|
||||
|
||||
Reference in New Issue
Block a user