Finished commands system on Bukkit - tested and working

This commit is contained in:
funkemunky
2021-06-17 12:27:22 -04:00
parent 86f886e2e7
commit 5d790ce56d
19 changed files with 119 additions and 40 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
<parent>
<artifactId>AntiVPN</artifactId>
<groupId>dev.brighten.antivpn</groupId>
<version>1.0.1</version>
<version>1.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Assembly</artifactId>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>AntiVPN</artifactId>
<groupId>dev.brighten.antivpn</groupId>
<version>1.0.1</version>
<version>1.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -0,0 +1,5 @@
#Generated by Maven
#Thu Jun 17 12:27:13 EDT 2021
version=1.1
groupId=dev.brighten.antivpn
artifactId=Assembly
+1 -1
View File
@@ -3,7 +3,7 @@
<parent>
<artifactId>AntiVPN</artifactId>
<groupId>dev.brighten.antivpn</groupId>
<version>1.0.1</version>
<version>1.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Bukkit</artifactId>
+2 -2
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>AntiVPN</artifactId>
<groupId>dev.brighten.antivpn</groupId>
<version>1.0.1</version>
<version>1.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -47,7 +47,7 @@
<dependency>
<groupId>dev.brighten.antivpn</groupId>
<artifactId>Common</artifactId>
<version>1.0.1</version>
<version>1.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
@@ -3,15 +3,18 @@ package dev.brighten.antivpn.bukkit;
import dev.brighten.antivpn.AntiVPN;
import dev.brighten.antivpn.command.Command;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.ComponentBuilder;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.SimpleCommandMap;
import org.bukkit.plugin.SimplePluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import java.lang.reflect.Field;
import java.util.Arrays;
public class BukkitPlugin extends JavaPlugin {
public static BukkitPlugin pluginInstance;
private SimpleCommandMap commandMap;
public void onEnable() {
pluginInstance = this;
@@ -21,19 +24,34 @@ public class BukkitPlugin extends JavaPlugin {
AntiVPN.start(new BukkitConfig(), new BukkitListener(), new BukkitPlayerExecutor());
if (pluginInstance.getServer().getPluginManager() instanceof SimplePluginManager) {
SimplePluginManager manager = (SimplePluginManager) pluginInstance.getServer().getPluginManager();
try {
Field field = SimplePluginManager.class.getDeclaredField("commandMap");
field.setAccessible(true);
commandMap = (SimpleCommandMap) field.get(manager);
} catch (IllegalArgumentException | SecurityException | NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}
for (Command command : AntiVPN.getInstance().getCommands()) {
getCommand(command.parent() + (command.parent().length() > 0 ? " " : "") + command.name())
.setExecutor((sender, cmd, key, args) -> {
commandMap.register("antivpn", new org.bukkit.command.Command(command.name(),
command.description(), command.usage(), Arrays.asList(command.aliases())) {
@Override
public boolean execute(CommandSender sender, String s, String[] args) {
if(!sender.hasPermission("antivpn.command.*")
&& !sender.hasPermission(command.permission())) {
sender.sendMessage(ChatColor.RED + "No permission.");
return true;
}
command.execute(new BukkitCommandExecutor(sender), args);
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',
command.execute(new BukkitCommandExecutor(sender), args)));
return true;
});
return true;
}
});
}
}
+5
View File
@@ -0,0 +1,5 @@
name: AntiVPN
main: dev.brighten.antivpn.bukkit.BukkitPlugin
version: 1.1
author: funkemunky
api-version: 1.13
+1 -1
View File
@@ -3,7 +3,7 @@
<parent>
<artifactId>AntiVPN</artifactId>
<groupId>dev.brighten.antivpn</groupId>
<version>1.0.1</version>
<version>1.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Bungee</artifactId>
+2 -2
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>AntiVPN</artifactId>
<groupId>dev.brighten.antivpn</groupId>
<version>1.0.1</version>
<version>1.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -41,7 +41,7 @@
<dependency>
<groupId>dev.brighten.antivpn</groupId>
<artifactId>Common</artifactId>
<version>1.0.1</version>
<version>1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
+5
View File
@@ -0,0 +1,5 @@
name: AntiVPN
main: dev.brighten.antivpn.bungee.BungeePlugin
description: A simple and fast antivpn plugin.
version: 1.1
author: funkemunky
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>AntiVPN</artifactId>
<groupId>dev.brighten.antivpn</groupId>
<version>1.0.1</version>
<version>1.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -4,6 +4,8 @@ import dev.brighten.antivpn.api.PlayerExecutor;
import dev.brighten.antivpn.api.VPNConfig;
import dev.brighten.antivpn.api.VPNExecutor;
import dev.brighten.antivpn.command.Command;
import dev.brighten.antivpn.command.impl.AntiVPNCommand;
import dev.brighten.antivpn.command.impl.LookupCommand;
import dev.brighten.antivpn.utils.VPNResponse;
import dev.brighten.antivpn.utils.json.JSONException;
import dev.brighten.antivpn.utils.json.JSONObject;
@@ -39,7 +41,7 @@ public class AntiVPN {
INSTANCE.config.update();
//Registering commands
registerCommands();
INSTANCE.registerCommands();
}
public void stop() {
@@ -61,7 +63,8 @@ public class AntiVPN {
return VPNResponse.fromJson(result);
}
private static void registerCommands() {
private void registerCommands() {
commands.add(new AntiVPNCommand());
commands.add(new LookupCommand());
}
}
@@ -4,12 +4,6 @@ import dev.brighten.antivpn.AntiVPN;
public abstract class Command {
public Command() {
for (Command child : children()) {
AntiVPN.getInstance().getCommands().add(child);
}
}
public abstract String permission();
public abstract String name();
@@ -21,8 +15,6 @@ public abstract class Command {
public abstract String usage();
public abstract String parent();
public abstract Command[] children();
public abstract String execute(CommandExecutor executor, String[] args);
}
@@ -1,5 +1,6 @@
package dev.brighten.antivpn.command.impl;
import dev.brighten.antivpn.AntiVPN;
import dev.brighten.antivpn.command.Command;
import dev.brighten.antivpn.command.CommandExecutor;
import dev.brighten.antivpn.utils.StringUtil;
@@ -38,11 +39,6 @@ public class AntiVPNCommand extends Command {
return "";
}
@Override
public Command[] children() {
return new Command[] {new LookupCommand()};
}
@Override
public String execute(CommandExecutor uuid, String[] args) {
List<String> messages = new ArrayList<>();
@@ -50,8 +46,7 @@ public class AntiVPNCommand extends Command {
messages.add(StringUtil.line("&8"));
messages.add("&6&lAntiVPN Help Page");
messages.add("");
messages.add(String.format("&8/&f%s &8- &7&o%s", "antivpn", description()));
for (Command child : children()) {
for (Command child : AntiVPN.getInstance().getCommands()) {
messages.add(String.format("&8/&f%s &8- &7&o%s", "&7antivpn &f" + child.name() + " &7" + child.usage(),
description()));
}
@@ -39,11 +39,6 @@ public class LookupCommand extends Command {
return "antivpn";
}
@Override
public Command[] children() {
return new Command[0];
}
@Override
public String execute(CommandExecutor executor, String[] args) {
if(args.length == 0) {
View File
@@ -0,0 +1,5 @@
#Generated by Maven
#Thu Jun 17 12:27:11 EDT 2021
version=1.1
groupId=dev.brighten.antivpn
artifactId=Common
@@ -0,0 +1,29 @@
dev/brighten/antivpn/utils/json/CookieList.class
dev/brighten/antivpn/api/VPNExecutor.class
dev/brighten/antivpn/utils/json/XML.class
dev/brighten/antivpn/utils/json/JSONWriter.class
dev/brighten/antivpn/utils/json/JSONML.class
dev/brighten/antivpn/api/PlayerExecutor.class
dev/brighten/antivpn/utils/json/JSONObject$1.class
dev/brighten/antivpn/utils/json/JSONException.class
dev/brighten/antivpn/command/Command.class
dev/brighten/antivpn/utils/json/HTTP.class
dev/brighten/antivpn/utils/VPNResponse.class
dev/brighten/antivpn/utils/StringUtil.class
dev/brighten/antivpn/utils/json/HTTPTokener.class
dev/brighten/antivpn/utils/json/JSONArray.class
dev/brighten/antivpn/utils/json/XMLTokener.class
dev/brighten/antivpn/api/APIPlayer.class
dev/brighten/antivpn/command/CommandExecutor.class
dev/brighten/antivpn/utils/json/CDL.class
dev/brighten/antivpn/api/VPNConfig.class
dev/brighten/antivpn/utils/json/JSONStringer.class
dev/brighten/antivpn/command/impl/LookupCommand.class
dev/brighten/antivpn/utils/json/JsonReader.class
dev/brighten/antivpn/utils/json/JSONObject$Null.class
dev/brighten/antivpn/AntiVPN.class
dev/brighten/antivpn/utils/json/JSONString.class
dev/brighten/antivpn/utils/json/JSONObject.class
dev/brighten/antivpn/utils/json/JSONTokener.class
dev/brighten/antivpn/utils/json/Cookie.class
dev/brighten/antivpn/command/impl/AntiVPNCommand.class
@@ -0,0 +1,27 @@
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONML.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/api/APIPlayer.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/command/impl/LookupCommand.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/command/Command.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/JsonReader.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONObject.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/AntiVPN.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONArray.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/command/impl/AntiVPNCommand.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/CDL.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONStringer.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONException.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/StringUtil.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/api/VPNExecutor.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/HTTPTokener.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/HTTP.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/XMLTokener.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/command/CommandExecutor.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/api/VPNConfig.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONString.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/VPNResponse.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONWriter.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/XML.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/Cookie.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONTokener.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/api/PlayerExecutor.java
/Users/dawson/Documents/GitHub/AntiVPN/Common/src/main/java/dev/brighten/antivpn/utils/json/CookieList.java