Skip to content

Commit 98a8d60

Browse files
committed
v1.0.1a: block /minecraft:* command bypass
1 parent cb78461 commit 98a8d60

File tree

6 files changed

+45
-4
lines changed

6 files changed

+45
-4
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
- /give & /setblock
2222
- /function
2323
- /seed
24-
- Keep in mind that this also blocks the console and command blocks!
24+
- This applies to the client and console.
25+
- This also blocks command "hacks", such as /minecraft:tp.
2526

2627
<br>
2728

pom.xml

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

77
<groupId>xyz.villainsrule</groupId>
88
<artifactId>noop</artifactId>
9-
<version>1.0.0a</version>
9+
<version>1.0.1a</version>
1010
<packaging>jar</packaging>
1111

1212
<name>NoOP</name>

src/main/java/xyz/villainsrule/noop/NoOP.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
import org.bukkit.plugin.java.JavaPlugin;
44

5+
import xyz.villainsrule.noop.listeners.CommandListener;
56
import xyz.villainsrule.noop.listeners.PermissionListener;
67

78
public class NoOP extends JavaPlugin {
89

910
@Override
1011
public void onEnable() {
12+
getServer().getPluginManager().registerEvents(new CommandListener(), this);
1113
getServer().getPluginManager().registerEvents(new PermissionListener(), this);
1214
}
1315
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package xyz.villainsrule.noop.listeners;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
6+
import org.bukkit.entity.Player;
7+
import org.bukkit.event.EventHandler;
8+
import org.bukkit.event.Listener;
9+
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
10+
import org.bukkit.event.server.ServerCommandEvent;
11+
12+
public class CommandListener implements Listener {
13+
List<String> blockedCommands = Arrays.asList("defaultgamemode", "deop", "function", "gamemode", "give", "op", "seed", "setblock", "teleport", "tp");
14+
15+
@EventHandler
16+
public void onPlayerCommand(PlayerCommandPreprocessEvent event) {
17+
Player player = event.getPlayer();
18+
String message = event.getMessage();
19+
20+
String[] commandParts = message.split(" ")[0].split(":");
21+
22+
if (Arrays.stream(commandParts).anyMatch(blockedCommands::contains)) {
23+
event.setCancelled(true);
24+
25+
if (player != null) player.setOp(false);
26+
}
27+
}
28+
29+
@EventHandler
30+
public void onConsoleCommand(ServerCommandEvent event) {
31+
String command = event.getCommand();
32+
33+
String[] commandParts = command.split(" ")[0].split(":");
34+
35+
if (Arrays.stream(commandParts).anyMatch(blockedCommands::contains))
36+
event.setCancelled(true);
37+
}
38+
}

src/main/java/xyz/villainsrule/noop/listeners/PermissionListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public void onPlayerJoin(PlayerJoinEvent event) {
2121
}
2222

2323
@EventHandler
24-
public void onCommandEvent(PlayerCommandPreprocessEvent event) {
24+
public void onCommand(PlayerCommandPreprocessEvent event) {
2525
Player player = event.getPlayer();
2626

2727
if (checkPermissions(player))

src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: NoOP
2-
version: 1.0.0a
2+
version: 1.0.1a
33
main: xyz.villainsrule.noop.NoOP
44

55
commands:

0 commit comments

Comments
 (0)