Skip to content

Commit 30398d2

Browse files
committed
more stuff
1 parent 0c020c1 commit 30398d2

18 files changed

+307
-126
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>simplexity</groupId>
88
<artifactId>SimplePlayerFreeze</artifactId>
9-
<version>0.0.0</version>
9+
<version>0.0.1</version>
1010
<packaging>jar</packaging>
1111

1212
<name>SimplePlayerFreeze</name>
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package simplexity.simpleplayerfreeze;
2+
3+
import org.bukkit.configuration.file.FileConfiguration;
4+
import org.bukkit.plugin.PluginManager;
5+
6+
public class ConfigSettings {
7+
8+
public static String prefix = "";
9+
public static String commandErrorMessage = "";
10+
public static String cannotChat = "";
11+
public static String freezeMessage = "";
12+
public static String unfreezeMessage = "";
13+
public static String reloadMessage = "";
14+
public static String haveBeenFrozen = "";
15+
public static String haveBeenUnfrozen = "";
16+
public static String noPermission = "";
17+
public static String noPlayer = "";
18+
public static String loginMessage = "";
19+
public static String loginNotif = "";
20+
public static String cannotBeFrozen = "";
21+
public static String notFrozen = "";
22+
public static boolean freezePersist;
23+
public static boolean freezeGlow;
24+
public static boolean freezeDismount;
25+
public static boolean freezeFlight;
26+
public static boolean preventMovement;
27+
public static boolean preventInteract;
28+
public static boolean preventChat;
29+
public static boolean preventXPPickup;
30+
public static boolean preventItemPickup;
31+
public static boolean preventItemDrop;
32+
public static boolean preventHotbarSwitch;
33+
public static void reloadMessages() {
34+
FileConfiguration config = SimplePlayerFreeze.simplePlayerFreeze.getConfig();
35+
prefix = config.getString("prefix");
36+
commandErrorMessage = config.getString("command-error-message");
37+
cannotChat = config.getString("cannot-chat");
38+
freezeMessage = config.getString("freeze-message");
39+
unfreezeMessage = config.getString("unfreeze-message");
40+
reloadMessage = config.getString("reload-message");
41+
haveBeenFrozen = config.getString("have-been-frozen");
42+
haveBeenUnfrozen = config.getString("have-been-unfrozen");
43+
noPermission = config.getString("no-permission");
44+
noPlayer = config.getString("no-player");
45+
loginMessage = config.getString("login-message");
46+
loginNotif = config.getString("login-notif");
47+
cannotBeFrozen = config.getString("cannot-be-frozen");
48+
notFrozen = config.getString("not-frozen");
49+
}
50+
51+
public static void reloadConfigSettings(){
52+
FileConfiguration config = SimplePlayerFreeze.simplePlayerFreeze.getConfig();
53+
freezePersist = config.getBoolean("freeze-persist");
54+
freezeGlow = config.getBoolean("freeze-glow");
55+
freezeDismount = config.getBoolean("freeze-dismount");
56+
freezeFlight = config.getBoolean("freeze-flight");
57+
preventMovement = config.getBoolean("prevent-movement");
58+
preventInteract = config.getBoolean("prevent-interact");
59+
preventChat = config.getBoolean("prevent-chat");
60+
preventXPPickup = config.getBoolean("prevent-xp-pickup");
61+
preventItemPickup = config.getBoolean("prevent-item-pickup");
62+
preventItemDrop = config.getBoolean("prevent-item-drop");
63+
preventHotbarSwitch = config.getBoolean("prevent-hotbar-switch");
64+
reloadMessages();
65+
}
66+
}

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

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,42 @@
11
package simplexity.simpleplayerfreeze;
22

3+
import org.bukkit.plugin.Plugin;
34
import org.bukkit.plugin.java.JavaPlugin;
45
import simplexity.simpleplayerfreeze.commands.FreezePlayer;
56
import simplexity.simpleplayerfreeze.commands.ReloadConfig;
67
import simplexity.simpleplayerfreeze.commands.UnfreezePlayer;
7-
import simplexity.simpleplayerfreeze.listeners.EventListeners;
8+
import simplexity.simpleplayerfreeze.listeners.*;
89

