diff --git a/.gitignore b/.gitignore
index cb9e357f..b3aa7c5a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,6 +40,7 @@ crashlytics-build.properties
/Artifacts/-Maven/
/Artifacts/-History/
/Artifacts/-Icon/
+/Artifacts/-Lite/
/Artifacts/*.jar
/Javadoc/
/SubServers.Test/
diff --git a/SubServers.Bungee/pom.xml b/SubServers.Bungee/pom.xml
index 3aa5c6c2..54fde5f2 100644
--- a/SubServers.Bungee/pom.xml
+++ b/SubServers.Bungee/pom.xml
@@ -88,6 +88,7 @@
maven-antrun-plugin
+ process
process-resources
run
@@ -96,6 +97,7 @@
+
@@ -105,6 +107,20 @@
+
+ verify
+ verify
+
+ run
+
+
+
+
+
+
+
+
+
diff --git a/SubServers.Bungee/src/META-INF/MANIFEST.MF b/SubServers.Bungee/src/META-INF/MANIFEST.MF
index 015421c5..df622d89 100644
--- a/SubServers.Bungee/src/META-INF/MANIFEST.MF
+++ b/SubServers.Bungee/src/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
-Class-Path: BungeeCord.jar Waterfall.jar
+Class-Path: GalaxiEngine.jar SubDataServer.jar BungeeCord.jar Waterfall.jar
Main-Class: net.ME1312.SubServers.Bungee.Launch
Implementation-Title: SubServers.Bungee
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java
index f6aa5e7b..ea32b848 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubCommand.java
@@ -859,7 +859,6 @@ public final class SubCommand extends CommandX {
}
}
} else if (args[0].equals("start") ||
- args[0].equals("restart") ||
(!(sender instanceof ProxiedPlayer) && (
args[0].equals("sudo") || args[0].equals("screen") ||
args[0].equals("del") || args[0].equals("delete")
@@ -877,15 +876,18 @@ public final class SubCommand extends CommandX {
} else {
return new NamedContainer<>(null, Collections.emptyList());
}
- } else if (args[0].equals("stop") ||
+ } else if (args[0].equals("restart") ||
+ args[0].equals("stop") ||
args[0].equals("kill") || args[0].equals("terminate")) {
List list = new ArrayList();
if (args.length == 2) {
if (last.length() == 0) {
- list.add("*");
+ if (sender instanceof ProxiedPlayer) list.add(".");
+ if (!args[0].equals("restart")) list.add("*");
for (SubServer server : plugin.api.getSubServers().values()) list.add(server.getName());
} else {
- if ("*".startsWith(last)) list.add("*");
+ if (sender instanceof ProxiedPlayer && ".".startsWith(last)) list.add(".");
+ if (!args[0].equals("restart") && "*".startsWith(last)) list.add("*");
for (SubServer server : plugin.api.getSubServers().values()) {
if (server.getName().toLowerCase().startsWith(last)) list.add(last + server.getName().substring(last.length()));
}
@@ -898,9 +900,11 @@ public final class SubCommand extends CommandX {
if (args.length == 2) {
List list = new ArrayList();
if (last.length() == 0) {
+ if (sender instanceof ProxiedPlayer) list.add(".");
list.add("*");
for (SubServer server : plugin.api.getSubServers().values()) list.add(server.getName());
} else {
+ if (sender instanceof ProxiedPlayer && ".".startsWith(last)) list.add(".");
if ("*".startsWith(last)) list.add("*");
for (SubServer server : plugin.api.getSubServers().values()) {
if (server.getName().toLowerCase().startsWith(last)) list.add(last + server.getName().substring(last.length()));
diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubCommand.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubCommand.java
index 1495bf8f..ca82bca9 100644
--- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubCommand.java
+++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubCommand.java
@@ -383,6 +383,7 @@ public final class SubCommand extends BukkitCommand {
}
} else if (args[0].equalsIgnoreCase("restart")) {
if (args.length > 1) {
+ if (args[1].equals(".")) args[1] = plugin.api.getName();
if ((sender.hasPermission("subservers.subserver.stop.*") || sender.hasPermission("subservers.subserver.stop." + args[1].toLowerCase())) && (sender.hasPermission("subservers.subserver.start.*") || sender.hasPermission("subservers.subserver.start." + args[1].toLowerCase()))) {
Runnable starter = () -> ((SubDataClient) plugin.api.getSubDataNetwork()[0]).sendPacket(new PacketStartServer(null, args[1], data -> {
switch (data.getInt(0x0001)) {
@@ -462,6 +463,7 @@ public final class SubCommand extends BukkitCommand {
}
} else if (args[0].equalsIgnoreCase("stop")) {
if (args.length > 1) {
+ if (args[1].equals(".")) args[1] = plugin.api.getName();
if (sender.hasPermission("subservers.subserver.stop.*") || sender.hasPermission("subservers.subserver.stop." + args[1].toLowerCase())) {
((SubDataClient) plugin.api.getSubDataNetwork()[0]).sendPacket(new PacketStopServer((sender instanceof Player)?((Player) sender).getUniqueId():null, args[1], false, data -> {
switch (data.getInt(0x0001)) {
@@ -488,6 +490,7 @@ public final class SubCommand extends BukkitCommand {
}
} else if (args[0].equalsIgnoreCase("kill") || args[0].equalsIgnoreCase("terminate")) {
if (args.length > 1) {
+ if (args[1].equals(".")) args[1] = plugin.api.getName();
if (sender.hasPermission("subservers.subserver.terminate.*") || sender.hasPermission("subservers.subserver.terminate." + args[1].toLowerCase())) {
((SubDataClient) plugin.api.getSubDataNetwork()[0]).sendPacket(new PacketStopServer((sender instanceof Player)?((Player) sender).getUniqueId():null, args[1], true, data -> {
switch (data.getInt(0x0001)) {
@@ -514,6 +517,7 @@ public final class SubCommand extends BukkitCommand {
}
} else if (args[0].equalsIgnoreCase("cmd") || args[0].equalsIgnoreCase("command")) {
if (args.length > 2) {
+ if (args[1].equals(".")) args[1] = plugin.api.getName();
if (sender.hasPermission("subservers.subserver.command.*") || sender.hasPermission("subservers.subserver.command." + args[1].toLowerCase())) {
int i = 2;
String str = args[2];
diff --git a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubCommand.java b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubCommand.java
index 37f5c37a..536198cd 100644
--- a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubCommand.java
+++ b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubCommand.java
@@ -1,6 +1,7 @@
package net.ME1312.SubServers.Client.Sponge;
import com.google.gson.Gson;
+import net.ME1312.Galaxi.Library.NamedContainer;
import net.ME1312.SubData.Client.SubDataClient;
import net.ME1312.SubServers.Client.Sponge.Graphic.UIRenderer;
import net.ME1312.Galaxi.Library.Callback.Callback;
@@ -701,10 +702,11 @@ public final class SubCommand implements CommandExecutor {
public final class RESTART implements CommandExecutor {
public CommandResult execute(CommandSource sender, CommandContext args) throws CommandException {
if (canRun(sender)) {
- Optional subserver = args.getOne(Text.of("SubServer"));
- if (subserver.isPresent()) {
- if (sender.hasPermission("subservers.subserver.stop." + subserver.get().toLowerCase()) && sender.hasPermission("subservers.subserver.start." + subserver.get().toLowerCase())) {
- Runnable starter = () -> ((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketStartServer(null, subserver.get(), data -> {
+ Container> subserver = new Container<>(args.getOne(Text.of("SubServer")));
+ if (subserver.get().isPresent()) {
+ if (subserver.get().get().equals(".")) subserver.set(Optional.of(plugin.api.getName()));
+ if (sender.hasPermission("subservers.subserver.stop." + subserver.get().get().toLowerCase()) && sender.hasPermission("subservers.subserver.start." + subserver.get().get().toLowerCase())) {
+ Runnable starter = () -> ((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketStartServer(null, subserver.get().get(), data -> {
switch (data.getInt(0x0001)) {
case 3:
case 4:
@@ -738,7 +740,7 @@ public final class SubCommand implements CommandExecutor {
@Override
public void run(ObjectMap json) {
try {
- if (listening.get()) if (!json.getString("server").equalsIgnoreCase(subserver.get())) {
+ if (listening.get()) if (!json.getString("server").equalsIgnoreCase(subserver.get().get())) {
PacketInExRunEvent.callback("SubStoppedEvent", this);
} else {
plugin.game.getScheduler().createTaskBuilder().execute(starter).delay(100, TimeUnit.MILLISECONDS).submit(plugin);
@@ -766,18 +768,18 @@ public final class SubCommand implements CommandExecutor {
}
};
- if (SubAPI.getInstance().getName().equalsIgnoreCase(subserver.get())) {
+ if (SubAPI.getInstance().getName().equalsIgnoreCase(subserver.get().get())) {
listening.set(false);
- ((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketRestartServer((sender instanceof Player)?((Player) sender).getUniqueId():null, subserver.get(), stopper));
+ ((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketRestartServer((sender instanceof Player)?((Player) sender).getUniqueId():null, subserver.get().get(), stopper));
} else {
- ((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketStopServer((sender instanceof Player)?((Player) sender).getUniqueId():null, subserver.get(), false, stopper));
+ ((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketStopServer((sender instanceof Player)?((Player) sender).getUniqueId():null, subserver.get().get(), false, stopper));
}
return CommandResult.builder().successCount(1).build();
- } else if (!sender.hasPermission("subservers.subserver.stop." + subserver.get().toLowerCase())) {
- sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Generic.Invalid-Permission").replace("$str$", "subservers.subserver.stop." + subserver.get().toLowerCase())));
+ } else if (!sender.hasPermission("subservers.subserver.stop." + subserver.get().get().toLowerCase())) {
+ sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Generic.Invalid-Permission").replace("$str$", "subservers.subserver.stop." + subserver.get().get().toLowerCase())));
return CommandResult.builder().successCount(0).build();
} else {
- sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Generic.Invalid-Permission").replace("$str$", "subservers.subserver.start." + subserver.get().toLowerCase())));
+ sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Generic.Invalid-Permission").replace("$str$", "subservers.subserver.start." + subserver.get().get().toLowerCase())));
return CommandResult.builder().successCount(0).build();
}
} else {
@@ -794,10 +796,11 @@ public final class SubCommand implements CommandExecutor {
public final class STOP implements CommandExecutor {
public CommandResult execute(CommandSource sender, CommandContext args) throws CommandException {
if (canRun(sender)) {
- Optional subserver = args.getOne(Text.of("SubServer"));
- if (subserver.isPresent()) {
- if (sender.hasPermission("subservers.subserver.stop." + subserver.get().toLowerCase())) {
- ((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketStopServer((sender instanceof Player) ? ((Player) sender).getUniqueId():null, subserver.get(), false, data -> {
+ Container> subserver = new Container<>(args.getOne(Text.of("SubServer")));
+ if (subserver.get().isPresent()) {
+ if (subserver.get().get().equals(".")) subserver.set(Optional.of(plugin.api.getName()));
+ if (sender.hasPermission("subservers.subserver.stop." + subserver.get().get().toLowerCase())) {
+ ((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketStopServer((sender instanceof Player) ? ((Player) sender).getUniqueId():null, subserver.get().get(), false, data -> {
switch (data.getInt(0x0001)) {
case 3:
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Stop.Unknown")));
@@ -816,7 +819,7 @@ public final class SubCommand implements CommandExecutor {
}));
return CommandResult.builder().successCount(1).build();
} else {
- sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Generic.Invalid-Permission").replace("$str$", "subservers.subserver.stop." + subserver.get().toLowerCase())));
+ sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Generic.Invalid-Permission").replace("$str$", "subservers.subserver.stop." + subserver.get().get().toLowerCase())));
return CommandResult.builder().successCount(0).build();
}
} else {
@@ -833,10 +836,11 @@ public final class SubCommand implements CommandExecutor {
public final class TERMINATE implements CommandExecutor {
public CommandResult execute(CommandSource sender, CommandContext args) throws CommandException {
if (canRun(sender)) {
- Optional subserver = args.getOne(Text.of("SubServer"));
- if (subserver.isPresent()) {
- if (sender.hasPermission("subservers.subserver.terminate." + subserver.get().toLowerCase())) {
- ((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketStopServer((sender instanceof Player)?((Player) sender).getUniqueId():null, subserver.get(), true, data -> {
+ Container> subserver = new Container<>(args.getOne(Text.of("SubServer")));
+ if (subserver.get().isPresent()) {
+ if (subserver.get().get().equals(".")) subserver.set(Optional.of(plugin.api.getName()));
+ if (sender.hasPermission("subservers.subserver.terminate." + subserver.get().get().toLowerCase())) {
+ ((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketStopServer((sender instanceof Player)?((Player) sender).getUniqueId():null, subserver.get().get(), true, data -> {
switch (data.getInt(0x0001)) {
case 3:
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Terminate.Unknown")));
@@ -855,7 +859,7 @@ public final class SubCommand implements CommandExecutor {
}));
return CommandResult.builder().successCount(1).build();
} else {
- sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Generic.Invalid-Permission").replace("$str$", "subservers.subserver.terminate." + subserver.get().toLowerCase())));
+ sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Generic.Invalid-Permission").replace("$str$", "subservers.subserver.terminate." + subserver.get().get().toLowerCase())));
return CommandResult.builder().successCount(0).build();
}
} else {
@@ -872,11 +876,12 @@ public final class SubCommand implements CommandExecutor {
public final class COMMAND implements CommandExecutor {
public CommandResult execute(CommandSource sender, CommandContext args) throws CommandException {
if (canRun(sender)) {
- Optional subserver = args.getOne(Text.of("SubServer"));
+ Container> subserver = new Container<>(args.getOne(Text.of("SubServer")));
Optional command = args.getOne(Text.of("Command"));
- if (subserver.isPresent() && command.isPresent()) {
- if (sender.hasPermission("subservers.subserver.command." + subserver.get().toLowerCase())) {
- ((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketCommandServer((sender instanceof Player)?((Player) sender).getUniqueId():null, subserver.get(), command.get(), data -> {
+ if (subserver.get().isPresent() && command.isPresent()) {
+ if (subserver.get().get().equals(".")) subserver.set(Optional.of(plugin.api.getName()));
+ if (sender.hasPermission("subservers.subserver.command." + subserver.get().get().toLowerCase())) {
+ ((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketCommandServer((sender instanceof Player)?((Player) sender).getUniqueId():null, subserver.get().get(), command.get(), data -> {
switch (data.getInt(0x0001)) {
case 3:
sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Command.Unknown")));
@@ -895,7 +900,7 @@ public final class SubCommand implements CommandExecutor {
}));
return CommandResult.builder().successCount(1).build();
} else {
- sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Generic.Invalid-Permission").replace("$str$", "subservers.subserver.command." + subserver.get().toLowerCase())));
+ sender.sendMessage(ChatColor.convertColor(plugin.api.getLang("SubServers","Command.Generic.Invalid-Permission").replace("$str$", "subservers.subserver.command." + subserver.get().get().toLowerCase())));
return CommandResult.builder().successCount(0).build();
}
} else {
diff --git a/SubServers.Host/pom.xml b/SubServers.Host/pom.xml
index 5009b64e..a398b4da 100644
--- a/SubServers.Host/pom.xml
+++ b/SubServers.Host/pom.xml
@@ -66,6 +66,7 @@
maven-antrun-plugin
+ process
process-resources
run
@@ -78,6 +79,20 @@
+
+ verify
+ verify
+
+ run
+
+
+
+
+
+
+
+
+
diff --git a/SubServers.Host/src/META-INF/MANIFEST.MF b/SubServers.Host/src/META-INF/MANIFEST.MF
index 7fa3b708..48535a6c 100644
--- a/SubServers.Host/src/META-INF/MANIFEST.MF
+++ b/SubServers.Host/src/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
-Class-Path: GalaxiEngine.jar
+Class-Path: GalaxiEngine.jar SubDataClient.jar
Main-Class: net.ME1312.SubServers.Host.Launch
Implementation-Title: SubServers.Host
diff --git a/SubServers.Sync/pom.xml b/SubServers.Sync/pom.xml
index 564b3aa6..b4cbcc57 100644
--- a/SubServers.Sync/pom.xml
+++ b/SubServers.Sync/pom.xml
@@ -88,6 +88,7 @@
maven-antrun-plugin
+ process
process-resources
run
@@ -99,6 +100,20 @@
+
+ verify
+ verify
+
+ run
+
+
+
+
+
+
+
+
+
diff --git a/SubServers.Sync/src/META-INF/MANIFEST.MF b/SubServers.Sync/src/META-INF/MANIFEST.MF
index da7d5eb9..bf83fc3f 100644
--- a/SubServers.Sync/src/META-INF/MANIFEST.MF
+++ b/SubServers.Sync/src/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
-Class-Path: BungeeCord.jar Waterfall.jar
+Class-Path: GalaxiEngine.jar SubDataClient.jar BungeeCord.jar Waterfall.jar
Main-Class: net.ME1312.SubServers.Sync.Launch
Implementation-Title: SubServers.Sync
diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java
index af249b57..85ce1feb 100644
--- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java
+++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java
@@ -807,8 +807,7 @@ public final class SubCommand extends CommandX {
} else {
return new NamedContainer<>(null, Collections.emptyList());
}
- } else if (args[0].equals("start") ||
- args[0].equals("restart")) {
+ } else if (args[0].equals("start")) {
List list = new ArrayList();
if (args.length == 2) {
if (last.length() == 0) {
@@ -822,15 +821,18 @@ public final class SubCommand extends CommandX {
} else {
return new NamedContainer<>(null, Collections.emptyList());
}
- } else if (args[0].equals("stop") ||
+ } else if (args[0].equals("restart") ||
+ args[0].equals("stop") ||
args[0].equals("kill") || args[0].equals("terminate")) {
List list = new ArrayList();
if (args.length == 2) {
if (last.length() == 0) {
- list.add("*");
+ if (sender instanceof ProxiedPlayer) list.add(".");
+ if (!args[0].equals("restart")) list.add("*");
for (ServerImpl server : plugin.servers.values()) if (server instanceof SubServerImpl) list.add(server.getName());
} else {
- if ("*".startsWith(last)) list.add("*");
+ if (sender instanceof ProxiedPlayer && ".".startsWith(last)) list.add(".");
+ if (!args[0].equals("restart") && "*".startsWith(last)) list.add("*");
for (ServerImpl server : plugin.servers.values()) {
if (server instanceof SubServerImpl && server.getName().toLowerCase().startsWith(last)) list.add(last + server.getName().substring(last.length()));
}
@@ -843,8 +845,12 @@ public final class SubCommand extends CommandX {
if (args.length == 2) {
List list = new ArrayList();
if (last.length() == 0) {
+ if (sender instanceof ProxiedPlayer) list.add(".");
+ list.add("*");
for (ServerImpl server : plugin.servers.values()) if (server instanceof SubServerImpl) list.add(server.getName());
} else {
+ if (sender instanceof ProxiedPlayer && ".".startsWith(last)) list.add(".");
+ if ("*".startsWith(last)) list.add("*");
for (ServerImpl server : plugin.servers.values()) {
if (server instanceof SubServerImpl && server.getName().toLowerCase().startsWith(last)) list.add(last + server.getName().substring(last.length()));
}