Skip to content

Commit 7d06bff

Browse files
committed
Once again, someone made changes and didn't commit them. Was it me? I don't know.
1 parent 46adc70 commit 7d06bff

24 files changed

+475
-699
lines changed

notes.txt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
private boolean isVanished(Player player){
2+
for (MetadataValue meta : player.getMetadata("vanished")) {
3+
if (meta.asBoolean()) {
4+
return true;
5+
}
6+
}
7+
return false;
8+
}
9+
10+
public TagResolver papiTag(final Player player) {
11+
return TagResolver.resolver("papi", (argumentQueue, context) -> {
12+
final String papiPlaceholder = argumentQueue.popOr(Message.ERROR_PAPI_NEEDS_ARGUMENT.getMessage()).value();
13+
final String parsedPlaceholder = PlaceholderAPI.setPlaceholders(player, '%' + papiPlaceholder + '%');
14+
final Component componentPlaceholder = LegacyComponentSerializer.legacySection().deserialize(parsedPlaceholder);
15+
return Tag.selfClosingInserting(componentPlaceholder);
16+
});
17+
}
18+
19+
/**
20+
* Internal key used for keeping track of a player's spy toggle state
21+
*/
22+
SPY_TOGGLE(new NamespacedKey(SimplePMs.getInstance(), "spy-toggle")),
23+
/**
24+
* Internal key used for keeping track of who a player last messaged
25+
*/
26+
LAST_MESSAGED(new NamespacedKey(SimplePMs.getInstance(), "last-messaged"));

pom.xml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66

77
<groupId>simplexity</groupId>
88
<artifactId>SimplePMs</artifactId>
9-
<version>1.0.3</version>
9+
<version>2.0.0</version>
1010
<packaging>jar</packaging>
1111

1212
<name>SimplePMs</name>
1313

1414
<description>Plugin focused on simple private messaging.</description>
1515
<properties>
16-
<java.version>1.8</java.version>
16+
<java.version>17</java.version>
1717
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1818
</properties>
1919

@@ -80,7 +80,7 @@
8080
<dependency>
8181
<groupId>io.papermc.paper</groupId>
8282
<artifactId>paper-api</artifactId>
83-
<version>1.18.2-R0.1-SNAPSHOT</version>
83+
<version>1.19.4-R0.1-SNAPSHOT</version>
8484
<scope>provided</scope>
8585
</dependency>
8686
<dependency>
@@ -89,5 +89,10 @@
8989
<version>2.11.3</version>
9090
<scope>provided</scope>
9191
</dependency>
92+
<dependency>
93+
<groupId>org.xerial</groupId>
94+
<artifactId>sqlite-jdbc</artifactId>
95+
<version>3.45.1.0</version>
96+
</dependency>
9297
</dependencies>
9398
</project>

src/main/java/simplexity/simplepms/SimplePMs.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import simplexity.simplepms.commands.ReloadCommand;
99
import simplexity.simplepms.commands.ReplyCommand;
1010
import simplexity.simplepms.commands.SocialSpyCommand;
11-
import simplexity.simplepms.config.LocaleConfig;
11+
import simplexity.simplepms.config.LocaleHandler;
1212
import simplexity.simplepms.listeners.LoginListener;
1313

1414
import java.util.HashSet;
@@ -30,7 +30,7 @@ public void onEnable() {
3030
} else {
3131
this.getLogger().info("You do not have PlaceholderAPI loaded on your server. Any PlaceholderAPI placeholders used in this plugin's messages, will not work.");
3232
}
33-
LocaleConfig.getInstance().reloadLocale();
33+
LocaleHandler.getInstance().reloadLocale();
3434
}
3535

