// Path: Command Blocker Shared/src/main/java/me/treyruffy/commandblocker/MethodInterface.java
// public interface MethodInterface {
// 
// 	Object getPlugin();
// 
// 	Object getConfig();
// 	Object getDisabledCommandsConfig();
// 	Object getMessagesConfig();
// 	Object getOpBlockConfig();
// 
// 	void saveConfig();
// 	void saveDisabledCommandsConfig();
// 	void saveMessagesConfig();
// 	void saveOpBlockConfig();
// 
// 	File getConfigFile(Object configurationFile);
// 
// 	String getVersion();
// 	
// 	String getServerType();
// 	
// 	File getDataFolder();
// 	
//     void setupMetrics();
// 
// 	void executeCommand(String cmd);
// 
//     void sendMessage(Object commandSender, Component message);
// 
//     List<String> getOldMessages(String category, String message);
//     List<String> getOldMessages(String category, String message, Object configurationFile);
// 
//     Character getChatComponentChar();
// 
//     String getOldMessage(String category, String message);
//     String getOldMessage(String category, String message, Object configurationFile);
// 	
//     void log(String msg);
// }
// 
// Path: Command Blocker Shared/src/main/java/me/treyruffy/commandblocker/Universal.java
// public class Universal {
// 
// 	private static Universal instance = null;
// 	private MethodInterface mi;
// 	
// 	public static Universal get() {
// 		return instance == null ? instance = new Universal() : instance;
// 	}
// 	
// 	public void setup(MethodInterface mi) {
// 		this.mi = mi;
// 		
// 		mi.setupMetrics();
// 	}
// 	
// 	public MethodInterface getMethods() {
//         return mi;
//     }
// 	
// }


import me.treyruffy.commandblocker.MethodInterface;
import me.treyruffy.commandblocker.Universal;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandSendEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
			String permission = cmd.replace("%colon%", "").replace(":", "").replace(" ", "");
			if (!disabled.getStringList("DisabledCommands." + cmd + ".WhitelistedPlayers").contains(p.getUniqueId().toString())) {
				if (disabled.getString("DisabledCommands." + cmd + ".Permission") == null) {
					if (!(p.hasPermission(Objects.requireNonNull(config.getString("Default.Permission")).replace("%command%",
							permission)))) {
						commandsToRemove.add(cmds);
					}
				} else {
					if (!(p.hasPermission(Objects.requireNonNull(disabled.getString("DisabledCommands." + cmd +
							".Permission"))))) {
						if (disabled.getString("DisabledCommands." + cmd + ".NoTabComplete") == null
								|| disabled.getBoolean("DisabledCommands." + cmd + ".NoTabComplete")) {
							if (!(disabled.getStringList("DisabledCommands." + cmd + ".Worlds").contains("all"))) {
								if (disabled.getStringList("DisabledCommands." + cmd + ".Worlds").contains(p.getWorld().getName())) {
									e.getCommands().remove(cmds);
								}
							}
							e.getCommands().remove(cmds);
						}
					}
				}
			}
		}
		for (String commands : commandsToRemove) {
			e.getCommands().remove(commands);
		}
	}

	@EventHandler
	public void onOperatorTabComplete(PlayerCommandSendEvent e) {
// Path: Command Blocker Shared/src/main/java/me/treyruffy/commandblocker/MethodInterface.java
// public interface MethodInterface {
// 
// 	Object getPlugin();
// 
// 	Object getConfig();
// 	Object getDisabledCommandsConfig();
// 	Object getMessagesConfig();
// 	Object getOpBlockConfig();
// 
// 	void saveConfig();
// 	void saveDisabledCommandsConfig();
// 	void saveMessagesConfig();
// 	void saveOpBlockConfig();
// 
// 	File getConfigFile(Object configurationFile);
// 
// 	String getVersion();
// 	
// 	String getServerType();
// 	
// 	File getDataFolder();
// 	
//     void setupMetrics();
// 
// 	void executeCommand(String cmd);
// 
//     void sendMessage(Object commandSender, Component message);
// 
//     List<String> getOldMessages(String category, String message);
//     List<String> getOldMessages(String category, String message, Object configurationFile);
// 
//     Character getChatComponentChar();
// 
//     String getOldMessage(String category, String message);
//     String getOldMessage(String category, String message, Object configurationFile);
// 	
//     void log(String msg);
// }
// 
// Path: Command Blocker Shared/src/main/java/me/treyruffy/commandblocker/Universal.java
// public class Universal {
// 
// 	private static Universal instance = null;
// 	private MethodInterface mi;
// 	
// 	public static Universal get() {
// 		return instance == null ? instance = new Universal() : instance;
// 	}
// 	
// 	public void setup(MethodInterface mi) {
// 		this.mi = mi;
// 		
// 		mi.setupMetrics();
// 	}
// 	
// 	public MethodInterface getMethods() {
//         return mi;
//     }
// 	
// }


// Path: Command Blocker Bukkit/src/main/java/me/treyruffy/commandblocker/bukkit/listeners/NewTabCompletionListener.java
import me.treyruffy.commandblocker.MethodInterface;
import me.treyruffy.commandblocker.Universal;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandSendEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

			String permission = cmd.replace("%colon%", "").replace(":", "").replace(" ", "");
			if (!disabled.getStringList("DisabledCommands." + cmd + ".WhitelistedPlayers").contains(p.getUniqueId().toString())) {
				if (disabled.getString("DisabledCommands." + cmd + ".Permission") == null) {
					if (!(p.hasPermission(Objects.requireNonNull(config.getString("Default.Permission")).replace("%command%",
							permission)))) {
						commandsToRemove.add(cmds);
					}
				} else {
					if (!(p.hasPermission(Objects.requireNonNull(disabled.getString("DisabledCommands." + cmd +
							".Permission"))))) {
						if (disabled.getString("DisabledCommands." + cmd + ".NoTabComplete") == null
								|| disabled.getBoolean("DisabledCommands." + cmd + ".NoTabComplete")) {
							if (!(disabled.getStringList("DisabledCommands." + cmd + ".Worlds").contains("all"))) {
								if (disabled.getStringList("DisabledCommands." + cmd + ".Worlds").contains(p.getWorld().getName())) {
									e.getCommands().remove(cmds);
								}
							}
							e.getCommands().remove(cmds);
						}
					}
				}
			}
		}
		for (String commands : commandsToRemove) {
			e.getCommands().remove(commands);
		}
	}

	@EventHandler
	public void onOperatorTabComplete(PlayerCommandSendEvent e) {
		MethodInterface mi = Universal.get().getMethods();