Skip to content

Commit e86427c

Browse files
committed
more stuff
1 parent 1493800 commit e86427c

File tree

10 files changed

+88
-33
lines changed

10 files changed

+88
-33
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.1</version>
9+
<version>0.0.2</version>
1010
<packaging>jar</packaging>
1111

1212
<name>SimplePlayerFreeze</name>

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

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,24 @@
1010
import java.util.List;
1111

1212
public final class SimplePlayerFreeze extends JavaPlugin {
13-
14-
//Todo: Figure out how to make the server not freak out about the player floating
1513
public static Plugin simplePlayerFreeze;
1614

1715
@Override
1816
public void onEnable() {
1917
simplePlayerFreeze = this;
18+
//Register the commands for the plugin, this is supposedly the best way to do commands now
2019
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")));
2120
getServer().getCommandMap().register(Util.namespace, new UnfreezePlayer("unfreeze", "Unfreezes a player and allows them to use normal things", "/unfreeze <player>", List.of("resume")));
2221
getServer().getCommandMap().register(Util.namespace, new ReloadConfig("freezereload", " reloads the config", "/freezereload", List.of("simpleplayerfreezereload", "spfreload")));
2322
registerListeners();
2423
this.saveDefaultConfig();
2524
this.reloadConfig();
2625
ConfigSettings.reloadConfigSettings();
27-
// Plugin startup logic
28-
2926
}
30-
27+
// Registers the Event Listeners for the events that will be blocked when someone is frozen
3128
private void registerListeners() {
3229
getServer().getPluginManager().registerEvents(new ChatListener(), this);
30+
getServer().getPluginManager().registerEvents(new DropListener(), this);
3331
getServer().getPluginManager().registerEvents(new EXPPickupListener(), this);
3432
getServer().getPluginManager().registerEvents(new InteractListener(), this);
3533
getServer().getPluginManager().registerEvents(new InventoryListener(), this);
@@ -38,9 +36,4 @@ private void registerListeners() {
3836
getServer().getPluginManager().registerEvents(new PickupListener(), this);
3937
getServer().getPluginManager().registerEvents(new SwitchItemListener(), this);
4038
}
41-
42-
@Override
43-
public void onDisable() {
44-
// Plugin shutdown logic
45-
}
4639
}

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

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,18 @@ public class Util {
1111
public static MiniMessage miniMessage = MiniMessage.miniMessage();
1212
public static String namespace = "simpleplayerfreeze";
1313
public static NamespacedKey isFrozenKey = new NamespacedKey(namespace, "isfrozen");
14+
public static NamespacedKey previouslyHadFlyPerms = new NamespacedKey(namespace, "previousflyperms");
1415
public static Permission freezePermission = new Permission("spf.freeze");
1516
public static Permission unfreezePermission = new Permission("spf.unfreeze");
1617
public static Permission freezeBypassPermission = new Permission("spf.bypass");
1718
public static Permission reloadPermission = new Permission("spf.reload");
1819

19-
public static void setFrozen(Player player) {
20-
player.getPersistentDataContainer().set(Util.isFrozenKey, PersistentDataType.BOOLEAN, true);
21-
player.setGlowing(true);
22-
player.setWalkSpeed(0f);
23-
}
2420

25-
public static void setUnfrozen(Player player) {
26-
player.getPersistentDataContainer().set(Util.isFrozenKey, PersistentDataType.BOOLEAN, false);
27-
player.setGlowing(false);
28-
player.setWalkSpeed(0.2f);
29-
}
21+
22+
3023

3124
public static boolean isFrozen(Player player) {
3225
return player.getPersistentDataContainer().getOrDefault(isFrozenKey, PersistentDataType.BOOLEAN, Boolean.FALSE);
3326
}
27+
3428
}

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.jetbrains.annotations.NotNull;
99
import simplexity.simpleplayerfreeze.ConfigSettings;
1010
import simplexity.simpleplayerfreeze.Util;
11+
import simplexity.simpleplayerfreeze.freeze.FreezeFunctionality;
1112

1213
import java.util.List;
1314

@@ -37,16 +38,14 @@ public boolean execute(@NotNull CommandSender sender, @NotNull String s, @NotNul
3738
return false;
3839

3940
} else if (Util.isFrozen(player)) {
40-
Util.setUnfrozen(player);
41+
FreezeFunctionality.setUnfrozen(player);
4142
sender.sendMessage(Util.miniMessage.deserialize(ConfigSettings.unfreezeMessage,
4243
Placeholder.component("name", player.displayName())));
43-
player.sendRichMessage(ConfigSettings.haveBeenUnfrozen);
4444
return true;
4545
} else {
46-
Util.setFrozen(player);
46+
FreezeFunctionality.setFrozen(player);
4747
sender.sendMessage(Util.miniMessage.deserialize(ConfigSettings.freezeMessage,
4848
Placeholder.component("name", player.displayName())));
49-
player.sendRichMessage(ConfigSettings.haveBeenFrozen);
5049
}
5150
return true;
5251
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.jetbrains.annotations.NotNull;
99
import simplexity.simpleplayerfreeze.ConfigSettings;
1010
import simplexity.simpleplayerfreeze.Util;
11+
import simplexity.simpleplayerfreeze.freeze.FreezeFunctionality;
1112

1213
import java.util.List;
1314

@@ -33,10 +34,9 @@ public boolean execute(@NotNull CommandSender sender, @NotNull String s, @NotNul
3334
sender.sendRichMessage(ConfigSettings.prefix + ConfigSettings.notFrozen);
3435
return true;
3536
}
36-
Util.setUnfrozen(player);
37+
FreezeFunctionality.setUnfrozen(player);
3738
sender.sendMessage(Util.miniMessage.deserialize(ConfigSettings.unfreezeMessage,
3839
Placeholder.component("name", player.displayName())));
39-
player.sendRichMessage(ConfigSettings.haveBeenUnfrozen);
4040
return true;
4141
}
4242
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package simplexity.simpleplayerfreeze.freeze;
2+
3+
import org.bukkit.entity.Player;
4+
import org.bukkit.persistence.PersistentDataType;
5+
import simplexity.simpleplayerfreeze.ConfigSettings;
6+
import simplexity.simpleplayerfreeze.Util;
7+
8+
public class FreezeFunctionality {
9+
10+
public static void setFrozen(Player player) {
11+
player.getPersistentDataContainer().set(Util.isFrozenKey, PersistentDataType.BOOLEAN, true);
12+
if (ConfigSettings.freezeFlight) {
13+
setFlight(player);
14+
}
15+
if (ConfigSettings.freezeGlow) {
16+
player.setGlowing(true);
17+
}
18+
if (ConfigSettings.freezeDismount){
19+
player.eject();
20+
}
21+
player.setWalkSpeed(0f);
22+
player.sendRichMessage(ConfigSettings.haveBeenFrozen);
23+
}
24+
25+
public static void setUnfrozen(Player player) {
26+
player.getPersistentDataContainer().set(Util.isFrozenKey, PersistentDataType.BOOLEAN, false);
27+
if (!player.getPersistentDataContainer().getOrDefault(Util.previouslyHadFlyPerms, PersistentDataType.BOOLEAN, false)) {
28+
player.setAllowFlight(false);
29+
}
30+
player.setFlying(false);
31+
player.setGravity(true);
32+
player.setGlowing(false);
33+
player.setWalkSpeed(0.2f);
34+
player.sendRichMessage(ConfigSettings.haveBeenUnfrozen);
35+
}
36+
37+
public static void setFlight(Player player) {
38+
boolean hasAllowFlight = player.getAllowFlight();
39+
if (hasAllowFlight) {
40+
player.getPersistentDataContainer().set(Util.previouslyHadFlyPerms, PersistentDataType.BOOLEAN, true);
41+
}
42+
player.setAllowFlight(true);
43+
player.setFlying(true);
44+
player.setGravity(false);
45+
}
46+
47+
48+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public void onChat(AsyncChatEvent chatEvent) {
1212
if (!ConfigSettings.preventChat) return;
1313
if (Util.isFrozen(chatEvent.getPlayer())) {
1414
chatEvent.setCancelled(true);
15-
chatEvent.getPlayer().sendMessage("You are frozen! You cannot chat!");
15+
chatEvent.getPlayer().sendRichMessage(ConfigSettings.cannotChat);
1616
}
1717
}
1818

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package simplexity.simpleplayerfreeze.listeners;
2+
3+
import org.bukkit.entity.Player;
4+
import org.bukkit.event.EventHandler;
5+
import org.bukkit.event.Listener;
6+
import org.bukkit.event.entity.EntityPickupItemEvent;
7+
import org.bukkit.event.player.PlayerDropItemEvent;
8+
import simplexity.simpleplayerfreeze.ConfigSettings;
9+
import simplexity.simpleplayerfreeze.Util;
10+
11+
public class DropListener implements Listener {
12+
@EventHandler
13+
public void onPickup(PlayerDropItemEvent playerDropItemEvent){
14+
if (!ConfigSettings.preventItemDrop) return;
15+
if (Util.isFrozen(playerDropItemEvent.getPlayer())) {
16+
playerDropItemEvent.setCancelled(true);
17+
}
18+
}
19+
20+
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public void onInventoryOpen(InventoryOpenEvent inventoryOpenEvent) {
1313
if (!(inventoryOpenEvent.getPlayer() instanceof Player player)) return;
1414
if (Util.isFrozen(player)) {
1515
inventoryOpenEvent.setCancelled(true);
16+
inventoryOpenEvent.getInventory().close();
1617
}
1718
}
1819
}

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

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

3+
import org.bukkit.entity.Player;
34
import org.bukkit.event.EventHandler;
45
import org.bukkit.event.Listener;
56
import org.bukkit.event.player.PlayerJoinEvent;
67
import org.bukkit.persistence.PersistentDataType;
78
import simplexity.simpleplayerfreeze.ConfigSettings;
89
import simplexity.simpleplayerfreeze.Util;
10+
import simplexity.simpleplayerfreeze.freeze.FreezeFunctionality;
911

1012
public class JoinListener implements Listener {
1113
@EventHandler
1214
public void onJoin(PlayerJoinEvent joinEvent) {
13-
if (!ConfigSettings.freezePersist) return;
14-
if (!joinEvent.getPlayer().isOp()) {
15-
joinEvent.getPlayer().getPersistentDataContainer().set(Util.isFrozenKey, PersistentDataType.BOOLEAN, Boolean.TRUE);
16-
Util.setFrozen(joinEvent.getPlayer());
17-
joinEvent.getPlayer().sendRichMessage(ConfigSettings.loginMessage);
15+
Player player = joinEvent.getPlayer();
16+
if (Util.isFrozen(player) && ConfigSettings.freezePersist) {
17+
FreezeFunctionality.setFrozen(player);
1818
}
1919
}
2020

0 commit comments

Comments
 (0)