Skip to content

Commit 1a03733

Browse files
committed
Fix socialspy toggle breaking on restarts
1 parent 3a2acd0 commit 1a03733

10 files changed

Lines changed: 176 additions & 165 deletions

File tree

src/main/java/simplexity/simplepms/commands/Blocklist.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import simplexity.simplepms.SimplePMs;
1212
import simplexity.simplepms.config.Message;
1313
import simplexity.simplepms.objects.PlayerBlock;
14-
import simplexity.simplepms.saving.SqlHandler;
14+
import simplexity.simplepms.saving.Cache;
1515

1616
import java.util.List;
1717
import java.util.UUID;
@@ -27,7 +27,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
2727
return false;
2828
}
2929
UUID uuid = player.getUniqueId();
30-
List<PlayerBlock> blockList = SqlHandler.getInstance().getBlockList(uuid);
30+
List<PlayerBlock> blockList = Cache.getBlockList(uuid);
3131
if (blockList.isEmpty()) {
3232
player.sendRichMessage(Message.BLOCKLIST_EMPTY.getMessage());
3333
return true;

src/main/java/simplexity/simplepms/commands/MessageToggle.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.jetbrains.annotations.NotNull;
88
import simplexity.simplepms.config.Message;
99
import simplexity.simplepms.objects.PlayerSettings;
10+
import simplexity.simplepms.saving.Cache;
1011
import simplexity.simplepms.saving.SqlHandler;
1112

1213
import java.util.UUID;
@@ -21,11 +22,11 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
2122
UUID uuid = player.getUniqueId();
2223
PlayerSettings playerSettings = SqlHandler.getInstance().getSettings(uuid);
2324
if (playerSettings.messagesDisabled()) {
24-
SqlHandler.getInstance().setMessagesDisabled(uuid, false);
25+
Cache.updateMessageSettings(uuid, false);
2526
player.sendRichMessage(Message.MESSAGES_ENABLED.getMessage());
2627
return true;
2728
}
28-
SqlHandler.getInstance().setMessagesDisabled(uuid, true);
29+
Cache.updateMessageSettings(uuid, false);
2930
player.sendRichMessage(Message.MESSAGES_DISABLED.getMessage());
3031
return true;
3132
}

src/main/java/simplexity/simplepms/commands/SocialSpy.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import simplexity.simplepms.SimplePMs;
99
import simplexity.simplepms.config.Message;
1010
import simplexity.simplepms.objects.PlayerSettings;
11+
import simplexity.simplepms.saving.Cache;
1112
import simplexity.simplepms.saving.SqlHandler;
1213

1314
import java.util.UUID;
@@ -24,12 +25,12 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
2425
UUID uuid = player.getUniqueId();
2526
PlayerSettings settings = SqlHandler.getInstance().getSettings(uuid);
2627
if (settings == null || settings.socialSpyEnabled()) {
27-
SqlHandler.getInstance().setSocialSpyEnabled(uuid, false);
28+
Cache.updateSocialSpySettings(uuid, false);
2829
sender.sendRichMessage(Message.SOCIAL_SPY_DISABLED.getMessage());
2930
SimplePMs.getSpyingPlayers().remove(player);
3031
return true;
3132
}
32-
SqlHandler.getInstance().setSocialSpyEnabled(uuid, true);
33+
Cache.updateSocialSpySettings(uuid, true);
3334
sender.sendRichMessage(Message.SOCIAL_SPY_ENABLED.getMessage());
3435
SimplePMs.getSpyingPlayers().add(player);
3536
return true;

src/main/java/simplexity/simplepms/commands/Unblock.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.jetbrains.annotations.Nullable;
1010
import simplexity.simplepms.config.Message;
1111
import simplexity.simplepms.objects.PlayerBlock;
12+
import simplexity.simplepms.saving.Cache;
1213
import simplexity.simplepms.saving.SqlHandler;
1314

