Compare commits

...

6 Commits

Author SHA1 Message Date
YouHaveTrouble 99f7c245da bump version 2022-07-31 15:59:16 +02:00
YouHaveTrouble cd4c41f1f2 make protocollib message a warning so it maybe catches more eyes 2022-07-31 15:59:05 +02:00
YouHaveTrouble 8a86568ce9 drop packet level command send event 2022-07-31 15:47:56 +02:00
YouHaveTrouble b08234d268 update depends 2022-07-31 15:47:04 +02:00
YouHaveTrouble 2c7a089fae bump version 2022-05-01 15:22:00 +02:00
YouHaveTrouble 41ff6d9d3e don't replace config. whops 2022-05-01 15:20:00 +02:00
9 changed files with 19 additions and 61 deletions
+5 -5
View File
@@ -6,7 +6,7 @@
<parent> <parent>
<groupId>eu.endermite.commandwhitelist</groupId> <groupId>eu.endermite.commandwhitelist</groupId>
<artifactId>CommandWhitelist</artifactId> <artifactId>CommandWhitelist</artifactId>
<version>2.4.0</version> <version>2.5.0</version>
</parent> </parent>
<artifactId>Bukkit</artifactId> <artifactId>Bukkit</artifactId>
@@ -86,19 +86,19 @@
<dependency> <dependency>
<groupId>io.papermc.paper</groupId> <groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId> <artifactId>paper-api</artifactId>
<version>1.17.1-R0.1-SNAPSHOT</version> <version>1.19-R0.1-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.kyori</groupId> <groupId>net.kyori</groupId>
<artifactId>adventure-platform-bukkit</artifactId> <artifactId>adventure-platform-bukkit</artifactId>
<version>4.1.0</version> <version>4.1.1</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.kyori</groupId> <groupId>net.kyori</groupId>
<artifactId>adventure-text-minimessage</artifactId> <artifactId>adventure-text-minimessage</artifactId>
<version>4.10.1</version> <version>4.11.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
@@ -110,7 +110,7 @@
<dependency> <dependency>
<groupId>com.comphenix.protocol</groupId> <groupId>com.comphenix.protocol</groupId>
<artifactId>ProtocolLib</artifactId> <artifactId>ProtocolLib</artifactId>
<version>4.6.0</version> <version>5.0.0-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
@@ -6,14 +6,12 @@ import eu.endermite.commandwhitelist.bukkit.listeners.PlayerCommandPreProcessLis
import eu.endermite.commandwhitelist.bukkit.listeners.PlayerCommandSendListener; import eu.endermite.commandwhitelist.bukkit.listeners.PlayerCommandSendListener;
import eu.endermite.commandwhitelist.bukkit.listeners.TabCompleteBlockerListener; import eu.endermite.commandwhitelist.bukkit.listeners.TabCompleteBlockerListener;
import eu.endermite.commandwhitelist.bukkit.listeners.protocollib.PacketCommandPreProcessListener; import eu.endermite.commandwhitelist.bukkit.listeners.protocollib.PacketCommandPreProcessListener;
import eu.endermite.commandwhitelist.bukkit.listeners.protocollib.PacketCommandSendListener;
import eu.endermite.commandwhitelist.common.CWGroup; import eu.endermite.commandwhitelist.common.CWGroup;
import eu.endermite.commandwhitelist.common.ConfigCache; import eu.endermite.commandwhitelist.common.ConfigCache;
import eu.endermite.commandwhitelist.common.commands.CWCommand; import eu.endermite.commandwhitelist.common.commands.CWCommand;
import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bstats.bukkit.Metrics; import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginCommand; import org.bukkit.command.PluginCommand;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -42,11 +40,10 @@ public class CommandWhitelistBukkit extends JavaPlugin {
if (!getConfigCache().useProtocolLib || protocollib == null || !protocollib.isEnabled()) { if (!getConfigCache().useProtocolLib || protocollib == null || !protocollib.isEnabled()) {
getServer().getPluginManager().registerEvents(new PlayerCommandPreProcessListener(), this); getServer().getPluginManager().registerEvents(new PlayerCommandPreProcessListener(), this);
getServer().getPluginManager().registerEvents(new PlayerCommandSendListener(), this);
} else { } else {
PacketCommandPreProcessListener.protocol(this); PacketCommandPreProcessListener.protocol(this);
PacketCommandSendListener.protocol(this); getLogger().warning("Using ProtocolLib for command filter!");
getLogger().info(ChatColor.AQUA + "Using ProtocolLib for command filter!"); getLogger().warning("Please make sure you actually need this. This is not a \"better way to do it\".");
} }
try { try {
// Use paper's async tab completions if possible // Use paper's async tab completions if possible
@@ -55,6 +52,7 @@ public class CommandWhitelistBukkit extends JavaPlugin {
} catch (ClassNotFoundException ignored) { } catch (ClassNotFoundException ignored) {
} }
getServer().getPluginManager().registerEvents(new TabCompleteBlockerListener(), this); getServer().getPluginManager().registerEvents(new TabCompleteBlockerListener(), this);
getServer().getPluginManager().registerEvents(new PlayerCommandSendListener(), this);
PluginCommand command = getCommand("commandwhitelist"); PluginCommand command = getCommand("commandwhitelist");
if (command != null) { if (command != null) {
@@ -74,8 +72,8 @@ public class CommandWhitelistBukkit extends JavaPlugin {
} catch (NoSuchMethodError e) { } catch (NoSuchMethodError e) {
configCache = new ConfigCache(configFile, true, null); configCache = new ConfigCache(configFile, true, null);
} }
return;
} }
else
configCache.reloadConfig(); configCache.reloadConfig();
} }
@@ -66,7 +66,7 @@ public class BukkitCommandExecutor implements TabExecutor {
return true; return true;
} }
audiences.sender(sender).sendMessage(Component.text("Dumping all available commands to a file...")); audiences.sender(sender).sendMessage(Component.text("Dumping all available commands to a file..."));
if (CommandUtil.dumpAllBukkitCommands(CommandWhitelistBukkit.getServerCommands(), new File("plugins/CommandWhitelist/config.yml"))) { if (CommandUtil.dumpAllBukkitCommands(CommandWhitelistBukkit.getServerCommands(), new File("plugins/CommandWhitelist/command_dump.yml"))) {
audiences.sender(sender).sendMessage(Component.text("Commands dumped to command_dump.yml")); audiences.sender(sender).sendMessage(Component.text("Commands dumped to command_dump.yml"));
} else { } else {
audiences.sender(sender).sendMessage(Component.text("Failed to save the file.")); audiences.sender(sender).sendMessage(Component.text("Failed to save the file."));
@@ -1,40 +0,0 @@
package eu.endermite.commandwhitelist.bukkit.listeners.protocollib;
import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.ProtocolManager;
import com.comphenix.protocol.events.ListenerPriority;
import com.comphenix.protocol.events.PacketAdapter;
import com.comphenix.protocol.events.PacketContainer;
import com.comphenix.protocol.events.PacketEvent;
import com.mojang.brigadier.tree.RootCommandNode;
import eu.endermite.commandwhitelist.bukkit.CommandWhitelistBukkit;
import eu.endermite.commandwhitelist.common.CWPermission;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import java.util.HashSet;
public class PacketCommandSendListener {
public static void protocol(CommandWhitelistBukkit plugin) {
ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager();
commandSendListener(protocolManager, plugin);
}
public static void commandSendListener(ProtocolManager protocolManager, Plugin plugin) {
protocolManager.addPacketListener(new PacketAdapter(plugin, ListenerPriority.HIGHEST, PacketType.Play.Server.COMMANDS) {
@Override
public void onPacketSending(PacketEvent event) {
Player player = event.getPlayer();
if (event.isPlayerTemporary()) return;
if (player.hasPermission(CWPermission.BYPASS.permission())) return;
HashSet<String> commandList = CommandWhitelistBukkit.getCommands(player);
PacketContainer packet = event.getPacket();
RootCommandNode<?> node = (RootCommandNode<?>) packet.getModifier().getValues().get(0);
node.getChildren().removeIf((cmd) -> !commandList.contains(cmd.getName()));
}
});
}
}
+3 -3
View File
@@ -6,7 +6,7 @@
<parent> <parent>
<groupId>eu.endermite.commandwhitelist</groupId> <groupId>eu.endermite.commandwhitelist</groupId>
<artifactId>CommandWhitelist</artifactId> <artifactId>CommandWhitelist</artifactId>
<version>2.4.0</version> <version>2.5.0</version>
</parent> </parent>
<artifactId>Common</artifactId> <artifactId>Common</artifactId>
@@ -88,13 +88,13 @@
<dependency> <dependency>
<groupId>net.kyori</groupId> <groupId>net.kyori</groupId>
<artifactId>adventure-text-minimessage</artifactId> <artifactId>adventure-text-minimessage</artifactId>
<version>4.10.1</version> <version>4.11.0</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.papermc.paper</groupId> <groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId> <artifactId>paper-api</artifactId>
<version>1.17.1-R0.1-SNAPSHOT</version> <version>1.19-R0.1-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
+1 -1
View File
@@ -6,7 +6,7 @@
<parent> <parent>
<groupId>eu.endermite.commandwhitelist</groupId> <groupId>eu.endermite.commandwhitelist</groupId>
<artifactId>CommandWhitelist</artifactId> <artifactId>CommandWhitelist</artifactId>
<version>2.4.0</version> <version>2.5.0</version>
</parent> </parent>
<artifactId>Velocity</artifactId> <artifactId>Velocity</artifactId>
+1 -1
View File
@@ -6,7 +6,7 @@
<parent> <parent>
<groupId>eu.endermite.commandwhitelist</groupId> <groupId>eu.endermite.commandwhitelist</groupId>
<artifactId>CommandWhitelist</artifactId> <artifactId>CommandWhitelist</artifactId>
<version>2.4.0</version> <version>2.5.0</version>
</parent> </parent>
<artifactId>Waterfall</artifactId> <artifactId>Waterfall</artifactId>
@@ -75,7 +75,7 @@ public class BungeeMainCommand extends Command implements TabExecutor {
return; return;
} }
audiences.sender(sender).sendMessage(Component.text("Dumping all available commands to a file...")); audiences.sender(sender).sendMessage(Component.text("Dumping all available commands to a file..."));
if (CommandUtil.dumpAllBukkitCommands(CommandWhitelistWaterfall.getServerCommands(), new File("plugins/CommandWhitelist/config.yml"))) { if (CommandUtil.dumpAllBukkitCommands(CommandWhitelistWaterfall.getServerCommands(), new File("plugins/CommandWhitelist/command_dump.yml"))) {
audiences.sender(sender).sendMessage(Component.text("Commands dumped to command_dump.yml")); audiences.sender(sender).sendMessage(Component.text("Commands dumped to command_dump.yml"));
} else { } else {
audiences.sender(sender).sendMessage(Component.text("Failed to save the file.")); audiences.sender(sender).sendMessage(Component.text("Failed to save the file."));
+2 -2
View File
@@ -6,7 +6,7 @@
<groupId>eu.endermite.commandwhitelist</groupId> <groupId>eu.endermite.commandwhitelist</groupId>
<artifactId>CommandWhitelist</artifactId> <artifactId>CommandWhitelist</artifactId>
<version>2.4.0</version> <version>2.5.0</version>
<modules> <modules>
<module>CommandWhitelistCommon</module> <module>CommandWhitelistCommon</module>
<module>CommandWhitelistBukkit</module> <module>CommandWhitelistBukkit</module>
@@ -71,7 +71,7 @@
<dependency> <dependency>
<groupId>net.kyori</groupId> <groupId>net.kyori</groupId>
<artifactId>adventure-api</artifactId> <artifactId>adventure-api</artifactId>
<version>4.10.1</version> <version>4.11.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
</dependencies> </dependencies>