10 Commits

6 changed files with 20 additions and 25 deletions

View File

@ -32,7 +32,7 @@ public class ToggleCMD extends PlexCommand
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Fluidspread" + status("fluidspread"))); sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Fluidspread" + status("fluidspread")));
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Drops" + status("drops"))); sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Drops" + status("drops")));
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Redstone" + status("redstone"))); sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Redstone" + status("redstone")));
sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Admin-only public chat (modmode)" + status("moderated"))); sender.sendMessage(PlexUtils.mmDeserialize("<gray> - Chat" + status("chat")));
return null; return null;
} }
switch (args[0].toLowerCase()) switch (args[0].toLowerCase())
@ -53,10 +53,10 @@ public class ToggleCMD extends PlexCommand
{ {
return toggle("redstone"); return toggle("redstone");
} }
case "modmode" -> case "chat" ->
{ {
PlexUtils.broadcast(messageComponent(plugin.toggles.getBoolean("moderated") ? "modModeOff" : "modModeOn", sender.getName())); PlexUtils.broadcast(PlexUtils.messageComponent("chatToggled", sender.getName(), plugin.toggles.getBoolean("chat") ? "off" : "on"));
return toggle("moderated"); return toggle("chat");
} }
default -> default ->
{ {

View File

@ -20,7 +20,7 @@ import java.util.List;
public class TogglesListener extends PlexListener public class TogglesListener extends PlexListener
{ {
List<String> commands = plugin.commands.getStringList("block_on_modmode"); List<String> commands = plugin.commands.getStringList("block_on_mute");
@EventHandler @EventHandler
public void onExplosionPrime(ExplosionPrimeEvent event) public void onExplosionPrime(ExplosionPrimeEvent event)
{ {
@ -72,9 +72,9 @@ public class TogglesListener extends PlexListener
public void onChat(AsyncChatEvent event) public void onChat(AsyncChatEvent event)
{ {
Player player = event.getPlayer(); Player player = event.getPlayer();
if (plugin.toggles.getBoolean("moderated") && !Plex.get().getPermissions().has(player, "plex.togglechat.bypass")) if (!plugin.toggles.getBoolean("chat") && !Plex.get().getPermissions().has(player, "plex.mute.bypass"))
{ {
event.getPlayer().sendMessage(PlexUtils.messageComponent("chatIsDisabled")); event.getPlayer().sendMessage(PlexUtils.messageComponent("chatIsOff"));
event.setCancelled(true); event.setCancelled(true);
} }
} }
@ -83,13 +83,13 @@ public class TogglesListener extends PlexListener
public void onCommand(PlayerCommandPreprocessEvent event) public void onCommand(PlayerCommandPreprocessEvent event)
{ {
Player player = event.getPlayer(); Player player = event.getPlayer();
if (plugin.toggles.getBoolean("moderated") && !Plex.get().getPermissions().has(player, "plex.togglechat.bypass")) if (!plugin.toggles.getBoolean("chat") && !Plex.get().getPermissions().has(player, "plex.mute.bypass"))
{ {
String message = event.getMessage(); String message = event.getMessage();
message = message.replaceAll("\\s.*", "").replaceFirst("/", ""); message = message.replaceAll("\\s.*", "").replaceFirst("/", "");
if (commands.contains(message.toLowerCase())) if (commands.contains(message.toLowerCase()))
{ {
event.getPlayer().sendMessage(PlexUtils.messageComponent("chatIsDisabled")); event.getPlayer().sendMessage(PlexUtils.messageComponent("chatIsOff"));
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
@ -101,7 +101,7 @@ public class TogglesListener extends PlexListener
return; return;
} }
if (cmd.getAliases().contains(message.toLowerCase())) { if (cmd.getAliases().contains(message.toLowerCase())) {
event.getPlayer().sendMessage(PlexUtils.messageComponent("chatIsDisabled")); event.getPlayer().sendMessage(PlexUtils.messageComponent("chatIsOff"));
event.setCancelled(true); event.setCancelled(true);
return; return;
} }

View File

@ -72,7 +72,7 @@ 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.mmDeserialize("<!italic><light_purple>Toggle chat"));
chatItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>Public chat is currently " + (plugin.toggles.getBoolean("moderated") ? "<red>restricted to administrators" : "<green>unrestricted")))); chatItemMeta.lore(List.of(PlexUtils.mmDeserialize("<!italic><yellow>Chat is currently " + (plugin.toggles.getBoolean("chat") ? "<green>on" : "<red>off"))));
chat.setItemMeta(chatItemMeta); chat.setItemMeta(chatItemMeta);
inventory.setItem(4, chat); inventory.setItem(4, chat);
} }
@ -106,10 +106,10 @@ public class ToggleMenu extends AbstractMenu
} }
if (clicked.getType() == Material.OAK_SIGN) if (clicked.getType() == Material.OAK_SIGN)
{ {
plugin.toggles.set("moderated", !plugin.toggles.getBoolean("moderated")); plugin.toggles.set("chat", !plugin.toggles.getBoolean("chat"));
PlexUtils.broadcast(PlexUtils.messageComponent(plugin.toggles.getBoolean("moderated") ? "modModeOn" : "modModeOff", player.getName())); PlexUtils.broadcast(PlexUtils.messageComponent("chatToggled", player.getName(), plugin.toggles.getBoolean("chat") ? "on" : "off"));
resetChatItem(inventory); resetChatItem(inventory);
player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled moderated mode.")); player.sendMessage(PlexUtils.mmDeserialize("<gray>Toggled chat."));
} }
return true; return true;
} }

View File

@ -54,15 +54,10 @@ commands:
- "r:a:^(co|core|coreprotect) (rb|rollback|l|lookup|rl|reload):_" - "r:a:^(co|core|coreprotect) (rb|rollback|l|lookup|rl|reload):_"
- "r:e:^[A-z]*:[A-z]*::<gray>Plugin specific commands are disabled." - "r:e:^[A-z]*:[A-z]*::<gray>Plugin specific commands are disabled."
# These commands will be blocked when a player is muted # These commands will be blocked when a player is muted or when chat is toggled off.
block_on_mute: block_on_mute:
- me - me
- say - say
- msg - msg
- reply - reply
- mail - mail
# These commands will be blocked when chat has been toggled off, doesn't include commands that don't show a public message.
block_on_modmode:
- me
- say

View File

@ -110,10 +110,10 @@ 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!" playerLockedUp: "<red>That player is already locked up!"
muted: "<red>You are currently muted - STFU!" muted: "<red>You are currently muted - STFU!"
chatIsDisabled: "<red>Public chat is currently restricted!" chatIsOff: "<red>Chat is currently toggled off!"
# 0 - The command sender # 0 - The command sender
modModeOn: "<red>{0} - Restricting public chat to administrators" # 1 - The set value of the chat toggle
modModeOff: "<aqua>{0} - Unrestricting public chat" chatToggled: "<red>{0} - Toggled chat {1}"
# 0 - The command sender # 0 - The command sender
# 1 - The player # 1 - The player
kickedPlayer: "<red>{0} - Kicking {1}" kickedPlayer: "<red>{0} - Kicking {1}"

View File

@ -12,5 +12,5 @@ drops: true
# Should redstone be enabled? # Should redstone be enabled?
redstone: true redstone: true
# Should public chat be restricted to admins only? This does not affect commands such as /w, but will affect commands such as /me. # Is chat enabled?
moderated: false chat: true