3636
public static MiniMessage getMiniMessage() {
Lines changed: 21 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,51 @@
11
package simplexity.simplepms.commands;
22

3-
import org.bukkit.Bukkit;
43
import org.bukkit.command.Command;
54
import org.bukkit.command.CommandSender;
65
import org.bukkit.command.TabExecutor;
76
import org.bukkit.entity.Player;
87
import org.jetbrains.annotations.NotNull;
98
import org.jetbrains.annotations.Nullable;
10-
import simplexity.simplepms.handling.MessageHandling;
11-
import simplexity.simplepms.handling.Resolvers;
12-
import simplexity.simplepms.utils.Message;
13-
import simplexity.simplepms.utils.Perm;
9+
import simplexity.simplepms.config.LocaleHandler;
1410

15-
import java.util.ArrayList;
16-
import java.util.Arrays;
1711
import java.util.List;
18-
import java.util.stream.Collectors;
1912

2013
public class PrivateMessage implements TabExecutor {
2114

22-
public static final ArrayList<String> blankList = new ArrayList<>();
2315
@Override
2416
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
25-
if (args.length == 0) {
26-
sender.sendMessage(Resolvers.getInstance().parsePluginPrefix(Message.ERROR_NO_RECIPIENT_PROVIDED.getMessage()));
27-
return true;
28-
}
29-
if (args.length == 1) {
30-
sender.sendMessage(Resolvers.getInstance().parsePluginPrefix(Message.ERROR_BLANK_MESSAGE.getMessage()));
31-
return true;
32-
}
33-
if (!sender.hasPermission(Perm.SEND_MESSAGE.getPerm())) {
34-
sender.sendMessage(Resolvers.getInstance().parsePluginPrefix(Message.ERROR_NO_PERMISSION.getMessage()));
17+
if (args.length < 1) {
18+
sender.sendMessage(Util.parseMessage(LocaleHandler.getInstance().getErrorNoRecipientProvided(), sender, null, null));
3519
return false;
3620
}
37-
String message = String.join(" ", Arrays.stream(args).skip(1).collect(Collectors.joining(" ")));
38-
if (args[0].equalsIgnoreCase(Message.PDC_CONSOLE.getMessage())) {
39-
MessageHandling.getInstance().playerSenderConsoleReceiver(sender, message);
40-
return true;
41-
}
42-
Player recipient = Bukkit.getPlayer(args[0]);
43-
if (recipient == null) {
44-
sender.sendMessage(Resolvers.getInstance().parsePluginPrefixAndString(Message.ERROR_RECIPIENT_OFFLINE.getMessage(), "receiver", args[0]));
21+
if (args.length < 2) {
22+
sender.sendMessage(Util.parseMessage(LocaleHandler.getInstance().getErrorBlankMessage(), sender, null, null));
4523
return false;
4624
}
47-
if (!recipient.hasPermission(Perm.RECEIVE_MESSAGE.getPerm()) && !sender.hasPermission(Perm.RECEIVE_OVERRIDE.getPerm())) {
48-
sender.sendMessage(Resolvers.getInstance().parsePluginPrefix(Message.ERROR_RECIPIENT_NO_PERMS.getMessage()));
25+
String recipientName = args[0];
26+
Player providedPlayer = Util.getPlayer(recipientName);
27+
if (providedPlayer == null) {
28+
sender.sendMessage(Util.parseMessage(LocaleHandler.getInstance().getErrorRecipientOffline(), sender, null, null));
4929
return false;
5030
}
51-
if (sender instanceof Player player){
52-
MessageHandling.getInstance().playerSenderAndReceiver(player, recipient, message);
53-
} else {
54-
MessageHandling.getInstance().consoleSenderPlayerReceiver(sender, recipient, message);
31+
StringBuilder message = new StringBuilder();
32+
for (int i = 1; i < args.length; i++) {
33+
message.append(args[i]).append(" ");
5534
}
56-
return true;
35+
String fullMessage = message.toString().trim();
36+
if (fullMessage.isEmpty()) {
37+
sender.sendMessage(Util.parseMessage(LocaleHandler.getInstance().getErrorBlankMessage(), sender, null, null));
38+
return false;
39+
}
40+
providedPlayer.sendMessage(Util.parseMessage(LocaleHandler.getInstance().getMessageReceived(), sender, providedPlayer, fullMessage));
41+
sender.sendMessage(Util.parseMessage(LocaleHandler.getInstance().getMessageSent(), sender, providedPlayer, fullMessage));
42+
return false;
5743
}
5844

5945

60-
6146
@Override
6247
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
63-
if (args.length > 1) return blankList;
48+
if (args.length > 1) return List.of();
6449
return null;
6550
}
6651
}

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

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,17 @@
11
package simplexity.simplepms.commands;
22

33
import net.kyori.adventure.text.minimessage.MiniMessage;
4-
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
54
import org.bukkit.command.Command;
65
import org.bukkit.command.CommandExecutor;
76
import org.bukkit.command.CommandSender;
87
import org.jetbrains.annotations.NotNull;
98
import simplexity.simplepms.SimplePMs;
10-
import simplexity.simplepms.config.LocaleConfig;
11-
import simplexity.simplepms.utils.Message;
12-
import simplexity.simplepms.utils.Perm;
139

1410
public class ReloadCommand implements CommandExecutor {
1511
MiniMessage miniMessage = SimplePMs.getMiniMessage();
1612

1713
@Override
1814
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
19-
if (!sender.hasPermission(Perm.RELOAD_CONFIG.getPerm())) {
20-
sender.sendMessage(miniMessage.deserialize(Message.ERROR_NO_PERMISSION.getMessage(),
21-
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage())));
22-
return false;
23-
}
24-
LocaleConfig.getInstance().reloadLocale();
25-
sender.sendMessage(miniMessage.deserialize(Message.CONFIG_RELOADED.getMessage(),
26-
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage())));
2715
return false;
2816
}
2917

Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,22 @@
11
package simplexity.simplepms.commands;
22

3-
import org.bukkit.Bukkit;
43
import org.bukkit.NamespacedKey;
54
import org.bukkit.command.Command;
65
import org.bukkit.command.CommandSender;
76
import org.bukkit.command.TabExecutor;
8-
import org.bukkit.entity.Player;
9-
import org.bukkit.persistence.PersistentDataContainer;
10-
import org.bukkit.persistence.PersistentDataType;
117
import org.jetbrains.annotations.NotNull;
128
import org.jetbrains.annotations.Nullable;
13-
import simplexity.simplepms.handling.MessageHandling;
14-
import simplexity.simplepms.handling.Resolvers;
15-
import simplexity.simplepms.utils.Message;
16-
import simplexity.simplepms.utils.Perm;
17-
import simplexity.simplepms.utils.SPMKey;
189

1910
import java.util.List;
2011

2112
public class ReplyCommand implements TabExecutor {
22-
private final NamespacedKey lastMessaged = SPMKey.LAST_MESSAGED.getKey();
2313
@Override
2414
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
25-
if (args.length == 0) {
26-
sender.sendMessage(Resolvers.getInstance().parsePluginPrefix(Message.ERROR_BLANK_MESSAGE.getMessage()));
27-
return false;
28-
}
29-
if (!(sender instanceof Player playerInitiator)) {
30-
sender.sendMessage(Resolvers.getInstance().parsePluginPrefix(Message.ERROR_PLAYER_COMMAND.getMessage()));
31-
return false;
32-
}
33-
PersistentDataContainer playerPDC = playerInitiator.getPersistentDataContainer();
34-
String lastMessagedPlayer = playerPDC.getOrDefault(lastMessaged, PersistentDataType.STRING, "");
35-
String message = String.join(" ", args);
36-
if (lastMessagedPlayer.equalsIgnoreCase(Message.PDC_CONSOLE.getMessage())) {
37-
MessageHandling.getInstance().playerSenderConsoleReceiver(playerInitiator, message);
38-
return true;
39-
}
40-
Player recipient = Bukkit.getServer().getPlayer(lastMessagedPlayer);
41-
if (recipient == null) {
42-
playerInitiator.sendMessage(Resolvers.getInstance().parsePluginPrefixAndString(Message.NO_USER_TO_REPLY.getMessage(), "receiver", lastMessagedPlayer));
43-
return false;
44-
}
45-
if (!recipient.isOnline()) {
46-
playerInitiator.sendMessage(Resolvers.getInstance().parsePluginPrefixAndString(Message.ERROR_RECIPIENT_OFFLINE.getMessage(), "receiver", lastMessagedPlayer));
47-
}
48-
if (!recipient.hasPermission(Perm.RECEIVE_MESSAGE.getPerm()) && !sender.hasPermission(Perm.RECEIVE_OVERRIDE.getPerm())) {
49-
sender.sendMessage(Resolvers.getInstance().parsePluginPrefix(Message.ERROR_RECIPIENT_NO_PERMS.getMessage()));
50-
return false;
51-
}
52-
MessageHandling.getInstance().playerSenderAndReceiver(playerInitiator, recipient, message);
5315
return true;
5416
}
5517

5618
@Override
5719
public @Nullable List<String> onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
58-
return PrivateMessage.blankList;
20+
return List.of();
5921
}
6022
}
Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,15 @@
11
package simplexity.simplepms.commands;
22

