mirror of
https://github.com/ME1312/SubServers-2.git
synced 2025-02-16 19:51:26 +01:00
Don't fire edit events for temporary modifications
This commit is contained in:
parent
e1de6636f0
commit
4d081f6e4f
@ -21,7 +21,6 @@ public class SubEditServerEvent extends Event implements SubEvent, Cancellable {
|
|||||||
private UUID player;
|
private UUID player;
|
||||||
private Server server;
|
private Server server;
|
||||||
private Pair<String, ObjectMapValue> edit;
|
private Pair<String, ObjectMapValue> edit;
|
||||||
private boolean perm;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Server Edit Event
|
* Server Edit Event
|
||||||
@ -29,16 +28,14 @@ public class SubEditServerEvent extends Event implements SubEvent, Cancellable {
|
|||||||
* @param player Player Adding Server
|
* @param player Player Adding Server
|
||||||
* @param server Server to be Edited
|
* @param server Server to be Edited
|
||||||
* @param edit Edit to make
|
* @param edit Edit to make
|
||||||
* @param permanent If the change is permanent
|
|
||||||
*/
|
*/
|
||||||
public SubEditServerEvent(UUID player, Server server, Pair<String, ?> edit, boolean permanent) {
|
public SubEditServerEvent(UUID player, Server server, Pair<String, ?> edit) {
|
||||||
if (Util.isNull(server, edit)) throw new NullPointerException();
|
if (Util.isNull(server, edit)) throw new NullPointerException();
|
||||||
ObjectMap<String> section = new ObjectMap<String>();
|
ObjectMap<String> section = new ObjectMap<String>();
|
||||||
section.set(".", edit.value());
|
section.set(".", edit.value());
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.edit = new ContainedPair<String, ObjectMapValue>(edit.key(), section.get("."));
|
this.edit = new ContainedPair<String, ObjectMapValue>(edit.key(), section.get("."));
|
||||||
this.perm = permanent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -64,15 +61,6 @@ public class SubEditServerEvent extends Event implements SubEvent, Cancellable {
|
|||||||
return edit;
|
return edit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets if the edit is permanent
|
|
||||||
*
|
|
||||||
* @return Permanent Status
|
|
||||||
*/
|
|
||||||
public boolean isPermanent() {
|
|
||||||
return perm;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the Cancelled Status
|
* Gets the Cancelled Status
|
||||||
*
|
*
|
||||||
|
@ -108,7 +108,7 @@ public class ExternalHost extends Host implements ClientHandler {
|
|||||||
clean = true;
|
clean = true;
|
||||||
}
|
}
|
||||||
for (SubServer server : servers.values()) {
|
for (SubServer server : servers.values()) {
|
||||||
client.sendPacket(new PacketExAddServer(server.getName(), server.isEnabled(), server.getAddress().getPort(), server.isLogging(), server.getPath(), ((ExternalSubServer) server).exec, server.getStopCommand(), (server.isRunning())?((ExternalSubLogger) server.getLogger()).getExternalAddress():null, data -> {
|
client.sendPacket(new PacketExAddServer((ExternalSubServer) server, (server.isRunning())?((ExternalSubLogger) server.getLogger()).getExternalAddress():null, data -> {
|
||||||
if (data.contains(0x0002)) ((ExternalSubServer) server).started(data.getUUID(0x0002));
|
if (data.contains(0x0002)) ((ExternalSubServer) server).started(data.getUUID(0x0002));
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
@ -166,19 +166,24 @@ public class ExternalHost extends Host implements ClientHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SubServer addSubServer(UUID player, String name, boolean enabled, int port, String motd, boolean log, String directory, String executable, String stopcmd, boolean hidden, boolean restricted) throws InvalidServerException {
|
public SubServer constructSubServer(String name, boolean enabled, int port, String motd, boolean log, String directory, String executable, String stopcmd, boolean hidden, boolean restricted) throws InvalidServerException {
|
||||||
if (plugin.api.getServers().keySet().contains(name.toLowerCase())) throw new InvalidServerException("A Server already exists with this name!");
|
return ExternalSubServer.construct(this, name, enabled, port, motd, log, directory, executable, stopcmd, hidden, restricted);
|
||||||
ExternalSubServer server = ExternalSubServer.construct(this, name, enabled, port, motd, log, directory, executable, stopcmd, hidden, restricted);
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean addSubServer(UUID player, SubServer server) throws InvalidServerException {
|
||||||
|
if (server.getHost() != this) throw new IllegalArgumentException("That Server does not belong to this Host!");
|
||||||
|
if (plugin.api.getServers().keySet().contains(server.getName().toLowerCase())) throw new InvalidServerException("A Server already exists with this name!");
|
||||||
SubAddServerEvent event = new SubAddServerEvent(player, this, server);
|
SubAddServerEvent event = new SubAddServerEvent(player, this, server);
|
||||||
plugin.getPluginManager().callEvent(event);
|
plugin.getPluginManager().callEvent(event);
|
||||||
if (!event.isCancelled()) {
|
if (!event.isCancelled()) {
|
||||||
queue(new PacketExAddServer(name, enabled, port, log, directory, executable, stopcmd, (server.isRunning())?((ExternalSubLogger) server.getLogger()).getExternalAddress():null, data -> {
|
queue(new PacketExAddServer(((ExternalSubServer) server), (server.isRunning())?((ExternalSubLogger) server.getLogger()).getExternalAddress():null, data -> {
|
||||||
if (data.contains(0x0002)) server.started(data.getUUID(0x0002));
|
if (data.contains(0x0002)) ((ExternalSubServer) server).started(data.getUUID(0x0002));
|
||||||
}));
|
}));
|
||||||
servers.put(name.toLowerCase(), server);
|
servers.put(server.getName().toLowerCase(), server);
|
||||||
return server;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ public class ExternalSubCreator extends SubCreator {
|
|||||||
server.setAll(config);
|
server.setAll(config);
|
||||||
|
|
||||||
if (update != null) Util.isException(() -> update.getHost().forceRemoveSubServer(name));
|
if (update != null) Util.isException(() -> update.getHost().forceRemoveSubServer(name));
|
||||||
subserver = host.addSubServer(player, name, server.getBoolean("Enabled"), port, ChatColor.translateAlternateColorCodes('&', server.getString("Motd")), server.getBoolean("Log"),
|
subserver = host.constructSubServer(name, server.getBoolean("Enabled"), port, ChatColor.translateAlternateColorCodes('&', server.getString("Motd")), server.getBoolean("Log"),
|
||||||
server.getRawString("Directory"), server.getRawString("Executable"), server.getRawString("Stop-Command"), server.getBoolean("Hidden"), server.getBoolean("Restricted"));
|
server.getRawString("Directory"), server.getRawString("Executable"), server.getRawString("Stop-Command"), server.getBoolean("Hidden"), server.getBoolean("Restricted"));
|
||||||
|
|
||||||
if (server.getString("Display").length() > 0) subserver.setDisplayName(server.getString("Display"));
|
if (server.getString("Display").length() > 0) subserver.setDisplayName(server.getString("Display"));
|
||||||
@ -220,6 +220,7 @@ public class ExternalSubCreator extends SubCreator {
|
|||||||
host.plugin.servers.save();
|
host.plugin.servers.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
host.addSubServer(subserver);
|
||||||
if (update == null && template.getBuildOptions().getBoolean("Run-On-Finish", true))
|
if (update == null && template.getBuildOptions().getBoolean("Run-On-Finish", true))
|
||||||
subserver.start();
|
subserver.start();
|
||||||
}
|
}
|
||||||
|
@ -227,14 +227,18 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
for (String key : edit.getKeys()) {
|
for (String key : edit.getKeys()) {
|
||||||
pending.remove(key);
|
pending.remove(key);
|
||||||
ObjectMapValue value = edit.get(key);
|
ObjectMapValue value = edit.get(key);
|
||||||
SubEditServerEvent event = new SubEditServerEvent(player, this, new ContainedPair<String, ObjectMapValue>(key, value), perma);
|
boolean allowed = true;
|
||||||
host.plugin.getPluginManager().callEvent(event);
|
if (perma) {
|
||||||
if (!event.isCancelled()) {
|
SubEditServerEvent event = new SubEditServerEvent(player, this, new ContainedPair<String, ObjectMapValue>(key, value));
|
||||||
|
host.plugin.getPluginManager().callEvent(event);
|
||||||
|
allowed = !event.isCancelled();
|
||||||
|
}
|
||||||
|
if (allowed) {
|
||||||
try {
|
try {
|
||||||
switch (key.toLowerCase()) {
|
switch (key.toLowerCase()) {
|
||||||
case "name":
|
case "name":
|
||||||
if (value.isString() && host.removeSubServer(player, getName())) {
|
if (value.isString() && host.removeSubServer(player, getName())) {
|
||||||
SubServer server = host.addSubServer(player, value.asRawString(), isEnabled(), getAddress().getPort(), getMotd(), isLogging(), getPath(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
SubServer server = host.constructSubServer(value.asRawString(), isEnabled(), getAddress().getPort(), getMotd(), isLogging(), getPath(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
||||||
if (server != null) {
|
if (server != null) {
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
ObjectMap<String> config = this.host.plugin.servers.get().getMap("Servers").getMap(getName());
|
ObjectMap<String> config = this.host.plugin.servers.get().getMap("Servers").getMap(getName());
|
||||||
@ -293,7 +297,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
case "host":
|
case "host":
|
||||||
if (value.isString() && host.removeSubServer(player, getName())) {
|
if (value.isString() && host.removeSubServer(player, getName())) {
|
||||||
waitFor(() -> host.getSubServer(getName()), null);
|
waitFor(() -> host.getSubServer(getName()), null);
|
||||||
SubServer server = this.host.plugin.api.getHost(value.asRawString()).addSubServer(player, getName(), isEnabled(), getAddress().getPort(), getMotd(), isLogging(), getPath(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
SubServer server = this.host.plugin.api.getHost(value.asRawString()).constructSubServer(getName(), isEnabled(), getAddress().getPort(), getMotd(), isLogging(), getPath(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
||||||
if (server != null) {
|
if (server != null) {
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Host", server.getHost().getName());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Host", server.getHost().getName());
|
||||||
@ -306,7 +310,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
break;
|
break;
|
||||||
case "template":
|
case "template":
|
||||||
if (value.isString()) {
|
if (value.isString()) {
|
||||||
Util.reflect(SubServerImpl.class.getDeclaredField("template"), this, value.asString());
|
setTemplate(value.asRawString());
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Template", value.asString());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Template", value.asString());
|
||||||
this.host.plugin.servers.save();
|
this.host.plugin.servers.save();
|
||||||
@ -317,7 +321,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
case "port":
|
case "port":
|
||||||
if (value.isNumber() && host.removeSubServer(player, getName())) {
|
if (value.isNumber() && host.removeSubServer(player, getName())) {
|
||||||
waitFor(() -> host.getSubServer(getName()), null);
|
waitFor(() -> host.getSubServer(getName()), null);
|
||||||
SubServer server = host.addSubServer(player, getName(), isEnabled(), value.asInt(), getMotd(), isLogging(), getPath(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
SubServer server = host.constructSubServer(getName(), isEnabled(), value.asInt(), getMotd(), isLogging(), getPath(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
||||||
if (server != null) {
|
if (server != null) {
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Port", server.getAddress().getPort());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Port", server.getAddress().getPort());
|
||||||
@ -330,7 +334,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
break;
|
break;
|
||||||
case "motd":
|
case "motd":
|
||||||
if (value.isString()) {
|
if (value.isString()) {
|
||||||
Util.reflect(BungeeServerInfo.class.getDeclaredField("motd"), this, ChatColor.translateAlternateColorCodes('&', value.asString()));
|
setMotd(ChatColor.translateAlternateColorCodes('&', value.asString()));
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Motd", value.asString());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Motd", value.asString());
|
||||||
this.host.plugin.servers.save();
|
this.host.plugin.servers.save();
|
||||||
@ -353,7 +357,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
case "directory":
|
case "directory":
|
||||||
if (value.isString() && host.removeSubServer(player, getName())) {
|
if (value.isString() && host.removeSubServer(player, getName())) {
|
||||||
waitFor(() -> host.getSubServer(getName()), null);
|
waitFor(() -> host.getSubServer(getName()), null);
|
||||||
SubServer server = host.addSubServer(player, getName(), isEnabled(), getAddress().getPort(), getMotd(), isLogging(), value.asRawString(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
SubServer server = host.constructSubServer(getName(), isEnabled(), getAddress().getPort(), getMotd(), isLogging(), value.asRawString(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
||||||
if (server != null) {
|
if (server != null) {
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Directory", server.getPath());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Directory", server.getPath());
|
||||||
@ -368,7 +372,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
case "executable":
|
case "executable":
|
||||||
if (value.isString() && host.removeSubServer(player, getName())) {
|
if (value.isString() && host.removeSubServer(player, getName())) {
|
||||||
waitFor(() -> host.getSubServer(getName()), null);
|
waitFor(() -> host.getSubServer(getName()), null);
|
||||||
SubServer server = host.addSubServer(player, getName(), isEnabled(), getAddress().getPort(), getMotd(), isLogging(), getPath(), value.asRawString(), getStopCommand(), isHidden(), isRestricted());
|
SubServer server = host.constructSubServer(getName(), isEnabled(), getAddress().getPort(), getMotd(), isLogging(), getPath(), value.asRawString(), getStopCommand(), isHidden(), isRestricted());
|
||||||
if (server != null) {
|
if (server != null) {
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Executable", value.asRawString());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Executable", value.asRawString());
|
||||||
@ -435,7 +439,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
break;
|
break;
|
||||||
case "restricted":
|
case "restricted":
|
||||||
if (value.isBoolean()) {
|
if (value.isBoolean()) {
|
||||||
Util.reflect(BungeeServerInfo.class.getDeclaredField("restricted"), this, value.asBoolean());
|
setRestricted(value.asBoolean());
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Restricted", isRestricted());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Restricted", isRestricted());
|
||||||
this.host.plugin.servers.save();
|
this.host.plugin.servers.save();
|
||||||
@ -445,7 +449,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
break;
|
break;
|
||||||
case "hidden":
|
case "hidden":
|
||||||
if (value.isBoolean()) {
|
if (value.isBoolean()) {
|
||||||
Util.reflect(ServerImpl.class.getDeclaredField("hidden"), this, value.asBoolean());
|
setHidden(value.asBoolean());
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Hidden", isHidden());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Hidden", isHidden());
|
||||||
this.host.plugin.servers.save();
|
this.host.plugin.servers.save();
|
||||||
@ -464,7 +468,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
forward.setStopAction(getStopAction());
|
forward.setStopAction(getStopAction());
|
||||||
if (!getName().equals(getDisplayName())) forward.setDisplayName(getDisplayName());
|
if (!getName().equals(getDisplayName())) forward.setDisplayName(getDisplayName());
|
||||||
List<String> groups = new ArrayList<String>();
|
List<String> groups = new ArrayList<String>();
|
||||||
Util.reflect(SubServerImpl.class.getDeclaredField("template"), forward, Util.reflect(SubServerImpl.class.getDeclaredField("template"), this));
|
forward.setTemplate(getTemplate());
|
||||||
groups.addAll(getGroups());
|
groups.addAll(getGroups());
|
||||||
for (String group : groups) {
|
for (String group : groups) {
|
||||||
removeGroup(group);
|
removeGroup(group);
|
||||||
@ -510,7 +514,6 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
public void setDisplayName(String value) {
|
public void setDisplayName(String value) {
|
||||||
super.setDisplayName(value);
|
super.setDisplayName(value);
|
||||||
logger.name = getDisplayName();
|
logger.name = getDisplayName();
|
||||||
host.plugin.getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("display", value), false));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -526,7 +529,6 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
@Override
|
@Override
|
||||||
public void setEnabled(boolean value) {
|
public void setEnabled(boolean value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
if (Util.isNull(value)) throw new NullPointerException();
|
||||||
host.plugin.getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("enabled", value), false));
|
|
||||||
if (enabled != value) host.queue(new PacketExEditServer(this, PacketExEditServer.UpdateType.SET_ENABLED, (Boolean) value));
|
if (enabled != value) host.queue(new PacketExEditServer(this, PacketExEditServer.UpdateType.SET_ENABLED, (Boolean) value));
|
||||||
enabled = value;
|
enabled = value;
|
||||||
}
|
}
|
||||||
@ -539,7 +541,6 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
@Override
|
@Override
|
||||||
public void setLogging(boolean value) {
|
public void setLogging(boolean value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
if (Util.isNull(value)) throw new NullPointerException();
|
||||||
host.plugin.getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("log", value), false));
|
|
||||||
if (log.value() != value) host.queue(new PacketExEditServer(this, PacketExEditServer.UpdateType.SET_LOGGING, (Boolean) value));
|
if (log.value() != value) host.queue(new PacketExEditServer(this, PacketExEditServer.UpdateType.SET_LOGGING, (Boolean) value));
|
||||||
log.value(value);
|
log.value(value);
|
||||||
}
|
}
|
||||||
@ -572,7 +573,6 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
@Override
|
@Override
|
||||||
public void setStopCommand(String value) {
|
public void setStopCommand(String value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
if (Util.isNull(value)) throw new NullPointerException();
|
||||||
host.plugin.getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("stop-cmd", value), false));
|
|
||||||
if (!stopcmd.equals(value)) host.queue(new PacketExEditServer(this, PacketExEditServer.UpdateType.SET_STOP_COMMAND, value));
|
if (!stopcmd.equals(value)) host.queue(new PacketExEditServer(this, PacketExEditServer.UpdateType.SET_STOP_COMMAND, value));
|
||||||
stopcmd = value;
|
stopcmd = value;
|
||||||
}
|
}
|
||||||
@ -585,7 +585,6 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
@Override
|
@Override
|
||||||
public void setStopAction(StopAction action) {
|
public void setStopAction(StopAction action) {
|
||||||
if (Util.isNull(action)) throw new NullPointerException();
|
if (Util.isNull(action)) throw new NullPointerException();
|
||||||
host.plugin.getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("stop-action", action), false));
|
|
||||||
stopaction = action;
|
stopaction = action;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -262,9 +262,8 @@ public abstract class Host implements ExtraDataHandler {
|
|||||||
public abstract SubServer getSubServer(String name);
|
public abstract SubServer getSubServer(String name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a SubServer
|
* Constructs a SubServer (but doesn't add it to the server manager)
|
||||||
*
|
*
|
||||||
* @param player Player who Added
|
|
||||||
* @param name Name of Server
|
* @param name Name of Server
|
||||||
* @param enabled Enabled Status
|
* @param enabled Enabled Status
|
||||||
* @param port Port Number
|
* @param port Port Number
|
||||||
@ -278,7 +277,7 @@ public abstract class Host implements ExtraDataHandler {
|
|||||||
* @return The SubServer
|
* @return The SubServer
|
||||||
* @throws InvalidServerException
|
* @throws InvalidServerException
|
||||||
*/
|
*/
|
||||||
public abstract SubServer addSubServer(UUID player, String name, boolean enabled, int port, String motd, boolean log, String directory, String executable, String stopcmd, boolean hidden, boolean restricted) throws InvalidServerException;
|
public abstract SubServer constructSubServer(String name, boolean enabled, int port, String motd, boolean log, String directory, String executable, String stopcmd, boolean hidden, boolean restricted) throws InvalidServerException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a SubServer
|
* Adds a SubServer
|
||||||
@ -300,6 +299,47 @@ public abstract class Host implements ExtraDataHandler {
|
|||||||
return addSubServer(null, name, enabled, port, motd, log, directory, executable, stopcmd, hidden, restricted);
|
return addSubServer(null, name, enabled, port, motd, log, directory, executable, stopcmd, hidden, restricted);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a SubServer
|
||||||
|
*
|
||||||
|
* @param player Player who Added
|
||||||
|
* @param name Name of Server
|
||||||
|
* @param enabled Enabled Status
|
||||||
|
* @param port Port Number
|
||||||
|
* @param motd Motd of the Server
|
||||||
|
* @param log Logging Status
|
||||||
|
* @param directory Directory
|
||||||
|
* @param executable Executable String
|
||||||
|
* @param stopcmd Command to Stop the Server
|
||||||
|
* @param hidden if the server should be hidden from players
|
||||||
|
* @param restricted Players will need a permission to join if true
|
||||||
|
* @return The SubServer
|
||||||
|
* @throws InvalidServerException
|
||||||
|
*/
|
||||||
|
public SubServer addSubServer(UUID player, String name, boolean enabled, int port, String motd, boolean log, String directory, String executable, String stopcmd, boolean hidden, boolean restricted) throws InvalidServerException {
|
||||||
|
SubServer server = constructSubServer(name, enabled, port, motd, log, directory, executable, stopcmd, hidden, restricted);
|
||||||
|
return (addSubServer(player, server))?server:null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a SubServer
|
||||||
|
*
|
||||||
|
* @param server SubServer to add
|
||||||
|
* @return Success status
|
||||||
|
*/
|
||||||
|
public boolean addSubServer(SubServer server) throws InvalidServerException {
|
||||||
|
return addSubServer(null, server);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a SubServer
|
||||||
|
*
|
||||||
|
* @param player Player who added
|
||||||
|
* @param server SubServer to add
|
||||||
|
* @return Success status
|
||||||
|
*/
|
||||||
|
public abstract boolean addSubServer(UUID player, SubServer server) throws InvalidServerException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes a SubServer
|
* Removes a SubServer
|
||||||
*
|
*
|
||||||
|
@ -99,17 +99,22 @@ public class InternalHost extends Host {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SubServer addSubServer(UUID player, String name, boolean enabled, int port, String motd, boolean log, String directory, String executable, String stopcmd, boolean hidden, boolean restricted) throws InvalidServerException {
|
public SubServer constructSubServer(String name, boolean enabled, int port, String motd, boolean log, String directory, String executable, String stopcmd, boolean hidden, boolean restricted) throws InvalidServerException {
|
||||||
if (plugin.api.getServers().keySet().contains(name.toLowerCase())) throw new InvalidServerException("A Server already exists with this name!");
|
return InternalSubServer.construct(this, name, enabled, port, motd, log, directory, executable, stopcmd, hidden, restricted);
|
||||||
SubServer server = InternalSubServer.construct(this, name, enabled, port, motd, log, directory, executable, stopcmd, hidden, restricted);
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean addSubServer(UUID player, SubServer server) throws InvalidServerException {
|
||||||
|
if (server.getHost() != this) throw new IllegalArgumentException("That Server does not belong to this Host!");
|
||||||
|
if (plugin.api.getServers().keySet().contains(server.getName().toLowerCase())) throw new InvalidServerException("A Server already exists with this name!");
|
||||||
SubAddServerEvent event = new SubAddServerEvent(player, this, server);
|
SubAddServerEvent event = new SubAddServerEvent(player, this, server);
|
||||||
plugin.getPluginManager().callEvent(event);
|
plugin.getPluginManager().callEvent(event);
|
||||||
if (!event.isCancelled()) {
|
if (!event.isCancelled()) {
|
||||||
servers.put(name.toLowerCase(), server);
|
servers.put(server.getName().toLowerCase(), server);
|
||||||
if (UPnP.isUPnPAvailable() && plugin.config.get().getMap("Settings").getMap("UPnP", new ObjectMap<String>()).getBoolean("Forward-Servers", false)) UPnP.openPortTCP(port);
|
if (UPnP.isUPnPAvailable() && plugin.config.get().getMap("Settings").getMap("UPnP", new ObjectMap<String>()).getBoolean("Forward-Servers", false)) UPnP.openPortTCP(server.getAddress().getPort());
|
||||||
return server;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -302,7 +302,7 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
server.setAll(config);
|
server.setAll(config);
|
||||||
|
|
||||||
if (update != null) Util.isException(() -> update.getHost().forceRemoveSubServer(name));
|
if (update != null) Util.isException(() -> update.getHost().forceRemoveSubServer(name));
|
||||||
subserver = host.addSubServer(player, name, server.getBoolean("Enabled"), port, ChatColor.translateAlternateColorCodes('&', server.getString("Motd")), server.getBoolean("Log"),
|
subserver = host.constructSubServer(name, server.getBoolean("Enabled"), port, ChatColor.translateAlternateColorCodes('&', server.getString("Motd")), server.getBoolean("Log"),
|
||||||
server.getRawString("Directory"), server.getRawString("Executable"), server.getRawString("Stop-Command"), server.getBoolean("Hidden"), server.getBoolean("Restricted"));
|
server.getRawString("Directory"), server.getRawString("Executable"), server.getRawString("Stop-Command"), server.getBoolean("Hidden"), server.getBoolean("Restricted"));
|
||||||
|
|
||||||
if (server.getString("Display").length() > 0) subserver.setDisplayName(server.getString("Display"));
|
if (server.getString("Display").length() > 0) subserver.setDisplayName(server.getString("Display"));
|
||||||
@ -319,6 +319,7 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
host.plugin.servers.save();
|
host.plugin.servers.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
host.addSubServer(subserver);
|
||||||
if (update == null && template.getBuildOptions().getBoolean("Run-On-Finish", true))
|
if (update == null && template.getBuildOptions().getBoolean("Run-On-Finish", true))
|
||||||
subserver.start();
|
subserver.start();
|
||||||
}
|
}
|
||||||
|
@ -297,14 +297,18 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
for (String key : edit.getKeys()) {
|
for (String key : edit.getKeys()) {
|
||||||
pending.remove(key);
|
pending.remove(key);
|
||||||
ObjectMapValue value = edit.get(key);
|
ObjectMapValue value = edit.get(key);
|
||||||
SubEditServerEvent event = new SubEditServerEvent(player, this, new ContainedPair<String, ObjectMapValue>(key, value), perma);
|
boolean allowed = true;
|
||||||
host.plugin.getPluginManager().callEvent(event);
|
if (perma) {
|
||||||
if (!event.isCancelled()) {
|
SubEditServerEvent event = new SubEditServerEvent(player, this, new ContainedPair<String, ObjectMapValue>(key, value));
|
||||||
|
host.plugin.getPluginManager().callEvent(event);
|
||||||
|
allowed = !event.isCancelled();
|
||||||
|
}
|
||||||
|
if (allowed) {
|
||||||
try {
|
try {
|
||||||
switch (key.toLowerCase()) {
|
switch (key.toLowerCase()) {
|
||||||
case "name":
|
case "name":
|
||||||
if (value.isString() && host.removeSubServer(player, getName())) {
|
if (value.isString() && host.removeSubServer(player, getName())) {
|
||||||
SubServer server = host.addSubServer(player, value.asRawString(), isEnabled(), getAddress().getPort(), getMotd(), isLogging(), getPath(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
SubServer server = host.constructSubServer(value.asRawString(), isEnabled(), getAddress().getPort(), getMotd(), isLogging(), getPath(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
||||||
if (server != null) {
|
if (server != null) {
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
ObjectMap<String> config = this.host.plugin.servers.get().getMap("Servers").getMap(getName());
|
ObjectMap<String> config = this.host.plugin.servers.get().getMap("Servers").getMap(getName());
|
||||||
@ -361,7 +365,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
break;
|
break;
|
||||||
case "host":
|
case "host":
|
||||||
if (value.isString() && host.removeSubServer(player, getName())) {
|
if (value.isString() && host.removeSubServer(player, getName())) {
|
||||||
SubServer server = this.host.plugin.api.getHost(value.asRawString()).addSubServer(player, getName(), isEnabled(), getAddress().getPort(), getMotd(), isLogging(), getPath(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
SubServer server = this.host.plugin.api.getHost(value.asRawString()).constructSubServer(getName(), isEnabled(), getAddress().getPort(), getMotd(), isLogging(), getPath(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
||||||
if (server != null) {
|
if (server != null) {
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Host", server.getHost().getName());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Host", server.getHost().getName());
|
||||||
@ -374,7 +378,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
break;
|
break;
|
||||||
case "template":
|
case "template":
|
||||||
if (value.isString()) {
|
if (value.isString()) {
|
||||||
Util.reflect(SubServerImpl.class.getDeclaredField("template"), this, value.asRawString());
|
setTemplate(value.asRawString());
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Template", value.asRawString());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Template", value.asRawString());
|
||||||
this.host.plugin.servers.save();
|
this.host.plugin.servers.save();
|
||||||
@ -384,7 +388,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
break;
|
break;
|
||||||
case "port":
|
case "port":
|
||||||
if (value.isNumber() && host.removeSubServer(player, getName())) {
|
if (value.isNumber() && host.removeSubServer(player, getName())) {
|
||||||
SubServer server = host.addSubServer(player, getName(), isEnabled(), value.asInt(), getMotd(), isLogging(), getPath(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
SubServer server = host.constructSubServer(getName(), isEnabled(), value.asInt(), getMotd(), isLogging(), getPath(), getExecutable(), getStopCommand(), isHidden(), isRestricted());
|
||||||
if (server != null) {
|
if (server != null) {
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Port", server.getAddress().getPort());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Port", server.getAddress().getPort());
|
||||||
@ -397,7 +401,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
break;
|
break;
|
||||||
case "motd":
|
case "motd":
|
||||||
if (value.isString()) {
|
if (value.isString()) {
|
||||||
Util.reflect(BungeeServerInfo.class.getDeclaredField("motd"), this, ChatColor.translateAlternateColorCodes('&', value.asString()));
|
setMotd(ChatColor.translateAlternateColorCodes('&', value.asString()));
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Motd", value.asString());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Motd", value.asString());
|
||||||
this.host.plugin.servers.save();
|
this.host.plugin.servers.save();
|
||||||
@ -501,7 +505,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
break;
|
break;
|
||||||
case "restricted":
|
case "restricted":
|
||||||
if (value.isBoolean()) {
|
if (value.isBoolean()) {
|
||||||
Util.reflect(BungeeServerInfo.class.getDeclaredField("restricted"), this, value.asBoolean());
|
setRestricted(value.asBoolean());
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Restricted", isRestricted());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Restricted", isRestricted());
|
||||||
this.host.plugin.servers.save();
|
this.host.plugin.servers.save();
|
||||||
@ -511,7 +515,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
break;
|
break;
|
||||||
case "hidden":
|
case "hidden":
|
||||||
if (value.isBoolean()) {
|
if (value.isBoolean()) {
|
||||||
Util.reflect(ServerImpl.class.getDeclaredField("hidden"), this, value.asBoolean());
|
setHidden(value.asBoolean());
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Hidden", isHidden());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Hidden", isHidden());
|
||||||
this.host.plugin.servers.save();
|
this.host.plugin.servers.save();
|
||||||
@ -529,7 +533,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
if (forward != null) {
|
if (forward != null) {
|
||||||
forward.setStopAction(getStopAction());
|
forward.setStopAction(getStopAction());
|
||||||
if (!getName().equals(getDisplayName())) forward.setDisplayName(getDisplayName());
|
if (!getName().equals(getDisplayName())) forward.setDisplayName(getDisplayName());
|
||||||
Util.reflect(SubServerImpl.class.getDeclaredField("template"), forward, Util.reflect(SubServerImpl.class.getDeclaredField("template"), this));
|
forward.setTemplate(getTemplate());
|
||||||
List<String> groups = new ArrayList<String>();
|
List<String> groups = new ArrayList<String>();
|
||||||
groups.addAll(getGroups());
|
groups.addAll(getGroups());
|
||||||
for (String group : groups) {
|
for (String group : groups) {
|
||||||
@ -541,6 +545,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
forward.toggleCompatibility(server);
|
forward.toggleCompatibility(server);
|
||||||
}
|
}
|
||||||
for (String extra : getExtra().getKeys()) forward.addExtra(extra, getExtra(extra));
|
for (String extra : getExtra().getKeys()) forward.addExtra(extra, getExtra(extra));
|
||||||
|
forward.getHost().addSubServer(player, forward);
|
||||||
|
|
||||||
if (state) pending.set("state", true);
|
if (state) pending.set("state", true);
|
||||||
c += (perma)?forward.permaEdit(player, pending):forward.edit(player, pending);
|
c += (perma)?forward.permaEdit(player, pending):forward.edit(player, pending);
|
||||||
@ -587,7 +592,6 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
@Override
|
@Override
|
||||||
public void setEnabled(boolean value) {
|
public void setEnabled(boolean value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
if (Util.isNull(value)) throw new NullPointerException();
|
||||||
host.plugin.getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("enabled", value), false));
|
|
||||||
enabled = value;
|
enabled = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -599,7 +603,6 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
@Override
|
@Override
|
||||||
public void setLogging(boolean value) {
|
public void setLogging(boolean value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
if (Util.isNull(value)) throw new NullPointerException();
|
||||||
host.plugin.getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("log", value), false));
|
|
||||||
log.value(value);
|
log.value(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -631,7 +634,6 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
@Override
|
@Override
|
||||||
public void setStopCommand(String value) {
|
public void setStopCommand(String value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
if (Util.isNull(value)) throw new NullPointerException();
|
||||||
host.plugin.getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("stop-cmd", value), false));
|
|
||||||
stopcmd = value;
|
stopcmd = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -643,7 +645,6 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
@Override
|
@Override
|
||||||
public void setStopAction(StopAction action) {
|
public void setStopAction(StopAction action) {
|
||||||
if (Util.isNull(action)) throw new NullPointerException();
|
if (Util.isNull(action)) throw new NullPointerException();
|
||||||
host.plugin.getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("stop-action", action), false));
|
|
||||||
stopaction = action;
|
stopaction = action;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -126,10 +126,8 @@ public class ServerImpl extends BungeeServerInfo implements Server {
|
|||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public void setDisplayName(String value) {
|
public void setDisplayName(String value) {
|
||||||
if (value == null || value.length() == 0 || getName().equals(value)) {
|
if (value == null || value.length() == 0 || getName().equals(value)) {
|
||||||
SubAPI.getInstance().getInternals().getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("display", getName()), false));
|
|
||||||
this.nick = null;
|
this.nick = null;
|
||||||
} else {
|
} else {
|
||||||
SubAPI.getInstance().getInternals().getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("display", value), false));
|
|
||||||
this.nick = value;
|
this.nick = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -168,17 +166,13 @@ public class ServerImpl extends BungeeServerInfo implements Server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public void setHidden(boolean value) {
|
public void setHidden(boolean value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
if (Util.isNull(value)) throw new NullPointerException();
|
||||||
SubAPI.getInstance().getInternals().getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("hidden", value), false));
|
|
||||||
this.hidden = value;
|
this.hidden = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public void setMotd(String value) {
|
public void setMotd(String value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
if (Util.isNull(value)) throw new NullPointerException();
|
||||||
SubAPI.getInstance().getInternals().getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("motd", value), false));
|
|
||||||
try {
|
try {
|
||||||
Util.reflect(BungeeServerInfo.class.getDeclaredField("motd"), this, value);
|
Util.reflect(BungeeServerInfo.class.getDeclaredField("motd"), this, value);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -186,10 +180,8 @@ public class ServerImpl extends BungeeServerInfo implements Server {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public void setRestricted(boolean value) {
|
public void setRestricted(boolean value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
if (Util.isNull(value)) throw new NullPointerException();
|
||||||
SubAPI.getInstance().getInternals().getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("restricted", value), false));
|
|
||||||
try {
|
try {
|
||||||
Util.reflect(BungeeServerInfo.class.getDeclaredField("restricted"), this, value);
|
Util.reflect(BungeeServerInfo.class.getDeclaredField("restricted"), this, value);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -3,7 +3,6 @@ package net.ME1312.SubServers.Bungee.Host;
|
|||||||
import net.ME1312.Galaxi.Library.Container.ContainedPair;
|
import net.ME1312.Galaxi.Library.Container.ContainedPair;
|
||||||
import net.ME1312.Galaxi.Library.Container.Pair;
|
import net.ME1312.Galaxi.Library.Container.Pair;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.SubServers.Bungee.Event.SubEditServerEvent;
|
|
||||||
import net.ME1312.SubServers.Bungee.Library.Exception.InvalidServerException;
|
import net.ME1312.SubServers.Bungee.Library.Exception.InvalidServerException;
|
||||||
import net.ME1312.SubServers.Bungee.SubAPI;
|
import net.ME1312.SubServers.Bungee.SubAPI;
|
||||||
|
|
||||||
@ -21,6 +20,7 @@ public abstract class SubServerImpl extends ServerImpl implements SubServer {
|
|||||||
private List<Pair<String, String>> incompatibilities = new ArrayList<Pair<String, String>>();
|
private List<Pair<String, String>> incompatibilities = new ArrayList<Pair<String, String>>();
|
||||||
private SubCreator.ServerTemplate templateV = null;
|
private SubCreator.ServerTemplate templateV = null;
|
||||||
private String templateS = null;
|
private String templateS = null;
|
||||||
|
protected boolean registered;
|
||||||
protected boolean started;
|
protected boolean started;
|
||||||
private boolean updating;
|
private boolean updating;
|
||||||
|
|
||||||
@ -110,14 +110,12 @@ public abstract class SubServerImpl extends ServerImpl implements SubServer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setTemplate(String template) {
|
public void setTemplate(String template) {
|
||||||
SubAPI.getInstance().getInternals().getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("template", template), false));
|
|
||||||
this.templateV = null;
|
this.templateV = null;
|
||||||
this.templateS = template;
|
this.templateS = template;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setTemplate(SubCreator.ServerTemplate template) {
|
public void setTemplate(SubCreator.ServerTemplate template) {
|
||||||
SubAPI.getInstance().getInternals().getPluginManager().callEvent(new SubEditServerEvent(null, this, new ContainedPair<String, Object>("template", (template != null)?template.getName():null), false));
|
|
||||||
this.templateV = template;
|
this.templateV = template;
|
||||||
this.templateS = (template != null)?template.getName():null;
|
this.templateS = (template != null)?template.getName():null;
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import net.ME1312.Galaxi.Library.Util;
|
|||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectOut;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectOut;
|
||||||
import net.ME1312.SubData.Server.SubDataClient;
|
import net.ME1312.SubData.Server.SubDataClient;
|
||||||
|
import net.ME1312.SubServers.Bungee.Host.External.ExternalSubServer;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -32,23 +33,17 @@ public class PacketExAddServer implements PacketObjectIn<Integer>, PacketObjectO
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* New PacketExAddServer (Out)
|
* New PacketExAddServer (Out)
|
||||||
*
|
|
||||||
* @param name Name of Server
|
|
||||||
* @param enabled Enabled Status
|
|
||||||
* @param log Logging Status
|
|
||||||
* @param directory Directory
|
|
||||||
* @param executable Executable
|
|
||||||
*/
|
*/
|
||||||
@SafeVarargs
|
@SafeVarargs
|
||||||
public PacketExAddServer(String name, boolean enabled, int port, boolean log, String directory, String executable, String stopcmd, UUID running, Callback<ObjectMap<Integer>>... callback) {
|
public PacketExAddServer(ExternalSubServer server, UUID running, Callback<ObjectMap<Integer>>... callback) {
|
||||||
if (Util.isNull(name, enabled, log, directory, executable, callback)) throw new NullPointerException();
|
if (callback == null) throw new NullPointerException();
|
||||||
this.name = name;
|
this.name = server.getName();
|
||||||
this.enabled = enabled;
|
this.enabled = server.isEnabled();
|
||||||
this.port = port;
|
this.port = server.getAddress().getPort();
|
||||||
this.log = log;
|
this.log = server.isLogging();
|
||||||
this.directory = directory;
|
this.directory = server.getPath();
|
||||||
this.executable = executable;
|
this.executable = server.getExecutable();
|
||||||
this.stopcmd = stopcmd;
|
this.stopcmd = server.getStopCommand();
|
||||||
this.running = running;
|
this.running = running;
|
||||||
this.tracker = Util.getNew(callbacks.keySet(), UUID::randomUUID);
|
this.tracker = Util.getNew(callbacks.keySet(), UUID::randomUUID);
|
||||||
callbacks.put(tracker, callback);
|
callbacks.put(tracker, callback);
|
||||||
|
@ -151,7 +151,6 @@ public class PacketOutExRunEvent implements Listener, PacketObjectOut<Integer> {
|
|||||||
args.set("server", event.getServer().getName());
|
args.set("server", event.getServer().getName());
|
||||||
args.set("edit", event.getEdit().key());
|
args.set("edit", event.getEdit().key());
|
||||||
args.set("value", event.getEdit().value().asObject());
|
args.set("value", event.getEdit().value().asObject());
|
||||||
args.set("perm", event.isPermanent());
|
|
||||||
broadcast(new PacketOutExRunEvent(event.getClass(), args));
|
broadcast(new PacketOutExRunEvent(event.getClass(), args));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -213,7 +213,7 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
*/
|
*/
|
||||||
public Host addHost(UUID player, Class<? extends Host> driver, String name, boolean enabled, Range<Integer> ports, boolean log, InetAddress address, String directory, String gitBash) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
|
public Host addHost(UUID player, Class<? extends Host> driver, String name, boolean enabled, Range<Integer> ports, boolean log, InetAddress address, String directory, String gitBash) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
|
||||||
if (Util.isNull(driver, name, enabled, ports, log, address, directory, gitBash)) throw new NullPointerException();
|
if (Util.isNull(driver, name, enabled, ports, log, address, directory, gitBash)) throw new NullPointerException();
|
||||||
Host host = driver.getConstructor(SubProxy.class, String.class, boolean.class, Range.class, boolean.class, InetAddress.class, String.class, String.class).newInstance(plugin, name, enabled, ports, log, address, directory, gitBash);
|
Host host = plugin.constructHost(driver, name, enabled, ports, log, address, directory, gitBash);
|
||||||
return addHost(player, host)?host:null;
|
return addHost(player, host)?host:null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -410,15 +410,37 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
* @return The Server
|
* @return The Server
|
||||||
*/
|
*/
|
||||||
public Server addServer(UUID player, String name, InetAddress ip, int port, String motd, boolean hidden, boolean restricted) {
|
public Server addServer(UUID player, String name, InetAddress ip, int port, String motd, boolean hidden, boolean restricted) {
|
||||||
if (getServers().keySet().contains(name.toLowerCase())) throw new InvalidServerException("A Server already exists with this name!");
|
|
||||||
Server server = ServerImpl.construct(name, new InetSocketAddress(ip, port), motd, hidden, restricted);
|
Server server = ServerImpl.construct(name, new InetSocketAddress(ip, port), motd, hidden, restricted);
|
||||||
|
return (addServer(player, server))?server:null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a Server to the Network
|
||||||
|
*
|
||||||
|
* @param server Server to add
|
||||||
|
* @return Success status
|
||||||
|
*/
|
||||||
|
public boolean addServer(Server server) {
|
||||||
|
return addServer(null, server);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a Server to the Network
|
||||||
|
*
|
||||||
|
* @param player Player who added
|
||||||
|
* @param server Server to add
|
||||||
|
* @return Success status
|
||||||
|
*/
|
||||||
|
public boolean addServer(UUID player, Server server) {
|
||||||
|
if (getServers().keySet().contains(server.getName().toLowerCase())) throw new InvalidServerException("A Server already exists with this name!");
|
||||||
SubAddServerEvent event = new SubAddServerEvent(player, null, server);
|
SubAddServerEvent event = new SubAddServerEvent(player, null, server);
|
||||||
plugin.getPluginManager().callEvent(event);
|
plugin.getPluginManager().callEvent(event);
|
||||||
if (!event.isCancelled()) {
|
if (!event.isCancelled()) {
|
||||||
plugin.exServers.put(name.toLowerCase(), server);
|
plugin.exServers.put(server.getName().toLowerCase(), server);
|
||||||
return server;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,8 +370,10 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
Logger.get("SubServers").info(((status)?"Rel":"L")+"oading Hosts...");
|
Logger.get("SubServers").info(((status)?"Rel":"L")+"oading Hosts...");
|
||||||
for (String name : config.get().getMap("Hosts").getKeys()) {
|
for (String name : config.get().getMap("Hosts").getKeys()) {
|
||||||
if (!ukeys.contains(name.toLowerCase())) try {
|
if (!ukeys.contains(name.toLowerCase())) try {
|
||||||
if (!hostDrivers.keySet().contains(config.get().getMap("Hosts").getMap(name).getRawString("Driver").toUpperCase().replace('-', '_').replace(' ', '_'))) throw new InvalidHostException("Invalid Driver for host: " + name);
|
boolean add = false;
|
||||||
Host host = this.hosts.get(name.toLowerCase());
|
Host host = this.hosts.get(name.toLowerCase());
|
||||||
|
Class<? extends Host> driver = hostDrivers.get(config.get().getMap("Hosts").getMap(name).getRawString("Driver").toUpperCase().replace('-', '_').replace(' ', '_'));
|
||||||
|
if (driver == null) throw new InvalidHostException("Invalid Driver for host: " + name);
|
||||||
if (host == null || // Host must be reset
|
if (host == null || // Host must be reset
|
||||||
!hostDrivers.get(config.get().getMap("Hosts").getMap(name).getRawString("Driver").toUpperCase().replace('-', '_').replace(' ', '_')).equals(host.getClass()) ||
|
!hostDrivers.get(config.get().getMap("Hosts").getMap(name).getRawString("Driver").toUpperCase().replace('-', '_').replace(' ', '_')).equals(host.getClass()) ||
|
||||||
!config.get().getMap("Hosts").getMap(name).getRawString("Address").equals(host.getAddress().getHostAddress()) ||
|
!config.get().getMap("Hosts").getMap(name).getRawString("Address").equals(host.getAddress().getHostAddress()) ||
|
||||||
@ -379,7 +381,8 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
!config.get().getMap("Hosts").getMap(name).getRawString("Git-Bash").equals(host.getCreator().getBashDirectory())
|
!config.get().getMap("Hosts").getMap(name).getRawString("Git-Bash").equals(host.getCreator().getBashDirectory())
|
||||||
) {
|
) {
|
||||||
if (host != null) api.forceRemoveHost(name);
|
if (host != null) api.forceRemoveHost(name);
|
||||||
host = api.addHost(config.get().getMap("Hosts").getMap(name).getRawString("Driver").toLowerCase(), name, config.get().getMap("Hosts").getMap(name).getBoolean("Enabled"),
|
add = true;
|
||||||
|
host = constructHost(driver, name, config.get().getMap("Hosts").getMap(name).getBoolean("Enabled"),
|
||||||
Range.closed(Integer.parseInt(config.get().getMap("Hosts").getMap(name).getRawString("Port-Range", "25500-25559").split("-")[0]), Integer.parseInt(config.get().getMap("Hosts").getMap(name).getRawString("Port-Range", "25500-25559").split("-")[1])),
|
Range.closed(Integer.parseInt(config.get().getMap("Hosts").getMap(name).getRawString("Port-Range", "25500-25559").split("-")[0]), Integer.parseInt(config.get().getMap("Hosts").getMap(name).getRawString("Port-Range", "25500-25559").split("-")[1])),
|
||||||
config.get().getMap("Hosts").getMap(name).getBoolean("Log-Creator", true), InetAddress.getByName(config.get().getMap("Hosts").getMap(name).getRawString("Address")),
|
config.get().getMap("Hosts").getMap(name).getBoolean("Log-Creator", true), InetAddress.getByName(config.get().getMap("Hosts").getMap(name).getRawString("Address")),
|
||||||
config.get().getMap("Hosts").getMap(name).getRawString("Directory"), config.get().getMap("Hosts").getMap(name).getRawString("Git-Bash"));
|
config.get().getMap("Hosts").getMap(name).getRawString("Directory"), config.get().getMap("Hosts").getMap(name).getRawString("Git-Bash"));
|
||||||
@ -396,6 +399,8 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
host.setDisplayName(config.get().getMap("Hosts").getMap(name).getString("Display"));
|
host.setDisplayName(config.get().getMap("Hosts").getMap(name).getString("Display"));
|
||||||
if (config.get().getMap("Hosts").getMap(name).getKeys().contains("Extra"))
|
if (config.get().getMap("Hosts").getMap(name).getKeys().contains("Extra"))
|
||||||
for (String extra : config.get().getMap("Hosts").getMap(name).getMap("Extra").getKeys()) host.addExtra(extra, config.get().getMap("Hosts").getMap(name).getMap("Extra").getObject(extra));
|
for (String extra : config.get().getMap("Hosts").getMap(name).getMap("Extra").getKeys()) host.addExtra(extra, config.get().getMap("Hosts").getMap(name).getMap("Extra").getObject(extra));
|
||||||
|
if (add)
|
||||||
|
api.addHost(host);
|
||||||
ukeys.add(name.toLowerCase());
|
ukeys.add(name.toLowerCase());
|
||||||
hosts++;
|
hosts++;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -409,14 +414,16 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
bungee.reload();
|
bungee.reload();
|
||||||
for (String name : bungee.get().getMap("servers").getKeys()) {
|
for (String name : bungee.get().getMap("servers").getKeys()) {
|
||||||
if (!ukeys.contains(name.toLowerCase())) try {
|
if (!ukeys.contains(name.toLowerCase())) try {
|
||||||
|
boolean add = false;
|
||||||
Server server = api.getServer(name);
|
Server server = api.getServer(name);
|
||||||
if (server == null || !(server instanceof SubServer)) {
|
if (server == null || !(server instanceof SubServer)) {
|
||||||
if (server == null || // Server must be reset
|
if (server == null || // Server must be reset
|
||||||
bungee.get().getMap("servers").getMap(name).getRawString("address").equals(server.getAddress().getAddress().getHostAddress() + ':' + server.getAddress().getPort())
|
bungee.get().getMap("servers").getMap(name).getRawString("address").equals(server.getAddress().getAddress().getHostAddress() + ':' + server.getAddress().getPort())
|
||||||
) {
|
) {
|
||||||
if (server != null) api.forceRemoveServer(name);
|
if (server != null) api.forceRemoveServer(name);
|
||||||
server = api.addServer(name, InetAddress.getByName(bungee.get().getMap("servers").getMap(name).getRawString("address").split(":")[0]),
|
add = true;
|
||||||
Integer.parseInt(bungee.get().getMap("servers").getMap(name).getRawString("address").split(":")[1]), ChatColor.translateAlternateColorCodes('&', bungee.get().getMap("servers").getMap(name).getString("motd")),
|
server = ServerImpl.construct(name, new InetSocketAddress(InetAddress.getByName(bungee.get().getMap("servers").getMap(name).getRawString("address").split(":")[0]),
|
||||||
|
Integer.parseInt(bungee.get().getMap("servers").getMap(name).getRawString("address").split(":")[1])), ChatColor.translateAlternateColorCodes('&', bungee.get().getMap("servers").getMap(name).getString("motd")),
|
||||||
bungee.get().getMap("servers").getMap(name).getBoolean("hidden", false), bungee.get().getMap("servers").getMap(name).getBoolean("restricted"));
|
bungee.get().getMap("servers").getMap(name).getBoolean("hidden", false), bungee.get().getMap("servers").getMap(name).getBoolean("restricted"));
|
||||||
} else { // Server wasn't reset, so check for these changes
|
} else { // Server wasn't reset, so check for these changes
|
||||||
if (!ChatColor.translateAlternateColorCodes('&', bungee.get().getMap("servers").getMap(name).getString("motd")).equals(server.getMotd()))
|
if (!ChatColor.translateAlternateColorCodes('&', bungee.get().getMap("servers").getMap(name).getString("motd")).equals(server.getMotd()))
|
||||||
@ -436,6 +443,8 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
for (String extra : config.get().getMap("servers").getMap(name).getMap("extra").getKeys()) server.addExtra(extra, config.get().getMap("servers").getMap(name).getMap("extra").getObject(extra));
|
for (String extra : config.get().getMap("servers").getMap(name).getMap("extra").getKeys()) server.addExtra(extra, config.get().getMap("servers").getMap(name).getMap("extra").getObject(extra));
|
||||||
if (server.getSubData()[0] != null)
|
if (server.getSubData()[0] != null)
|
||||||
((SubDataClient) server.getSubData()[0]).sendPacket(new PacketOutExReload(null));
|
((SubDataClient) server.getSubData()[0]).sendPacket(new PacketOutExReload(null));
|
||||||
|
if (add)
|
||||||
|
api.addServer(server);
|
||||||
ukeys.add(name.toLowerCase());
|
ukeys.add(name.toLowerCase());
|
||||||
servers++;
|
servers++;
|
||||||
}
|
}
|
||||||
@ -455,6 +464,7 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
exServers.remove(name.toLowerCase());
|
exServers.remove(name.toLowerCase());
|
||||||
servers--;
|
servers--;
|
||||||
}
|
}
|
||||||
|
boolean add = false;
|
||||||
SubServer server = api.getSubServer(name);
|
SubServer server = api.getSubServer(name);
|
||||||
if (server != null && server.isEditable()) { // Server can edit() (May be reset depending on change severity)
|
if (server != null && server.isEditable()) { // Server can edit() (May be reset depending on change severity)
|
||||||
ObjectMap<String> edits = new ObjectMap<String>();
|
ObjectMap<String> edits = new ObjectMap<String>();
|
||||||
@ -501,7 +511,8 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
!this.servers.get().getMap("Servers").getMap(name).getRawString("Executable").equals(server.getExecutable())
|
!this.servers.get().getMap("Servers").getMap(name).getRawString("Executable").equals(server.getExecutable())
|
||||||
) {
|
) {
|
||||||
if (server != null) server.getHost().forceRemoveSubServer(name);
|
if (server != null) server.getHost().forceRemoveSubServer(name);
|
||||||
server = this.hosts.get(this.servers.get().getMap("Servers").getMap(name).getString("Host").toLowerCase()).addSubServer(name, this.servers.get().getMap("Servers").getMap(name).getBoolean("Enabled"),
|
add = true;
|
||||||
|
server = this.hosts.get(this.servers.get().getMap("Servers").getMap(name).getString("Host").toLowerCase()).constructSubServer(name, this.servers.get().getMap("Servers").getMap(name).getBoolean("Enabled"),
|
||||||
this.servers.get().getMap("Servers").getMap(name).getInt("Port"), ChatColor.translateAlternateColorCodes('&', this.servers.get().getMap("Servers").getMap(name).getString("Motd")), this.servers.get().getMap("Servers").getMap(name).getBoolean("Log"),
|
this.servers.get().getMap("Servers").getMap(name).getInt("Port"), ChatColor.translateAlternateColorCodes('&', this.servers.get().getMap("Servers").getMap(name).getString("Motd")), this.servers.get().getMap("Servers").getMap(name).getBoolean("Log"),
|
||||||
this.servers.get().getMap("Servers").getMap(name).getRawString("Directory"), this.servers.get().getMap("Servers").getMap(name).getRawString("Executable"), this.servers.get().getMap("Servers").getMap(name).getRawString("Stop-Command"),
|
this.servers.get().getMap("Servers").getMap(name).getRawString("Directory"), this.servers.get().getMap("Servers").getMap(name).getRawString("Executable"), this.servers.get().getMap("Servers").getMap(name).getRawString("Stop-Command"),
|
||||||
this.servers.get().getMap("Servers").getMap(name).getBoolean("Hidden"), this.servers.get().getMap("Servers").getMap(name).getBoolean("Restricted"));
|
this.servers.get().getMap("Servers").getMap(name).getBoolean("Hidden"), this.servers.get().getMap("Servers").getMap(name).getBoolean("Restricted"));
|
||||||
@ -534,6 +545,7 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
}
|
}
|
||||||
} // Apply these changes regardless of edit/reset
|
} // Apply these changes regardless of edit/reset
|
||||||
if (this.servers.get().getMap("Servers").getMap(name).getKeys().contains("Extra")) for (String extra : this.servers.get().getMap("Servers").getMap(name).getMap("Extra").getKeys()) server.addExtra(extra, this.servers.get().getMap("Servers").getMap(name).getMap("Extra").getObject(extra));
|
if (this.servers.get().getMap("Servers").getMap(name).getKeys().contains("Extra")) for (String extra : this.servers.get().getMap("Servers").getMap(name).getMap("Extra").getKeys()) server.addExtra(extra, this.servers.get().getMap("Servers").getMap(name).getMap("Extra").getObject(extra));
|
||||||
|
if (add) server.getHost().addSubServer(server);
|
||||||
ukeys.add(name.toLowerCase());
|
ukeys.add(name.toLowerCase());
|
||||||
subservers++;
|
subservers++;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -849,6 +861,11 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
return (result.length() == 0) ? DIGITS.substring(0, 1) : result.toString();
|
return (result.length() == 0) ? DIGITS.substring(0, 1) : result.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Host constructHost(Class<? extends Host> driver, String name, boolean enabled, Range<Integer> ports, boolean log, InetAddress address, String directory, String gitBash) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
|
||||||
|
if (Util.isNull(driver, name, enabled, ports, log, address, directory, gitBash)) throw new NullPointerException();
|
||||||
|
return driver.getConstructor(SubProxy.class, String.class, boolean.class, Range.class, boolean.class, InetAddress.class, String.class, String.class).newInstance(this, name, enabled, ports, log, address, directory, gitBash);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Further override BungeeCord's signature when patched into the same jar
|
* Further override BungeeCord's signature when patched into the same jar
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,6 @@ public class SubEditServerEvent extends Event implements SubEvent {
|
|||||||
private UUID player;
|
private UUID player;
|
||||||
private String server;
|
private String server;
|
||||||
private Pair<String, ObjectMapValue<String>> edit;
|
private Pair<String, ObjectMapValue<String>> edit;
|
||||||
private boolean perm;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Server Edit Event
|
* Server Edit Event
|
||||||
@ -27,16 +26,14 @@ public class SubEditServerEvent extends Event implements SubEvent {
|
|||||||
* @param player Player Adding Server
|
* @param player Player Adding Server
|
||||||
* @param server Server to be Edited
|
* @param server Server to be Edited
|
||||||
* @param edit Edit to make
|
* @param edit Edit to make
|
||||||
* @param permanent If the change is permanent
|
|
||||||
*/
|
*/
|
||||||
public SubEditServerEvent(UUID player, String server, Pair<String, ?> edit, boolean permanent) {
|
public SubEditServerEvent(UUID player, String server, Pair<String, ?> edit) {
|
||||||
if (Util.isNull(server, edit)) throw new NullPointerException();
|
if (Util.isNull(server, edit)) throw new NullPointerException();
|
||||||
ObjectMap<String> section = new ObjectMap<String>();
|
ObjectMap<String> section = new ObjectMap<String>();
|
||||||
section.set(".", edit.value());
|
section.set(".", edit.value());
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.edit = new ContainedPair<String, ObjectMapValue<String>>(edit.key(), section.contains(".")?section.get("."):null);
|
this.edit = new ContainedPair<String, ObjectMapValue<String>>(edit.key(), section.contains(".")?section.get("."):null);
|
||||||
this.perm = permanent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -62,15 +59,6 @@ public class SubEditServerEvent extends Event implements SubEvent {
|
|||||||
return edit;
|
return edit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets if the edit is permanent
|
|
||||||
*
|
|
||||||
* @return Permanent Status
|
|
||||||
*/
|
|
||||||
public boolean isPermanent() {
|
|
||||||
return perm;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HandlerList getHandlers() {
|
public HandlerList getHandlers() {
|
||||||
return handlers;
|
return handlers;
|
||||||
|
@ -86,7 +86,7 @@ public class PacketInExRunEvent implements PacketObjectIn<Integer> {
|
|||||||
@Override
|
@Override
|
||||||
public void run(ObjectMap<String> data) {
|
public void run(ObjectMap<String> data) {
|
||||||
if (plugin.isEnabled()) {
|
if (plugin.isEnabled()) {
|
||||||
Bukkit.getPluginManager().callEvent(new SubEditServerEvent((data.contains("player"))?data.getUUID("player"):null, data.getString("server"), new ContainedPair<String, Object>(data.getString("edit"), data.get("value")), data.getBoolean("perm")));
|
Bukkit.getPluginManager().callEvent(new SubEditServerEvent((data.contains("player"))?data.getUUID("player"):null, data.getString("server"), new ContainedPair<String, Object>(data.getString("edit"), data.get("value"))));
|
||||||
callback("SubEditServerEvent", this);
|
callback("SubEditServerEvent", this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,6 @@ public class SubEditServerEvent extends AbstractEvent implements SubEvent {
|
|||||||
private UUID player;
|
private UUID player;
|
||||||
private String server;
|
private String server;
|
||||||
private Pair<String, ObjectMapValue<String>> edit;
|
private Pair<String, ObjectMapValue<String>> edit;
|
||||||
private boolean perm;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Server Edit Event
|
* Server Edit Event
|
||||||
@ -27,16 +26,14 @@ public class SubEditServerEvent extends AbstractEvent implements SubEvent {
|
|||||||
* @param player Player Adding Server
|
* @param player Player Adding Server
|
||||||
* @param server Server to be Edited
|
* @param server Server to be Edited
|
||||||
* @param edit Edit to make
|
* @param edit Edit to make
|
||||||
* @param permanent If the change is permanent
|
|
||||||
*/
|
*/
|
||||||
public SubEditServerEvent(UUID player, String server, Pair<String, ?> edit, boolean permanent) {
|
public SubEditServerEvent(UUID player, String server, Pair<String, ?> edit) {
|
||||||
if (Util.isNull(server, edit)) throw new NullPointerException();
|
if (Util.isNull(server, edit)) throw new NullPointerException();
|
||||||
ObjectMap<String> section = new ObjectMap<String>();
|
ObjectMap<String> section = new ObjectMap<String>();
|
||||||
section.set(".", edit.value());
|
section.set(".", edit.value());
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.edit = new ContainedPair<String, ObjectMapValue<String>>(edit.key(), section.contains(".")?section.get("."):null);
|
this.edit = new ContainedPair<String, ObjectMapValue<String>>(edit.key(), section.contains(".")?section.get("."):null);
|
||||||
this.perm = permanent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -62,15 +59,6 @@ public class SubEditServerEvent extends AbstractEvent implements SubEvent {
|
|||||||
return edit;
|
return edit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets if the edit is permanent
|
|
||||||
*
|
|
||||||
* @return Permanent Status
|
|
||||||
*/
|
|
||||||
public boolean isPermanent() {
|
|
||||||
return perm;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the cause of this Event
|
* Gets the cause of this Event
|
||||||
*
|
*
|
||||||
|
@ -73,7 +73,7 @@ public class PacketInExRunEvent implements PacketObjectIn<Integer> {
|
|||||||
callback("SubEditServerEvent", new Callback<ObjectMap<String>>() {
|
callback("SubEditServerEvent", new Callback<ObjectMap<String>>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(ObjectMap<String> data) {
|
public void run(ObjectMap<String> data) {
|
||||||
Sponge.getEventManager().post(new SubEditServerEvent((data.contains("player"))?data.getUUID("player"):null, data.getString("server"), new ContainedPair<String, Object>(data.getString("edit"), data.get("value")), data.getBoolean("perm")));
|
Sponge.getEventManager().post(new SubEditServerEvent((data.contains("player"))?data.getUUID("player"):null, data.getString("server"), new ContainedPair<String, Object>(data.getString("edit"), data.get("value"))));
|
||||||
callback("SubEditServerEvent", this);
|
callback("SubEditServerEvent", this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -16,7 +16,6 @@ public class SubEditServerEvent extends Event {
|
|||||||
private UUID player;
|
private UUID player;
|
||||||
private String server;
|
private String server;
|
||||||
private Pair<String, ObjectMapValue<String>> edit;
|
private Pair<String, ObjectMapValue<String>> edit;
|
||||||
private boolean perm;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Server Edit Event
|
* Server Edit Event
|
||||||
@ -24,16 +23,14 @@ public class SubEditServerEvent extends Event {
|
|||||||
* @param player Player Adding Server
|
* @param player Player Adding Server
|
||||||
* @param server Server to be Edited
|
* @param server Server to be Edited
|
||||||
* @param edit Edit to make
|
* @param edit Edit to make
|
||||||
* @param permanent If the change is permanent
|
|
||||||
*/
|
*/
|
||||||
public SubEditServerEvent(UUID player, String server, Pair<String, ?> edit, boolean permanent) {
|
public SubEditServerEvent(UUID player, String server, Pair<String, ?> edit) {
|
||||||
if (Util.isNull(server, edit)) throw new NullPointerException();
|
if (Util.isNull(server, edit)) throw new NullPointerException();
|
||||||
ObjectMap<String> section = new ObjectMap<String>();
|
ObjectMap<String> section = new ObjectMap<String>();
|
||||||
section.set(".", edit.value());
|
section.set(".", edit.value());
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.edit = new ContainedPair<String, ObjectMapValue<String>>(edit.key(), section.get("."));
|
this.edit = new ContainedPair<String, ObjectMapValue<String>>(edit.key(), section.get("."));
|
||||||
this.perm = permanent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,13 +55,4 @@ public class SubEditServerEvent extends Event {
|
|||||||
public Pair<String, ObjectMapValue<String>> getEdit() {
|
public Pair<String, ObjectMapValue<String>> getEdit() {
|
||||||
return edit;
|
return edit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets if the edit is permanent
|
|
||||||
*
|
|
||||||
* @return Permanent Status
|
|
||||||
*/
|
|
||||||
public boolean isPermanent() {
|
|
||||||
return perm;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ public class PacketInExRunEvent implements PacketObjectIn<Integer> {
|
|||||||
callback("SubEditServerEvent", new Callback<ObjectMap<String>>() {
|
callback("SubEditServerEvent", new Callback<ObjectMap<String>>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(ObjectMap<String> data) {
|
public void run(ObjectMap<String> data) {
|
||||||
GalaxiEngine.getInstance().getPluginManager().executeEvent(new SubEditServerEvent((data.contains("player"))?data.getUUID("player"):null, data.getRawString("server"), new ContainedPair<String, Object>(data.getRawString("edit"), data.get("value")), data.getBoolean("perm")));
|
GalaxiEngine.getInstance().getPluginManager().executeEvent(new SubEditServerEvent((data.contains("player"))?data.getUUID("player"):null, data.getRawString("server"), new ContainedPair<String, Object>(data.getRawString("edit"), data.get("value"))));
|
||||||
callback("SubEditServerEvent", this);
|
callback("SubEditServerEvent", this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -18,7 +18,6 @@ public class SubEditServerEvent extends Event implements SubEvent {
|
|||||||
private UUID player;
|
private UUID player;
|
||||||
private String server;
|
private String server;
|
||||||
private Pair<String, ObjectMapValue<String>> edit;
|
private Pair<String, ObjectMapValue<String>> edit;
|
||||||
private boolean perm;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Server Edit Event
|
* Server Edit Event
|
||||||
@ -26,16 +25,14 @@ public class SubEditServerEvent extends Event implements SubEvent {
|
|||||||
* @param player Player Adding Server
|
* @param player Player Adding Server
|
||||||
* @param server Server to be Edited
|
* @param server Server to be Edited
|
||||||
* @param edit Edit to make
|
* @param edit Edit to make
|
||||||
* @param permanent If the change is permanent
|
|
||||||
*/
|
*/
|
||||||
public SubEditServerEvent(UUID player, String server, Pair<String, ?> edit, boolean permanent) {
|
public SubEditServerEvent(UUID player, String server, Pair<String, ?> edit) {
|
||||||
if (Util.isNull(server, edit)) throw new NullPointerException();
|
if (Util.isNull(server, edit)) throw new NullPointerException();
|
||||||
ObjectMap<String> section = new ObjectMap<String>();
|
ObjectMap<String> section = new ObjectMap<String>();
|
||||||
section.set(".", edit.value());
|
section.set(".", edit.value());
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.edit = new ContainedPair<String, ObjectMapValue<String>>(edit.key(), section.get("."));
|
this.edit = new ContainedPair<String, ObjectMapValue<String>>(edit.key(), section.get("."));
|
||||||
this.perm = permanent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -60,13 +57,4 @@ public class SubEditServerEvent extends Event implements SubEvent {
|
|||||||
public Pair<String, ObjectMapValue<String>> getEdit() {
|
public Pair<String, ObjectMapValue<String>> getEdit() {
|
||||||
return edit;
|
return edit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets if the edit is permanent
|
|
||||||
*
|
|
||||||
* @return Permanent Status
|
|
||||||
*/
|
|
||||||
public boolean isPermanent() {
|
|
||||||
return perm;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,7 @@ public class PacketInExRunEvent implements PacketObjectIn<Integer> {
|
|||||||
callback("SubEditServerEvent", new Callback<ObjectMap<String>>() {
|
callback("SubEditServerEvent", new Callback<ObjectMap<String>>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(ObjectMap<String> data) {
|
public void run(ObjectMap<String> data) {
|
||||||
ProxyServer.getInstance().getPluginManager().callEvent(new SubEditServerEvent((data.contains("player"))?data.getUUID("player"):null, data.getRawString("server"), new ContainedPair<String, Object>(data.getRawString("edit"), data.get("value")), data.getBoolean("perm")));
|
ProxyServer.getInstance().getPluginManager().callEvent(new SubEditServerEvent((data.contains("player"))?data.getUUID("player"):null, data.getRawString("server"), new ContainedPair<String, Object>(data.getRawString("edit"), data.get("value"))));
|
||||||
callback("SubEditServerEvent", this);
|
callback("SubEditServerEvent", this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user