diff --git a/pom.xml b/pom.xml index 1eafcf5b..1f29ace6 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ me.totalfreedom TotalFreedomMod - 2021.02 + 2021.02-Patch.01-RC01 jar diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java index 19054c8a..eebefc44 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java @@ -159,24 +159,20 @@ public class ChatManager extends FreedomService FLog.info("[ADMIN] " + sender.getName() + " " + display.getTag() + ": " + message, true); plugin.dc.messageAdminChatChannel(sender.getName() + " \u00BB " + message); - for (Player player : server.getOnlinePlayers()) + server.getOnlinePlayers().stream().filter(player -> plugin.al.isAdmin(player)).forEach(player -> { - if (plugin.al.isAdmin(player)) - { - Admin admin = plugin.al.getAdmin(player); - if (!Strings.isNullOrEmpty(admin.getAcFormat())) - { - String format = admin.getAcFormat(); - ChatColor color = getColor(display); - String msg = format.replace("%name%", sender.getName()).replace("%rank%", display.getAbbr()).replace("%rankcolor%", color.toString()).replace("%msg%", message); - player.sendMessage(FUtil.colorize(msg)); - } - else - { - player.sendMessage("[" + ChatColor.AQUA + "ADMIN" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + sender.getName() + ChatColor.DARK_GRAY + " [" + getColoredTag(display) + ChatColor.DARK_GRAY + "]" + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(message)); - } + Admin admin = plugin.al.getAdmin(player); + if (!Strings.isNullOrEmpty(admin.getAcFormat())) { + String format = admin.getAcFormat(); + ChatColor color = getColor(display); + String msg = format.replace("%name%", sender.getName()).replace("%rank%", display.getAbbr()).replace("%rankcolor%", color.toString()).replace("%msg%", message); + player.sendMessage(FUtil.colorize(msg)); } - } + else + { + player.sendMessage("[" + ChatColor.AQUA + "ADMIN" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + sender.getName() + ChatColor.DARK_GRAY + " [" + getColoredTag(display) + ChatColor.DARK_GRAY + "]" + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(message)); + } + }); } public void reportAction(Player reporter, Player reported, String report) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java index 7e89dbd9..17920853 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java @@ -25,17 +25,9 @@ public class Admin private boolean active = true; private Rank rank = Rank.ADMIN; private Date lastLogin = new Date(); - - private Boolean commandSpy = false; - - private Boolean potionSpy = false; - - private String acFormat = null; - - private String pteroID = null; public Admin(Player player) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/CoreProtectBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/CoreProtectBridge.java index 8c60857d..dc846cd1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/CoreProtectBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/CoreProtectBridge.java @@ -1,11 +1,7 @@ package me.totalfreedom.totalfreedommod.bridge; import java.io.File; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; +import java.sql.*; import java.text.DecimalFormat; import java.util.Arrays; import java.util.Collections; @@ -228,11 +224,12 @@ public class CoreProtectBridge extends FreedomService String database = ConfigEntry.COREPROTECT_MYSQL_DATABASE.getString(); String url = host + ":" + port + "/" + database + "?user=" + username + "&password=" + password + "&useSSL=false"; connection = DriverManager.getConnection("jdbc:sql://" + url); - final Statement statement = connection.createStatement(); + final PreparedStatement statement = connection.prepareStatement("SELECT id FROM co_world WHERE world = ?"); statement.setQueryTimeout(30); // Obtain world ID from CoreProtect database - ResultSet resultSet = statement.executeQuery("SELECT id FROM co_world WHERE world = '" + world.getName() + "'"); + statement.setString(1, world.getName()); + ResultSet resultSet = statement.executeQuery(); String worldID = null; while (resultSet.next()) { @@ -250,7 +247,10 @@ public class CoreProtectBridge extends FreedomService // Iterate through each table and delete their data if the world ID matches for (String table : tables) { - statement.executeQuery("DELETE FROM " + table + " WHERE wid = " + worldID); + final PreparedStatement statement1 = connection.prepareStatement("DELETE FROM ? WHERE wid = ?"); + statement1.setString(1, table); + statement1.setString(2, worldID); + statement1.executeQuery(); } connection.close(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_premium.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_premium.java deleted file mode 100644 index 4fdec9cf..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_premium.java +++ /dev/null @@ -1,83 +0,0 @@ -package me.totalfreedom.totalfreedommod.command; - -import java.io.IOException; -import java.net.HttpURLConnection; -import java.net.URL; -import me.totalfreedom.totalfreedommod.rank.Rank; -import me.totalfreedom.totalfreedommod.util.FLog; -import me.totalfreedom.totalfreedommod.util.FSync; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; - -@CommandPermissions(level = Rank.OP, source = SourceType.BOTH) -@CommandParameters(description = "Validates if a given account is premium, or cracked.", usage = "/ ", aliases = "prem") -public class Command_premium extends FreedomCommand -{ - - @Override - public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) - { - if (args.length != 1) - { - return false; - } - - final Player player = getPlayer(args[0]); - final String name; - - if (player != null) - { - name = player.getName(); - } - else - { - name = args[0]; - } - - new BukkitRunnable() - { - @Override - public void run() - { - try - { - final URL getUrl = new URL("https://api.ashcon.app/mojang/v2/user/" + name); - final HttpURLConnection urlConnection = (HttpURLConnection)getUrl.openConnection(); - urlConnection.setRequestProperty("User-Agent", ""); - String message; - /*old code - BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()))) - //message = (!"PREMIUM".equalsIgnoreCase(in.readLine()) ? ChatColor.RED + "No" : ChatColor.DARK_GREEN + "Yes"); - */ - try - { - if (urlConnection.getResponseCode() == 200) - { - message = ChatColor.GREEN + "Yes"; - } - else - { - message = ChatColor.RED + "No"; - } - FSync.playerMsg(sender, "Player " + name + " is premium: " + message); - } - catch (IOException e) - { - FSync.playerMsg(sender, ChatColor.RED + "There was an error on trying to connect to the API server"); - } - - } - catch (IOException ex) - { - FLog.severe(ex); - msg("There was an error querying the API server.", ChatColor.RED); - } - } - }.runTaskAsynchronously(plugin); - - return true; - } -} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java b/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java index c19bad9d..2832bdf1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java @@ -57,7 +57,7 @@ public enum ConfigEntry SERVER_LOGIN_SUBTITLE(String.class, "server.login_title.subtitle"), SERVER_OWNERS(List.class, "server.owners"), SERVER_EXECUTIVES(List.class, "server.executives"), - SERVER_ASSTISTANT_EXECUTIVES(List.class, "server.assistant_executives"), + SERVER_ASSISTANT_EXECUTIVES(List.class, "server.assistant_executives"), SERVER_MASTER_BUILDER_MANAGEMENT(List.class, "server.master_builder_management"), SERVER_BAN_URL(String.class, "server.ban_url"), SERVER_INDEFBAN_URL(String.class, "server.indefban_url"), diff --git a/src/main/java/me/totalfreedom/totalfreedommod/discord/DiscordToAdminChatListener.java b/src/main/java/me/totalfreedom/totalfreedommod/discord/DiscordToAdminChatListener.java index 8d9be126..fed58efb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/discord/DiscordToAdminChatListener.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/discord/DiscordToAdminChatListener.java @@ -1,5 +1,6 @@ package me.totalfreedom.totalfreedommod.discord; +import com.google.common.base.Strings; import me.totalfreedom.totalfreedommod.TotalFreedomMod; import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.config.ConfigEntry; @@ -22,6 +23,7 @@ import org.bukkit.entity.Player; public class DiscordToAdminChatListener extends ListenerAdapter { + DiscordToMinecraftListener dtml = new DiscordToMinecraftListener(); public static net.md_5.bungee.api.ChatColor getColor(Displayable display) @@ -36,59 +38,62 @@ public class DiscordToAdminChatListener extends ListenerAdapter { Member member = event.getMember(); String tag = dtml.getDisplay(member); - StringBuilder message = new StringBuilder(ChatColor.DARK_GRAY + "[" + ChatColor.DARK_AQUA + "Discord" + ChatColor.DARK_GRAY + "] " + ChatColor.RESET); Message msg = event.getMessage(); - for (Player player : Bukkit.getOnlinePlayers()) - { - if (TotalFreedomMod.getPlugin().al.isAdmin(player)) - { - Admin admin = TotalFreedomMod.getPlugin().al.getAdmin(player); - String format = admin.getAcFormat(); - if (format != null) - { - Displayable display = TotalFreedomMod.getPlugin().rm.getDisplay(player); - net.md_5.bungee.api.ChatColor color = getColor(display); - String m = format.replace("%name%", member.getEffectiveName()) - .replace("%rank%", getDisplay(member)) - .replace("%rankcolor%", color.toString()) - .replace("%msg%", FUtil.colorize(msg.getContentDisplay())); - message.append(FUtil.colorize(m)); - } - else - { - String m = ChatColor.DARK_RED + member.getEffectiveName() + " " - + ChatColor.DARK_GRAY + tag + ChatColor.DARK_GRAY - + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(msg.getContentDisplay()); - message.append(m); - } - } - } + String mediamessage = ChatColor.YELLOW + " [Media]"; + + StringBuilder logmessage = new StringBuilder(ChatColor.DARK_GRAY + "[" + ChatColor.DARK_AQUA + "Discord" + ChatColor.DARK_GRAY + "] " + ChatColor.RESET); + String lm = ChatColor.DARK_RED + member.getEffectiveName() + " " + + ChatColor.DARK_GRAY + tag + ChatColor.DARK_GRAY + + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(msg.getContentDisplay()); + logmessage.append(lm); - ComponentBuilder builder = new ComponentBuilder(message.toString()); if (!msg.getAttachments().isEmpty()) { - for (Message.Attachment attachment : msg.getAttachments()) - { - if (attachment.getUrl() == null) - { - continue; - } + + logmessage.append(mediamessage); // Actually for logging... - 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 - } } + FLog.info(logmessage.toString()); - for (Player player : Bukkit.getOnlinePlayers()) + Bukkit.getOnlinePlayers().stream().filter(player -> TotalFreedomMod.getPlugin().al.isAdmin(player)).forEach(player -> { - if (TotalFreedomMod.getPlugin().al.isAdmin(player)) + StringBuilder message = new StringBuilder(ChatColor.DARK_GRAY + "[" + ChatColor.DARK_AQUA + "Discord" + ChatColor.DARK_GRAY + "] " + ChatColor.RESET); + + ComponentBuilder builder = new ComponentBuilder(message.toString()); + + Admin admin = TotalFreedomMod.getPlugin().al.getAdmin(player); + String format = admin.getAcFormat(); + if (!Strings.isNullOrEmpty(format)) { - player.spigot().sendMessage(builder.create()); + Displayable display = TotalFreedomMod.getPlugin().rm.getDisplay(player); + net.md_5.bungee.api.ChatColor color = getColor(display); + String m = format.replace("%name%", member.getEffectiveName()) + .replace("%rank%", getDisplay(member)) + .replace("%rankcolor%", color.toString()) + .replace("%msg%", FUtil.colorize(msg.getContentDisplay())); + builder.append(FUtil.colorize(m)); + } - } - FLog.info(message.toString()); + else + { + String m = ChatColor.DARK_RED + member.getEffectiveName() + " " + + ChatColor.DARK_GRAY + tag + ChatColor.DARK_GRAY + + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(msg.getContentDisplay()); + builder.append(m); + } + + if (!msg.getAttachments().isEmpty()) + { + for (Message.Attachment attachment : msg.getAttachments()) + { + TextComponent text = new TextComponent(mediamessage); + text.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, attachment.getUrl())); + builder.append(text); + } + } + player.spigot().sendMessage(builder.create()); + + }); } } @@ -132,4 +137,4 @@ public class DiscordToAdminChatListener extends ListenerAdapter return Rank.OP.getAbbr(); } } -} \ No newline at end of file +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java b/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java index 15ebe5e4..d246b19f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java @@ -61,6 +61,11 @@ public class RankManager extends FreedomService { return Title.EXECUTIVE; } + + if (ConfigEntry.SERVER_ASSISTANT_EXECUTIVES.getList().contains(player.getName()) && plugin.al.isAdmin(player)) + { + return Title.ASSTEXEC; + } if (plugin.al.isVerifiedAdmin(player)) { @@ -313,4 +318,4 @@ public class RankManager extends FreedomService team.addPlayer(player); } } -} \ No newline at end of file +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java index 83d3c949..b6e5390f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java @@ -139,7 +139,7 @@ public class FUtil public static boolean isExecutive(String name) { - return ConfigEntry.SERVER_OWNERS.getStringList().contains(name) || ConfigEntry.SERVER_EXECUTIVES.getStringList().contains(name) || ConfigEntry.SERVER_ASSTISTANT_EXECUTIVES.getStringList().contains(name); + return ConfigEntry.SERVER_OWNERS.getStringList().contains(name) || ConfigEntry.SERVER_EXECUTIVES.getStringList().contains(name) || ConfigEntry.SERVER_ASSISTANT_EXECUTIVES.getStringList().contains(name); } public static boolean isDeveloper(Player player) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/world/WorldRestrictions.java b/src/main/java/me/totalfreedom/totalfreedommod/world/WorldRestrictions.java index df5e6f0a..f1869635 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/world/WorldRestrictions.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/world/WorldRestrictions.java @@ -139,7 +139,7 @@ public class WorldRestrictions extends FreedomService event.setCancelled(true); } - if (command.equals("coreprotect") || command.equals("core") || command.equals("co")) + if (command.equalsIgnoreCase("coreprotect") || command.equalsIgnoreCase("core") || command.equalsIgnoreCase("co")) { player.sendMessage(ChatColor.RED + "Only " + allowed + " are allowed to use CoreProtect here."); event.setCancelled(true);