Separate command class, fix processor parent POM
This commit is contained in:
parent
393c9c9b08
commit
05720afdf8
4 changed files with 33 additions and 37 deletions
|
@ -1,6 +1,12 @@
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>com.github.TBMCPlugins.ChromaCore</groupId>
|
||||||
|
<artifactId>CorePOM</artifactId>
|
||||||
|
<version>master-SNAPSHOT</version>
|
||||||
|
<relativePath>../CorePOM</relativePath>
|
||||||
|
</parent>
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>spigot-repo</id>
|
<id>spigot-repo</id>
|
||||||
|
@ -21,12 +27,6 @@
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<parent>
|
|
||||||
<groupId>com.github.TBMCPlugins</groupId>
|
|
||||||
<artifactId>ChromaCore</artifactId>
|
|
||||||
<version>master-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
<groupId>com.github.TBMCPlugins.ChromaCore</groupId>
|
|
||||||
<artifactId>ButtonProcessor</artifactId>
|
<artifactId>ButtonProcessor</artifactId>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
@ -40,17 +40,17 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<compilerArgument>-proc:none</compilerArgument>
|
<compilerArgument>-proc:none</compilerArgument>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
<version>3.0.0-M3</version>
|
<version>3.0.0-M3</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<useSystemClassLoader>false
|
<useSystemClassLoader>false
|
||||||
</useSystemClassLoader> <!-- https://stackoverflow.com/a/53012553/2703239 -->
|
</useSystemClassLoader> <!-- https://stackoverflow.com/a/53012553/2703239 -->
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|
|
@ -54,7 +54,6 @@ public class SpawnComponent extends Component<MainPlugin> implements PluginMessa
|
||||||
if ("ChromaCore-Spawn".equals(subchannel)) {
|
if ("ChromaCore-Spawn".equals(subchannel)) {
|
||||||
// Use the code sample in the 'Response' sections below to read
|
// Use the code sample in the 'Response' sections below to read
|
||||||
// the data.
|
// the data.
|
||||||
System.out.println("Heh nice");
|
|
||||||
short len = in.readShort();
|
short len = in.readShort();
|
||||||
byte[] msgbytes = new byte[len];
|
byte[] msgbytes = new byte[len];
|
||||||
in.readFully(msgbytes);
|
in.readFully(msgbytes);
|
||||||
|
|
|
@ -129,15 +129,11 @@ public abstract class Component<TP extends JavaPlugin> {
|
||||||
throw new UnregisteredComponentException(component);
|
throw new UnregisteredComponentException(component);
|
||||||
if (component.enabled == enabled) return; //Don't do anything
|
if (component.enabled == enabled) return; //Don't do anything
|
||||||
if (component.enabled = enabled) {
|
if (component.enabled = enabled) {
|
||||||
//System.out.println("Updating config for "+component.getClassName());
|
|
||||||
updateConfig(component.getPlugin(), component);
|
updateConfig(component.getPlugin(), component);
|
||||||
//System.out.println("Enabling "+component.getClassName());
|
|
||||||
component.enable();
|
component.enable();
|
||||||
if (ButtonPlugin.configGenAllowed(component)) {
|
if (ButtonPlugin.configGenAllowed(component)) {
|
||||||
//System.out.println("Pregenning config for "+component.getClassName());
|
|
||||||
IHaveConfig.pregenConfig(component, null);
|
IHaveConfig.pregenConfig(component, null);
|
||||||
}
|
}
|
||||||
//System.out.println("Done enabling "+component.getClassName());
|
|
||||||
} else {
|
} else {
|
||||||
component.disable();
|
component.disable();
|
||||||
ButtonPlugin.getCommand2MC().unregisterCommands(component);
|
ButtonPlugin.getCommand2MC().unregisterCommands(component);
|
||||||
|
|
|
@ -19,7 +19,6 @@ import org.bukkit.permissions.Permission;
|
||||||
import org.bukkit.permissions.PermissionDefault;
|
import org.bukkit.permissions.PermissionDefault;
|
||||||
|
|
||||||
import java.lang.annotation.Annotation;
|
import java.lang.annotation.Annotation;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -83,8 +82,6 @@ public class Command2MC extends Command2<ICommand2MC, Command2MCSender> implemen
|
||||||
p = MainPlugin.permission.playerHas(sender instanceof Player ? ((Player) sender).getLocation().getWorld().getName() : null, (OfflinePlayer) sender, perm);
|
p = MainPlugin.permission.playerHas(sender instanceof Player ? ((Player) sender).getLocation().getWorld().getName() : null, (OfflinePlayer) sender, perm);
|
||||||
else
|
else
|
||||||
p = false; //Use sender's method
|
p = false; //Use sender's method
|
||||||
//System.out.println("playerHas " + perm + ": " + p);
|
|
||||||
//System.out.println("hasPermission: " + sender.hasPermission(perm));
|
|
||||||
if (!p) p = sender.hasPermission(perm);
|
if (!p) p = sender.hasPermission(perm);
|
||||||
} else break; //If any of the permissions aren't granted then don't allow
|
} else break; //If any of the permissions aren't granted then don't allow
|
||||||
}
|
}
|
||||||
|
@ -158,14 +155,11 @@ public class Command2MC extends Command2<ICommand2MC, Command2MCSender> implemen
|
||||||
private void handleTabComplete(TabCompleteEvent event) {
|
private void handleTabComplete(TabCompleteEvent event) {
|
||||||
String commandline = event.getBuffer();
|
String commandline = event.getBuffer();
|
||||||
CommandSender sender = event.getSender();
|
CommandSender sender = event.getSender();
|
||||||
//System.out.println("tab");
|
|
||||||
for (int i = commandline.length(); i != -1; i = commandline.lastIndexOf(' ', i - 1)) {
|
for (int i = commandline.length(); i != -1; i = commandline.lastIndexOf(' ', i - 1)) {
|
||||||
String subcommand = commandline.substring(0, i).toLowerCase();
|
String subcommand = commandline.substring(0, i).toLowerCase();
|
||||||
if (subcommand.length() == 0 || subcommand.charAt(0) != '/') subcommand = '/' + subcommand; //Console
|
if (subcommand.length() == 0 || subcommand.charAt(0) != '/') subcommand = '/' + subcommand; //Console
|
||||||
//System.out.println("Subcommand: " + subcommand);
|
|
||||||
SubcommandData<ICommand2MC> sd = subcommands.get(subcommand); //O(1)
|
SubcommandData<ICommand2MC> sd = subcommands.get(subcommand); //O(1)
|
||||||
if (sd == null) continue;
|
if (sd == null) continue;
|
||||||
//System.out.println("ht: " + Arrays.toString(sd.helpText));
|
|
||||||
Arrays.stream(sd.helpText).skip(1).map(ht -> new HashMap.SimpleEntry<>(ht, subcommands.get(ht))).filter(e -> e.getValue() != null)
|
Arrays.stream(sd.helpText).skip(1).map(ht -> new HashMap.SimpleEntry<>(ht, subcommands.get(ht))).filter(e -> e.getValue() != null)
|
||||||
.filter(kv -> kv.getKey().startsWith(commandline))
|
.filter(kv -> kv.getKey().startsWith(commandline))
|
||||||
.filter(kv -> hasPermission(sender, kv.getValue().command, kv.getValue().method))
|
.filter(kv -> hasPermission(sender, kv.getValue().command, kv.getValue().method))
|
||||||
|
@ -266,19 +260,26 @@ public class Command2MC extends Command2<ICommand2MC, Command2MCSender> implemen
|
||||||
private void registerOfficially(ICommand2MC command) {
|
private void registerOfficially(ICommand2MC command) {
|
||||||
if(!shouldRegisterOfficially) return;
|
if(!shouldRegisterOfficially) return;
|
||||||
try {
|
try {
|
||||||
var cmdmap=(SimpleCommandMap)Bukkit.getServer().getClass().getMethod("getCommandMap").invoke(Bukkit.getServer());
|
var cmdmap = (SimpleCommandMap) Bukkit.getServer().getClass().getMethod("getCommandMap").invoke(Bukkit.getServer());
|
||||||
var path = command.getCommandPath();
|
var path = command.getCommandPath();
|
||||||
int x = path.indexOf(' ');
|
int x = path.indexOf(' ');
|
||||||
var mainPath = path.substring(0, x == -1 ? path.length() : x);
|
var mainPath = path.substring(0, x == -1 ? path.length() : x);
|
||||||
cmdmap.register(command.getPlugin().getName(), new Command(mainPath) {
|
cmdmap.register(command.getPlugin().getName(), new BukkitCommand(mainPath));
|
||||||
@Override
|
|
||||||
public boolean execute(CommandSender commandSender, String s, String[] strings) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
TBMCCoreAPI.SendException("Failed to register command in command map!", e);
|
TBMCCoreAPI.SendException("Failed to register command in command map!", e);
|
||||||
shouldRegisterOfficially=false;
|
shouldRegisterOfficially = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class BukkitCommand extends Command {
|
||||||
|
protected BukkitCommand(String name) {
|
||||||
|
super(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
|
||||||
|
sender.sendMessage("§cThe command wasn't executed for some reason... (command processing failed)");
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue