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:
@@ -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
|
||||
{
|
||||
@@ -100,4 +100,4 @@ public class MobLimitCMD extends ServerCommand
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -120,4 +120,4 @@ public class MobPurgeCMD extends ServerCommand
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user