3-
import org.bukkit.NamespacedKey;
43
import org.bukkit.command.Command;
54
import org.bukkit.command.CommandExecutor;
65
import org.bukkit.command.CommandSender;
7-
import org.bukkit.entity.Player;
8-
import org.bukkit.persistence.PersistentDataContainer;
9-
import org.bukkit.persistence.PersistentDataType;
106
import org.jetbrains.annotations.NotNull;
11-
import simplexity.simplepms.SimplePMs;
12-
import simplexity.simplepms.handling.Resolvers;
13-
import simplexity.simplepms.utils.Message;
14-
import simplexity.simplepms.utils.SPMKey;
15-
16-
import java.util.HashSet;
177

188
public class SocialSpyCommand implements CommandExecutor {
199

20-
private final HashSet<Player> spyingPlayers = SimplePMs.getSpyingPlayers();
21-
private final NamespacedKey spyToggle = SPMKey.SPY_TOGGLE.getKey();
22-
2310

2411
@Override
2512
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
26-
//Console cannot toggle social spy
27-
if (!(sender instanceof Player player)) {
28-
sender.sendMessage(Resolvers.getInstance().parsePluginPrefix(Message.ERROR_PLAYER_COMMAND.getMessage()));
29-
return false;
30-
}
31-
PersistentDataContainer playerPDC = player.getPersistentDataContainer();
32-
byte toggleValue = playerPDC.getOrDefault(spyToggle, PersistentDataType.BYTE, (byte)0);
33-
//If social spy is not enabled, set enabled, add player to recieving set message the player and return
34-
if (toggleValue == (byte)0) {
35-
playerPDC.set(spyToggle, PersistentDataType.BYTE, (byte)1);
36-
spyingPlayers.add(player);
37-
player.sendMessage(SimplePMs.getMiniMessage().deserialize(Message.SPY_ENABLED.getMessage()));
38-
return true;
39-
}
40-
//If social spy was enabled, disable, remove player from the set if they are there, message the player, and return
41-
if (toggleValue == (byte)1) {
42-
playerPDC.set(spyToggle, PersistentDataType.BYTE, (byte) 0);
43-
spyingPlayers.remove(player);
44-
player.sendMessage(SimplePMs.getMiniMessage().deserialize(Message.SPY_DISABLED.getMessage()));
45-
return true;
46-
}
4713
return false;
4814
}
4915
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package simplexity.simplepms.commands;
2+
3+
import me.clip.placeholderapi.PlaceholderAPI;
4+
import net.kyori.adventure.text.Component;
5+
import net.kyori.adventure.text.minimessage.MiniMessage;
6+
import net.kyori.adventure.text.minimessage.tag.Tag;
7+
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
8+
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
9+
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
10+
import org.bukkit.command.CommandSender;
11+
import org.bukkit.entity.Player;
12+
import simplexity.simplepms.SimplePMs;
13+
import simplexity.simplepms.config.LocaleHandler;
14+
15+
public class Util {
16+
private static final MiniMessage miniMessage = SimplePMs.getMiniMessage();
17+
18+
public static Component parseMessage(String message, CommandSender sender, CommandSender otherSender, String value) {
19+
Component senderName;
20+
Component otherSenderName;
21+
Player playerSender = null;
22+
Player otherPlayerSender = null;
23+
if (sender instanceof Player) {
24+
playerSender = (Player) sender;
25+
senderName = playerSender.displayName();
26+
} else {
27+
senderName = Component.text(sender.getName());
28+
}
29+
if (otherSender instanceof Player) {
30+
otherPlayerSender = (Player) otherSender;
31+
otherSenderName = otherPlayerSender.displayName();
32+
} else {
33+
otherSenderName = Component.text(otherSender.getName());
34+
}
35+
if (SimplePMs.isPapiEnabled()) {
36+
return miniMessage.deserialize(message,
37+
Placeholder.parsed("prefix", LocaleHandler.getInstance().getPluginPrefix()),
38+
Placeholder.component("initiator", senderName),
39+
Placeholder.component("target", otherSenderName),
40+
Placeholder.parsed("value", value),
41+
papiTag(playerSender),
42+
papiTag(otherPlayerSender));
43+
} else {
44+
return miniMessage.deserialize(message,
45+
Placeholder.parsed("prefix", LocaleHandler.getInstance().getPluginPrefix()),
46+
Placeholder.component("initiator", senderName),
47+
Placeholder.component("target", otherSenderName),
48+
Placeholder.parsed("value", value));
49+
}
50+
}
51+
52+
public static TagResolver papiTag(final Player player) {
53+
return TagResolver.resolver("papi", (argumentQueue, context) -> {
54+
final String papiPlaceholder = argumentQueue.popOr("PLACEHOLDER API NEEDS ARGUMENT").value();
55+
final String parsedPlaceholder = PlaceholderAPI.setPlaceholders(player, '%' + papiPlaceholder + '%');
56+
final Component componentPlaceholder = LegacyComponentSerializer.legacySection().deserialize(parsedPlaceholder);
57+
return Tag.selfClosingInserting(componentPlaceholder);
58+
});
59+
}
60+
61+
public static Player getPlayer(String name) {
62+
return SimplePMs.getInstance().getServer().getPlayer(name);
63+
}
64+
}

0 commit comments

Comments
 (0)