From 0891e252f9c45c0afac72a4fd83cc0fc7ae86b65 Mon Sep 17 00:00:00 2001 From: destro174 <40720638+destro174@users.noreply.github.com> Date: Tue, 27 Jul 2021 18:46:58 +0200 Subject: [PATCH] auto commit --- .gitignore | 1 + .../java/com/alttd/chat/config/Config.java | 14 ++-- .../java/com/alttd/chat/database/Queries.java | 78 ++++++++++++++++++- .../alttd/chat/managers/ChatUserManager.java | 15 ++-- .../java/com/alttd/chat/objects/ChatUser.java | 29 ++++--- .../java/com/alttd/chat/objects/Mail.java | 18 +++-- .../java/com/alttd/chat/util/Utility.java | 4 +- galaxy/dependency-reduced-pom.xml | 4 +- galaxy/pom.xml | 4 +- .../main/java/com/alttd/chat/ChatPlugin.java | 7 +- .../java/com/alttd/chat/commands/Ignore.java | 51 ++++++++++++ .../java/com/alttd/chat/commands/Mail.java | 25 ++++++ .../java/com/alttd/chat/commands/Message.java | 4 +- .../java/com/alttd/chat/commands/Reply.java | 2 +- .../alttd/chat/commands/ToggleGlobalChat.java | 7 +- .../com/alttd/chat/commands/Unignore.java | 46 +++++++++++ .../com/alttd/chat/handler/ChatHandler.java | 16 ++-- .../alttd/chat/listeners/PlayerListener.java | 11 ++- .../alttd/chat/listeners/PluginMessage.java | 18 +++++ galaxy/src/main/resources/plugin.yml | 6 +- velocity/dependency-reduced-pom.xml | 6 -- velocity/pom.xml | 1 - .../java/com/alttd/chat/VelocityChat.java | 4 + .../com/alttd/chat/handlers/ChatHandler.java | 59 ++++++++++++-- .../chat/listeners/PluginMessageListener.java | 2 +- 25 files changed, 362 insertions(+), 70 deletions(-) create mode 100755 galaxy/src/main/java/com/alttd/chat/commands/Ignore.java create mode 100644 galaxy/src/main/java/com/alttd/chat/commands/Mail.java create mode 100755 galaxy/src/main/java/com/alttd/chat/commands/Unignore.java diff --git a/.gitignore b/.gitignore index 8723c36..3acf705 100755 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ target/ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* +/upload.sh diff --git a/api/src/main/java/com/alttd/chat/config/Config.java b/api/src/main/java/com/alttd/chat/config/Config.java index 017f5ea..4b4c7f0 100755 --- a/api/src/main/java/com/alttd/chat/config/Config.java +++ b/api/src/main/java/com/alttd/chat/config/Config.java @@ -32,7 +32,7 @@ public final class Config { public static File CONFIGPATH; public static void init() { // todo setup share for the config - CONFIGPATH = new File(System.getProperty("user.home")+File.separator+"ChatPlugin"); + CONFIGPATH = new File(System.getProperty("user.home") + File.separator + "share" + File.separator + "ChatPlugin"); CONFIG_FILE = new File(CONFIGPATH, "config.yml");; configLoader = YAMLConfigurationLoader.builder() .setFile(CONFIG_FILE) @@ -175,8 +175,8 @@ public final class Config { public static List MESSAGECOMMANDALIASES = new ArrayList<>(); public static List REPLYCOMMANDALIASES = new ArrayList<>(); - public static String MESSAGESENDER = " >(Me -> ) "; - public static String MESSAGERECIEVER = " >( on -> Me) "; + public static String MESSAGESENDER = " >(Me -> ) "; + public static String MESSAGERECIEVER = " >( on -> Me) "; private static void messageCommand() { MESSAGECOMMANDALIASES.clear(); REPLYCOMMANDALIASES.clear(); @@ -185,7 +185,7 @@ public final class Config { MESSAGESENDER = getString("commands.message.sender-message", MESSAGESENDER); MESSAGERECIEVER = getString("commands.message.reciever-message", MESSAGERECIEVER); } -///broadcast Momlly to Global: We Love Teri and Kappa + public static String GCFORMAT = " >to Global: "; public static String GCPERMISSION = "proxy.globalchat"; public static List GCALIAS = new ArrayList<>(); @@ -193,7 +193,7 @@ public final class Config { public static String GCONCOOLDOWN = "You have to wait seconds before using this feature again."; // todo mini message formatting public static int GCCOOLDOWN = 30; private static void globalChat() { - MESSAGERECIEVER = getString("commands.globalchat.format", MESSAGERECIEVER); + GCFORMAT = getString("commands.globalchat.format", GCFORMAT); GCPERMISSION = getString("commands.globalchat.view-chat-permission", GCPERMISSION); GCALIAS.clear(); GCALIAS = getList("commands.globalchat.alias", Lists.newArrayList("gc", "global")); @@ -202,13 +202,13 @@ public final class Config { } // TODO prefixes need hovers, this hasn't been setup yet! - public static String CHATFORMAT = " : "; + public static String CHATFORMAT = " : "; private static void Chat() { CHATFORMAT = getString("chat.format", CHATFORMAT); } public static List GACECOMMANDALIASES = new ArrayList<>(); - public static String GACFORMAT = "( on -> Team) "; + public static String GACFORMAT = "( on -> Team) "; private static void globalAdminChat() { GACECOMMANDALIASES = getList("commands.globaladminchat.aliases", Lists.newArrayList("acg")); GACFORMAT = getString("commands.globaladminchat.format", GACFORMAT); diff --git a/api/src/main/java/com/alttd/chat/database/Queries.java b/api/src/main/java/com/alttd/chat/database/Queries.java index 0a67011..e6b2e1a 100755 --- a/api/src/main/java/com/alttd/chat/database/Queries.java +++ b/api/src/main/java/com/alttd/chat/database/Queries.java @@ -2,6 +2,7 @@ package com.alttd.chat.database; import com.alttd.chat.managers.ChatUserManager; import com.alttd.chat.objects.ChatUser; +import com.alttd.chat.objects.Mail; import com.alttd.chat.objects.Party; import java.sql.Connection; @@ -19,6 +20,7 @@ public class Queries { tables.add("CREATE TABLE IF NOT EXISTS ignored_users (`uuid` VARCHAR(36) NOT NULL, `ignored_uuid` VARCHAR(36) NOT NULL, PRIMARY KEY (`uuid`, `ignored_uuid`))"); tables.add("CREATE TABLE IF NOT EXISTS parties (`id` INT NOT NULL AUTO_INCREMENT, `owner_uuid` VARCHAR(36) NOT NULL, `party_name` VARCHAR(36) NOT NULL, `password` VARCHAR(36), PRIMARY KEY (`id`))"); tables.add("CREATE TABLE IF NOT EXISTS chat_users (`uuid` VARCHAR(36) NOT NULL, `party_id` INT NOT NULL, `toggled_chat` BIT(1) DEFAULT b'0', `toggled_gc` BIT(1) DEFAULT b'0', PRIMARY KEY (`uuid`))"); + tables.add("CREATE TABLE IF NOT EXISTS mails (`id` INT NOT NULL AUTO_INCREMENT, `uuid` VARCHAR(36) NOT NULL, `from` VARCHAR(36) NOT NULL, `message` VARCHAR(256) NOT NULL, `sendtime` BIGINT default 0, `readtime` BIGINT default 0, PRIMARY KEY (`id`))"); try { Connection connection = DatabaseConnection.getConnection(); @@ -295,8 +297,7 @@ public class Queries { int partyId = resultSet.getInt("party_id"); boolean toggled_chat = resultSet.getInt("toggled_chat") == 1; boolean toggle_Gc = resultSet.getInt("toggled_gc") == 1; - // could do a constructor for chatuser to accept the record? - //ChatUserManager.addUser(new ChatUser(uuid, partyId, toggled_chat, toggle_Gc)); + ChatUserManager.addUser(new ChatUser(uuid, partyId, toggled_chat, toggle_Gc)); } } catch (SQLException e) { @@ -304,6 +305,31 @@ public class Queries { } } + public static ChatUser loadChatUser(UUID uuid) { //TODO Get parties from cache somewhere + String query = "SELECT * FROM chat_users WHERE uuid = ?"; + ChatUser user = null; + try { + Connection connection = DatabaseConnection.getConnection(); + + PreparedStatement statement = connection.prepareStatement(query); + + statement.setString(1, uuid.toString()); + + ResultSet resultSet = statement.executeQuery(); + + while (resultSet.next()) { + int partyId = resultSet.getInt("party_id"); + boolean toggled_chat = resultSet.getInt("toggled_chat") == 1; + boolean toggle_Gc = resultSet.getInt("toggled_gc") == 1; + user = new ChatUser(uuid, partyId, toggled_chat, toggle_Gc); + } + + } catch (SQLException e) { + e.printStackTrace(); + } + return user; + } + public static void addUser(ChatUser user) { String query = "INSERT INTO chat_users (uuid, party_id, toggled_chat, toggled_gc) VALUES (?, ?, ?, ?)"; @@ -326,6 +352,10 @@ public class Queries { setBitWhereId("UPDATE chat_users set toggled_chat = ? WHERE uuid = ?", toggledChat, uuid); } + public static void setGlobalChatState(boolean globalChat, UUID uuid) { + setBitWhereId("UPDATE chat_users set toggled_gc = ? WHERE uuid = ?", globalChat, uuid); + } + private static void setBitWhereId(String query, boolean bool, UUID uuid) { try { Connection connection = DatabaseConnection.getConnection(); @@ -356,4 +386,48 @@ public class Queries { } //----------------------------------------- + + public static LinkedList getMails(UUID uuid) { + LinkedList mails = new LinkedList<>(); + String query = "SELECT * FROM mails where uuid = ?"; + + try { + Connection connection = DatabaseConnection.getConnection(); + + PreparedStatement statement = connection.prepareStatement(query); + + statement.setString(1, uuid.toString()); + + ResultSet resultSet = statement.executeQuery(); + while (resultSet.next()) { + UUID fromUUID = UUID.fromString(resultSet.getString("from")); + String message = resultSet.getString("message"); + long sendTime = resultSet.getLong("sendtime"); + long readTime = resultSet.getLong("readtime"); + mails.add(new Mail(uuid, fromUUID, sendTime, readTime, message)); + } + } catch (SQLException e) { + e.printStackTrace(); + } + + return mails; + } + + public static void saveUser(ChatUser user) { + String query = "INSERT INTO chat_users (uuid, party_id, toggled_chat, toggled_gc) VALUES (?, ?, ?, ?)"; + + try { + Connection connection = DatabaseConnection.getConnection(); + PreparedStatement statement = connection.prepareStatement(query); + + statement.setString(1, user.getUuid().toString()); + statement.setInt(2, user.getPartyId()); + statement.setInt(3, user.toggledPartyChat() ? 1 : 0); + statement.setInt(4, user.isGcOn() ? 1 : 0); + + statement.execute(); + } catch (SQLException e) { + e.printStackTrace(); + } + } } diff --git a/api/src/main/java/com/alttd/chat/managers/ChatUserManager.java b/api/src/main/java/com/alttd/chat/managers/ChatUserManager.java index 02bceea..d61661a 100755 --- a/api/src/main/java/com/alttd/chat/managers/ChatUserManager.java +++ b/api/src/main/java/com/alttd/chat/managers/ChatUserManager.java @@ -1,5 +1,6 @@ package com.alttd.chat.managers; +import com.alttd.chat.database.Queries; import com.alttd.chat.objects.ChatUser; import com.alttd.chat.objects.Mail; @@ -14,12 +15,14 @@ public final class ChatUserManager { public static void initialize() { chatUsers = new ArrayList<>(); - //Queries.loadChatUsers(); // todo fix sql } public static void addUser(ChatUser user) { - if(getChatUser(user.getUuid()) == null) - chatUsers.add(user); + chatUsers.add(user); + } + + public static void removeUser(ChatUser user) { + chatUsers.remove(user); } public static ChatUser getChatUser(UUID uuid) { @@ -28,9 +31,11 @@ public final class ChatUserManager { return user; } } - ChatUser user = new ChatUser(uuid, -1, false, false); + ChatUser user = Queries.loadChatUser(uuid); + if(user == null) user = new ChatUser(uuid, -1, false, false); + Queries.saveUser(user); chatUsers.add(user); - return user; // create a new user? + return user; } public List getUnReadMail(ChatUser user) { diff --git a/api/src/main/java/com/alttd/chat/objects/ChatUser.java b/api/src/main/java/com/alttd/chat/objects/ChatUser.java index eda3b1a..e972b62 100755 --- a/api/src/main/java/com/alttd/chat/objects/ChatUser.java +++ b/api/src/main/java/com/alttd/chat/objects/ChatUser.java @@ -13,9 +13,9 @@ public class ChatUser { private boolean toggledPartyChat; // should chat messages instantly go to party chat when added, idk if this should be saved private String name; // the nickname, doesn't need to be saved with the chatuser object, could be saved but we can get it from the nicknamesview private Component displayName; // the nickname, doesn't need to be saved with the chatuser object, could be saved but we can get it from the nicknamesview - private Component prefix; // doesn't need saving, we get this from luckperms - private Component staffPrefix; // doesn't need saving, we get this from luckperms - private Component prefixAll; // doesn't need saving, we get this from luckperms +// private Component prefix; // doesn't need saving, we get this from luckperms +// private Component staffPrefix; // doesn't need saving, we get this from luckperms +// private Component prefixAll; // doesn't need saving, we get this from luckperms private boolean toggleGc; // should be saved, this toggles if the player can see and use global chat private String replyTarget; // reply target for use in /msg i don't mind setting this to null on login, feedback? private long gcCooldown; // the time when they last used gc, is used for the cooldown, i wouldn't save this, but setting this to the login time means they can't use gc for 30 seconds after logging in @@ -35,15 +35,15 @@ public class ChatUser { } setDisplayName(name); - prefix = Utility.getPrefix(uuid, true); - staffPrefix = Utility.getStaffPrefix(uuid); - - prefixAll = Utility.getPrefix(uuid, false); +// prefix = Utility.getPrefix(uuid, true); // TODO we need to update this, so cache and update when needed or always request it? +// staffPrefix = Utility.getStaffPrefix(uuid); +// +// prefixAll = Utility.getPrefix(uuid, false); this.toggleGc = toggleGc; replyTarget = null; gcCooldown = System.currentTimeMillis(); // players can't use gc for 30 seconds after logging in if we use this? - mails = new LinkedList<>(); // todo load mails + mails = Queries.getMails(uuid); ignoredPlayers = Queries.getIgnoredUsers(uuid); ignoredBy = new LinkedList<>(); // todo load ignoredPlayers } @@ -74,15 +74,18 @@ public class ChatUser { } public Component getPrefix() { - return prefix; + //return prefix; + return Utility.getPrefix(uuid, true); // No longer cache this data } public Component getStaffPrefix() { - return staffPrefix; + //return staffPrefix; + return Utility.getStaffPrefix(uuid); } public Component getPrefixAll() { - return prefixAll; + //return prefixAll; + return Utility.getPrefix(uuid, false); } public void toggleGc() { @@ -117,6 +120,10 @@ public class ChatUser { ignoredPlayers.add(uuid); } + public void removeIgnoredPlayers(UUID uuid) { + ignoredPlayers.remove(uuid); + } + public LinkedList getIgnoredBy() { return ignoredBy; } diff --git a/api/src/main/java/com/alttd/chat/objects/Mail.java b/api/src/main/java/com/alttd/chat/objects/Mail.java index e6c93f3..6f3acfa 100755 --- a/api/src/main/java/com/alttd/chat/objects/Mail.java +++ b/api/src/main/java/com/alttd/chat/objects/Mail.java @@ -6,20 +6,26 @@ public class Mail { private final UUID uuid; // the player private final UUID sender; // the sender - private boolean read; private final long sendTime; // any other option for this? does the db store recordcreation and edit time? private long readTime; // any other option for this? private final String message; // do we want staff to edit this after being send but being unread? - public Mail(UUID player, UUID sender, Boolean read, long sendTime, long readTime, String message) { + public Mail(UUID player, UUID sender, long sendTime, long readTime, String message) { this.uuid = player; this.sender = sender; - this.read = read; this.sendTime = sendTime; this.readTime = readTime; this.message = message; } + public Mail(UUID player, UUID sender, String message) { + this.uuid = player; + this.sender = sender; + this.sendTime = System.nanoTime(); + this.readTime = System.nanoTime(); + this.message = message; + } + public UUID getUuid() { return uuid; } @@ -29,11 +35,7 @@ public class Mail { } public boolean isUnRead() { - return read; - } - - public void setRead(boolean read) { - this.read = read; + return getSendTime() != getReadTime(); } public long getSendTime() { diff --git a/api/src/main/java/com/alttd/chat/util/Utility.java b/api/src/main/java/com/alttd/chat/util/Utility.java index f955f39..dc10a3c 100755 --- a/api/src/main/java/com/alttd/chat/util/Utility.java +++ b/api/src/main/java/com/alttd/chat/util/Utility.java @@ -72,7 +72,7 @@ public class Utility { prefix.append(user.getCachedData().getMetaData().getPrefix()); } - return LegacyComponentSerializer.builder().character('&').hexColors().build().deserialize(prefix.toString()); + return applyColor(prefix.toString()); } public static Component getStaffPrefix(UUID uuid) { @@ -85,7 +85,7 @@ public class Utility { if(group != null) prefix.append(group.getCachedData().getMetaData().getPrefix()); } - return LegacyComponentSerializer.builder().character('&').hexColors().build().deserialize(prefix.toString()); + return applyColor(prefix.toString()); } public static String getDisplayName(UUID uuid) { diff --git a/galaxy/dependency-reduced-pom.xml b/galaxy/dependency-reduced-pom.xml index a1b6e49..03d26e0 100644 --- a/galaxy/dependency-reduced-pom.xml +++ b/galaxy/dependency-reduced-pom.xml @@ -21,8 +21,8 @@ maven-compiler-plugin 3.8.1 - 15 - 15 + 16 + 16 diff --git a/galaxy/pom.xml b/galaxy/pom.xml index 98eaba2..a14a6d6 100755 --- a/galaxy/pom.xml +++ b/galaxy/pom.xml @@ -28,8 +28,8 @@ maven-compiler-plugin 3.8.1 - 15 - 15 + 16 + 16 diff --git a/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java b/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java index c809e93..56325ec 100755 --- a/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java +++ b/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java @@ -1,9 +1,6 @@ package com.alttd.chat; -import com.alttd.chat.commands.GlobalChat; -import com.alttd.chat.commands.Message; -import com.alttd.chat.commands.Reply; -import com.alttd.chat.commands.ToggleGlobalChat; +import com.alttd.chat.commands.*; import com.alttd.chat.config.Config; import com.alttd.chat.database.DatabaseConnection; import com.alttd.chat.handler.ChatHandler; @@ -36,6 +33,8 @@ public class ChatPlugin extends JavaPlugin { registerCommand("toggleglobalchat", new ToggleGlobalChat()); registerCommand("message", new Message()); registerCommand("reply", new Reply()); + registerCommand("ignore", new Ignore()); + registerCommand("unignore", new Unignore()); messageChannel = Config.MESSAGECHANNEL; getServer().getMessenger().registerOutgoingPluginChannel(this, messageChannel); diff --git a/galaxy/src/main/java/com/alttd/chat/commands/Ignore.java b/galaxy/src/main/java/com/alttd/chat/commands/Ignore.java new file mode 100755 index 0000000..7f09cd3 --- /dev/null +++ b/galaxy/src/main/java/com/alttd/chat/commands/Ignore.java @@ -0,0 +1,51 @@ +package com.alttd.chat.commands; + +import com.alttd.chat.ChatPlugin; +import com.alttd.chat.database.Queries; +import com.alttd.chat.managers.ChatUserManager; +import com.alttd.chat.objects.ChatUser; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; + +import java.util.UUID; + +public class Ignore implements CommandExecutor { + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if(!(sender instanceof Player)) { // must be a player + return true; + } + if(args.length > 1) return false; // todo error message or command info + String targetName = args[0]; + Player targetPlayer = Bukkit.getPlayer(targetName); + if(targetPlayer == null) { // can't ignore offline players + //sender.sendMessage("Target not found..."); // TODO load from config and minimessage + return false; + } + if(targetPlayer.hasPermission("chat.ignorebypass")) { + sender.sendMessage("You can't ignore this player"); // TODO load from config and minimessage + return false; + } + UUID target = targetPlayer.getUniqueId(); + new BukkitRunnable() { + @Override + public void run() { + ChatUser chatUser = ChatUserManager.getChatUser(((Player) sender).getUniqueId()); + if(!chatUser.getIgnoredPlayers().contains(target)) { + chatUser.addIgnoredPlayers(target); + Queries.ignoreUser(((Player) sender).getUniqueId(), target); + sender.sendMessage("You have turned ignored " + targetName + "."); // TODO load from config and minimessage + } else { + sender.sendMessage("You have already ignored " + targetName + "."); // TODO load from config and minimessage + } + } + }.runTaskAsynchronously(ChatPlugin.getInstance()); + return false; + } + +} diff --git a/galaxy/src/main/java/com/alttd/chat/commands/Mail.java b/galaxy/src/main/java/com/alttd/chat/commands/Mail.java new file mode 100644 index 0000000..84db01f --- /dev/null +++ b/galaxy/src/main/java/com/alttd/chat/commands/Mail.java @@ -0,0 +1,25 @@ +package com.alttd.chat.commands; + +import com.alttd.chat.ChatPlugin; +import org.apache.commons.lang.StringUtils; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class Mail implements CommandExecutor { + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if(!(sender instanceof Player)) { // must be a player, @teri should console be able to /msg? + return true; + } + Player player = (Player) sender; + if(args.length > 2) return false; // todo error message or command info + + String message = StringUtils.join(args, " ", 1, args.length); + ChatPlugin.getInstance().getChatHandler().privateMessage(player, args[0], message); + return false; + } + +} diff --git a/galaxy/src/main/java/com/alttd/chat/commands/Message.java b/galaxy/src/main/java/com/alttd/chat/commands/Message.java index 821cd56..2f708fc 100644 --- a/galaxy/src/main/java/com/alttd/chat/commands/Message.java +++ b/galaxy/src/main/java/com/alttd/chat/commands/Message.java @@ -11,11 +11,11 @@ public class Message implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if(!(sender instanceof Player)) { // must be a player, @teri should console be able to /msg? + if(!(sender instanceof Player)) { return true; } Player player = (Player) sender; - if(args.length > 2) return false; // todo error message or command info + if(args.length < 2) return false; // todo error message or command info String message = StringUtils.join(args, " ", 1, args.length); ChatPlugin.getInstance().getChatHandler().privateMessage(player, args[0], message); diff --git a/galaxy/src/main/java/com/alttd/chat/commands/Reply.java b/galaxy/src/main/java/com/alttd/chat/commands/Reply.java index 50cf6ab..d8224eb 100644 --- a/galaxy/src/main/java/com/alttd/chat/commands/Reply.java +++ b/galaxy/src/main/java/com/alttd/chat/commands/Reply.java @@ -13,7 +13,7 @@ public class Reply implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if(!(sender instanceof Player)) { // must be a player, @teri should console be able to /msg? + if(!(sender instanceof Player)) { return true; } Player player = (Player) sender; diff --git a/galaxy/src/main/java/com/alttd/chat/commands/ToggleGlobalChat.java b/galaxy/src/main/java/com/alttd/chat/commands/ToggleGlobalChat.java index 3bc4eca..1af75f7 100755 --- a/galaxy/src/main/java/com/alttd/chat/commands/ToggleGlobalChat.java +++ b/galaxy/src/main/java/com/alttd/chat/commands/ToggleGlobalChat.java @@ -1,8 +1,10 @@ package com.alttd.chat.commands; import com.alttd.chat.ChatPlugin; +import com.alttd.chat.database.Queries; import com.alttd.chat.managers.ChatUserManager; import com.alttd.chat.objects.ChatUser; +import net.kyori.adventure.text.minimessage.MiniMessage; import org.apache.commons.lang.StringUtils; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -24,9 +26,10 @@ public class ToggleGlobalChat implements CommandExecutor { public void run() { ChatUser chatUser = ChatUserManager.getChatUser(((Player) sender).getUniqueId()); chatUser.toggleGc(); - sender.sendMessage("You have turned globalchat " + (chatUser.isGcOn() ? "on." : "off.")); // TODO load from config and minimessage + Queries.setGlobalChatState(chatUser.isGcOn(), chatUser.getUuid()); + sender.sendMessage(MiniMessage.get().parse("You have turned globalchat " + (chatUser.isGcOn() ? "on." : "off."))); // TODO load from config and minimessage } - }.runTask(ChatPlugin.getInstance()); + }.runTaskAsynchronously(ChatPlugin.getInstance()); return false; } diff --git a/galaxy/src/main/java/com/alttd/chat/commands/Unignore.java b/galaxy/src/main/java/com/alttd/chat/commands/Unignore.java new file mode 100755 index 0000000..07a9e1a --- /dev/null +++ b/galaxy/src/main/java/com/alttd/chat/commands/Unignore.java @@ -0,0 +1,46 @@ +package com.alttd.chat.commands; + +import com.alttd.chat.ChatPlugin; +import com.alttd.chat.database.Queries; +import com.alttd.chat.managers.ChatUserManager; +import com.alttd.chat.objects.ChatUser; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; + +import java.util.UUID; + +public class Unignore implements CommandExecutor { + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if(!(sender instanceof Player)) { // must be a player + return true; + } + if(args.length > 1) return false; // todo error message or command info + String targetName = args[0]; + UUID target = Bukkit.getOfflinePlayer(targetName).getUniqueId(); + if(target == null) { + //sender.sendMessage("Target not found..."); // TODO load from config and minimessage + return false; + } + new BukkitRunnable() { + @Override + public void run() { + ChatUser chatUser = ChatUserManager.getChatUser(((Player) sender).getUniqueId()); + if(chatUser.getIgnoredPlayers().contains(target)) { + chatUser.removeIgnoredPlayers(target); + Queries.ignoreUser(((Player) sender).getUniqueId(), target); + sender.sendMessage("You no longer ignore " + targetName + "."); // TODO load from config and minimessage + } else { + sender.sendMessage("You don't have " + targetName + " ignored."); // TODO load from config and minimessage + } + } + }.runTaskAsynchronously(ChatPlugin.getInstance()); + return false; + } + +} diff --git a/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java b/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java index 5ade214..00cce21 100755 --- a/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java +++ b/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java @@ -9,6 +9,7 @@ import com.alttd.chat.util.Utility; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.Template; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; @@ -49,7 +50,7 @@ public class ChatHandler { List