910
import java.util.List;
1011

1112
public final class SimplePlayerFreeze extends JavaPlugin {
1213

13-
14-
private static SimplePlayerFreeze instance;
14+
//Todo: Figure out how to make the server not freak out about the player floating
15+
public static Plugin simplePlayerFreeze;
1516

1617
@Override
1718
public void onEnable() {
18-
instance = this;
19-
this.getServer().getPluginManager().registerEvents(new EventListeners(), this);
19+
simplePlayerFreeze = this;
2020
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")));
2121
getServer().getCommandMap().register(Util.namespace, new UnfreezePlayer("unfreeze", "Unfreezes a player and allows them to use normal things", "/unfreeze <player>", List.of("resume")));
2222
getServer().getCommandMap().register(Util.namespace, new ReloadConfig("freezereload", " reloads the config", "/freezereload", List.of("simpleplayerfreezereload", "spfreload")));
23+
registerListeners();
2324
this.saveDefaultConfig();
2425
this.reloadConfig();
25-
Util.reloadMessages();
26+
ConfigSettings.reloadConfigSettings();
2627
// Plugin startup logic
2728

2829
}
2930

30-
public static SimplePlayerFreeze getInstance() {
31-
return instance;
31+
private void registerListeners() {
32+
getServer().getPluginManager().registerEvents(new ChatListener(), this);
33+
getServer().getPluginManager().registerEvents(new EXPPickupListener(), this);
34+
getServer().getPluginManager().registerEvents(new InteractListener(), this);
35+
getServer().getPluginManager().registerEvents(new InventoryListener(), this);
36+
getServer().getPluginManager().registerEvents(new JoinListener(), this);
37+
getServer().getPluginManager().registerEvents(new MoveListener(), this);
38+
getServer().getPluginManager().registerEvents(new PickupListener(), this);
39+
getServer().getPluginManager().registerEvents(new SwitchItemListener(), this);
3240
}
3341

3442
@Override

src/main/java/simplexity/simpleplayerfreeze/Util.java

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,36 +13,9 @@ public class Util {
1313
public static NamespacedKey isFrozenKey = new NamespacedKey(namespace, "isfrozen");
1414
public static Permission freezePermission = new Permission("spf.freeze");
1515
public static Permission unfreezePermission = new Permission("spf.unfreeze");
16+
public static Permission freezeBypassPermission = new Permission("spf.bypass");
1617
public static Permission reloadPermission = new Permission("spf.reload");
1718

18-
public static String prefix = "";
19-
public static String commandErrorMessage = "";
20-
public static String cannotChat = "";
21-
public static String freezeMessage = "";
22-
public static String unfreezeMessage = "";
23-
public static String reloadMessage = "";
24-
public static String haveBeenFrozen = "";
25-
public static String haveBeenUnfrozen = "";
26-
public static String noPermission = "";
27-
public static String noPlayer = "";
28-
public static String loginMessage = "";
29-
public static String loginNotif = "";
30-
31-
public static void reloadMessages() {
32-
prefix = SimplePlayerFreeze.getInstance().getConfig().getString("prefix");
33-
commandErrorMessage = SimplePlayerFreeze.getInstance().getConfig().getString("command-error-message");
34-
cannotChat = SimplePlayerFreeze.getInstance().getConfig().getString("cannot-chat");
35-
freezeMessage = SimplePlayerFreeze.getInstance().getConfig().getString("freeze-message");
36-
unfreezeMessage = SimplePlayerFreeze.getInstance().getConfig().getString("unfreeze-message");
37-
reloadMessage = SimplePlayerFreeze.getInstance().getConfig().getString("reload-message");
38-
haveBeenFrozen = SimplePlayerFreeze.getInstance().getConfig().getString("have-been-frozen");
39-
haveBeenUnfrozen = SimplePlayerFreeze.getInstance().getConfig().getString("have-been-unfrozen");
40-
noPermission = SimplePlayerFreeze.getInstance().getConfig().getString("no-permission");
41-
noPlayer = SimplePlayerFreeze.getInstance().getConfig().getString("no-player");
42-
loginMessage = SimplePlayerFreeze.getInstance().getConfig().getString("login-message");
43-
loginNotif = SimplePlayerFreeze.getInstance().getConfig().getString("login-notif");
44-
}
45-
4619
public static void setFrozen(Player player) {
4720
player.getPersistentDataContainer().set(Util.isFrozenKey, PersistentDataType.BOOLEAN, true);
4821
player.setGlowing(true);
@@ -55,4 +28,7 @@ public static void setUnfrozen(Player player) {
5528
player.setWalkSpeed(0.2f);
5629
}
5730

31+
public static boolean isFrozen(Player player) {
32+
return player.getPersistentDataContainer().getOrDefault(isFrozenKey, PersistentDataType.BOOLEAN, Boolean.FALSE);
33+
}
5834
}

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

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,48 @@
66
import org.bukkit.command.CommandSender;
77
import org.bukkit.entity.Player;
88
import org.jetbrains.annotations.NotNull;
9+
import simplexity.simpleplayerfreeze.ConfigSettings;
910
import simplexity.simpleplayerfreeze.Util;
1011

1112
import java.util.List;
1213

1314
public class FreezePlayer extends Command {
14-
15+
//
1516
public FreezePlayer(@NotNull String name, @NotNull String description, @NotNull String usageMessage, @NotNull List<String> aliases) {
1617
super(name, description, usageMessage, aliases);
1718
}
1819

1920
@Override
2021
public boolean execute(@NotNull CommandSender sender, @NotNull String s, @NotNull String[] strings) {
21-
if (!sender.hasPermission(Util.freezePermission)) return false;
22+
if (!sender.hasPermission(Util.freezePermission)) {
23+
sender.sendRichMessage(ConfigSettings.noPermission);
24+
return false;
25+
}
2226
if (strings.length == 0) {
23-
sender.sendRichMessage(Util.noPlayer);
27+
sender.sendRichMessage(ConfigSettings.prefix + ConfigSettings.noPlayer);
2428
return false;
2529
}
2630
Player player;
2731
player = Bukkit.getPlayer(strings[0]);
2832
if (player == null) {
29-
sender.sendRichMessage(Util.noPlayer);
33+
sender.sendRichMessage(ConfigSettings.prefix + ConfigSettings.noPlayer);
3034
return false;
35+
} else if (player.hasPermission(Util.freezeBypassPermission)) {
36+
sender.sendRichMessage(ConfigSettings.prefix + ConfigSettings.cannotBeFrozen);
37+
return false;
38+
39+
} else if (Util.isFrozen(player)) {
40+
Util.setUnfrozen(player);
41+
sender.sendMessage(Util.miniMessage.deserialize(ConfigSettings.unfreezeMessage,
42+
Placeholder.component("name", player.displayName())));
43+
player.sendRichMessage(ConfigSettings.haveBeenUnfrozen);
44+
return true;
3145
} else {
3246
Util.setFrozen(player);
33-
sender.sendMessage(Util.miniMessage.deserialize(Util.freezeMessage,
47+
sender.sendMessage(Util.miniMessage.deserialize(ConfigSettings.freezeMessage,
3448
Placeholder.component("name", player.displayName())));
35-
player.sendRichMessage(Util.haveBeenFrozen);
49+
player.sendRichMessage(ConfigSettings.haveBeenFrozen);
3650
}
37-
return false;
51+
return true;
3852
}
3953
}

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.bukkit.command.Command;
44
import org.bukkit.command.CommandSender;
55
import org.jetbrains.annotations.NotNull;
6+
import simplexity.simpleplayerfreeze.ConfigSettings;
67
import simplexity.simpleplayerfreeze.SimplePlayerFreeze;
78
import simplexity.simpleplayerfreeze.Util;
89

@@ -18,12 +19,12 @@ public ReloadConfig(@NotNull String name, @NotNull String description, @NotNull
1819
@Override
1920
public boolean execute(@NotNull CommandSender sender, @NotNull String s, @NotNull String[] strings) {
2021
if (!sender.hasPermission(Util.reloadPermission)) {
21-
sender.sendRichMessage(Util.noPermission);
22+
sender.sendRichMessage(ConfigSettings.noPermission);
2223
return false;
2324
}
24-
SimplePlayerFreeze.getInstance().reloadConfig();
25-
Util.reloadMessages();
26-
sender.sendRichMessage(Util.reloadMessage);
25+
SimplePlayerFreeze.simplePlayerFreeze.reloadConfig();
26+
ConfigSettings.reloadConfigSettings();
27+
sender.sendRichMessage(ConfigSettings.prefix + ConfigSettings.reloadMessage);
2728
return true;
2829
}
2930
}

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

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.bukkit.command.CommandSender;
77
import org.bukkit.entity.Player;
88
import org.jetbrains.annotations.NotNull;
9+
import simplexity.simpleplayerfreeze.ConfigSettings;
910
import simplexity.simpleplayerfreeze.Util;
1011

1112
import java.util.List;
@@ -20,20 +21,22 @@ public UnfreezePlayer(@NotNull String name, @NotNull String description, @NotNul
2021
public boolean execute(@NotNull CommandSender sender, @NotNull String s, @NotNull String[] strings) {
2122
if (!sender.hasPermission(Util.unfreezePermission)) return false;
2223
if (strings.length == 0) {
23-
sender.sendRichMessage(Util.noPlayer);
24+
sender.sendRichMessage(ConfigSettings.prefix + ConfigSettings.noPlayer);
2425
return false;
2526
}
2627
Player player;
2728
player = Bukkit.getPlayer(strings[0]);
2829
if (player == null) {
29-
sender.sendRichMessage(Util.noPlayer);
30+
sender.sendRichMessage(ConfigSettings.prefix + ConfigSettings.noPlayer);
3031
return false;
31-
} else {
32-
Util.setUnfrozen(player);
33-
sender.sendMessage(Util.miniMessage.deserialize(Util.unfreezeMessage,
34-
Placeholder.component("name", player.displayName())));
35-
player.sendRichMessage(Util.haveBeenUnfrozen);
32+
} else if (!Util.isFrozen(player)) {
33+
sender.sendRichMessage(ConfigSettings.prefix + ConfigSettings.notFrozen);
34+
return true;
3635
}
37-
return false;
36+
Util.setUnfrozen(player);
37+
sender.sendMessage(Util.miniMessage.deserialize(ConfigSettings.unfreezeMessage,
38+
Placeholder.component("name", player.displayName())));
39+
player.sendRichMessage(ConfigSettings.haveBeenUnfrozen);
40+
return true;
3841
}
3942
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package simplexity.simpleplayerfreeze.listeners;
2+
3+
import io.papermc.paper.event.player.AsyncChatEvent;
4+
import org.bukkit.event.EventHandler;
5+
import org.bukkit.event.Listener;
6+
import simplexity.simpleplayerfreeze.ConfigSettings;
7+
import simplexity.simpleplayerfreeze.Util;
8+
9+
public class ChatListener implements Listener {
10+
@EventHandler
11+
public void onChat(AsyncChatEvent chatEvent) {
12+
if (!ConfigSettings.preventChat) return;
13+
if (Util.isFrozen(chatEvent.getPlayer())) {
14+
chatEvent.setCancelled(true);
15+
chatEvent.getPlayer().sendMessage("You are frozen! You cannot chat!");
16+
}
17+
}
18+
19+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package simplexity.simpleplayerfreeze.listeners;
2+
3+
import com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent;
4+
import org.bukkit.event.EventHandler;
5+
import org.bukkit.event.Listener;
6+
import simplexity.simpleplayerfreeze.ConfigSettings;
7+
import simplexity.simpleplayerfreeze.Util;
8+
9+
public class EXPPickupListener implements Listener {
10+
@EventHandler
11+
public void onEXPPickup(PlayerPickupExperienceEvent event) {
12+
if (!ConfigSettings.preventXPPickup) return;
13+
if (Util.isFrozen(event.getPlayer())) {
14+
event.setCancelled(true);
15+
}
16+
}
17+
}

src/main/java/simplexity/simpleplayerfreeze/listeners/EventListeners.java

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

0 commit comments

Comments
 (0)