1415
import java.util.ArrayList;
@@ -27,7 +28,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
2728
return false;
2829
}
2930
String blockString = args[0];
30-
List<PlayerBlock> playerBlockList = SqlHandler.getInstance().getBlockList(player.getUniqueId());
31+
List<PlayerBlock> playerBlockList = Cache.getBlockList(player.getUniqueId());
3132
UUID blockedPlayerUUID = blockedPlayerUUID(blockString, playerBlockList);
3233
if (blockedPlayerUUID == null) {
3334
player.sendRichMessage(Message.PLAYER_NOT_BLOCKED.getMessage());
@@ -54,7 +55,7 @@ private UUID blockedPlayerUUID(String playerBlocked, List<PlayerBlock> playerBlo
5455
return null;
5556
}
5657
ArrayList<String> blocked = new ArrayList<>();
57-
for (PlayerBlock block : SqlHandler.getInstance().getBlockList(player.getUniqueId())) {
58+
for (PlayerBlock block : Cache.getBlockList(player.getUniqueId())) {
5859
blocked.add(block.blockedPlayerName());
5960
}
6061
return blocked;

src/main/java/simplexity/simplepms/config/Message.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public enum Message {
1010
FORMAT_SENT("plugin.format.sent", "<gray>[<yellow>You</yellow> <gold>→</gold> <green><target></green>]</gray><reset> <message>"),
1111
FORMAT_RECEIVED("plugin.format.received", "<gray>[<green><initiator></green> <gold>→</gold> <yellow>You</yellow>]</gray><reset> <message>"),
1212
FORMAT_SOCIAL_SPY("plugin.format.social-spy", "<dark_gray>[<gray>Spy</gray>]</dark_gray> <gray><initiator> → <target></gray> <dark_gray>»</dark_gray> <gray><message></gray>"),
13-
FORMAT_COMMAND_SPY("plugin.format.command-spy", "<dark_gray>[<gray>Spy</gray>]</dark_gray> <gray><initiator> used a tracked command: <yellow>[<command>]</yellow>. <gray>Full command: <message></gray>"),
13+
FORMAT_COMMAND_SPY("plugin.format.command-spy", "<dark_gray>[<gray>Spy</gray>]</dark_gray> <gray><initiator> used <yellow>[<gray><message></gray>]</yellow>"),
1414
SOCIAL_SPY_ENABLED("plugin.social-spy.enabled", "<dark_gray>[<#989898>PM-Spy</#989898>]</dark_gray> <green>PM Spy has been enabled</green>"),
1515
SOCIAL_SPY_DISABLED("plugin.social-spy.disabled", "<dark_gray>[<#989898>PM-Spy</#989898>]</dark_gray> <gray>PM Spy has been disabled</gray>"),
1616
MESSAGES_ENABLED("plugin.message.toggle-enabled", "<green>You are now allowing direct messages</green>"),

src/main/java/simplexity/simplepms/logic/PreProcessing.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import simplexity.simplepms.events.PrivateMessageEvent;
1010
import simplexity.simplepms.objects.PlayerBlock;
1111
import simplexity.simplepms.objects.PlayerSettings;
12-
import simplexity.simplepms.saving.SqlHandler;
12+
import simplexity.simplepms.saving.Cache;
1313

1414
import java.util.HashMap;
1515
import java.util.List;
@@ -87,15 +87,15 @@ private boolean canSendToNonPlayer(CommandSender sender, CommandSender recipient
8787
}
8888

8989
public boolean messagesDisabled(Player player) {
90-
PlayerSettings playerSettings = SqlHandler.playerSettings.get(player.getUniqueId());
90+
PlayerSettings playerSettings = Cache.playerSettings.get(player.getUniqueId());
9191
if (playerSettings == null) {
9292
return false;
9393
}
9494
return playerSettings.messagesDisabled();
9595
}
9696

9797
public boolean userBlocked(Player player1, Player player2) {
98-
List<PlayerBlock> playerBlocks = SqlHandler.blockList.get(player1.getUniqueId());
98+
List<PlayerBlock> playerBlocks = Cache.blockList.get(player1.getUniqueId());
9999
if (playerBlocks == null) {
100100
return false;
101101
}

src/main/java/simplexity/simplepms/objects/PlayerSettings.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ public PlayerSettings(UUID playerUUID, boolean socialSpyEnabled, boolean message
1313
this.messagesDisabled = messagesDisabled;
1414
}
1515

16+
public PlayerSettings(UUID playerUUID) {
17+
this.playerUUID = playerUUID;
18+
this.socialSpyEnabled = false;
19+
this.messagesDisabled = false;
20+
}
21+
1622
public String toString() {
1723
return "Player UUID: " + playerUUID.toString()
1824
+ "\nSocial Spy Enabled: " + socialSpyEnabled
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package simplexity.simplepms.saving;
2+
3+
import simplexity.simplepms.objects.PlayerBlock;
4+
import simplexity.simplepms.objects.PlayerSettings;
5+
6+
import java.util.HashMap;
7+
import java.util.List;
8+
import java.util.UUID;
9+
10+
public class Cache {
11+
public static final HashMap<UUID, List<PlayerBlock>> blockList = new HashMap<>();
12+
public static final HashMap<UUID, PlayerSettings> playerSettings = new HashMap<>();
13+
14+
public static List<PlayerBlock> getBlockList(UUID uuid) {
15+
if (blockList.containsKey(uuid)) {
16+
return blockList.get(uuid);
17+
}
18+
List<PlayerBlock> blockedPlayers = SqlHandler.getInstance().getBlockedPlayers(uuid);
19+
blockList.put(uuid, blockedPlayers);
20+
return blockedPlayers;
21+
}
22+
23+
public static PlayerSettings getPlayerSettings(UUID uuid) {
24+
if (playerSettings.containsKey(uuid)) {
25+
return playerSettings.get(uuid);
26+
}
27+
PlayerSettings settings = SqlHandler.getInstance().getSettings(uuid);
28+
playerSettings.put(uuid, settings);
29+
return settings;
30+
}
31+
32+
public static void updateSocialSpySettings(UUID uuid, boolean socialSpy){
33+
PlayerSettings settings = getPlayerSettings(uuid);
34+
settings.setSocialSpyEnabled(socialSpy);
35+
playerSettings.put(uuid, settings);
36+
SqlHandler.getInstance().updateSettings(uuid, settings);
37+
}
38+
39+
public static void updateMessageSettings(UUID uuid, boolean messageDisabled){
40+
PlayerSettings settings = getPlayerSettings(uuid);
41+
settings.setMessagesDisabled(messageDisabled);
42+
playerSettings.put(uuid, settings);
43+
SqlHandler.getInstance().updateSettings(uuid, settings);
44+
}
45+
46+
public static void addBlockedUser(UUID uuid, PlayerBlock playerBlock){
47+
List<PlayerBlock> blockedPlayers = getBlockList(uuid);
48+
blockedPlayers.removeIf( block -> {
49+
UUID blockedUUID = playerBlock.blockedPlayerUUID();
50+
UUID currentUUID = block.blockedPlayerUUID();
51+
return currentUUID.equals(blockedUUID);
52+
});
53+
blockedPlayers.add(playerBlock);
54+
blockList.put(uuid, blockedPlayers);
55+
SqlHandler.getInstance().addBlockedPlayer(uuid, playerBlock.blockedPlayerUUID(), playerBlock.blockReason());
56+
}
57+
58+
public static void removeBlockedUser(UUID uuid, PlayerBlock playerBlock){
59+
List<PlayerBlock> blockedPlayers = getBlockList(uuid);
60+
blockedPlayers.removeIf( block -> {
61+
UUID blockedUUID = playerBlock.blockedPlayerUUID();
62+
UUID currentUUID = block.blockedPlayerUUID();
63+
return currentUUID.equals(blockedUUID);
64+
});
65+
blockList.put(uuid, blockedPlayers);
66+
SqlHandler.getInstance().removeBlockedPlayer(uuid, playerBlock.blockedPlayerUUID());
67+
}
68+
69+
}

0 commit comments

Comments
 (0)