From 64c587627f3bea18e8678abfd2aa865d34def482 Mon Sep 17 00:00:00 2001
From: speedxx <43330808+speedxx@users.noreply.github.com>
Date: Thu, 13 Aug 2020 16:55:00 -0400
Subject: [PATCH] personal tag toggles & fix some more stuff
---
pom.xml | 2 +-
.../java/me/totalfreedom/tfguilds/Common.java | 6 +++
.../me/totalfreedom/tfguilds/TFGuilds.java | 3 ++
.../tfguilds/command/CreateSubcommand.java | 3 +-
.../tfguilds/command/DisbandSubcommand.java | 6 ++-
.../tfguilds/command/GuildCommand.java | 35 ++++++++++++---
.../tfguilds/command/RenameSubcommand.java | 1 +
.../command/SetDefaultRankSubcommand.java | 2 +-
.../tfguilds/command/TFGuildsCommand.java | 1 +
.../tfguilds/command/ToggleTagSubcommand.java | 45 +++++++++++++++++++
.../command/ToggleTagsSubcommand.java | 7 ++-
.../tfguilds/config/ConfigEntry.java | 2 +-
.../me/totalfreedom/tfguilds/guild/Guild.java | 2 +-
.../tfguilds/listener/ChatListener.java | 18 +++++++-
src/main/resources/config.yml | 8 ++++
src/main/resources/players.yml | 3 ++
src/main/resources/plugin.yml | 2 +-
17 files changed, 129 insertions(+), 17 deletions(-)
create mode 100644 src/main/java/me/totalfreedom/tfguilds/command/ToggleTagSubcommand.java
create mode 100644 src/main/resources/players.yml
diff --git a/pom.xml b/pom.xml
index c72f556..7e1882b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
me.totalfreedom
TFGuilds
- 0.2.10
+ 0.2.11
jar
TFGuilds
diff --git a/src/main/java/me/totalfreedom/tfguilds/Common.java b/src/main/java/me/totalfreedom/tfguilds/Common.java
index 3537367..1172d0a 100644
--- a/src/main/java/me/totalfreedom/tfguilds/Common.java
+++ b/src/main/java/me/totalfreedom/tfguilds/Common.java
@@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map;
import me.totalfreedom.tfguilds.config.ConfigEntry;
import me.totalfreedom.tfguilds.guild.Guild;
+import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
@@ -27,4 +28,9 @@ public class Common
{
return in.replaceAll("%p%", PRIMARY + "").replaceAll("%s%", SECONDARY + "");
}
+
+ public static void broadcast(String msg)
+ {
+ Bukkit.broadcastMessage(msg);
+ }
}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/tfguilds/TFGuilds.java b/src/main/java/me/totalfreedom/tfguilds/TFGuilds.java
index a8bc827..dbe9225 100644
--- a/src/main/java/me/totalfreedom/tfguilds/TFGuilds.java
+++ b/src/main/java/me/totalfreedom/tfguilds/TFGuilds.java
@@ -23,6 +23,7 @@ public final class TFGuilds extends JavaPlugin
public Config config;
public Config guilds;
+ public Config players;
public TFMBridge bridge;
@Override
@@ -31,6 +32,7 @@ public final class TFGuilds extends JavaPlugin
plugin = this;
config = new Config("config.yml");
guilds = new Config("guilds.yml");
+ players = new Config("players.yml");
bridge = new TFMBridge();
loadCommands();
loadListeners();
@@ -43,6 +45,7 @@ public final class TFGuilds extends JavaPlugin
plugin = null;
config.save();
guilds.save();
+ players.save();
GLog.info("Disabled " + this.getDescription().getFullName());
}
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/CreateSubcommand.java b/src/main/java/me/totalfreedom/tfguilds/command/CreateSubcommand.java
index 94b0afb..9c1b60f 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/CreateSubcommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/CreateSubcommand.java
@@ -75,8 +75,9 @@ public class CreateSubcommand extends Common implements CommandExecutor
}
Guild.createGuild(identifier, name, player);
+ plugin.players.set(player.getName() + ".tag", true);
sender.sendMessage(tl(PREFIX + "Created a guild named \"" + GUtil.colorize(name) + "%p%\"!"));
- Bukkit.broadcastMessage(GUtil.colorize(tl("%p%" + sender.getName() + " has created guild %p%&l" + name)));
+ broadcast(GUtil.colorize(tl("%p%" + sender.getName() + " has created guild %p%&l" + name)));
return true;
}
}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/DisbandSubcommand.java b/src/main/java/me/totalfreedom/tfguilds/command/DisbandSubcommand.java
index 3752841..213637a 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/DisbandSubcommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/DisbandSubcommand.java
@@ -4,6 +4,7 @@ import me.totalfreedom.tfguilds.Common;
import me.totalfreedom.tfguilds.guild.Guild;
import me.totalfreedom.tfguilds.util.GLog;
import me.totalfreedom.tfguilds.util.GUtil;
+import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
@@ -30,7 +31,7 @@ public class DisbandSubcommand extends Common implements CommandExecutor
return true;
}
- Guild guild = Guild.getGuild(args[1]);
+ Guild guild = Guild.getGuild(GUtil.flatten(StringUtils.join(args, " ", 1, args.length)));
if (guild == null)
{
sender.sendMessage(ChatColor.RED + "That guild doesn't exist!");
@@ -42,6 +43,7 @@ public class DisbandSubcommand extends Common implements CommandExecutor
guild.disband();
GLog.info(sender.getName() + " deleted guild " + guild.getName());
sender.sendMessage(tl(PREFIX + "Disbanded \"" + GUtil.colorize(n) + "%p%\"."));
+ broadcast(GUtil.colorize(tl("%p%" + sender.getName() + " has disbanded guild %p%&l" + guild.getName())));
return true;
}
@@ -69,7 +71,7 @@ public class DisbandSubcommand extends Common implements CommandExecutor
guild.disband();
GLog.info(player.getName() + " deleted guild " + guild.getName());
sender.sendMessage(tl(PREFIX + "You have disbanded your guild!"));
- Bukkit.broadcastMessage(GUtil.colorize(tl("%p%&l" + guild.getName() + "%p% has been disbanded")));
+ broadcast(GUtil.colorize(tl("%p%&l" + guild.getName() + "%p% has been disbanded")));
return true;
}
}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/GuildCommand.java b/src/main/java/me/totalfreedom/tfguilds/command/GuildCommand.java
index b2a29e3..3b4d2cf 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/GuildCommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/GuildCommand.java
@@ -6,10 +6,12 @@ import java.util.List;
import me.totalfreedom.tfguilds.Common;
import me.totalfreedom.tfguilds.guild.Guild;
import me.totalfreedom.tfguilds.util.GUtil;
+import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
+import org.bukkit.entity.Player;
public class GuildCommand extends Common implements CommandExecutor, TabCompleter
{
@@ -70,6 +72,8 @@ public class GuildCommand extends Common implements CommandExecutor, TabComplete
return new SetDefaultRankSubcommand().onCommand(sender, command, label, args);
case "toggletags":
return new ToggleTagsSubcommand().onCommand(sender, command, label, args);
+ case "toggletag":
+ return new ToggleTagSubcommand().onCommand(sender, command, label, args);
}
return false;
}
@@ -85,7 +89,8 @@ public class GuildCommand extends Common implements CommandExecutor, TabComplete
return Arrays.asList("addmod", "chat", "createrank", "create",
"deleterank", "disband", "help", "home", "info", "invite",
"join", "kick", "leave", "list", "motd", "removemod", "rename",
- "roster", "setowner", "setrank", "setstate", "tag", "tp", "setdefaultrank", "toggletags");
+ "roster", "setowner", "setrank", "setstate", "tag", "tp", "setdefaultrank",
+ "toggletags", "toggletag");
}
else if (args.length == 2)
{
@@ -130,7 +135,13 @@ public class GuildCommand extends Common implements CommandExecutor, TabComplete
case "tp":
{
- return guild.getMembers();
+ for (Player player : Bukkit.getOnlinePlayers())
+ {
+ if (guild.getMembers().contains(player.getName()))
+ {
+ return guild.getMembers();
+ }
+ }
}
case "disband":
@@ -145,9 +156,15 @@ public class GuildCommand extends Common implements CommandExecutor, TabComplete
case "kick":
{
- if (guild.hasModerator(sender.getName()))
+ for (Player player : Bukkit.getOnlinePlayers())
{
- return guild.getOnlyMembers();
+ if (guild.getOnlyMembers().contains(player.getName()))
+ {
+ if (guild.hasModerator(sender.getName()))
+ {
+ return guild.getOnlyMembers();
+ }
+ }
}
}
@@ -155,9 +172,15 @@ public class GuildCommand extends Common implements CommandExecutor, TabComplete
case "addmod":
case "setowner":
{
- if (guild.getOwner().equals(sender.getName()))
+ for (Player player : Bukkit.getOnlinePlayers())
{
- return guild.getMembers();
+ if (guild.getMembers().contains(player.getName()))
+ {
+ if (guild.getOwner().equals(sender.getName()))
+ {
+ return guild.getMembers();
+ }
+ }
}
}
}
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/RenameSubcommand.java b/src/main/java/me/totalfreedom/tfguilds/command/RenameSubcommand.java
index dad1a80..5c36052 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/RenameSubcommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/RenameSubcommand.java
@@ -77,6 +77,7 @@ public class RenameSubcommand extends Common implements CommandExecutor
guild.setIdentifier(GUtil.flatten(newName));
guild.setName(newName);
guild.updateRankIdentifiers();
+ guild.setTag(GUtil.colorize("&8[&7" + newName + "&8]"));
sender.sendMessage(tl(PREFIX + "Set %s%" + GUtil.colorize(newName) + "%p% as the new name of your guild%p%."));
guild.broadcast(tl("%p%Your guild has been renamed to " + GUtil.colorize(newName) + "%p%."));
guild.save();
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/SetDefaultRankSubcommand.java b/src/main/java/me/totalfreedom/tfguilds/command/SetDefaultRankSubcommand.java
index cb6acda..b906ebc 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/SetDefaultRankSubcommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/SetDefaultRankSubcommand.java
@@ -57,7 +57,7 @@ public class SetDefaultRankSubcommand extends Common implements CommandExecutor
guild.setDefaultRank(rank);
guild.save();
- sender.sendMessage(tl(PREFIX + "Set " + rank + " as the default rank for your guild."));
+ sender.sendMessage(tl(PREFIX + "Set %s%\"" + rank + "\"%p% as the default rank for your guild."));
return true;
}
}
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/TFGuildsCommand.java b/src/main/java/me/totalfreedom/tfguilds/command/TFGuildsCommand.java
index d73c737..131f3c2 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/TFGuildsCommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/TFGuildsCommand.java
@@ -33,6 +33,7 @@ public class TFGuildsCommand extends Common implements CommandExecutor
{
plugin.config.load();
plugin.guilds.load();
+ plugin.players.load();
GLog.info("All configs reloaded successfully");
sender.sendMessage(tl(PREFIX + "All configuration files have been reloaded successfully."));
return true;
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/ToggleTagSubcommand.java b/src/main/java/me/totalfreedom/tfguilds/command/ToggleTagSubcommand.java
new file mode 100644
index 0000000..8b3990d
--- /dev/null
+++ b/src/main/java/me/totalfreedom/tfguilds/command/ToggleTagSubcommand.java
@@ -0,0 +1,45 @@
+package me.totalfreedom.tfguilds.command;
+
+import me.totalfreedom.tfguilds.Common;
+import me.totalfreedom.tfguilds.guild.Guild;
+import org.bukkit.ChatColor;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.command.ConsoleCommandSender;
+import org.bukkit.entity.Player;
+
+public class ToggleTagSubcommand extends Common implements CommandExecutor
+{
+ @Override
+ public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
+ {
+ if (sender instanceof ConsoleCommandSender)
+ {
+ sender.sendMessage(NO_PERMS);
+ return true;
+ }
+
+ Player player = (Player)sender;
+ Guild guild = Guild.getGuild(player);
+ if (guild == null)
+ {
+ sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
+ return true;
+ }
+
+ boolean enabled = plugin.players.getBoolean(player.getName() + ".tag");
+ if (!plugin.players.contains(player.getName()) || enabled)
+ {
+ plugin.players.set(player.getName() + ".tag", false);
+ plugin.players.save();
+ sender.sendMessage(tl(PREFIX + "Disabled personal guild tag."));
+ return true;
+ }
+
+ plugin.players.set(player.getName() + ".tag", true);
+ plugin.players.save();
+ sender.sendMessage(tl(PREFIX + "Enabled personal guild tag."));
+ return true;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/ToggleTagsSubcommand.java b/src/main/java/me/totalfreedom/tfguilds/command/ToggleTagsSubcommand.java
index d8f692b..16a2982 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/ToggleTagsSubcommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/ToggleTagsSubcommand.java
@@ -2,6 +2,7 @@ package me.totalfreedom.tfguilds.command;
import me.totalfreedom.tfguilds.Common;
import me.totalfreedom.tfguilds.config.ConfigEntry;
+import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
@@ -21,12 +22,14 @@ public class ToggleTagsSubcommand extends Common implements CommandExecutor
if (enabled)
{
ConfigEntry.GUILD_TAGS_ENABLED.setBoolean(false);
- sender.sendMessage(tl(PREFIX + "Disabled guild tags."));
+ sender.sendMessage(tl(PREFIX + "Globally disabled guild tags."));
+ broadcast(ChatColor.RED + sender.getName() + " - Globally disabling guild tags");
}
else
{
ConfigEntry.GUILD_TAGS_ENABLED.setBoolean(true);
- sender.sendMessage(tl(PREFIX + "Enabled guild tags."));
+ sender.sendMessage(tl(PREFIX + "Globally enabled guild tags."));
+ broadcast(ChatColor.RED + sender.getName() + " - Globally enabling guild tags");
}
return true;
}
diff --git a/src/main/java/me/totalfreedom/tfguilds/config/ConfigEntry.java b/src/main/java/me/totalfreedom/tfguilds/config/ConfigEntry.java
index ff88f90..4f5db02 100644
--- a/src/main/java/me/totalfreedom/tfguilds/config/ConfigEntry.java
+++ b/src/main/java/me/totalfreedom/tfguilds/config/ConfigEntry.java
@@ -8,7 +8,7 @@ public enum ConfigEntry
SCHEME_PRIMARY("scheme.primary"),
SCHEME_SECONDARY("scheme.secondary"),
// Server
- SERVER_GUILD_CHAT_LOGGING_ENABLED("server.guild_chat_logging.enabled"),
+ GUILD_CHAT_LOGGING_ENABLED("server.guild_chat_logging.enabled"),
GUILD_TAGS_ENABLED("server.guild_tags.enabled");
private final String path;
diff --git a/src/main/java/me/totalfreedom/tfguilds/guild/Guild.java b/src/main/java/me/totalfreedom/tfguilds/guild/Guild.java
index f33886d..ee89a20 100644
--- a/src/main/java/me/totalfreedom/tfguilds/guild/Guild.java
+++ b/src/main/java/me/totalfreedom/tfguilds/guild/Guild.java
@@ -314,7 +314,7 @@ public class Guild
{
broadcast(Common.tl("%s%[%p%Guild Chat %s%| %p%" + GUtil.colorize(name) + "%s%] %p%" + as + ChatColor.WHITE + ": %p%" + msg));
- if (ConfigEntry.SERVER_GUILD_CHAT_LOGGING_ENABLED.getBoolean())
+ if (ConfigEntry.GUILD_CHAT_LOGGING_ENABLED.getBoolean())
{
GLog.info(Common.tl("%s%[%p%Guild Chat %s%| %p%" + GUtil.colorize(name) + "%s%] %p%" + as + ChatColor.WHITE + ": %p%" + msg));
}
diff --git a/src/main/java/me/totalfreedom/tfguilds/listener/ChatListener.java b/src/main/java/me/totalfreedom/tfguilds/listener/ChatListener.java
index f1fd2ce..c924fcd 100644
--- a/src/main/java/me/totalfreedom/tfguilds/listener/ChatListener.java
+++ b/src/main/java/me/totalfreedom/tfguilds/listener/ChatListener.java
@@ -1,6 +1,7 @@
package me.totalfreedom.tfguilds.listener;
import me.totalfreedom.tfguilds.Common;
+import me.totalfreedom.tfguilds.TFGuilds;
import me.totalfreedom.tfguilds.config.ConfigEntry;
import me.totalfreedom.tfguilds.guild.Guild;
import me.totalfreedom.tfguilds.guild.GuildRank;
@@ -15,6 +16,8 @@ import org.bukkit.event.player.AsyncPlayerChatEvent;
public class ChatListener implements Listener
{
+ private static final TFGuilds plugin = TFGuilds.getPlugin();
+
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerChat(AsyncPlayerChatEvent e)
{
@@ -75,9 +78,22 @@ public class ChatListener implements Listener
if (guild.hasTag())
{
- e.setFormat(e.getFormat().replace(g.getTag(), ""));
+ e.setFormat(e.getFormat().substring(g.getTag().length()));
}
}
}
+
+ if (!plugin.players.getBoolean(player.getName() + ".tag") && plugin.players.contains(player.getName()))
+ {
+ if (!ConfigEntry.GUILD_TAGS_ENABLED.getBoolean())
+ {
+ return;
+ }
+
+ if (guild.hasTag())
+ {
+ e.setFormat(e.getFormat().substring(guild.getTag().length()));
+ }
+ }
}
}
\ No newline at end of file
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 99a650a..2eb6264 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -3,12 +3,20 @@
#
server:
+
+ # Log guild chat to console?
guild_chat_logging:
enabled: true
+ # Enable guild tags globally?
guild_tags_enabled:
enabled: true
+ # Color scheme used for TFGuilds
scheme:
+
+ # Primary color
primary: GREEN
+
+ # Secondary color
secondary: DARK_GREEN
\ No newline at end of file
diff --git a/src/main/resources/players.yml b/src/main/resources/players.yml
new file mode 100644
index 0000000..27e0340
--- /dev/null
+++ b/src/main/resources/players.yml
@@ -0,0 +1,3 @@
+#
+# Player data for TFGuilds
+#
\ No newline at end of file
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 2a0d75d..80fa1ae 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -7,7 +7,7 @@ description: A guilds plugin for the TotalFreedom server.
commands:
guild:
description: The main command of TFGuilds.
- usage: / [list | help | create | disband [name] | invite | addmod | player> | removemod | name> | createrank | setowner | player> | kick | player> | leave | setstate | state> | tp | info [guild | player] | tag | clear> | join | chat [message] | roster [guild] | rename | createrank | deleterank | setrank motd | clear> | home [set] | chat [message] | setdefaultrank | toggletags]
+ usage: / [list | help | create | disband [name] | invite | addmod | player> | removemod | name> | createrank | setowner | player> | kick | player> | leave | setstate | state> | tp | info [guild | player] | tag | clear> | join | chat [message] | roster [guild] | rename | createrank | deleterank | setrank motd | clear> | home [set] | chat [message] | setdefaultrank | toggletags | toggletag]
aliases: [g]
guildchat:
description: Talk in chat with your guild.