Pass through the messages and clean them up

This commit is contained in:
2026-05-19 17:59:35 -04:00
parent 73c4449cb3
commit 3da6b2972e
20 changed files with 291 additions and 137 deletions
@@ -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");
}
}