diff --git a/pom.xml b/pom.xml
index b9f5a1b..ae2eb79 100644
--- a/pom.xml
+++ b/pom.xml
@@ -62,6 +62,10 @@
sonatype
https://oss.sonatype.org/content/groups/public/
+
+ jitpack.io
+ https://jitpack.io
+
@@ -77,5 +81,12 @@
1.15-SNAPSHOT
provided
+
+ com.github.PaperMC
+ Waterfall
+ 1.16
+ system
+ ${project.basedir}/lib/waterfall-366.jar
+
diff --git a/src/main/java/eu/endermite/commandwhitelist/CommandWhitelistBungee.java b/src/main/java/eu/endermite/commandwhitelist/bungee/CommandWhitelistBungee.java
similarity index 67%
rename from src/main/java/eu/endermite/commandwhitelist/CommandWhitelistBungee.java
rename to src/main/java/eu/endermite/commandwhitelist/bungee/CommandWhitelistBungee.java
index d79b2c6..de0a9b4 100644
--- a/src/main/java/eu/endermite/commandwhitelist/CommandWhitelistBungee.java
+++ b/src/main/java/eu/endermite/commandwhitelist/bungee/CommandWhitelistBungee.java
@@ -1,35 +1,42 @@
-package eu.endermite.commandwhitelist;
+package eu.endermite.commandwhitelist.bungee;
import com.google.common.io.ByteStreams;
-import eu.endermite.commandwhitelist.config.BungeeConfigCache;
-import eu.endermite.commandwhitelist.listeners.BungeeChatEventListener;
+import eu.endermite.commandwhitelist.bungee.config.BungeeConfigCache;
+import eu.endermite.commandwhitelist.bungee.listeners.BungeeChatEventListener;
+import eu.endermite.commandwhitelist.bungee.listeners.BungeeTabCompleteListener;
+import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.config.YamlConfiguration;
-
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
+
public final class CommandWhitelistBungee extends Plugin {
- private static eu.endermite.commandwhitelist.CommandWhitelistBungee plugin;
+ private static CommandWhitelistBungee plugin;
private static BungeeConfigCache configCache;
@Override
public void onEnable() {
plugin = this;
-
+ getLogger().info("Running on "+ ChatColor.DARK_AQUA+getProxy().getName());
loadConfig();
-
this.getProxy().getPluginManager().registerListener(this, new BungeeChatEventListener());
+ if (this.getProxy().getName().contains("Waterfall") || getProxy().getName().contains("FlameCord")) {
+ this.getProxy().getPluginManager().registerListener(this, new BungeeTabCompleteListener());
+ } else {
+ getLogger().info("Bungee tab completion requires Waterfall, FlameCord or other Waterfall fork.");
+ }
+
}
- public static eu.endermite.commandwhitelist.CommandWhitelistBungee getPlugin() {
+ public static CommandWhitelistBungee getPlugin() {
return plugin;
}
diff --git a/src/main/java/eu/endermite/commandwhitelist/config/BungeeConfigCache.java b/src/main/java/eu/endermite/commandwhitelist/bungee/config/BungeeConfigCache.java
similarity index 96%
rename from src/main/java/eu/endermite/commandwhitelist/config/BungeeConfigCache.java
rename to src/main/java/eu/endermite/commandwhitelist/bungee/config/BungeeConfigCache.java
index cd308e7..a90fda2 100644
--- a/src/main/java/eu/endermite/commandwhitelist/config/BungeeConfigCache.java
+++ b/src/main/java/eu/endermite/commandwhitelist/bungee/config/BungeeConfigCache.java
@@ -1,4 +1,4 @@
-package eu.endermite.commandwhitelist.config;
+package eu.endermite.commandwhitelist.bungee.config;
import net.md_5.bungee.config.Configuration;
diff --git a/src/main/java/eu/endermite/commandwhitelist/listeners/BungeeChatEventListener.java b/src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeChatEventListener.java
similarity index 93%
rename from src/main/java/eu/endermite/commandwhitelist/listeners/BungeeChatEventListener.java
rename to src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeChatEventListener.java
index 9882df4..93ca358 100644
--- a/src/main/java/eu/endermite/commandwhitelist/listeners/BungeeChatEventListener.java
+++ b/src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeChatEventListener.java
@@ -1,17 +1,15 @@
-package eu.endermite.commandwhitelist.listeners;
+package eu.endermite.commandwhitelist.bungee.listeners;
-import eu.endermite.commandwhitelist.CommandWhitelistBungee;
+import eu.endermite.commandwhitelist.bungee.CommandWhitelistBungee;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
-
import java.util.List;
import java.util.Map;
public class BungeeChatEventListener implements Listener {
-
@EventHandler
public void onChatEvent(net.md_5.bungee.api.event.ChatEvent event) {
@@ -42,13 +40,7 @@ public class BungeeChatEventListener implements Listener {
event.setCancelled(true);
player.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandWhitelistBungee.getConfigCache().getPrefix() + CommandWhitelistBungee.getConfigCache().getCommandDenied()));
}
-
}
-
-
-
}
-
}
-
}
diff --git a/src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeTabCompleteListener.java b/src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeTabCompleteListener.java
new file mode 100644
index 0000000..85dc8c8
--- /dev/null
+++ b/src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeTabCompleteListener.java
@@ -0,0 +1,41 @@
+package eu.endermite.commandwhitelist.bungee.listeners;
+
+import eu.endermite.commandwhitelist.bungee.CommandWhitelistBungee;
+import net.md_5.bungee.api.connection.ProxiedPlayer;
+import net.md_5.bungee.api.plugin.Command;
+import net.md_5.bungee.api.plugin.Listener;
+import net.md_5.bungee.event.EventHandler;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class BungeeTabCompleteListener implements Listener {
+
+ @EventHandler
+ public void onProxyDefineCommandsEvent(io.github.waterfallmc.waterfall.event.ProxyDefineCommandsEvent event) {
+
+ if (event.getReceiver() instanceof ProxiedPlayer) {
+ ProxiedPlayer player = (ProxiedPlayer) event.getReceiver();
+ List commandList = new ArrayList<>();
+ for (Map.Entry> entry : CommandWhitelistBungee.getConfigCache().getPermList().entrySet()) {
+ if (player.hasPermission("commandwhitelist.commands."+entry.getKey())) {
+ commandList.addAll(entry.getValue());
+ }
+ }
+ HashMap commandHashMap = new HashMap<>();
+ for (String s : commandList) {
+ for (Map.Entry command : CommandWhitelistBungee.getPlugin().getProxy().getPluginManager().getCommands()) {
+ if (s.equalsIgnoreCase(command.getValue().getName())) {
+ commandHashMap.put(command.getKey(), command.getValue());
+ }
+ }
+ }
+ event.getCommands().values().removeIf((cmd) -> !commandHashMap.containsValue(cmd));
+ }
+
+
+
+ }
+
+}
diff --git a/src/main/java/eu/endermite/commandwhitelist/CommandWhitelist.java b/src/main/java/eu/endermite/commandwhitelist/spigot/CommandWhitelist.java
similarity index 81%
rename from src/main/java/eu/endermite/commandwhitelist/CommandWhitelist.java
rename to src/main/java/eu/endermite/commandwhitelist/spigot/CommandWhitelist.java
index 490accd..7d4331f 100644
--- a/src/main/java/eu/endermite/commandwhitelist/CommandWhitelist.java
+++ b/src/main/java/eu/endermite/commandwhitelist/spigot/CommandWhitelist.java
@@ -1,9 +1,9 @@
-package eu.endermite.commandwhitelist;
+package eu.endermite.commandwhitelist.spigot;
-import eu.endermite.commandwhitelist.command.MainCommand;
-import eu.endermite.commandwhitelist.config.ConfigCache;
-import eu.endermite.commandwhitelist.listeners.PlayerCommandPreProcessListener;
-import eu.endermite.commandwhitelist.listeners.PlayerCommandSendListener;
+import eu.endermite.commandwhitelist.spigot.command.MainCommand;
+import eu.endermite.commandwhitelist.spigot.config.ConfigCache;
+import eu.endermite.commandwhitelist.spigot.listeners.PlayerCommandPreProcessListener;
+import eu.endermite.commandwhitelist.spigot.listeners.PlayerCommandSendListener;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
diff --git a/src/main/java/eu/endermite/commandwhitelist/command/MainCommand.java b/src/main/java/eu/endermite/commandwhitelist/spigot/command/MainCommand.java
similarity index 93%
rename from src/main/java/eu/endermite/commandwhitelist/command/MainCommand.java
rename to src/main/java/eu/endermite/commandwhitelist/spigot/command/MainCommand.java
index 4be2cee..7ab96ab 100644
--- a/src/main/java/eu/endermite/commandwhitelist/command/MainCommand.java
+++ b/src/main/java/eu/endermite/commandwhitelist/spigot/command/MainCommand.java
@@ -1,6 +1,6 @@
-package eu.endermite.commandwhitelist.command;
+package eu.endermite.commandwhitelist.spigot.command;
-import eu.endermite.commandwhitelist.CommandWhitelist;
+import eu.endermite.commandwhitelist.spigot.CommandWhitelist;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
diff --git a/src/main/java/eu/endermite/commandwhitelist/config/ConfigCache.java b/src/main/java/eu/endermite/commandwhitelist/spigot/config/ConfigCache.java
similarity index 92%
rename from src/main/java/eu/endermite/commandwhitelist/config/ConfigCache.java
rename to src/main/java/eu/endermite/commandwhitelist/spigot/config/ConfigCache.java
index f8077fb..0292622 100644
--- a/src/main/java/eu/endermite/commandwhitelist/config/ConfigCache.java
+++ b/src/main/java/eu/endermite/commandwhitelist/spigot/config/ConfigCache.java
@@ -1,6 +1,6 @@
-package eu.endermite.commandwhitelist.config;
+package eu.endermite.commandwhitelist.spigot.config;
-import eu.endermite.commandwhitelist.CommandWhitelist;
+import eu.endermite.commandwhitelist.spigot.CommandWhitelist;
import org.bukkit.configuration.Configuration;
import java.util.HashMap;
diff --git a/src/main/java/eu/endermite/commandwhitelist/listeners/PlayerCommandPreProcessListener.java b/src/main/java/eu/endermite/commandwhitelist/spigot/listeners/PlayerCommandPreProcessListener.java
similarity index 92%
rename from src/main/java/eu/endermite/commandwhitelist/listeners/PlayerCommandPreProcessListener.java
rename to src/main/java/eu/endermite/commandwhitelist/spigot/listeners/PlayerCommandPreProcessListener.java
index 3800570..9728f00 100644
--- a/src/main/java/eu/endermite/commandwhitelist/listeners/PlayerCommandPreProcessListener.java
+++ b/src/main/java/eu/endermite/commandwhitelist/spigot/listeners/PlayerCommandPreProcessListener.java
@@ -1,6 +1,6 @@
-package eu.endermite.commandwhitelist.listeners;
+package eu.endermite.commandwhitelist.spigot.listeners;
-import eu.endermite.commandwhitelist.CommandWhitelist;
+import eu.endermite.commandwhitelist.spigot.CommandWhitelist;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/eu/endermite/commandwhitelist/listeners/PlayerCommandSendListener.java b/src/main/java/eu/endermite/commandwhitelist/spigot/listeners/PlayerCommandSendListener.java
similarity index 88%
rename from src/main/java/eu/endermite/commandwhitelist/listeners/PlayerCommandSendListener.java
rename to src/main/java/eu/endermite/commandwhitelist/spigot/listeners/PlayerCommandSendListener.java
index fcd5e28..85938e9 100644
--- a/src/main/java/eu/endermite/commandwhitelist/listeners/PlayerCommandSendListener.java
+++ b/src/main/java/eu/endermite/commandwhitelist/spigot/listeners/PlayerCommandSendListener.java
@@ -1,6 +1,6 @@
-package eu.endermite.commandwhitelist.listeners;
+package eu.endermite.commandwhitelist.spigot.listeners;
-import eu.endermite.commandwhitelist.CommandWhitelist;
+import eu.endermite.commandwhitelist.spigot.CommandWhitelist;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
diff --git a/src/main/resources/bungee.yml b/src/main/resources/bungee.yml
index 4fa6dca..6839dfd 100644
--- a/src/main/resources/bungee.yml
+++ b/src/main/resources/bungee.yml
@@ -1,4 +1,4 @@
name: CommandWhitelistBungee
version: ${project.version}
-main: eu.endermite.commandwhitelist.CommandWhitelistBungee
+main: eu.endermite.commandwhitelist.bungee.CommandWhitelistBungee
author: YouHaveTrouble
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 8660e4f..bf674e0 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,6 +1,6 @@
name: CommandWhitelist
version: ${project.version}
-main: eu.endermite.commandwhitelist.CommandWhitelist
+main: eu.endermite.commandwhitelist.spigot.CommandWhitelist
api-version: 1.13
authors: [YouHaveTrouble]
description: Control what commands players can use