Skip to content

Commit 8e44f0d

Browse files
committed
commit
1 parent c22c358 commit 8e44f0d

File tree

11 files changed

+138
-51
lines changed

11 files changed

+138
-51
lines changed

pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@
5858
<id>sonatype</id>
5959
<url>https://oss.sonatype.org/content/groups/public/</url>
6060
</repository>
61+
<repository>
62+
<id>placeholderapi</id>
63+
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
64+
</repository>
6165
</repositories>
6266

6367
<dependencies>
@@ -67,5 +71,11 @@
6771
<version>1.20.2-R0.1-SNAPSHOT</version>
6872
<scope>provided</scope>
6973
</dependency>
74+
<dependency>
75+
<groupId>me.clip</groupId>
76+
<artifactId>placeholderapi</artifactId>
77+
<version>2.11.5</version>
78+
<scope>provided</scope>
79+
</dependency>
7080
</dependencies>
7181
</project>

src/main/java/simplexity/simpleplayerfreeze/ConfigSettings.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class ConfigSettings {
2525
public static String freezeSpyEnabled = "";
2626
public static String freezeSpyDisabled = "";
2727
public static String onlyPlayer = "";
28+
public static String placeholderAPIFormat = "";
2829
public static boolean freezePersist;
2930
public static boolean freezeGlow;
3031
public static boolean freezeDismount;
@@ -70,6 +71,7 @@ private static void reloadMessages() {
7071
freezeSpyEnabled = config.getString("freeze-spy-enabled");
7172
freezeSpyDisabled = config.getString("freeze-spy-disabled");
7273
onlyPlayer = config.getString("only-player");
74+
placeholderAPIFormat = config.getString("placeholder-api-format");
7375
}
7476

7577
private static void reloadConfigBooleans() {

src/main/java/simplexity/simpleplayerfreeze/SimplePlayerFreeze.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import simplexity.simpleplayerfreeze.commands.ReloadConfig;
99
import simplexity.simpleplayerfreeze.commands.UnfreezePlayer;
1010
import simplexity.simpleplayerfreeze.listeners.*;
11+
import simplexity.simpleplayerfreeze.placeholderapi.IsFrozenPlaceholder;
1112

1213
import java.util.List;
1314

@@ -19,11 +20,16 @@ public final class SimplePlayerFreeze extends JavaPlugin {
1920
public void onEnable() {
2021
simplePlayerFreeze = this;
2122
server = getServer();
23+
boolean papiEnabled = getServer().getPluginManager().isPluginEnabled("PlaceholderAPI");
24+
System.out.println(papiEnabled);
2225
//Register the commands for the plugin, this is supposedly the best way to do commands now
23-
getServer().getCommandMap().register(Util.namespace, new FreezePlayer("freeze", "Freezes a player in place and prevents them from using normal things", "/freeze <player>", List.of("cease")));
24-
getServer().getCommandMap().register(Util.namespace, new UnfreezePlayer("unfreeze", "Unfreezes a player and allows them to use normal things", "/unfreeze <player>", List.of("resume")));
25-
getServer().getCommandMap().register(Util.namespace, new ReloadConfig("freezereload", " reloads the config", "/freezereload", List.of("simpleplayerfreezereload", "spfreload")));
26-
getServer().getCommandMap().register(Util.namespace, new FreezeSpy("freezespy", "Toggles the visibility of frozen players' messages", "/freezespy", List.of("fspy", "spfspy")));
26+
this.getCommand("freeze").setExecutor(new FreezePlayer());
27+
this.getCommand("unfreeze").setExecutor(new UnfreezePlayer());
28+
this.getCommand("freezereload").setExecutor(new ReloadConfig());
29+
this.getCommand("freezespy").setExecutor(new FreezeSpy());
30+
if (papiEnabled) {
31+
new IsFrozenPlaceholder().register();
32+
}
2733
registerListeners();
2834
this.saveDefaultConfig();
2935
this.reloadConfig();

src/main/java/simplexity/simpleplayerfreeze/commands/FreezePlayer.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,23 @@
33
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
44
import org.bukkit.Bukkit;
55
import org.bukkit.command.Command;
6+
import org.bukkit.command.CommandExecutor;
67
import org.bukkit.command.CommandSender;
8+
import org.bukkit.command.TabExecutor;
79
import org.bukkit.entity.Player;
810
import org.jetbrains.annotations.NotNull;
11+
import org.jetbrains.annotations.Nullable;
912
import simplexity.simpleplayerfreeze.ConfigSettings;
1013
import simplexity.simpleplayerfreeze.Util;
1114
import simplexity.simpleplayerfreeze.freeze.FreezeFunctionality;
1215

1316
import java.util.List;
1417

15-
public class FreezePlayer extends Command {
18+
public class FreezePlayer implements CommandExecutor {
1619

1720
// Freezes the player, or unfreezes the player if they are already frozen.
18-
public FreezePlayer(@NotNull String name, @NotNull String description, @NotNull String usageMessage, @NotNull List<String> aliases) {
19-
super(name, description, usageMessage, aliases);
20-
}
2121

22-
@Override
23-
public boolean execute(@NotNull CommandSender sender, @NotNull String s, @NotNull String[] strings) {
22+
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
2423
if (!sender.hasPermission(Util.freezePermission)) {
2524
sender.sendRichMessage(ConfigSettings.noPermission);
2625
return false;
@@ -49,4 +48,5 @@ public boolean execute(@NotNull CommandSender sender, @NotNull String s, @NotNul
4948
}
5049
return true;
5150
}
51+
5252
}

src/main/java/simplexity/simpleplayerfreeze/commands/FreezeSpy.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package simplexity.simpleplayerfreeze.commands;
22

33
import org.bukkit.command.Command;
4+
import org.bukkit.command.CommandExecutor;
45
import org.bukkit.command.CommandSender;
56
import org.bukkit.entity.Player;
67
import org.bukkit.persistence.PersistentDataType;
@@ -11,14 +12,11 @@
1112

1213
import java.util.List;
1314

14-
public class FreezeSpy extends Command {
15+
public class FreezeSpy implements CommandExecutor {
1516

16-
public FreezeSpy(@NotNull String name, @NotNull String description, @NotNull String usageMessage, @NotNull List<String> aliases) {
17-
super(name, description, usageMessage, aliases);
18-
}
1917

2018
@Override
21-
public boolean execute(@NotNull CommandSender sender, @NotNull String s, @NotNull String[] strings) {
19+
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
2220
if (!sender.hasPermission(Util.freezeChatSpy)) {
2321
sender.sendRichMessage(ConfigSettings.noPermission);
2422
return false;

src/main/java/simplexity/simpleplayerfreeze/commands/ReloadConfig.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package simplexity.simpleplayerfreeze.commands;
22

33
import org.bukkit.command.Command;
4+
import org.bukkit.command.CommandExecutor;
45
import org.bukkit.command.CommandSender;
56
import org.jetbrains.annotations.NotNull;
67
import simplexity.simpleplayerfreeze.ConfigSettings;
@@ -9,16 +10,12 @@
910

1011
import java.util.List;
1112

12-
public class ReloadConfig extends Command {
13+
public class ReloadConfig implements CommandExecutor {
1314

1415
// Reloads the configuration
1516

16-
public ReloadConfig(@NotNull String name, @NotNull String description, @NotNull String usageMessage, @NotNull List<String> aliases) {
17-
super(name, description, usageMessage, aliases);
18-
}
19-
2017
@Override
21-
public boolean execute(@NotNull CommandSender sender, @NotNull String s, @NotNull String[] strings) {
18+
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
2219
if (!sender.hasPermission(Util.reloadPermission)) {
2320
sender.sendRichMessage(ConfigSettings.noPermission);
2421
return false;

src/main/java/simplexity/simpleplayerfreeze/commands/UnfreezePlayer.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,24 @@
33
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
44
import org.bukkit.Bukkit;
55
import org.bukkit.command.Command;
6+
import org.bukkit.command.CommandExecutor;
67
import org.bukkit.command.CommandSender;
8+
import org.bukkit.command.TabExecutor;
79
import org.bukkit.entity.Player;
810
import org.jetbrains.annotations.NotNull;
11+
import org.jetbrains.annotations.Nullable;
912
import simplexity.simpleplayerfreeze.ConfigSettings;
1013
import simplexity.simpleplayerfreeze.Util;
1114
import simplexity.simpleplayerfreeze.freeze.FreezeFunctionality;
1215

1316
import java.util.List;
1417

15-
public class UnfreezePlayer extends Command {
18+
public class UnfreezePlayer implements CommandExecutor {
1619

1720
// Unfreezes a frozen player
1821

19-
public UnfreezePlayer(@NotNull String name, @NotNull String description, @NotNull String usageMessage, @NotNull List<String> aliases) {
20-
super(name, description, usageMessage, aliases);
21-
}
22-
2322
@Override
24-
public boolean execute(@NotNull CommandSender sender, @NotNull String s, @NotNull String[] strings) {
23+
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
2524
if (!sender.hasPermission(Util.unfreezePermission)) return false;
2625
if (strings.length == 0) {
2726
sender.sendRichMessage(ConfigSettings.prefix + ConfigSettings.noPlayer);
@@ -41,4 +40,5 @@ public boolean execute(@NotNull CommandSender sender, @NotNull String s, @NotNul
4140
Placeholder.component("name", player.displayName())));
4241
return true;
4342
}
43+
4444
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package simplexity.simpleplayerfreeze.placeholderapi;
2+
3+
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
4+
import org.bukkit.OfflinePlayer;
5+
import org.bukkit.entity.Player;
6+
import org.jetbrains.annotations.NotNull;
7+
import simplexity.simpleplayerfreeze.ConfigSettings;
8+
import simplexity.simpleplayerfreeze.SimplePlayerFreeze;
9+
import simplexity.simpleplayerfreeze.Util;
10+
11+
public class IsFrozenPlaceholder extends PlaceholderExpansion {
12+
@Override
13+
public @NotNull String getIdentifier() {
14+
return "spf";
15+
}
16+
17+
@Override
18+
public @NotNull String getAuthor() {
19+
return SimplePlayerFreeze.simplePlayerFreeze.getDescription().getAuthors().toString();
20+
}
21+
22+
@Override
23+
public @NotNull String getVersion() {
24+
return SimplePlayerFreeze.simplePlayerFreeze.getDescription().getVersion();
25+
}
26+
27+
@Override
28+
public String onRequest(OfflinePlayer offlinePlayer, @NotNull String params) {
29+
if (params.equalsIgnoreCase("frozen")) {
30+
Player player = offlinePlayer.getPlayer();
31+
if (player == null) {
32+
return "Offline";
33+
}
34+
if (Util.isFrozen(player)) {
35+
return ConfigSettings.placeholderAPIFormat;
36+
}
37+
if (!Util.isFrozen(player)) {
38+
return "";
39+
}
40+
return "";
41+
}
42+
return null;
43+
}
44+
45+
}

src/main/resources/config.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,21 @@ prevent-hotbar-switch: true
2626
prevent-commands: true
2727
prevent-crafting: true
2828
whitelisted-commands:
29+
# !! NOTE !! If you do not have the minecraft commands blocked by permissions, it is strongly advised
30+
# Not to remove these from the whitelist due to chat signatures - if these commands are cancelled,
31+
# The player will be kicked for a missing public key.
32+
- /minecraft:msg
33+
- /minecraft:w
34+
- /minecraft:t
35+
- /minecraft:teammsg
36+
- /minecraft:tm
2937
- /msg
38+
- /w
39+
- /t
40+
- /teammsg
41+
- /tm
3042
- /r
43+
placeholder-api-format: "<dark_gray>[Frozen]</dark_gray>"
3144
#-------------------- [Locale] --------------------
3245
prefix: "<green><bold>[</bold><yellow>SPF</yellow><bold>]</bold></green> "
3346
no-permission: "<red>You do not have permission to run this command!</red>"

src/main/resources/paper-plugin.yml

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

0 commit comments

Comments
 (0)