Skip to content

Commit 7ea6b21

Browse files
committed
prevents attacking and trading while frozen
1 parent 513bc9c commit 7ea6b21

File tree

6 files changed

+55
-2
lines changed

6 files changed

+55
-2
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>2.0.0</version>
9+
<version>2.1.0</version>
1010
<packaging>jar</packaging>
1111

1212
<name>SimplePlayerFreeze</name>

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@
88
import simplexity.simpleplayerfreeze.commands.ReloadConfig;
99
import simplexity.simpleplayerfreeze.commands.UnfreezePlayer;
1010
import simplexity.simpleplayerfreeze.configs.ConfigHandler;
11+
import simplexity.simpleplayerfreeze.listeners.AttackListener;
1112
import simplexity.simpleplayerfreeze.listeners.ChatListener;
1213
import simplexity.simpleplayerfreeze.listeners.CommandListener;
1314
import simplexity.simpleplayerfreeze.listeners.CraftingListener;
1415
import simplexity.simpleplayerfreeze.listeners.DropListener;
1516
import simplexity.simpleplayerfreeze.listeners.EXPPickupListener;
1617
import simplexity.simpleplayerfreeze.listeners.InteractListener;
18+
import simplexity.simpleplayerfreeze.listeners.InventoryOpenListener;
1719
import simplexity.simpleplayerfreeze.listeners.ItemConsumeListener;
1820
import simplexity.simpleplayerfreeze.listeners.JoinListener;
1921
import simplexity.simpleplayerfreeze.listeners.LeaveListener;
@@ -61,6 +63,8 @@ private void registerListeners() {
6163
getServer().getPluginManager().registerEvents(new SwitchItemListener(), this);
6264
getServer().getPluginManager().registerEvents(new ItemConsumeListener(), this);
6365
getServer().getPluginManager().registerEvents(new CommandListener(), this);
66+
getServer().getPluginManager().registerEvents(new AttackListener(), this);
67+
getServer().getPluginManager().registerEvents(new InventoryOpenListener(), this);
6468
}
6569

6670
public static ConsoleCommandSender getSFConsoleSender() {

src/main/java/simplexity/simpleplayerfreeze/configs/ConfigHandler.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class ConfigHandler {
1313
private String placeholderAPIFormat;
1414
private boolean freezePersist, freezeGlow, freezeDismount, freezeFlight, freezeInvulnerability, preventMovement,
1515
preventInteract, preventCrafting, preventXPPickup, preventItemPickup, preventItemDrop, preventItemUse,
16-
preventHotbarSwitch, preventInventoryInteraction, preventWalking, preventCommands, consoleSeesMutedMessages,
16+
preventHotbarSwitch, preventInventoryInteraction, preventInventoryOpen, preventWalking, preventCommands, preventAttack, consoleSeesMutedMessages,
1717
consoleFreezeLoginNotified, preventJumping;
1818
public static int chatBehavior;
1919
public static ArrayList<String> whitelistedCommandList = new ArrayList<>();
@@ -59,7 +59,9 @@ private void reloadConfigBooleans() {
5959
preventItemUse = config.getBoolean("prevent-item-use", true);
6060
preventHotbarSwitch = config.getBoolean("prevent-hotbar-switch", true);
6161
preventCommands = config.getBoolean("prevent-commands", true);
62+
preventAttack = config.getBoolean("prevent-attack", true);
6263
preventInventoryInteraction = config.getBoolean("prevent-inventory-interaction", true);
64+
preventInventoryOpen = config.getBoolean("prevent-inventory-open", true);
6365
consoleSeesMutedMessages = config.getBoolean("console-sees-muted-messages", true);
6466
consoleFreezeLoginNotified = config.getBoolean("console-freeze-login-notified", true);
6567
}
@@ -163,4 +165,12 @@ public String getPrefix() {
163165
public boolean shouldPreventJumping() {
164166
return preventJumping;
165167
}
168+
169+
public boolean shouldPreventAttack() {
170+
return preventAttack;
171+
}
172+
173+
public boolean shouldPreventInventoryOpen() {
174+
return preventInventoryOpen;
175+
}
166176
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package simplexity.simpleplayerfreeze.listeners;
2+
3+
import io.papermc.paper.event.player.PrePlayerAttackEntityEvent;
4+
import org.bukkit.entity.Player;
5+
import org.bukkit.event.EventHandler;
6+
import org.bukkit.event.Listener;
7+
import simplexity.simpleplayerfreeze.Util;
8+
import simplexity.simpleplayerfreeze.configs.ConfigHandler;
9+
10+
public class AttackListener implements Listener {
11+
@EventHandler
12+
public void onAttack(PrePlayerAttackEntityEvent attackEvent) {
13+
if (!ConfigHandler.getInstance().shouldPreventAttack()) return;
14+
if (Util.isFrozen(attackEvent.getPlayer())) {
15+
attackEvent.setCancelled(true);
16+
}
17+
}
18+
}
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 org.bukkit.entity.Player;
4+
import org.bukkit.event.EventHandler;
5+
import org.bukkit.event.Listener;
6+
import org.bukkit.event.inventory.InventoryOpenEvent;
7+
import simplexity.simpleplayerfreeze.Util;
8+
import simplexity.simpleplayerfreeze.configs.ConfigHandler;
9+
10+
public class InventoryOpenListener implements Listener {
11+
@EventHandler
12+
public void onInventoryOpen(InventoryOpenEvent openEvent) {
13+
14+
if (!ConfigHandler.getInstance().shouldPreventInventoryOpen()) return;
15+
if (Util.isFrozen((Player) openEvent.getPlayer())) {
16+
openEvent.setCancelled(true);
17+
}
18+
}
19+
}

src/main/resources/config.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ prevent-hotbar-switch: true
3232
prevent-commands: true
3333
prevent-crafting: true
3434
prevent-inventory-interaction: true
35+
prevent-inventory-open: true #idk why blocking interact doesn't block this but here we are
36+
prevent-attacking: true
3537
whitelisted-commands:
3638
# !! NOTE !! If you do not have the minecraft commands blocked by permissions, it is strongly advised
3739
# Not to remove these from the whitelist due to chat signatures - if these commands are cancelled,

0 commit comments

Comments
 (0)