From bf2323bed20bd0287477c98ee8c3841189a6e974 Mon Sep 17 00:00:00 2001 From: Video Date: Mon, 29 Nov 2021 02:44:23 -0700 Subject: [PATCH] Squashed commit of the following: commit a42cb6aff98f97469202f686f67c010fffe8bc2c Merge: 2ecfb886 01fdf766 Author: Video Date: Mon Nov 29 02:41:34 2021 -0700 Merge pull request #125 from AtlasMediaGroup/shitcan-savedflags Shitcans SavedFlags commit 01fdf766ee831bd4f9ae1b887b75b559e1171bd7 Merge: 58c21bb1 2ecfb886 Author: Video Date: Tue Nov 23 09:28:48 2021 -0700 Merge branch 'development' into shitcan-savedflags commit 2ecfb88604dcea061b1fb142f18ca2becec8cfef Merge: 42143c11 bb2ddf11 Author: Video Date: Tue Nov 23 09:15:16 2021 -0700 Merge pull request #130 from AtlasMediaGroup/FS-215 Makes [Discord] a hyperlink (FS-215) commit bb2ddf11292cb0945d7be2c5cd012cd96aee40ff Merge: cf9fdc6f 42143c11 Author: Video Date: Tue Nov 23 03:31:19 2021 -0700 Merge branch 'development' into FS-215 commit 58c21bb1aab8b80829663343a9677cfd79d09e19 Merge: fdba119d 42143c11 Author: Video Date: Tue Nov 23 03:30:48 2021 -0700 Merge branch 'development' into shitcan-savedflags commit cf9fdc6fe4fc278c5cc46745f535bdb7dfce185b Merge: 387ea6f7 a598c933 Author: Video Date: Fri Oct 8 01:43:33 2021 -0600 Merge branch 'development' into FS-215 commit 387ea6f71e36dddcd376ac0f6a555e30a9735067 Merge: a1ecf881 180cd811 Author: Video Date: Fri Oct 1 00:35:12 2021 -0600 Merge branch 'development' into FS-215 commit a1ecf881094de1da26b181370d08bddb425b4e98 Merge: bd647afe 213a4338 Author: Ryan Date: Sun Sep 12 13:48:59 2021 +0100 Merge branch 'development' into FS-215 commit fdba119d5d7b016a9fddaa05568776f43d02d442 Merge: 61857dd0 213a4338 Author: Ryan Date: Sun Sep 12 13:48:44 2021 +0100 Merge branch 'development' into shitcan-savedflags commit 61857dd06f05f1ba7242f308de671ea65f33ca80 Merge: 2d18d461 0e12f5e7 Author: Video Date: Sun Sep 12 03:01:37 2021 -0600 Merge branch 'development' into shitcan-savedflags commit bd647afe92d21e9dff65ae9c4c07323f56bfd1cd Merge: 69f17ef2 0e12f5e7 Author: Video Date: Sun Sep 12 02:50:39 2021 -0600 Merge branch 'development' into FS-215 commit 69f17ef2d742cfc77bc659c21fa0ef3007ab2337 Merge: ee1b27fa aebe1ace Author: Video Date: Sun Sep 12 02:01:56 2021 -0600 Merge branch 'development' into FS-215 commit ee1b27fa0df9ee1b579ce4ea6e0f768bb1ac7ca4 Merge: 2bdf14f3 0a9b95bf Author: Ryan Date: Sat Sep 11 01:24:00 2021 +0100 Merge branch 'development' into FS-215 commit 2d18d461fea83aef743967e10f8c6d6afd67a09c Merge: a4c81f20 0a9b95bf Author: Ryan Date: Sat Sep 11 01:23:44 2021 +0100 Merge branch 'development' into shitcan-savedflags commit 2bdf14f38c07c70e392879e2c18be02e0c847af2 Merge: f6d46b61 44ff621d Author: Video Date: Mon Sep 6 15:26:13 2021 -0600 Merge branch 'development' into FS-215 commit a4c81f202cd041d4f084135bbd9b0a1d77cd6505 Merge: 0d09c3a5 23caa4e8 Author: Ryan Date: Sat Sep 4 01:23:06 2021 +0100 Merge branch 'development' into shitcan-savedflags commit f6d46b6178a9c135df11b5305ba6fb16404381c5 Merge: ee804d52 23caa4e8 Author: Ryan Date: Sat Sep 4 01:07:33 2021 +0100 Merge branch 'development' into FS-215 commit ee804d52ff0747fdf67398b12080f708460b402c Author: Video Date: Fri Sep 3 12:52:15 2021 -0600 Makes [Discord] a hyperlink (FS-215) I've decided to overhaul the implementation of DiscordToMinecraftListener to make it more easily workable. This overhaul allows me to implement FS-215 more easily. commit 0d09c3a550eb014793cc800021a0064aaad5e3b1 Merge: e2ccd14e 4c3f188b Author: Ryan Date: Sun Aug 29 20:09:03 2021 +0100 Merge branch 'development' into shitcan-savedflags commit e2ccd14eb383844c1bfb5d0e56e7924bb47f5997 Author: Video Date: Fri Aug 27 16:54:55 2021 -0600 Unsaves SavedFlags --- .../totalfreedommod/SavedFlags.java | 98 ------------------- .../totalfreedommod/TotalFreedomMod.java | 2 - .../bridge/CoreProtectBridge.java | 7 -- .../totalfreedommod/config/ConfigEntry.java | 1 + .../discord/DiscordToMinecraftListener.java | 64 ++++++++---- .../totalfreedommod/util/FUtil.java | 2 - .../totalfreedommod/world/Flatlands.java | 33 ------- src/main/resources/config.yml | 2 + 8 files changed, 50 insertions(+), 159 deletions(-) delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/SavedFlags.java diff --git a/src/main/java/me/totalfreedom/totalfreedommod/SavedFlags.java b/src/main/java/me/totalfreedom/totalfreedommod/SavedFlags.java deleted file mode 100644 index a86320fa..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/SavedFlags.java +++ /dev/null @@ -1,98 +0,0 @@ -package me.totalfreedom.totalfreedommod; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.util.HashMap; -import java.util.Map; -import me.totalfreedom.totalfreedommod.util.FLog; -import static me.totalfreedom.totalfreedommod.util.FUtil.SAVED_FLAGS_FILENAME; - -public class SavedFlags extends FreedomService -{ - @Override - public void onStart() - { - } - - @Override - public void onStop() - { - } - - @SuppressWarnings("unchecked") - public Map getSavedFlags() - { - Map flags = null; - File input = new File(TotalFreedomMod.getPlugin().getDataFolder(), SAVED_FLAGS_FILENAME); - - if (input.exists()) - { - try - { - try (FileInputStream fis = new FileInputStream(input); ObjectInputStream ois = new ObjectInputStream(fis)) - { - flags = (HashMap)ois.readObject(); - } - } - catch (Exception ex) - { - FLog.severe(ex); - } - } - - return flags; - } - - public boolean getSavedFlag(String flag) throws Exception - { - Boolean flagValue = null; - - Map flags = getSavedFlags(); - - if (flags != null) - { - if (flags.containsKey(flag)) - { - flagValue = flags.get(flag); - } - } - - if (flagValue != null) - { - return flagValue; - } - else - { - throw new Exception(); - } - } - - public void setSavedFlag(String flag, boolean value) - { - Map flags = getSavedFlags(); - - if (flags == null) - { - flags = new HashMap<>(); - } - - flags.put(flag, value); - - try - { - final FileOutputStream fos = new FileOutputStream(new File(plugin.getDataFolder(), SAVED_FLAGS_FILENAME)); - final ObjectOutputStream oos = new ObjectOutputStream(fos); - oos.writeObject(flags); - oos.close(); - fos.close(); - } - catch (Exception ex) - { - FLog.severe(ex); - } - } - -} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java index 9804f730..1bb8207b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java @@ -75,7 +75,6 @@ public class TotalFreedomMod extends JavaPlugin public CommandLoader cl; // Services public ServerInterface si; - public SavedFlags sf; public WorldManager wm; public LogViewer lv; public AdminList al; @@ -299,7 +298,6 @@ public class TotalFreedomMod extends JavaPlugin { // Start services si = new ServerInterface(); - sf = new SavedFlags(); wm = new WorldManager(); lv = new LogViewer(); sql = new SQLite(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/CoreProtectBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/CoreProtectBridge.java index c0a00e39..2653c8ef 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/CoreProtectBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/CoreProtectBridge.java @@ -192,7 +192,6 @@ public class CoreProtectBridge extends FreedomService return (megabytes / 1024); } - // Wipes DB for the specified world public void clearDatabase(World world) { clearDatabase(world, false); @@ -260,12 +259,6 @@ public class CoreProtectBridge extends FreedomService { FLog.warning("Failed to delete the CoreProtect data for the " + world.getName()); } - - // This exits for flatlands wipes - if (shutdown) - { - server.shutdown(); - } } @EventHandler(priority = EventPriority.MONITOR) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java b/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java index 021f30f1..1e99ed5a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java @@ -86,6 +86,7 @@ public enum ConfigEntry DISCORD_ASSISTANT_EXECUTIVE_ROLE_ID(String.class, "discord.assistant_executive_role_id"), DISCORD_EXECUTIVE_ROLE_ID(String.class, "discord.executive_role_id"), DISCORD_SERVER_OWNER_ROLE_ID(String.class, "discord.server_owner_role_id"), + DISCORD_INVITE_LINK(String.class, "discord.invite_link"), // PTERO_URL(String.class, "ptero.url"), PTERO_DEFAULT_EMAIL_DOMAIN(String.class, "ptero.default_email_domain"), diff --git a/src/main/java/me/totalfreedom/totalfreedommod/discord/DiscordToMinecraftListener.java b/src/main/java/me/totalfreedom/totalfreedommod/discord/DiscordToMinecraftListener.java index e0f26bff..f4adf0d9 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/discord/DiscordToMinecraftListener.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/discord/DiscordToMinecraftListener.java @@ -10,9 +10,12 @@ import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; +import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.ComponentBuilder; +import net.md_5.bungee.api.chat.HoverEvent; import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.api.chat.hover.content.Text; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @@ -28,39 +31,66 @@ public class DiscordToMinecraftListener extends ListenerAdapter { Member member = event.getMember(); String tag = getDisplay(member); - StringBuilder message = new StringBuilder(ChatColor.DARK_GRAY + "[" + ChatColor.DARK_AQUA + "Discord" + ChatColor.DARK_GRAY + "]"); Message msg = event.getMessage(); + + ComponentBuilder emsg = new ComponentBuilder(); + + // Prefix + emsg.append(ChatColor.DARK_GRAY + "["); + TextComponent inviteLink = new TextComponent("Discord"); + inviteLink.setColor(ChatColor.DARK_AQUA.asBungee()); + inviteLink.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, + new Text("Click here to get the invite link!"))); + inviteLink.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, + ConfigEntry.DISCORD_INVITE_LINK.getString())); + emsg.append(inviteLink); + emsg.append(ChatColor.DARK_GRAY + "] ", ComponentBuilder.FormatRetention.NONE); + + // Tag (if they have one) if (tag != null) { - message.append(" ").append(tag); - } - message.append(" ").append(ChatColor.RED).append(ChatColor.stripColor(member.getEffectiveName())).append(ChatColor.DARK_GRAY).append(":").append(ChatColor.RESET); - ComponentBuilder builder = new ComponentBuilder(message.toString()); - if (!msg.getContentDisplay().isEmpty()) - { - builder.append(" ").append(ChatColor.stripColor(msg.getContentDisplay())); - message.append(" ").append(ChatColor.stripColor(msg.getContentDisplay())); // for logging + emsg.append(tag); } + + emsg.append(" "); + + // User + TextComponent user = new TextComponent(ChatColor.stripColor(member.getEffectiveName())); + user.setColor(ChatColor.RED.asBungee()); + emsg.append(user); + + // Message + emsg.append(ChatColor.DARK_GRAY + ": " + ChatColor.RESET + + ChatColor.stripColor(msg.getContentDisplay()), ComponentBuilder.FormatRetention.NONE); + + // Attachments if (!msg.getAttachments().isEmpty()) { + if (!msg.getContentDisplay().isEmpty()) + emsg.append(" "); + for (Message.Attachment attachment : msg.getAttachments()) { - attachment.getUrl(); - builder.append(" "); - TextComponent text = new TextComponent(ChatColor.YELLOW + "[Media]"); - text.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, attachment.getUrl())); - builder.append(text); - message.append(" [Media]"); // for logging + TextComponent media = new TextComponent("[Media] "); + media.setColor(ChatColor.YELLOW.asBungee()); + media.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, attachment.getUrl())); + media.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text(attachment.getUrl()))); + + emsg.append(media, ComponentBuilder.FormatRetention.NONE); } } + + BaseComponent[] components = emsg.create(); + for (Player player : Bukkit.getOnlinePlayers()) { if (TotalFreedomMod.getPlugin().pl.getData(player).doesDisplayDiscord()) { - player.spigot().sendMessage(builder.create()); + player.spigot().sendMessage(components); } } - FLog.info(message.toString()); + + FLog.info(TextComponent.toLegacyText(components), true); } } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java index 81bae8cc..ea7a7344 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java @@ -36,8 +36,6 @@ import static org.bukkit.Bukkit.getServer; public class FUtil { - - public static final String SAVED_FLAGS_FILENAME = "savedflags.dat"; /* See https://github.com/TotalFreedom/License - None of the listed names may be removed. Leaving this list here for anyone running TFM on a cracked server: public static final List DEVELOPERS = Arrays.asList("Madgeek1450", "Prozza", "WickedGamingUK", "Wild1145", "aggelosQQ", "scripthead", "Telesphoreo", "CoolJWB"); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/world/Flatlands.java b/src/main/java/me/totalfreedom/totalfreedommod/world/Flatlands.java index 32033da5..790a6f33 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/world/Flatlands.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/world/Flatlands.java @@ -1,9 +1,6 @@ package me.totalfreedom.totalfreedommod.world; -import java.io.File; import me.totalfreedom.totalfreedommod.config.ConfigEntry; -import me.totalfreedom.totalfreedommod.util.FLog; -import org.apache.commons.io.FileUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -32,8 +29,6 @@ public class Flatlands extends CustomWorld return null; } - wipeFlatlandsIfFlagged(); - final WorldCreator worldCreator = new WorldCreator(getName()); worldCreator.generateStructures(false); worldCreator.type(WorldType.NORMAL); @@ -63,32 +58,4 @@ public class Flatlands extends CustomWorld return world; } - - - public void wipeFlatlandsIfFlagged() - { - boolean doFlatlandsWipe = false; - try - { - doFlatlandsWipe = plugin.sf.getSavedFlag("do_wipe_flatlands"); - } - catch (Exception ignored) - { - } - - if (doFlatlandsWipe) - { - if (Bukkit.getServer().getWorld("flatlands") == null) - { - FLog.info("Wiping flatlands."); - plugin.sf.setSavedFlag("do_wipe_flatlands", false); - FileUtils.deleteQuietly(new File("./flatlands")); - } - else - { - FLog.severe("Can't wipe flatlands, it is already loaded."); - } - } - } - } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 1530fbfa..06fd2f5a 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -84,6 +84,8 @@ discord: executive_role_id: '' # Owner role ID server_owner_role_id: '' + # Invite link for your Discord server + invite_link: 'https://discord.com/invite/PW4savJR9a' # Pterodactyl ptero: