From 89b91598fb6f6ae6dff03b62dcca536cb634694c Mon Sep 17 00:00:00 2001 From: Super_ Date: Sat, 11 Jan 2020 17:44:13 -0500 Subject: [PATCH] why dont i ever commit --- .../totalfreedommod/ChatManager.java | 7 ++++++ .../totalfreedom/totalfreedommod/Muter.java | 7 ++++++ .../command/Command_lockup.java | 2 +- .../totalfreedommod/command/Command_shop.java | 12 +++++++++- .../totalfreedommod/command/Command_stfu.java | 22 +++++++++++++++++-- .../command/Command_togglechat.java | 21 ++++++++++++++++++ .../totalfreedommod/config/ConfigEntry.java | 1 + .../totalfreedommod/player/FPlayer.java | 3 +++ src/main/resources/config.yml | 3 +++ 9 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_togglechat.java diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java index f140a99c..7635f284 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java @@ -61,6 +61,13 @@ public class ChatManager extends FreedomService message = FUtil.colorize(message); message = message.replaceAll(ChatColor.MAGIC.toString(), "&k"); + if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.al.isAdmin(player)) + { + event.setCancelled(true); + playerMsg(player, "Chat is currently disabled.", ChatColor.RED); + return; + } + if (message.equals("Connected using PickaxeChat for Android")) { event.setCancelled(true); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Muter.java b/src/main/java/me/totalfreedom/totalfreedommod/Muter.java index 73e58ad5..28f9504b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/Muter.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/Muter.java @@ -57,6 +57,13 @@ public class Muter extends FreedomService return; } + if (fPlayer.isQuietMuted()) + { + FSync.playerMsg(event.getPlayer(), event.getFormat()); + event.setCancelled(true); + return; + } + FSync.playerMsg(event.getPlayer(), ChatColor.RED + "You are muted, STFU! - You will be unmuted in 5 minutes."); event.setCancelled(true); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java index 1bb76832..fd31fa11 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java @@ -9,7 +9,7 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE, blockHostConsole = true) +@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "Block a player's Minecraft input. This is evil, and I never should have wrote it.", usage = "/ on | off>>") public class Command_lockup extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_shop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_shop.java index e68f6487..e0cee9b5 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_shop.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_shop.java @@ -21,7 +21,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME) -@CommandParameters(description = "Access the shop", usage = "/ ") +@CommandParameters(description = "Access the shop", usage = "/ | action | list>") public class Command_shop extends FreedomCommand { private final List locations = Arrays.asList("Sofa", "Car", "Bed", "Kitchen", "Garage", "Basement", "Home Study"); @@ -70,6 +70,16 @@ public class Command_shop extends FreedomCommand cooldown(30, args[0]); return true; } + case "list": + case "items": + { + msg(prefix + ChatColor.GREEN + "Available items:"); + for (ShopItem item : ShopItem.values()) + { + msg(prefix + ChatColor.AQUA + item.getName() + ChatColor.GREEN + " - " + ChatColor.RED + item.getCost()); + } + return true; + } default: { return false; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_stfu.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_stfu.java index 4095dd0d..40e790fe 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_stfu.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_stfu.java @@ -18,7 +18,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) -@CommandParameters(description = "Mutes a player with brute force.", usage = "/ [[-s] [reason] | list | purge | all]", aliases = "mute") +@CommandParameters(description = "Mutes a player with brute force.", usage = "/ [[-s | -q] [reason] | list | purge | all]", aliases = "mute") public class Command_stfu extends FreedomCommand { @@ -95,7 +95,9 @@ public class Command_stfu extends FreedomCommand // -s option (smite) boolean smite = args[0].equals("-s"); - if (smite) + // -q option (shadowmute) + boolean quiet = args[0].equals("-q"); + if (smite || quiet) { args = ArrayUtils.subarray(args, 1, args.length); @@ -121,6 +123,14 @@ public class Command_stfu extends FreedomCommand FPlayer playerdata = plugin.pl.getPlayer(player); if (playerdata.isMuted()) { + if (quiet || playerdata.isQuietMuted()) + { + playerdata.setMuted(false); + playerdata.setQuietMuted(false); + msg("Unmuted " + player.getName() + " quietly"); + return true; + } + FUtil.adminAction(sender.getName(), "Unmuting " + player.getName(), true); playerdata.setMuted(false); msg("Unmuted " + player.getName()); @@ -136,6 +146,14 @@ public class Command_stfu extends FreedomCommand return true; } + if (quiet) + { + playerdata.setMuted(true); + playerdata.setQuietMuted(true); + msg("Muted " + player.getName() + " quietly"); + return true; + } + FUtil.adminAction(sender.getName(), "Muting " + player.getName(), true); playerdata.setMuted(true); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_togglechat.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_togglechat.java new file mode 100644 index 00000000..89e0aa53 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_togglechat.java @@ -0,0 +1,21 @@ +package me.totalfreedom.totalfreedommod.command; + +import me.totalfreedom.totalfreedommod.config.ConfigEntry; +import me.totalfreedom.totalfreedommod.rank.Rank; +import me.totalfreedom.totalfreedommod.util.FUtil; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = Rank.TELNET_ADMIN, source = SourceType.BOTH) +@CommandParameters(description = "Toggle the server chat.", usage = "/", aliases = "tc") +public class Command_togglechat extends FreedomCommand +{ + @Override + public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + ConfigEntry.TOGGLE_CHAT.setBoolean(!ConfigEntry.TOGGLE_CHAT.getBoolean()); + FUtil.adminAction(sender.getName(), "Chat " + (ConfigEntry.TOGGLE_CHAT.getBoolean() ? "enabled" : "disabled") + ".", true); + return true; + } +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java b/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java index 3ca51c10..4101ef62 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java @@ -141,6 +141,7 @@ public enum ConfigEntry VOTING_INFO(List.class, "votinginfo"), MASTER_BUILDER_INFO(List.class, "masterbuilderinfo"), AUTO_ENTITY_WIPE(Boolean.class, "auto_wipe"), + TOGGLE_CHAT(Boolean.class, "toggle_chat"), // AMP_ENABLED(Boolean.class, "amp.enabled"), AMP_USERNAME(String.class, "amp.username"), diff --git a/src/main/java/me/totalfreedom/totalfreedommod/player/FPlayer.java b/src/main/java/me/totalfreedom/totalfreedommod/player/FPlayer.java index d341969c..22ebb315 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/player/FPlayer.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/player/FPlayer.java @@ -76,6 +76,9 @@ public class FPlayer @Getter @Setter private boolean invSee = false; + @Setter + @Getter + private boolean quietMuted = false; public FPlayer(TotalFreedomMod plugin, Player player) { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 52519d63..a93997c4 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -304,6 +304,9 @@ flatlands: # Admin-Only Mode admin_only_mode: false +# Toggle Chat +toggle_chat: true + # Protected Areas - Protect areas so that only admins can directly modify blocks in those areas. WorldEdit and other such plugins might bypass this. protectarea: enabled: true