Skip to content

Commit 25e09c0

Browse files
committed
confusion
1 parent fb8e09a commit 25e09c0

File tree

12 files changed

+128
-129
lines changed

12 files changed

+128
-129
lines changed

src/main/java/adhdmc/simplepms/SimplePMs.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public final class SimplePMs extends JavaPlugin {
1919

2020
private static Plugin instance;
2121
private static final MiniMessage miniMessage = MiniMessage.miniMessage();
22-
private boolean papiEnabled = false;
22+
private static boolean papiEnabled = false;
2323

2424
@Override
2525
public void onEnable() {
@@ -31,8 +31,6 @@ public void onEnable() {
3131
} else {
3232
this.getLogger().info("You do not have PlaceholderAPI loaded on your server. Any PlaceholderAPI placeholders used in this plugin's messages, will not work.");
3333
}
34-
this.saveDefaultConfig();
35-
Message.reloadMessages();
3634
}
3735

3836
public static MiniMessage getMiniMessage() {
@@ -43,7 +41,7 @@ public static Plugin getInstance() {
4341
return instance;
4442
}
4543

46-
public boolean isPapiEnabled() {
44+
public static boolean isPapiEnabled() {
4745
return papiEnabled;
4846
}
4947

src/main/java/adhdmc/simplepms/commands/PrivateMessage.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
package adhdmc.simplepms.commands;
22

33
import adhdmc.simplepms.handling.MessageHandling;
4+
import adhdmc.simplepms.handling.Resolvers;
45
import adhdmc.simplepms.utils.*;
56
import org.bukkit.Bukkit;
6-
import org.bukkit.command.Command;
7-
import org.bukkit.command.CommandExecutor;
8-
import org.bukkit.command.CommandSender;
9-
import org.bukkit.command.TabCompleter;
7+
import org.bukkit.command.*;
108
import org.bukkit.entity.Player;
119
import org.jetbrains.annotations.NotNull;
1210
import org.jetbrains.annotations.Nullable;
@@ -16,7 +14,7 @@
1614
import java.util.List;
1715
import java.util.stream.Collectors;
1816

19-
public class PrivateMessage implements CommandExecutor, TabCompleter {
17+
public class PrivateMessage implements TabExecutor {
2018
private static PrivateMessage instance;
2119

2220
public static PrivateMessage getInstance() {
@@ -39,7 +37,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
3937
}
4038
String message = String.join(" ", Arrays.stream(args).skip(1).collect(Collectors.joining(" ")));
4139
if (args[0].equalsIgnoreCase(Message.PDC_CONSOLE.getMessage())) {
42-
MessageHandling.getInstance().consoleReceiver(sender, message);
40+
MessageHandling.getInstance().playerSenderConsoleReceiver(sender, message);
4341
return true;
4442
}
4543
Player recipient = Bukkit.getPlayer(args[0]);
@@ -50,7 +48,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
5048
if (sender instanceof Player player){
5149
MessageHandling.getInstance().playerSenderAndReceiver(player, recipient, message);
5250
} else {
53-
MessageHandling.getInstance().consoleSender(sender, recipient, message);
51+
MessageHandling.getInstance().consoleSenderPlayerReceiver(sender, recipient, message);
5452
}
5553
return true;
5654
}

src/main/java/adhdmc/simplepms/commands/ReplyCommand.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import adhdmc.simplepms.handling.MessageHandling;
55
import adhdmc.simplepms.utils.SPMKey;
66
import adhdmc.simplepms.utils.Message;
7-
import adhdmc.simplepms.utils.Resolvers;
7+
import adhdmc.simplepms.handling.Resolvers;
88
import net.kyori.adventure.text.minimessage.MiniMessage;
99
import org.bukkit.Bukkit;
1010
import org.bukkit.NamespacedKey;
@@ -23,21 +23,18 @@
2323
import java.util.stream.Collectors;
2424

2525
public class ReplyCommand implements TabExecutor {
26-
private final HashSet<Player> spyingPlayers = SimplePMs.getSpyingPlayers();
2726
private final NamespacedKey lastMessaged = SPMKey.LAST_MESSAGED.getKey();
28-
private final Server server = SimplePMs.getInstance().getServer();
29-
private final MiniMessage miniMessage = SimplePMs.getMiniMessage();
3027
@Override
3128
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
3229
if (!(sender instanceof Player playerInitiator)) {
3330
sender.sendMessage(Resolvers.getInstance().parsePluginPrefix(Message.ERROR_PLAYER_COMMAND.getMessage()));
3431
return false;
3532
}
36-
String message = String.join(" ", Arrays.stream(args).skip(1).collect(Collectors.joining(" ")));
3733
PersistentDataContainer playerPDC = playerInitiator.getPersistentDataContainer();
3834
String lastMessagedPlayer = playerPDC.getOrDefault(lastMessaged, PersistentDataType.STRING, "");
35+
String message = String.join(" ", Arrays.stream(args).skip(1).collect(Collectors.joining(" ")));
3936
if (lastMessagedPlayer.equalsIgnoreCase(Message.PDC_CONSOLE.getMessage())) {
40-
MessageHandling.getInstance().consoleReceiver(playerInitiator, message);
37+
MessageHandling.getInstance().playerSenderConsoleReceiver(playerInitiator, message);
4138
return true;
4239
}
4340
Player recipient = Bukkit.getServer().getPlayer(lastMessagedPlayer);

src/main/java/adhdmc/simplepms/commands/SocialSpyCommand.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import adhdmc.simplepms.utils.SPMKey;
55
import adhdmc.simplepms.utils.Message;
66
import adhdmc.simplepms.utils.Perms;
7-
import adhdmc.simplepms.utils.Resolvers;
87
import net.kyori.adventure.text.minimessage.MiniMessage;
98
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
109
import org.bukkit.NamespacedKey;

src/main/java/adhdmc/simplepms/events/PrivateMessageEvent.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.util.HashSet;
1010

1111
public class PrivateMessageEvent extends Event {
12+
private static final HandlerList handlers = new HandlerList();
1213
public PrivateMessageEvent(CommandSender initiator, CommandSender recipient, String messageContent, HashSet<Player> spyingPlayers) {
1314
this.initiator = initiator;
1415
this.recipient = recipient;
@@ -18,7 +19,7 @@ public PrivateMessageEvent(CommandSender initiator, CommandSender recipient, Str
1819

1920
@Override
2021
public @NotNull HandlerList getHandlers() {
21-
return null;
22+
return handlers;
2223
}
2324

2425
private CommandSender initiator;

src/main/java/adhdmc/simplepms/handling/MessageHandling.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import adhdmc.simplepms.events.PrivateMessageEvent;
55
import adhdmc.simplepms.utils.Message;
66
import adhdmc.simplepms.utils.Perms;
7-
import adhdmc.simplepms.utils.Resolvers;
87
import adhdmc.simplepms.utils.SPMKey;
98
import net.kyori.adventure.text.Component;
109
import org.bukkit.Bukkit;
@@ -42,7 +41,7 @@ public void playerSenderAndReceiver(Player initiator, Player recipient, String m
4241
}
4342
}
4443

45-
public void consoleSender(CommandSender initiator, Player recipient, String messageContent) {
44+
public void consoleSenderPlayerReceiver(CommandSender initiator, Player recipient, String messageContent) {
4645
// Call Event
4746
PrivateMessageEvent event = new PrivateMessageEvent(initiator, recipient, messageContent, spyingPlayers);
4847
Bukkit.getServer().getPluginManager().callEvent(event);
@@ -58,7 +57,7 @@ public void consoleSender(CommandSender initiator, Player recipient, String mess
5857
}
5958

6059

61-
public void consoleReceiver(CommandSender initiator, String messageContent) {
60+
public void playerSenderConsoleReceiver(CommandSender initiator, String messageContent) {
6261
if (!(initiator instanceof Player initiatingPlayer)){
6362
initiator.sendMessage(Resolvers.getInstance().parsePluginPrefix(Message.ERROR_PLAYER_COMMAND.getMessage()));
6463
return;
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
package adhdmc.simplepms.handling;
2+
3+
import adhdmc.simplepms.SimplePMs;
4+
import adhdmc.simplepms.utils.Message;
5+
import me.clip.placeholderapi.PlaceholderAPI;
6+
import net.kyori.adventure.text.Component;
7+
import net.kyori.adventure.text.minimessage.MiniMessage;
8+
import net.kyori.adventure.text.minimessage.tag.Tag;
9+
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
10+
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
11+
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
12+
import org.bukkit.entity.Player;
13+
import org.jetbrains.annotations.NotNull;
14+
15+
public class Resolvers {
16+
private static Resolvers instance;
17+
private Resolvers(){}
18+
19+
public static Resolvers getInstance() {
20+
if (instance == null) instance = new Resolvers();
21+
return instance;
22+
}
23+
boolean papiEnabled = SimplePMs.isPapiEnabled();
24+
25+
MiniMessage miniMessage = SimplePMs.getMiniMessage();
26+
27+
28+
//Credit: https://docs.advntr.dev/faq.html#how-can-i-use-bukkits-placeholderapi-in-minimessage-messages
29+
/**
30+
* Creates a tag resolver capable of resolving PlaceholderAPI tags for a given player.
31+
*
32+
* @param player the player
33+
* @return the tag resolver
34+
*/
35+
public @NotNull TagResolver papiTag(final @NotNull Player player) {
36+
return TagResolver.resolver("papi", (argumentQueue, context) -> {
37+
final String papiPlaceholder = argumentQueue.popOr(Message.ERROR_PAPI_NEEDS_ARGUMENT.getMessage()).value();
38+
final String parsedPlaceholder = PlaceholderAPI.setPlaceholders(player, '%' + papiPlaceholder + '%');
39+
final Component componentPlaceholder = LegacyComponentSerializer.legacySection().deserialize(parsedPlaceholder);
40+
return Tag.selfClosingInserting(componentPlaceholder);
41+
});
42+
}
43+
44+
public Component parseMessagePlayerToPlayer(String message, Player initiator, Player target, String messageContent){
45+
if (papiEnabled) {
46+
return miniMessage.deserialize(message,
47+
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage()),
48+
Placeholder.component("target", target.displayName()),
49+
Placeholder.component("initiator", initiator.displayName()),
50+
Placeholder.unparsed("message", messageContent),
51+
papiTag(initiator),
52+
papiTag(target));
53+
} else {
54+
return miniMessage.deserialize(message,
55+
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage()),
56+
Placeholder.component("target", target.displayName()),
57+
Placeholder.component("initiator", initiator.displayName()),
58+
Placeholder.unparsed("message", messageContent));
59+
}
60+
}
61+
62+
public Component parseMessageConsoleToPlayer(String message, Component initiator, Player target, String messageContent){
63+
if (papiEnabled) {
64+
return miniMessage.deserialize(message,
65+
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage()),
66+
Placeholder.component("target", target.displayName()),
67+
Placeholder.component("initiator", initiator),
68+
Placeholder.unparsed("message", messageContent),
69+
papiTag(target));
70+
} else {
71+
return miniMessage.deserialize(message,
72+
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage()),
73+
Placeholder.component("target", target.displayName()),
74+
Placeholder.component("initiator", initiator),
75+
Placeholder.unparsed("message", messageContent));
76+
}
77+
}
78+
79+
public Component parseMessagePlayerToConsole(String message, Player initiator, Component target, String messageContent){
80+
if(papiEnabled) {
81+
return miniMessage.deserialize(message,
82+
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage()),
83+
Placeholder.component("target", target),
84+
Placeholder.component("initiator", initiator.displayName()),
85+
Placeholder.unparsed("message", messageContent),
86+
papiTag(initiator));
87+
} else {
88+
return miniMessage.deserialize(message,
89+
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage()),
90+
Placeholder.component("target", target),
91+
Placeholder.component("initiator", initiator.displayName()),
92+
Placeholder.unparsed("message", messageContent));
93+
}
94+
}
95+
96+
97+
public Component parsePluginPrefix(String message) {
98+
return miniMessage.deserialize(message,
99+
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage()));
100+
}
101+
102+
public Component parsePluginPrefixAndString(String message,String placeholderName, String string) {
103+
return miniMessage.deserialize(message,
104+
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage()),
105+
Placeholder.parsed(placeholderName, string));
106+
}
107+
}

src/main/java/adhdmc/simplepms/listeners/LoginListener.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import adhdmc.simplepms.SimplePMs;
44
import adhdmc.simplepms.utils.SPMKey;
55
import adhdmc.simplepms.utils.Perms;
6-
import adhdmc.simplepms.utils.Resolvers;
76
import org.bukkit.Bukkit;
87
import org.bukkit.NamespacedKey;
98
import org.bukkit.entity.Player;

src/main/java/adhdmc/simplepms/utils/Message.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@ public enum Message {
1212
//Errors
1313
ERROR_NO_PERMISSION("<plugin_prefix> <red>You do not have permission to do this"),
1414
ERROR_NO_RECIPIENT_PROVIDED("<plugin_prefix> <red>You must provide a valid recipient for your message"),
15-
ERROR_RECIPIENT_OFFLINE("<plugin_prefix> There are no players online by the name of <receiver>"),
15+
ERROR_RECIPIENT_OFFLINE("<plugin_prefix> There are no players online by the name of <target>"),
1616
ERROR_BLANK_MESSAGE("<plugin_prefix> You cannot send someone a blank message"),
17-
ERROR_RECIPIENT_BLOCKED("<plugin_prefix> Looks like <receiver> isn't accepting PMs from you at this time"),
17+
ERROR_RECIPIENT_BLOCKED("<plugin_prefix> Looks like <target> isn't accepting PMs from you at this time"),
1818
ERROR_PLAYER_COMMAND("<plugin_prefix> <red>You must be a player to execute this command."),
1919
ERROR_PAPI_NEEDS_ARGUMENT("papi tag requires an argument"),
2020
//basic
21-
SENDING_FORMAT("<gray>[<yellow>You</yellow> <gold>→</gold> <green><receiver></green>]</gray><reset> <message>"),
22-
RECEIVING_FORMAT("<gray>[<green><sender></green> <gold>→</gold> <yellow>You</yellow>]</gray><reset> <message>"),
21+
SENDING_FORMAT("<gray>[<yellow>You</yellow> <gold>→</gold> <green><target></green>]</gray><reset> <message>"),
22+
RECEIVING_FORMAT("<gray>[<green><initiator></green> <gold>→</gold> <yellow>You</yellow>]</gray><reset> <message>"),
2323
NO_USER_TO_REPLY("<red>There is nobody to reply to, sorry. Try <gray>/msg [name]</gray> instead"),
2424
//socialspy
25-
SPY_FORMAT("<dark_gray>[<#989898>PM-Spy</#989898>]</dark_gray> <#989898><sender> → <receiver> <dark_gray>»</dark_gray> <gray><message>"),
25+
SPY_FORMAT("<dark_gray>[<#989898>PM-Spy</#989898>]</dark_gray> <#989898><initiator> → <target> <dark_gray>»</dark_gray> <gray><message>"),
2626
SPY_ENABLED("<dark_gray>[<#989898>PM-Spy</#989898>]</dark_gray> <green>PM Spy has been enabled"),
2727
SPY_DISABLED("<dark_gray>[<#989898>PM-Spy</#989898>]</dark_gray> <gray>PM Spy has been disabled"),
2828
LOGGER_INVALID_LOCALE_KEY("Invalid locale key found: "),

src/main/java/adhdmc/simplepms/utils/Resolvers.java

Lines changed: 0 additions & 81 deletions
This file was deleted.

0 commit comments

Comments
 (0)