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 |
|
catch (PlayerNotFoundException | CommandFailException | ConsoleOnlyException |
|
||||||
ConsoleMustDefinePlayerException | PlayerNotBannedException | NumberFormatException ex)
|
ConsoleMustDefinePlayerException | PlayerNotBannedException | NumberFormatException ex)
|
||||||
{
|
{
|
||||||
send(sender, mmString(ex.getMessage()));
|
send(sender, exceptionComponent(ex));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -192,12 +192,33 @@ public abstract class PlexCommand extends Command
|
|||||||
|
|
||||||
protected Component usage()
|
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)
|
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)
|
protected Player getNonNullPlayer(String name)
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ public abstract class ServerCommand extends Command implements PluginIdentifiabl
|
|||||||
catch (PlayerNotFoundException | CommandFailException | ConsoleOnlyException |
|
catch (PlayerNotFoundException | CommandFailException | ConsoleOnlyException |
|
||||||
ConsoleMustDefinePlayerException | PlayerNotBannedException | NumberFormatException ex)
|
ConsoleMustDefinePlayerException | PlayerNotBannedException | NumberFormatException ex)
|
||||||
{
|
{
|
||||||
send(sender, PlexUtils.mmDeserialize(ex.getMessage()));
|
send(sender, exceptionComponent(ex));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -385,7 +385,7 @@ public abstract class ServerCommand extends Command implements PluginIdentifiabl
|
|||||||
*/
|
*/
|
||||||
protected Component usage()
|
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)
|
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)
|
protected Player getNonNullPlayer(String name)
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ import java.util.List;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import org.apache.commons.lang3.BooleanUtils;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@@ -37,7 +36,7 @@ public class AdminChatCMD extends ServerCommand
|
|||||||
{
|
{
|
||||||
player = plugin.getPlayerCache().getPlexPlayer(playerSender.getUniqueId());
|
player = plugin.getPlayerCache().getPlexPlayer(playerSender.getUniqueId());
|
||||||
player.setStaffChat(!player.isStaffChat());
|
player.setStaffChat(!player.isStaffChat());
|
||||||
return messageComponent("adminChatToggled", BooleanUtils.toStringOnOff(player.isStaffChat()));
|
return messageComponent("adminChatToggled", messageString(player.isStaffChat() ? "stateOn" : "stateOff"));
|
||||||
}
|
}
|
||||||
return usage();
|
return usage();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class BanListCommand extends ServerCommand
|
|||||||
{
|
{
|
||||||
plugin.getPunishmentManager().getActiveBans().whenComplete((punishments, throwable) ->
|
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;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@ public class BanListCommand extends ServerCommand
|
|||||||
plugin.getPunishmentManager().getActiveBans().whenComplete((punishments, throwable) ->
|
plugin.getPunishmentManager().getActiveBans().whenComplete((punishments, throwable) ->
|
||||||
{
|
{
|
||||||
punishments.forEach(plugin.getPunishmentManager()::unban);
|
punishments.forEach(plugin.getPunishmentManager()::unban);
|
||||||
send(sender, mmString("<gold>Unbanned " + punishments.size() + " players."));
|
send(sender, messageComponent("unbannedPlayers", punishments.size()));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class BcastLoginMessageCMD extends ServerCommand
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return mmString("<red>This player does not have a login message.");
|
return messageComponent("playerHasNoLoginMessage");
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -39,18 +39,18 @@ public class BlockEditCMD extends ServerCommand
|
|||||||
int count = 0;
|
int count = 0;
|
||||||
for (String player : bl.blockedPlayers.stream().toList())
|
for (String player : bl.blockedPlayers.stream().toList())
|
||||||
{
|
{
|
||||||
send(sender, "- " + player);
|
send(sender, messageComponent("blockeditListEntry", player));
|
||||||
++count;
|
++count;
|
||||||
}
|
}
|
||||||
if (count == 0)
|
if (count == 0)
|
||||||
{
|
{
|
||||||
send(sender, "- none");
|
send(sender, messageComponent("blockeditListNone"));
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("purge"))
|
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;
|
int count = 0;
|
||||||
for (String player : bl.blockedPlayers.stream().toList())
|
for (String player : bl.blockedPlayers.stream().toList())
|
||||||
{
|
{
|
||||||
@@ -60,11 +60,11 @@ public class BlockEditCMD extends ServerCommand
|
|||||||
++count;
|
++count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return messageComponent("blockeditSize", "Unblocked", count);
|
return messageComponent("blockeditSize", messageString("blockeditUnblockedAction"), count);
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("all"))
|
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;
|
int count = 0;
|
||||||
for (final Player player : Bukkit.getOnlinePlayers())
|
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]);
|
final Player player = getNonNullPlayer(args[0]);
|
||||||
@@ -88,14 +88,14 @@ public class BlockEditCMD extends ServerCommand
|
|||||||
}
|
}
|
||||||
PlexUtils.broadcast(messageComponent("blockingEdits", sender.getName(), player.getName()));
|
PlexUtils.broadcast(messageComponent("blockingEdits", sender.getName(), player.getName()));
|
||||||
bl.blockedPlayers.add(player.getName());
|
bl.blockedPlayers.add(player.getName());
|
||||||
send(player, messageComponent("editsModified", "blocked"));
|
send(player, messageComponent("editsModified", messageString("blockeditBlockedState")));
|
||||||
send(sender, messageComponent("editsBlocked", player.getName()));
|
send(sender, messageComponent("editsBlocked", player.getName()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
PlexUtils.broadcast(messageComponent("unblockingEdits", sender.getName(), player.getName()));
|
PlexUtils.broadcast(messageComponent("unblockingEdits", sender.getName(), player.getName()));
|
||||||
bl.blockedPlayers.remove(player.getName());
|
bl.blockedPlayers.remove(player.getName());
|
||||||
send(player, messageComponent("editsModified", "unblocked"));
|
send(player, messageComponent("editsModified", messageString("blockeditUnblockedState")));
|
||||||
send(sender, messageComponent("editsUnblocked", player.getName()));
|
send(sender, messageComponent("editsUnblocked", player.getName()));
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class MobLimitCMD extends ServerCommand
|
|||||||
.filter(entity -> entity instanceof LivingEntity && !(entity instanceof Player))
|
.filter(entity -> entity instanceof LivingEntity && !(entity instanceof Player))
|
||||||
.count();
|
.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());
|
return PlexUtils.messageComponent("mobLimitStatus", status, currentMobCount, currentLimit, chunk.getX(), chunk.getZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,11 +44,11 @@ public class MobLimitCMD extends ServerCommand
|
|||||||
case "on":
|
case "on":
|
||||||
plugin.config.set("entity_limit.mob_limit_enabled", true);
|
plugin.config.set("entity_limit.mob_limit_enabled", true);
|
||||||
plugin.config.save();
|
plugin.config.save();
|
||||||
return PlexUtils.messageComponent("mobLimitToggle", "enabled");
|
return PlexUtils.messageComponent("mobLimitToggle", PlexUtils.messageString("stateEnabled"));
|
||||||
case "off":
|
case "off":
|
||||||
plugin.config.set("entity_limit.mob_limit_enabled", false);
|
plugin.config.set("entity_limit.mob_limit_enabled", false);
|
||||||
plugin.config.save();
|
plugin.config.save();
|
||||||
return PlexUtils.messageComponent("mobLimitToggle", "disabled");
|
return PlexUtils.messageComponent("mobLimitToggle", PlexUtils.messageString("stateDisabled"));
|
||||||
case "setmax":
|
case "setmax":
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -100,4 +100,4 @@ public class MobLimitCMD extends ServerCommand
|
|||||||
}
|
}
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ public class MobPurgeCMD extends ServerCommand
|
|||||||
PlexUtils.broadcast(messageComponent("removedMobs", sender.getName(), count));
|
PlexUtils.broadcast(messageComponent("removedMobs", sender.getName(), count));
|
||||||
PlexLog.debug("All " + count + " valid mobs were removed");
|
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;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,4 +120,4 @@ public class MobPurgeCMD extends ServerCommand
|
|||||||
}
|
}
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ public class PlexCMD extends ServerCommand
|
|||||||
{
|
{
|
||||||
if (!hasUpdateAccess(playerSender, sender))
|
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())
|
for (PlexModule module : plugin.getModuleManager().getModules())
|
||||||
{
|
{
|
||||||
@@ -111,7 +111,7 @@ public class PlexCMD extends ServerCommand
|
|||||||
{
|
{
|
||||||
if (!hasUpdateAccess(playerSender, sender))
|
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))
|
if (!plugin.getUpdateChecker().getUpdateStatusMessage(sender, false, 0))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import dev.plex.util.PlexUtils;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -28,13 +27,13 @@ public class ToggleCMD extends ServerCommand
|
|||||||
{
|
{
|
||||||
if (args.length == 0)
|
if (args.length == 0)
|
||||||
{
|
{
|
||||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray>Available toggles:"));
|
sender.sendMessage(messageComponent("toggleAvailable"));
|
||||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Explosions" + status("explosions")));
|
sender.sendMessage(toggleListItem("toggleExplosions", "explosions"));
|
||||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Fluidspread" + status("fluidspread")));
|
sender.sendMessage(toggleListItem("toggleFluidSpread", "fluidspread"));
|
||||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Drops" + status("drops")));
|
sender.sendMessage(toggleListItem("toggleDrops", "drops"));
|
||||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Redstone" + status("redstone")));
|
sender.sendMessage(toggleListItem("toggleRedstone", "redstone"));
|
||||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - PVP" + status("pvp")));
|
sender.sendMessage(toggleListItem("togglePvp", "pvp"));
|
||||||
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Chat" + status("chat")));
|
sender.sendMessage(toggleListItem("toggleChat", "chat"));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
switch (args[0].toLowerCase())
|
switch (args[0].toLowerCase())
|
||||||
@@ -61,7 +60,7 @@ public class ToggleCMD extends ServerCommand
|
|||||||
}
|
}
|
||||||
case "chat" ->
|
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");
|
return toggle("chat");
|
||||||
}
|
}
|
||||||
default ->
|
default ->
|
||||||
@@ -80,14 +79,33 @@ public class ToggleCMD extends ServerCommand
|
|||||||
return args.length == 1 && silentCheckPermission(sender, this.getPermission()) ? PlexUtils.getPlayerNameList() : ImmutableList.of();
|
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)
|
private Component toggle(String toggle)
|
||||||
{
|
{
|
||||||
plugin.toggles.set(toggle, !plugin.getToggles().getBoolean(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.ServerCommand;
|
||||||
import dev.plex.command.annotation.CommandParameters;
|
import dev.plex.command.annotation.CommandParameters;
|
||||||
import dev.plex.command.annotation.CommandPermissions;
|
import dev.plex.command.annotation.CommandPermissions;
|
||||||
import dev.plex.command.exception.PlayerNotBannedException;
|
|
||||||
import dev.plex.command.exception.PlayerNotFoundException;
|
import dev.plex.command.exception.PlayerNotFoundException;
|
||||||
import dev.plex.command.source.RequiredCommandSource;
|
import dev.plex.command.source.RequiredCommandSource;
|
||||||
import dev.plex.player.PlexPlayer;
|
import dev.plex.player.PlexPlayer;
|
||||||
@@ -45,7 +44,7 @@ public class UnbanCMD extends ServerCommand
|
|||||||
{
|
{
|
||||||
if (!aBoolean)
|
if (!aBoolean)
|
||||||
{
|
{
|
||||||
send(sender, PlexUtils.mmDeserialize(new PlayerNotBannedException().getMessage()));
|
send(sender, messageComponent("playerNotBanned"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
plugin.getPunishmentManager().unban(target.getUuid());
|
plugin.getPunishmentManager().unban(target.getUuid());
|
||||||
|
|||||||
@@ -2,8 +2,7 @@ package dev.plex.listener.impl;
|
|||||||
|
|
||||||
import dev.plex.listener.ServerListenerBase;
|
import dev.plex.listener.ServerListenerBase;
|
||||||
import dev.plex.player.PlexPlayer;
|
import dev.plex.player.PlexPlayer;
|
||||||
import net.kyori.adventure.text.Component;
|
import dev.plex.util.PlexUtils;
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@@ -25,7 +24,7 @@ public class CommandListener extends ServerListenerBase
|
|||||||
String command = event.getMessage();
|
String command = event.getMessage();
|
||||||
if (!pl.getUniqueId().equals(player.getUniqueId()))
|
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();
|
final ItemMeta meta = event.getCurrentItem().getItemMeta();
|
||||||
if (meta != null && meta.displayName() != null)
|
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().currentPage(page.parent().currentPage() - 1);
|
||||||
page.parent().open(player, page.parent().currentPage());
|
page.parent().open(player, page.parent().currentPage());
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
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().currentPage(page.parent().currentPage() + 1);
|
||||||
page.parent().open(player, page.parent().currentPage());
|
page.parent().open(player, page.parent().currentPage());
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (meta.displayName().equals(PageableMenu.CLOSE.getItemMeta().displayName()))
|
else if (meta.displayName().equals(PageableMenu.closeItem().getItemMeta().displayName()))
|
||||||
{
|
{
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import dev.plex.menu.pagination.PageableMenu;
|
|||||||
import dev.plex.player.PlayerService;
|
import dev.plex.player.PlayerService;
|
||||||
import dev.plex.player.PlexPlayer;
|
import dev.plex.player.PlexPlayer;
|
||||||
import dev.plex.punishment.Punishment;
|
import dev.plex.punishment.Punishment;
|
||||||
|
import dev.plex.util.PlexUtils;
|
||||||
import dev.plex.util.TimeUtils;
|
import dev.plex.util.TimeUtils;
|
||||||
import dev.plex.util.item.ItemBuilder;
|
import dev.plex.util.item.ItemBuilder;
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ public class PunishedPlayerMenu extends PageableMenu<Punishment>
|
|||||||
|
|
||||||
public PunishedPlayerMenu(PlexPlayer player, PlayerService playerService)
|
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.punishedPlayer = player;
|
||||||
this.playerService = playerService;
|
this.playerService = playerService;
|
||||||
onClick((inventoryView, itemStacks, player1, itemStack) -> true);
|
onClick((inventoryView, itemStacks, player1, itemStack) -> true);
|
||||||
@@ -30,7 +31,13 @@ public class PunishedPlayerMenu extends PageableMenu<Punishment>
|
|||||||
@Override
|
@Override
|
||||||
protected ItemStack toItem(Punishment object)
|
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
|
@Override
|
||||||
|
|||||||
@@ -5,12 +5,11 @@ import dev.plex.menu.pagination.PageableMenu;
|
|||||||
import dev.plex.player.PlayerService;
|
import dev.plex.player.PlayerService;
|
||||||
import dev.plex.player.PlexPlayer;
|
import dev.plex.player.PlexPlayer;
|
||||||
import dev.plex.util.PlexLog;
|
import dev.plex.util.PlexLog;
|
||||||
|
import dev.plex.util.PlexUtils;
|
||||||
import dev.plex.util.item.ItemBuilder;
|
import dev.plex.util.item.ItemBuilder;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.kyori.adventure.text.Component;
|
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
@@ -24,7 +23,7 @@ public class PunishmentMenu extends PageableMenu<Player>
|
|||||||
|
|
||||||
public PunishmentMenu(PlayerService playerService)
|
public PunishmentMenu(PlayerService playerService)
|
||||||
{
|
{
|
||||||
super("<aqua><bold>Punishments", AbstractMenu.Rows.SIX);
|
super(PlexUtils.messageComponent("punishmentMenuTitle"), AbstractMenu.Rows.SIX);
|
||||||
this.playerService = playerService;
|
this.playerService = playerService;
|
||||||
PlexLog.debug("list: {0}", list().size());
|
PlexLog.debug("list: {0}", list().size());
|
||||||
onClick((inventoryView, itemStacks, player, itemStack) ->
|
onClick((inventoryView, itemStacks, player, itemStack) ->
|
||||||
@@ -41,7 +40,7 @@ public class PunishmentMenu extends PageableMenu<Player>
|
|||||||
PlexPlayer punishedPlayer = playerService.getPlayer(meta.getOwningPlayer().getUniqueId());
|
PlexPlayer punishedPlayer = playerService.getPlayer(meta.getOwningPlayer().getUniqueId());
|
||||||
if (punishedPlayer == null)
|
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();
|
player.closeInventory();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -55,7 +54,7 @@ public class PunishmentMenu extends PageableMenu<Player>
|
|||||||
@Override
|
@Override
|
||||||
protected ItemStack toItem(Player object)
|
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
|
@Override
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public class ToggleMenu extends AbstractMenu
|
|||||||
|
|
||||||
public ToggleMenu(Plex plugin)
|
public ToggleMenu(Plex plugin)
|
||||||
{
|
{
|
||||||
super("<green><bold>Toggles", Rows.ONE);
|
super(PlexUtils.messageComponent("toggleMenuTitle"), Rows.ONE);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
resetExplosionItem(this.inventory());
|
resetExplosionItem(this.inventory());
|
||||||
resetFluidspreadItem(this.inventory());
|
resetFluidspreadItem(this.inventory());
|
||||||
@@ -34,8 +34,8 @@ public class ToggleMenu extends AbstractMenu
|
|||||||
{
|
{
|
||||||
ItemStack explosions = new ItemStack(Material.TNT);
|
ItemStack explosions = new ItemStack(Material.TNT);
|
||||||
ItemMeta explosionsItemMeta = explosions.getItemMeta();
|
ItemMeta explosionsItemMeta = explosions.getItemMeta();
|
||||||
explosionsItemMeta.displayName(PlexUtils.mmDeserialize("<!italic><light_purple>Toggle explosions"));
|
explosionsItemMeta.displayName(PlexUtils.messageComponent("toggleMenuExplosionsName"));
|
||||||
explosionsItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>Explosions are " + (plugin.toggles.getBoolean("explosions") ? "<red>enabled" : "<green>disabled"))));
|
explosionsItemMeta.lore(List.of(PlexUtils.messageComponent("toggleMenuExplosionsLore", status("explosions", true))));
|
||||||
explosions.setItemMeta(explosionsItemMeta);
|
explosions.setItemMeta(explosionsItemMeta);
|
||||||
inventory.setItem(0, explosions);
|
inventory.setItem(0, explosions);
|
||||||
}
|
}
|
||||||
@@ -44,8 +44,8 @@ public class ToggleMenu extends AbstractMenu
|
|||||||
{
|
{
|
||||||
ItemStack water = new ItemStack(Material.WATER_BUCKET);
|
ItemStack water = new ItemStack(Material.WATER_BUCKET);
|
||||||
ItemMeta waterItemMeta = water.getItemMeta();
|
ItemMeta waterItemMeta = water.getItemMeta();
|
||||||
waterItemMeta.displayName(PlexUtils.mmDeserialize("<!italic><light_purple>Toggle fluid spread"));
|
waterItemMeta.displayName(PlexUtils.messageComponent("toggleMenuFluidSpreadName"));
|
||||||
waterItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>Fluid spread is " + (plugin.toggles.getBoolean("fluidspread") ? "<green>enabled" : "<red>disabled"))));
|
waterItemMeta.lore(List.of(PlexUtils.messageComponent("toggleMenuFluidSpreadLore", status("fluidspread", false))));
|
||||||
water.setItemMeta(waterItemMeta);
|
water.setItemMeta(waterItemMeta);
|
||||||
inventory.setItem(1, water);
|
inventory.setItem(1, water);
|
||||||
}
|
}
|
||||||
@@ -54,8 +54,8 @@ public class ToggleMenu extends AbstractMenu
|
|||||||
{
|
{
|
||||||
ItemStack feather = new ItemStack(Material.FEATHER);
|
ItemStack feather = new ItemStack(Material.FEATHER);
|
||||||
ItemMeta featherItemMeta = feather.getItemMeta();
|
ItemMeta featherItemMeta = feather.getItemMeta();
|
||||||
featherItemMeta.displayName(PlexUtils.mmDeserialize("<!italic><light_purple>Toggle drops"));
|
featherItemMeta.displayName(PlexUtils.messageComponent("toggleMenuDropsName"));
|
||||||
featherItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>Drops are " + (plugin.toggles.getBoolean("drops") ? "<green>enabled" : "<red>disabled"))));
|
featherItemMeta.lore(List.of(PlexUtils.messageComponent("toggleMenuDropsLore", status("drops", false))));
|
||||||
feather.setItemMeta(featherItemMeta);
|
feather.setItemMeta(featherItemMeta);
|
||||||
inventory.setItem(2, feather);
|
inventory.setItem(2, feather);
|
||||||
}
|
}
|
||||||
@@ -64,8 +64,8 @@ public class ToggleMenu extends AbstractMenu
|
|||||||
{
|
{
|
||||||
ItemStack redstone = new ItemStack(Material.REDSTONE);
|
ItemStack redstone = new ItemStack(Material.REDSTONE);
|
||||||
ItemMeta redstoneItemMeta = redstone.getItemMeta();
|
ItemMeta redstoneItemMeta = redstone.getItemMeta();
|
||||||
redstoneItemMeta.displayName(PlexUtils.mmDeserialize("<!italic><light_purple>Redstone"));
|
redstoneItemMeta.displayName(PlexUtils.messageComponent("toggleMenuRedstoneName"));
|
||||||
redstoneItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>Redstone is " + (plugin.toggles.getBoolean("redstone") ? "<green>enabled" : "<red>disabled"))));
|
redstoneItemMeta.lore(List.of(PlexUtils.messageComponent("toggleMenuRedstoneLore", status("redstone", false))));
|
||||||
redstone.setItemMeta(redstoneItemMeta);
|
redstone.setItemMeta(redstoneItemMeta);
|
||||||
inventory.setItem(3, redstone);
|
inventory.setItem(3, redstone);
|
||||||
}
|
}
|
||||||
@@ -75,8 +75,8 @@ public class ToggleMenu extends AbstractMenu
|
|||||||
ItemStack pvp = new ItemStack(Material.IRON_SWORD);
|
ItemStack pvp = new ItemStack(Material.IRON_SWORD);
|
||||||
ItemMeta pvpItemMeta = pvp.getItemMeta();
|
ItemMeta pvpItemMeta = pvp.getItemMeta();
|
||||||
pvpItemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
|
pvpItemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
|
||||||
pvpItemMeta.displayName(PlexUtils.mmDeserialize("<!italic><light_purple>PVP"));
|
pvpItemMeta.displayName(PlexUtils.messageComponent("toggleMenuPvpName"));
|
||||||
pvpItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>PVP is " + (plugin.toggles.getBoolean("pvp") ? "<green>enabled" : "<red>disabled"))));
|
pvpItemMeta.lore(List.of(PlexUtils.messageComponent("toggleMenuPvpLore", status("pvp", false))));
|
||||||
pvp.setItemMeta(pvpItemMeta);
|
pvp.setItemMeta(pvpItemMeta);
|
||||||
inventory.setItem(4, pvp);
|
inventory.setItem(4, pvp);
|
||||||
}
|
}
|
||||||
@@ -85,8 +85,8 @@ public class ToggleMenu extends AbstractMenu
|
|||||||
{
|
{
|
||||||
ItemStack chat = new ItemStack(Material.OAK_SIGN);
|
ItemStack chat = new ItemStack(Material.OAK_SIGN);
|
||||||
ItemMeta chatItemMeta = chat.getItemMeta();
|
ItemMeta chatItemMeta = chat.getItemMeta();
|
||||||
chatItemMeta.displayName(PlexUtils.mmDeserialize("<!italic><light_purple>Toggle chat"));
|
chatItemMeta.displayName(PlexUtils.messageComponent("toggleMenuChatName"));
|
||||||
chatItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>Chat is currently " + (plugin.toggles.getBoolean("chat") ? "<green>on" : "<red>off"))));
|
chatItemMeta.lore(List.of(PlexUtils.messageComponent("toggleMenuChatLore", PlexUtils.messageString(plugin.toggles.getBoolean("chat") ? "stateOn" : "stateOff"))));
|
||||||
chat.setItemMeta(chatItemMeta);
|
chat.setItemMeta(chatItemMeta);
|
||||||
inventory.setItem(5, chat);
|
inventory.setItem(5, chat);
|
||||||
}
|
}
|
||||||
@@ -102,39 +102,48 @@ public class ToggleMenu extends AbstractMenu
|
|||||||
{
|
{
|
||||||
plugin.toggles.set("explosions", !plugin.toggles.getBoolean("explosions"));
|
plugin.toggles.set("explosions", !plugin.toggles.getBoolean("explosions"));
|
||||||
resetExplosionItem(inventory);
|
resetExplosionItem(inventory);
|
||||||
player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled explosions."));
|
player.sendMessage(PlexUtils.messageComponent("toggleToggled", PlexUtils.messageString("toggleExplosionsLower")));
|
||||||
}
|
}
|
||||||
if (clicked.getType() == Material.WATER_BUCKET)
|
if (clicked.getType() == Material.WATER_BUCKET)
|
||||||
{
|
{
|
||||||
plugin.toggles.set("fluidspread", !plugin.toggles.getBoolean("fluidspread"));
|
plugin.toggles.set("fluidspread", !plugin.toggles.getBoolean("fluidspread"));
|
||||||
resetFluidspreadItem(inventory);
|
resetFluidspreadItem(inventory);
|
||||||
player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled fluid spread."));
|
player.sendMessage(PlexUtils.messageComponent("toggleToggled", PlexUtils.messageString("toggleFluidSpreadLower")));
|
||||||
}
|
}
|
||||||
if (clicked.getType() == Material.FEATHER)
|
if (clicked.getType() == Material.FEATHER)
|
||||||
{
|
{
|
||||||
plugin.toggles.set("drops", !plugin.toggles.getBoolean("drops"));
|
plugin.toggles.set("drops", !plugin.toggles.getBoolean("drops"));
|
||||||
resetDropsItem(inventory);
|
resetDropsItem(inventory);
|
||||||
player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled drops."));
|
player.sendMessage(PlexUtils.messageComponent("toggleToggled", PlexUtils.messageString("toggleDropsLower")));
|
||||||
}
|
}
|
||||||
if (clicked.getType() == Material.REDSTONE)
|
if (clicked.getType() == Material.REDSTONE)
|
||||||
{
|
{
|
||||||
plugin.toggles.set("redstone", !plugin.toggles.getBoolean("redstone"));
|
plugin.toggles.set("redstone", !plugin.toggles.getBoolean("redstone"));
|
||||||
resetRedstoneItem(inventory);
|
resetRedstoneItem(inventory);
|
||||||
player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled redstone."));
|
player.sendMessage(PlexUtils.messageComponent("toggleToggled", PlexUtils.messageString("toggleRedstoneLower")));
|
||||||
}
|
}
|
||||||
if (clicked.getType() == Material.IRON_SWORD)
|
if (clicked.getType() == Material.IRON_SWORD)
|
||||||
{
|
{
|
||||||
plugin.toggles.set("pvp", !plugin.toggles.getBoolean("pvp"));
|
plugin.toggles.set("pvp", !plugin.toggles.getBoolean("pvp"));
|
||||||
resetPVPItem(inventory);
|
resetPVPItem(inventory);
|
||||||
player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled PVP"));
|
player.sendMessage(PlexUtils.messageComponent("toggleToggled", PlexUtils.messageString("togglePvpLower")));
|
||||||
}
|
}
|
||||||
if (clicked.getType() == Material.OAK_SIGN)
|
if (clicked.getType() == Material.OAK_SIGN)
|
||||||
{
|
{
|
||||||
plugin.toggles.set("chat", !plugin.toggles.getBoolean("chat"));
|
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);
|
resetChatItem(inventory);
|
||||||
player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled chat."));
|
player.sendMessage(PlexUtils.messageComponent("toggleToggled", PlexUtils.messageString("toggleChatLower")));
|
||||||
}
|
}
|
||||||
return true;
|
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.Setter;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@@ -28,9 +27,6 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
@Accessors(fluent = true)
|
@Accessors(fluent = true)
|
||||||
public abstract class PageableMenu<T>
|
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();
|
protected final Map<Integer, Page> pages = Maps.newHashMap();
|
||||||
private final Component name;
|
private final Component name;
|
||||||
private final AbstractMenu.Rows rows;
|
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);
|
final Page page = new Page(name.append(Component.space()).append(PlexUtils.mmDeserialize("(1)")), rows);
|
||||||
page.parent = this;
|
page.parent = this;
|
||||||
page.inventory().setItem(rows.slots() - 5, CLOSE);
|
page.inventory().setItem(rows.slots() - 5, closeItem());
|
||||||
this.pages.put(0, page);
|
this.pages.put(0, page);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -72,12 +68,12 @@ public abstract class PageableMenu<T>
|
|||||||
page.parent = this;
|
page.parent = this;
|
||||||
if (i > 0) // If not first page set previous page button
|
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
|
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);
|
this.pages.put(i, page);
|
||||||
}
|
}
|
||||||
@@ -126,13 +122,13 @@ public abstract class PageableMenu<T>
|
|||||||
{
|
{
|
||||||
if (!this.initialized)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
final Page page = this.pages.get(pageNum);
|
final Page page = this.pages.get(pageNum);
|
||||||
if (page == null)
|
if (page == null)
|
||||||
{
|
{
|
||||||
player.sendMessage(Component.text("Could not find a page to open").color(NamedTextColor.RED));
|
player.sendMessage(PlexUtils.messageComponent("pageNotFound"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
player.openInventory(page.inventory());
|
player.openInventory(page.inventory());
|
||||||
@@ -144,6 +140,21 @@ public abstract class PageableMenu<T>
|
|||||||
this.pages.forEach((integer, page) -> page.onClick(this.onClick));
|
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
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import dev.plex.punishment.Punishment;
|
|||||||
import dev.plex.punishment.PunishmentType;
|
import dev.plex.punishment.PunishmentType;
|
||||||
import dev.plex.services.AbstractService;
|
import dev.plex.services.AbstractService;
|
||||||
import dev.plex.util.PlexLog;
|
import dev.plex.util.PlexLog;
|
||||||
|
import dev.plex.util.PlexUtils;
|
||||||
import dev.plex.util.TimeUtils;
|
import dev.plex.util.TimeUtils;
|
||||||
import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
|
import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
|
||||||
|
|
||||||
@@ -51,7 +52,7 @@ public class TimingService extends AbstractService
|
|||||||
Player player = Bukkit.getPlayer(map.getKey());
|
Player player = Bukkit.getPlayer(map.getKey());
|
||||||
PlexPlayer plexPlayer = plugin.getPlayerService().getPlayer(map.getKey());
|
PlexPlayer plexPlayer = plugin.getPlayerService().getPlayer(map.getKey());
|
||||||
punishment.setType(PunishmentType.TEMPBAN);
|
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)
|
if (player != null)
|
||||||
{
|
{
|
||||||
punishment.setPunishedUsername(player.getName());
|
punishment.setPunishedUsername(player.getName());
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import java.security.NoSuchAlgorithmException;
|
|||||||
import java.util.HexFormat;
|
import java.util.HexFormat;
|
||||||
|
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@@ -54,15 +53,15 @@ public class UpdateChecker
|
|||||||
{
|
{
|
||||||
if (verbosity == 2)
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (verbosity >= 1)
|
if (verbosity >= 1)
|
||||||
{
|
{
|
||||||
sendMessage(sender, Component.text("Plex " + metadata.version() + " is available on the " + channel.id() + " channel.", NamedTextColor.RED));
|
sendMessage(sender, PlexUtils.messageComponent("updateAvailable", metadata.version(), channel.id()));
|
||||||
sendMessage(sender, Component.text("Run: /plex update").color(NamedTextColor.RED));
|
sendMessage(sender, PlexUtils.messageComponent("updateRunCommand"));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -70,7 +69,7 @@ public class UpdateChecker
|
|||||||
{
|
{
|
||||||
if (verbosity == 2 || (verbosity >= 1 && !e.notFound()))
|
if (verbosity == 2 || (verbosity >= 1 && !e.notFound()))
|
||||||
{
|
{
|
||||||
sendMessage(sender, Component.text(updateMetadataErrorMessage(e)).color(NamedTextColor.RED));
|
sendMessage(sender, updateMetadataErrorComponent(e));
|
||||||
}
|
}
|
||||||
if (!e.notFound())
|
if (!e.notFound())
|
||||||
{
|
{
|
||||||
@@ -94,7 +93,7 @@ public class UpdateChecker
|
|||||||
|
|
||||||
if (!module && metadata.matchesCurrentBuild(plugin.getPluginMeta().getVersion(), BuildInfo.getNumber(), BuildInfo.getCommit()))
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,12 +101,12 @@ public class UpdateChecker
|
|||||||
? new File(plugin.getModulesFolder(), metadata.fileName())
|
? new File(plugin.getModulesFolder(), metadata.fileName())
|
||||||
: new File(Bukkit.getUpdateFolderFile(), 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));
|
plugin.getApi().scheduler().runAsync(() -> downloadAndInstall(sender, metadata, copyTo));
|
||||||
}
|
}
|
||||||
catch (UpdateMetadataClient.MetadataException e)
|
catch (UpdateMetadataClient.MetadataException e)
|
||||||
{
|
{
|
||||||
sendMessage(sender, PlexUtils.mmDeserialize("<red>" + updateMetadataErrorMessage(e)));
|
sendMessage(sender, updateMetadataErrorComponent(e));
|
||||||
if (!e.notFound())
|
if (!e.notFound())
|
||||||
{
|
{
|
||||||
PlexLog.error("Unable to update {0}: {1}", name, e.getMessage());
|
PlexLog.error("Unable to update {0}: {1}", name, e.getMessage());
|
||||||
@@ -161,7 +160,7 @@ public class UpdateChecker
|
|||||||
File parent = copyTo.getParentFile();
|
File parent = copyTo.getParentFile();
|
||||||
if (parent != null && !parent.exists() && !parent.mkdirs())
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,11 +170,11 @@ public class UpdateChecker
|
|||||||
download(metadata.downloadUrl(), temporaryFile);
|
download(metadata.downloadUrl(), temporaryFile);
|
||||||
validateDownloadedFile(metadata, temporaryFile);
|
validateDownloadedFile(metadata, temporaryFile);
|
||||||
Files.move(temporaryFile.toPath(), copyTo.toPath(), StandardCopyOption.REPLACE_EXISTING);
|
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)
|
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());
|
PlexLog.error("Unable to download update {0}: {1}", metadata.name(), e.getMessage());
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -243,13 +242,13 @@ public class UpdateChecker
|
|||||||
return HexFormat.of().formatHex(digest.digest());
|
return HexFormat.of().formatHex(digest.digest());
|
||||||
}
|
}
|
||||||
|
|
||||||
private String updateMetadataErrorMessage(UpdateMetadataClient.MetadataException e)
|
private Component updateMetadataErrorComponent(UpdateMetadataClient.MetadataException e)
|
||||||
{
|
{
|
||||||
if (e.notFound())
|
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)
|
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!"
|
playerNotFound: "<red>Player not found!"
|
||||||
specifyPlayer: "<red>You must specify a player!"
|
specifyPlayer: "<red>You must specify a player!"
|
||||||
worldNotFound: "<red>World not found!"
|
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.
|
# This will always be used for punishments where the sanctioning administrator has not provided a reason. Will ignore MiniMessage tags.
|
||||||
noReasonProvided: "No reason provided."
|
noReasonProvided: "No reason provided."
|
||||||
# 0 - The world you have been teleported to
|
# 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!"
|
noPermissionNode: "<red>You must have the permission: {0} <red>to use this command!"
|
||||||
noPermissionInGame: "<red>You must be in console 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!"
|
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
|
# 0 - The gamemode
|
||||||
gameModeSetTo: "<gray>Your gamemode has been set to {0}."
|
gameModeSetTo: "<gray>Your gamemode has been set to {0}."
|
||||||
# 0 - The player's name
|
# 0 - The player's name
|
||||||
@@ -78,33 +73,10 @@ playerSetOtherGameMode: "<gray>{0} set your gamemode to {1}."
|
|||||||
# 1 - The gamemode
|
# 1 - The gamemode
|
||||||
setEveryoneGameMode: "<aqua>{0} - Changing everyone's gamemode to {1}"
|
setEveryoneGameMode: "<aqua>{0} - Changing everyone's gamemode to {1}"
|
||||||
consoleMustDefinePlayer: "<red>You must define a player since you are running this command from console."
|
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
|
# 0 - The world name
|
||||||
teleportedToWorld: "<aqua>You have been teleported to the {0}."
|
teleportedToWorld: "<aqua>You have been teleported to the {0}."
|
||||||
higherRankThanYou: "<red>This player is an admin or a higher rank than you."
|
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."
|
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
|
# 0 - The command sender
|
||||||
# 1 - The player
|
# 1 - The player
|
||||||
banningPlayer: "<red>{0} - Banning {1}"
|
banningPlayer: "<red>{0} - Banning {1}"
|
||||||
@@ -117,7 +89,6 @@ playerNotMuted: "<red>That player is not muted!"
|
|||||||
playerBanned: "<red>That player is already banned!"
|
playerBanned: "<red>That player is already banned!"
|
||||||
playerFrozen: "<red>That player is already frozen!"
|
playerFrozen: "<red>That player is already frozen!"
|
||||||
playerMuted: "<red>That player is already muted!"
|
playerMuted: "<red>That player is already muted!"
|
||||||
playerLockedUp: "<red>That player is already locked up!"
|
|
||||||
muted: "<red>You are currently muted - STFU!"
|
muted: "<red>You are currently muted - STFU!"
|
||||||
pvpDisabled: "<red>PVP has been disabled!"
|
pvpDisabled: "<red>PVP has been disabled!"
|
||||||
chatIsOff: "<red>Chat is currently toggled off!"
|
chatIsOff: "<red>Chat is currently toggled off!"
|
||||||
@@ -131,12 +102,21 @@ teleportedToWorldSpawn: "<aqua>Teleporting to the local spawn"
|
|||||||
toggleCommandSpy: "<gray>CommandSpy has been"
|
toggleCommandSpy: "<gray>CommandSpy has been"
|
||||||
enabled: "<gray>enabled."
|
enabled: "<gray>enabled."
|
||||||
disabled: "<gray>disabled."
|
disabled: "<gray>disabled."
|
||||||
|
# 0 - The player
|
||||||
|
# 1 - The command
|
||||||
|
commandSpyFormat: "<gray>{0}: {1}"
|
||||||
# 0 - The admin / staff member
|
# 0 - The admin / staff member
|
||||||
# 1 - The player's group's prefix if any
|
# 1 - The player's group's prefix if any
|
||||||
# 2 - The message
|
# 2 - The message
|
||||||
adminChatFormat: '<dark_gray>[<blue>AdminChat<dark_gray>] <dark_red>{0} {1} <gray>» <gold>{2}'
|
adminChatFormat: '<dark_gray>[<blue>AdminChat<dark_gray>] <dark_red>{0} {1} <gray>» <gold>{2}'
|
||||||
# 0 - Whether it was toggled on or off
|
# 0 - Whether it was toggled on or off
|
||||||
adminChatToggled: '<gray>AdminChat was toggled {0}'
|
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
|
# 0 - Maximum length, configured in config.yml
|
||||||
maximumPrefixLength: "<red>The maximum length for a tag may only be {0}."
|
maximumPrefixLength: "<red>The maximum length for a tag may only be {0}."
|
||||||
prefixCleared: "<aqua>Your prefix has been cleared."
|
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)
|
# 0 - The action (blocked / unblocked)
|
||||||
# 1 - The amount of players
|
# 1 - The amount of players
|
||||||
blockeditSize: "<gray>{0} all block modification abilities for {1} 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)
|
# The action (blocked or restored)
|
||||||
editsModified: "<gray>Your block modification abilities have been {0}."
|
editsModified: "<gray>Your block modification abilities have been {0}."
|
||||||
listOfPlayersBlocked: "<gray>The following have block modification abilities restricted:"
|
listOfPlayersBlocked: "<gray>The following have block modification abilities restricted:"
|
||||||
@@ -167,22 +155,19 @@ removedEntities: "<red>{0} - Removed {1} entities"
|
|||||||
# 1 - Number of entities removed
|
# 1 - Number of entities removed
|
||||||
# 2 - Entity type(s) removed
|
# 2 - Entity type(s) removed
|
||||||
removedEntitiesOfTypes: "<red>{0} - Removed {1} entities of type(s) {2}"
|
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
|
# 0 - Entity type that is invalid
|
||||||
invalidEntityType: "<gray>Notice: Entity type {0} is invalid!"
|
invalidEntityType: "<gray>Notice: Entity type {0} is invalid!"
|
||||||
noRemovedEntities: "<gray>No entities were removed."
|
noRemovedEntities: "<gray>No entities were removed."
|
||||||
# 0 - Number of mobs removed
|
# 0 - Number of mobs removed
|
||||||
# 1 - Type of mob removed
|
# 1 - Type of mob removed
|
||||||
amountOfMobsRemoved: "<gray>{0} {1} removed."
|
amountOfMobsRemoved: "<gray>{0} {1} removed."
|
||||||
|
mobSingular: "mob"
|
||||||
|
mobPlural: "mobs"
|
||||||
notAValidMob: "<red>That is not a valid mob."
|
notAValidMob: "<red>That is not a valid mob."
|
||||||
notAValidMobButValidEntity: "<red>That is a valid entity, but is not a valid mob."
|
notAValidMobButValidEntity: "<red>That is a valid entity, but is not a valid mob."
|
||||||
# 0 - The command sender
|
# 0 - The command sender
|
||||||
# 1 - Number of mobs removed
|
# 1 - Number of mobs removed
|
||||||
removedMobs: "<red>{0} - Removed {1} mobs"
|
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
|
# 0 - The boolean for whether the limit is enabled or disabled
|
||||||
mobLimitToggle: "<gray>The mob limit has been {0}"
|
mobLimitToggle: "<gray>The mob limit has been {0}"
|
||||||
# 0 - The amount that the mob limit has been set to
|
# 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>)"
|
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
|
# 0 - The max set limit in config
|
||||||
mobLimitCeiling: "<gray>The limit you have entered is too high. Defaulting to the ceiling value from 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
|
# 0 - The command sender
|
||||||
# 1 - The message being said
|
# 1 - The message being said
|
||||||
sayMessage: "<blue>[Server: {0}] {1}"
|
sayMessage: "<blue>[Server: {0}] {1}"
|
||||||
@@ -212,6 +198,46 @@ removedNote: "<green>Removed note with ID: {0}"
|
|||||||
# 0 - The number of notes cleared
|
# 0 - The number of notes cleared
|
||||||
clearedNotes: "<green>Cleared {0} notes."
|
clearedNotes: "<green>Cleared {0} notes."
|
||||||
invalidToggle: "<red>That is not a valid toggle."
|
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."
|
specifyLoginMessage: "<red>Please specify a login message."
|
||||||
# 0 - The login message
|
# 0 - The login message
|
||||||
setOwnLoginMessage: "<gray>Your login message is now:<newline><gray>> <reset>{0}"
|
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
|
# 0 - The player
|
||||||
removedOtherLoginMessage: "<gray>You removed {0}'s login message."
|
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%."
|
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
|
# 0 - The material name
|
||||||
# 1 - The players who have the material in their inventory
|
# 1 - The players who have the material in their inventory
|
||||||
playersWithMaterial: "<gray>Players with {0} in their inventory: {1}"
|
playersWithMaterial: "<gray>Players with {0} in their inventory: {1}"
|
||||||
@@ -269,6 +295,7 @@ smittenQuietly: "<gray>Smitten {0} quietly."
|
|||||||
# 0 - The reason for being smitten
|
# 0 - The reason for being smitten
|
||||||
smitten: "<red>You've been smitten. Reason: <yellow>{0}"
|
smitten: "<red>You've been smitten. Reason: <yellow>{0}"
|
||||||
nukerKickMessage: "Please turn off your nuker!"
|
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."
|
antiSpamMessage: "<gray>Please refrain from spamming messages."
|
||||||
# 0 - The player
|
# 0 - The player
|
||||||
banExpiredBroadcast: "Plex - Automatically unbanning {0}"
|
banExpiredBroadcast: "Plex - Automatically unbanning {0}"
|
||||||
@@ -284,4 +311,48 @@ commandAliases: "<aqua>Aliases for {0} are: {1}"
|
|||||||
prismRollbackMessage: "<gray>Rolled back {0} activities"
|
prismRollbackMessage: "<gray>Rolled back {0} activities"
|
||||||
# 0 - Error message returned from Prism
|
# 0 - Error message returned from Prism
|
||||||
prismRollbackError: "<red>Rollback failed: {0}"
|
prismRollbackError: "<red>Rollback failed: {0}"
|
||||||
prismNoResult: "<gray>No activities have been rolled back"
|
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