From 337f8bccd9670ebbc6f8495d42891a8f3da248e8 Mon Sep 17 00:00:00 2001 From: AlexTheCoder Date: Wed, 5 Sep 2018 03:24:13 -0500 Subject: [PATCH] Patch a bug with friends where received requests counted towards player totals and tweak website linking (new forum tag ids, patch usernames with spaces breaking API calls) --- .../core/account/permissions/PermissionGroup.java | 8 ++++---- .../src/mineplex/core/friend/FriendManager.java | 2 +- .../mineplex/core/website/WebsiteLinkManager.java | 14 ++++++++++---- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/account/permissions/PermissionGroup.java b/Plugins/Mineplex.Core/src/mineplex/core/account/permissions/PermissionGroup.java index 5915dff3f..23f2c084b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/account/permissions/PermissionGroup.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/account/permissions/PermissionGroup.java @@ -51,13 +51,13 @@ public enum PermissionGroup QAT("qat", "", "Members of the Quality Assurance Testing team.", ChatColor.WHITE, -1, false), QA("qa", "", "Members of the Quality Assurance team.", ChatColor.WHITE, 50, false, PermissionGroup.QAT), QAM("qam", "", "Managers of the Quality Assurance team.", ChatColor.WHITE, 50, false, PermissionGroup.QA), - CMOD("cmod", "", "Members of the Clans Management team.", ChatColor.WHITE, 46, false), + CMOD("cmod", "", "Members of the Clans Management team.", ChatColor.WHITE, 45, false), MA("ma", "", "Members of the Mentoring Assistance team.", ChatColor.WHITE, -1, false), - STM("stm", "", "Members of the Staff Management team.", ChatColor.WHITE, -1, false, PermissionGroup.MA), - EVENTMOD("eventmod", "", "Members of the Event Management team.", ChatColor.WHITE, -1, false), + STM("stm", "", "Members of the Staff Management team.", ChatColor.WHITE, 115, false, PermissionGroup.MA), + EVENTMOD("eventmod", "", "Members of the Event Management team.", ChatColor.WHITE, 109, false), CMA("cma", "", "Members of the Clans Management Assistance team.", ChatColor.WHITE, -1, false), RC("rc", "", "Members of the Rules Committee team.", ChatColor.WHITE, 35, false), - FN("fn", "", "Members of the Forum Ninja team", ChatColor.WHITE, -1, false) + FN("fn", "", "Members of the Forum Ninja team", ChatColor.WHITE, 48, false) ; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/friend/FriendManager.java b/Plugins/Mineplex.Core/src/mineplex/core/friend/FriendManager.java index 099cf2ecb..e050117b1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/friend/FriendManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/friend/FriendManager.java @@ -332,7 +332,7 @@ public class FriendManager extends MiniDbClientPlugin> List statuses = Get(caller); - if (statuses.size() >= MAX_FRIENDS) + if (statuses.stream().filter(s -> s.Status == FriendStatusType.Accepted || s.Status == FriendStatusType.Sent).count() >= MAX_FRIENDS) { caller.sendMessage(F.main(getName(), "You have reached the maximum amount of friends.")); return; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java b/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java index 0d4e69c3c..9e3dc5e68 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/website/WebsiteLinkManager.java @@ -22,6 +22,7 @@ import java.util.TimeZone; import java.util.UUID; import java.util.function.BiConsumer; import java.util.function.Consumer; +import java.util.regex.Pattern; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; @@ -83,6 +84,11 @@ public class WebsiteLinkManager extends MiniDbClientPlugin PermissionGroup.ADMIN.setPermission(Perm.UNLINK_COMMAND, true, true); } + private String makeUsernameURL(String username) + { + return username.replaceAll(Pattern.quote(" "), "%20"); + } + public void unlink(Player sender, String target) { getClientManager().getOrLoadClient(target, client -> @@ -117,7 +123,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin remove.add(group.getForumId()); } } - String call = "action=editUser&user=" + user.username + "&custom_fields=mcAcctIdPC="; + String call = "action=editUser&user=" + makeUsernameURL(user.username) + "&custom_fields=mcAcctIdPC="; doAPICall(call, err -> { runSync(() -> UtilPlayer.message(sender, F.main(getName(), F.name(target) + " was not able to be unlinked at this time!"))); @@ -231,7 +237,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin boolean success = c.prepareStatement("INSERT INTO forumLink (accountId, userId, powerPlayStatus) VALUES (" + accountId + ", " + data.user_id + ", " + powerPlay + ");").executeUpdate() > 0; if (success) { - String call = "action=editUser&user=" + data.username + "&custom_fields=mcAcctIdPC=" + accountId; + String call = "action=editUser&user=" + makeUsernameURL(data.username) + "&custom_fields=mcAcctIdPC=" + accountId; List adding = new ArrayList<>(); adding.add(91); if (group.getForumId() != -1) @@ -309,7 +315,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin { return; } - String callBase = "action=editUser&user=" + data.username; + String callBase = "action=editUser&user=" + makeUsernameURL(data.username); String groups = ""; for (int groupId : data.secondary_group_ids) { @@ -611,7 +617,7 @@ public class WebsiteLinkManager extends MiniDbClientPlugin Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC")); int offset = 100000000; - StringBuilder sb = new StringBuilder(cal.get(Calendar.DAY_OF_YEAR) + ""); + StringBuilder sb = new StringBuilder(String.valueOf(cal.get(Calendar.DAY_OF_YEAR))); while (sb.length() < 3) { sb.insert(0, "0");