mirror of
https://github.com/ME1312/SubServers-2.git
synced 2024-11-22 02:08:27 +01:00
Update GalaxiEngine
The changes this time are to some of GalaxiEngine's core utilities... which means it took a lot of work this time.
This commit is contained in:
parent
16c373b336
commit
3e074e365d
@ -28,7 +28,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.ME1312.Galaxi</groupId>
|
<groupId>net.ME1312.Galaxi</groupId>
|
||||||
<artifactId>GalaxiUtil</artifactId>
|
<artifactId>GalaxiUtil</artifactId>
|
||||||
<version>21w27b</version>
|
<version>21w43f</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.ME1312.SubServers.Bungee;
|
package net.ME1312.SubServers.Bungee;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.UniversalFile;
|
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
import net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer;
|
import net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer;
|
||||||
@ -8,6 +7,7 @@ import net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer;
|
|||||||
import net.md_5.bungee.api.ProxyServer;
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
import net.md_5.bungee.api.config.ServerInfo;
|
import net.md_5.bungee.api.config.ServerInfo;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -23,7 +23,7 @@ public interface BungeeAPI {
|
|||||||
* @return SubAPI BungeeCord Common
|
* @return SubAPI BungeeCord Common
|
||||||
*/
|
*/
|
||||||
static BungeeAPI getInstance() {
|
static BungeeAPI getInstance() {
|
||||||
return ((BungeeCommon) ProxyServer.getInstance()).api.run();
|
return ((BungeeCommon) ProxyServer.getInstance()).api.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -96,7 +96,7 @@ public interface BungeeAPI {
|
|||||||
* @return Lang Values
|
* @return Lang Values
|
||||||
*/
|
*/
|
||||||
default String getLang(String channel, String key) {
|
default String getLang(String channel, String key) {
|
||||||
if (Util.isNull(channel, key)) throw new NullPointerException();
|
Util.nullpo(channel, key);
|
||||||
return getLang(channel).get(key);
|
return getLang(channel).get(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,7 +105,7 @@ public interface BungeeAPI {
|
|||||||
*
|
*
|
||||||
* @return Directory
|
* @return Directory
|
||||||
*/
|
*/
|
||||||
UniversalFile getRuntimeDirectory();
|
File getRuntimeDirectory();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the SubServers Version
|
* Gets the SubServers Version
|
||||||
|
@ -1,21 +1,20 @@
|
|||||||
package net.ME1312.SubServers.Bungee;
|
package net.ME1312.SubServers.Bungee;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.ReturnRunnable;
|
|
||||||
|
|
||||||
import net.md_5.bungee.BungeeCord;
|
import net.md_5.bungee.BungeeCord;
|
||||||
import net.md_5.bungee.api.config.ServerInfo;
|
import net.md_5.bungee.api.config.ServerInfo;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BungeeCord Common Layout Class
|
* BungeeCord Common Layout Class
|
||||||
*/
|
*/
|
||||||
public abstract class BungeeCommon extends BungeeCord {
|
public abstract class BungeeCommon extends BungeeCord {
|
||||||
private static BungeeCommon instance;
|
private static BungeeCommon instance;
|
||||||
final ReturnRunnable<BungeeAPI> api;
|
final Supplier<BungeeAPI> api;
|
||||||
|
|
||||||
protected BungeeCommon(ReturnRunnable<BungeeAPI> api) throws IOException {
|
protected BungeeCommon(Supplier<BungeeAPI> api) throws IOException {
|
||||||
this.api = api;
|
this.api = api;
|
||||||
instance = this;
|
instance = this;
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Library.Compatibility;
|
package net.ME1312.SubServers.Bungee.Library.Compatibility;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
|
|
||||||
import net.md_5.bungee.api.chat.BaseComponent;
|
import net.md_5.bungee.api.chat.BaseComponent;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.IntConsumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* RemotePlayer Static Implementation Layout Class
|
* RemotePlayer Static Implementation Layout Class
|
||||||
@ -22,7 +21,7 @@ public abstract class RPSI {
|
|||||||
* @param messages Messages to send
|
* @param messages Messages to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
protected abstract void sendMessage(UUID[] players, String[] messages, Callback<Integer> response);
|
protected abstract void sendMessage(UUID[] players, String[] messages, IntConsumer response);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends messages to this player
|
* Sends messages to this player
|
||||||
@ -31,7 +30,7 @@ public abstract class RPSI {
|
|||||||
* @param messages Messages to send
|
* @param messages Messages to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
protected abstract void sendMessage(UUID[] players, BaseComponent[][] messages, Callback<Integer> response);
|
protected abstract void sendMessage(UUID[] players, BaseComponent[][] messages, IntConsumer response);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transfers this player to another server
|
* Transfers this player to another server
|
||||||
@ -40,7 +39,7 @@ public abstract class RPSI {
|
|||||||
* @param server Target server
|
* @param server Target server
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
protected abstract void transfer(UUID[] players, String server, Callback<Integer> response);
|
protected abstract void transfer(UUID[] players, String server, IntConsumer response);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Disconnects this player from the network
|
* Disconnects this player from the network
|
||||||
@ -49,5 +48,5 @@ public abstract class RPSI {
|
|||||||
* @param reason Disconnect Reason
|
* @param reason Disconnect Reason
|
||||||
* @param response Success status
|
* @param response Success status
|
||||||
*/
|
*/
|
||||||
protected abstract void disconnect(UUID[] players, String reason, Callback<Integer> response);
|
protected abstract void disconnect(UUID[] players, String reason, IntConsumer response);
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Library.Compatibility;
|
package net.ME1312.SubServers.Bungee.Library.Compatibility;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
|
|
||||||
import net.md_5.bungee.api.chat.BaseComponent;
|
import net.md_5.bungee.api.chat.BaseComponent;
|
||||||
import net.md_5.bungee.api.config.ServerInfo;
|
import net.md_5.bungee.api.config.ServerInfo;
|
||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
|
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.IntConsumer;
|
||||||
|
|
||||||
import static net.ME1312.SubServers.Bungee.Library.Compatibility.RPSI.instance;
|
import static net.ME1312.SubServers.Bungee.Library.Compatibility.RPSI.instance;
|
||||||
|
|
||||||
@ -80,7 +79,7 @@ public interface RemotePlayer {
|
|||||||
* @param message Message to send
|
* @param message Message to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
static void broadcastMessage(String message, Callback<Integer> response) {
|
static void broadcastMessage(String message, IntConsumer response) {
|
||||||
broadcastMessage(new String[]{ message }, response);
|
broadcastMessage(new String[]{ message }, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,7 +89,7 @@ public interface RemotePlayer {
|
|||||||
* @param messages Messages to send
|
* @param messages Messages to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
static void broadcastMessage(String[] messages, Callback<Integer> response) {
|
static void broadcastMessage(String[] messages, IntConsumer response) {
|
||||||
sendMessage(null, messages, response);
|
sendMessage(null, messages, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,7 +108,7 @@ public interface RemotePlayer {
|
|||||||
* @param message Message to send
|
* @param message Message to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
default void sendMessage(String message, Callback<Integer> response) {
|
default void sendMessage(String message, IntConsumer response) {
|
||||||
sendMessage(new String[]{ message }, response);
|
sendMessage(new String[]{ message }, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,7 +118,7 @@ public interface RemotePlayer {
|
|||||||
* @param messages Messages to send
|
* @param messages Messages to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
default void sendMessage(String[] messages, Callback<Integer> response) {
|
default void sendMessage(String[] messages, IntConsumer response) {
|
||||||
sendMessage(new UUID[]{ getUniqueId() }, messages, response);
|
sendMessage(new UUID[]{ getUniqueId() }, messages, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,7 +139,7 @@ public interface RemotePlayer {
|
|||||||
* @param message Message to send
|
* @param message Message to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
static void sendMessage(UUID[] players, String message, Callback<Integer> response) {
|
static void sendMessage(UUID[] players, String message, IntConsumer response) {
|
||||||
sendMessage(players, new String[]{ message }, response);
|
sendMessage(players, new String[]{ message }, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -151,7 +150,7 @@ public interface RemotePlayer {
|
|||||||
* @param messages Messages to send
|
* @param messages Messages to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
static void sendMessage(UUID[] players, String[] messages, Callback<Integer> response) {
|
static void sendMessage(UUID[] players, String[] messages, IntConsumer response) {
|
||||||
instance.sendMessage(players, messages, response);
|
instance.sendMessage(players, messages, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,7 +169,7 @@ public interface RemotePlayer {
|
|||||||
* @param message Message to send
|
* @param message Message to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
static void broadcastMessage(BaseComponent message, Callback<Integer> response) {
|
static void broadcastMessage(BaseComponent message, IntConsumer response) {
|
||||||
broadcastMessage(new BaseComponent[]{ message }, response);
|
broadcastMessage(new BaseComponent[]{ message }, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,7 +179,7 @@ public interface RemotePlayer {
|
|||||||
* @param message Message to send
|
* @param message Message to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
static void broadcastMessage(BaseComponent[] message, Callback<Integer> response) {
|
static void broadcastMessage(BaseComponent[] message, IntConsumer response) {
|
||||||
broadcastMessage(new BaseComponent[][]{ message }, response);
|
broadcastMessage(new BaseComponent[][]{ message }, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,7 +198,7 @@ public interface RemotePlayer {
|
|||||||
* @param messages Messages to send
|
* @param messages Messages to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
static void broadcastMessage(BaseComponent[][] messages, Callback<Integer> response) {
|
static void broadcastMessage(BaseComponent[][] messages, IntConsumer response) {
|
||||||
sendMessage(null, messages, response);
|
sendMessage(null, messages, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,7 +217,7 @@ public interface RemotePlayer {
|
|||||||
* @param message Message to send
|
* @param message Message to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
default void sendMessage(BaseComponent message, Callback<Integer> response) {
|
default void sendMessage(BaseComponent message, IntConsumer response) {
|
||||||
sendMessage(new BaseComponent[]{ message }, response);
|
sendMessage(new BaseComponent[]{ message }, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -228,7 +227,7 @@ public interface RemotePlayer {
|
|||||||
* @param message Message to send
|
* @param message Message to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
default void sendMessage(BaseComponent[] message, Callback<Integer> response) {
|
default void sendMessage(BaseComponent[] message, IntConsumer response) {
|
||||||
sendMessage(new BaseComponent[][]{ message }, response);
|
sendMessage(new BaseComponent[][]{ message }, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,7 +246,7 @@ public interface RemotePlayer {
|
|||||||
* @param messages Messages to send
|
* @param messages Messages to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
default void sendMessage(BaseComponent[][] messages, Callback<Integer> response) {
|
default void sendMessage(BaseComponent[][] messages, IntConsumer response) {
|
||||||
sendMessage(new UUID[]{ getUniqueId() }, messages, response);
|
sendMessage(new UUID[]{ getUniqueId() }, messages, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -268,7 +267,7 @@ public interface RemotePlayer {
|
|||||||
* @param message Message to send
|
* @param message Message to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
static void sendMessage(UUID[] players, BaseComponent message, Callback<Integer> response) {
|
static void sendMessage(UUID[] players, BaseComponent message, IntConsumer response) {
|
||||||
sendMessage(players, new BaseComponent[]{ message }, response);
|
sendMessage(players, new BaseComponent[]{ message }, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -279,7 +278,7 @@ public interface RemotePlayer {
|
|||||||
* @param message Message to send
|
* @param message Message to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
static void sendMessage(UUID[] players, BaseComponent[] message, Callback<Integer> response) {
|
static void sendMessage(UUID[] players, BaseComponent[] message, IntConsumer response) {
|
||||||
sendMessage(players, new BaseComponent[][]{ message }, response);
|
sendMessage(players, new BaseComponent[][]{ message }, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -300,7 +299,7 @@ public interface RemotePlayer {
|
|||||||
* @param messages Message to send
|
* @param messages Message to send
|
||||||
* @param response Success Status
|
* @param response Success Status
|
||||||
*/
|
*/
|
||||||
static void sendMessage(UUID[] players, BaseComponent[][] messages, Callback<Integer> response) {
|
static void sendMessage(UUID[] players, BaseComponent[][] messages, IntConsumer response) {
|
||||||
instance.sendMessage(players, messages, response);
|
instance.sendMessage(players, messages, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -319,7 +318,7 @@ public interface RemotePlayer {
|
|||||||
* @param server Target server
|
* @param server Target server
|
||||||
* @param response Success status
|
* @param response Success status
|
||||||
*/
|
*/
|
||||||
default void transfer(String server, Callback<Integer> response) {
|
default void transfer(String server, IntConsumer response) {
|
||||||
transfer(new UUID[]{ getUniqueId() }, server, response);
|
transfer(new UUID[]{ getUniqueId() }, server, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -340,7 +339,7 @@ public interface RemotePlayer {
|
|||||||
* @param server Target server
|
* @param server Target server
|
||||||
* @param response Success status
|
* @param response Success status
|
||||||
*/
|
*/
|
||||||
static void transfer(UUID[] players, String server, Callback<Integer> response) {
|
static void transfer(UUID[] players, String server, IntConsumer response) {
|
||||||
instance.transfer(players, server, response);
|
instance.transfer(players, server, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -359,7 +358,7 @@ public interface RemotePlayer {
|
|||||||
* @param server Target server
|
* @param server Target server
|
||||||
* @param response Success status
|
* @param response Success status
|
||||||
*/
|
*/
|
||||||
default void transfer(ServerInfo server, Callback<Integer> response) {
|
default void transfer(ServerInfo server, IntConsumer response) {
|
||||||
transfer(new UUID[]{ getUniqueId() }, server, response);
|
transfer(new UUID[]{ getUniqueId() }, server, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -380,7 +379,7 @@ public interface RemotePlayer {
|
|||||||
* @param server Target server
|
* @param server Target server
|
||||||
* @param response Success status
|
* @param response Success status
|
||||||
*/
|
*/
|
||||||
static void transfer(UUID[] players, ServerInfo server, Callback<Integer> response) {
|
static void transfer(UUID[] players, ServerInfo server, IntConsumer response) {
|
||||||
instance.transfer(players, server.getName(), response);
|
instance.transfer(players, server.getName(), response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -396,7 +395,7 @@ public interface RemotePlayer {
|
|||||||
*
|
*
|
||||||
* @param response Success status
|
* @param response Success status
|
||||||
*/
|
*/
|
||||||
default void disconnect(Callback<Integer> response) {
|
default void disconnect(IntConsumer response) {
|
||||||
disconnect((String) null, response);
|
disconnect((String) null, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -415,7 +414,7 @@ public interface RemotePlayer {
|
|||||||
* @param reason Disconnect Reason
|
* @param reason Disconnect Reason
|
||||||
* @param response Success status
|
* @param response Success status
|
||||||
*/
|
*/
|
||||||
default void disconnect(String reason, Callback<Integer> response) {
|
default void disconnect(String reason, IntConsumer response) {
|
||||||
disconnect(new UUID[]{ getUniqueId() }, reason, response);
|
disconnect(new UUID[]{ getUniqueId() }, reason, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -434,7 +433,7 @@ public interface RemotePlayer {
|
|||||||
* @param players Players to select
|
* @param players Players to select
|
||||||
* @param response Success status
|
* @param response Success status
|
||||||
*/
|
*/
|
||||||
static void disconnect(UUID[] players, Callback<Integer> response) {
|
static void disconnect(UUID[] players, IntConsumer response) {
|
||||||
disconnect(players, null, response);
|
disconnect(players, null, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -455,7 +454,7 @@ public interface RemotePlayer {
|
|||||||
* @param reason Disconnect Reason
|
* @param reason Disconnect Reason
|
||||||
* @param response Success status
|
* @param response Success status
|
||||||
*/
|
*/
|
||||||
static void disconnect(UUID[] players, String reason, Callback<Integer> response) {
|
static void disconnect(UUID[] players, String reason, IntConsumer response) {
|
||||||
instance.disconnect(players, reason, response);
|
instance.disconnect(players, reason, response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Library.Fallback;
|
package net.ME1312.SubServers.Bungee.Library.Fallback;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubServers.Bungee.BungeeCommon;
|
import net.ME1312.SubServers.Bungee.BungeeCommon;
|
||||||
|
|
||||||
@ -28,7 +29,7 @@ public class SmartFallback implements ReconnectHandler {
|
|||||||
public SmartFallback(ObjectMap<String> settings) {
|
public SmartFallback(ObjectMap<String> settings) {
|
||||||
dns_forward = settings.getBoolean("DNS-Forward", false);
|
dns_forward = settings.getBoolean("DNS-Forward", false);
|
||||||
if (reconnect == null && settings.getBoolean("Reconnect", false))
|
if (reconnect == null && settings.getBoolean("Reconnect", false))
|
||||||
reconnect = Util.getDespiteException(() -> Util.reflect(ProxyServer.getInstance().getPluginManager().getPlugin("reconnect_yaml").getClass().getClassLoader().loadClass("net.md_5.bungee.module.reconnect.yaml.YamlReconnectHandler").getConstructor()), null);
|
reconnect = Try.all.get(() -> Util.reflect(ProxyServer.getInstance().getPluginManager().getPlugin("reconnect_yaml").getClass().getClassLoader().loadClass("net.md_5.bungee.module.reconnect.yaml.YamlReconnectHandler").getConstructor()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -177,7 +178,7 @@ public class SmartFallback implements ReconnectHandler {
|
|||||||
* @param inspector Inspector
|
* @param inspector Inspector
|
||||||
*/
|
*/
|
||||||
public static void addInspector(FallbackInspector inspector) {
|
public static void addInspector(FallbackInspector inspector) {
|
||||||
if (Util.isNull(inspector)) throw new NullPointerException();
|
Util.nullpo(inspector);
|
||||||
inspectors.add(inspector);
|
inspectors.add(inspector);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -187,8 +188,8 @@ public class SmartFallback implements ReconnectHandler {
|
|||||||
* @param inspector Inspector
|
* @param inspector Inspector
|
||||||
*/
|
*/
|
||||||
public static void removeInspector(FallbackInspector inspector) {
|
public static void removeInspector(FallbackInspector inspector) {
|
||||||
if (Util.isNull(inspector)) throw new NullPointerException();
|
Util.nullpo(inspector);
|
||||||
Util.isException(() -> inspectors.remove(inspector));
|
Try.all.run(() -> inspectors.remove(inspector));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.ME1312.SubData</groupId>
|
<groupId>net.ME1312.SubData</groupId>
|
||||||
<artifactId>Server</artifactId>
|
<artifactId>Server</artifactId>
|
||||||
<version>21w33a</version>
|
<version>21w43a</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -24,7 +24,7 @@ public class SubAddHostEvent extends Event implements SubEvent, Cancellable {
|
|||||||
* @param host Host Being Added
|
* @param host Host Being Added
|
||||||
*/
|
*/
|
||||||
public SubAddHostEvent(UUID player, Host host) {
|
public SubAddHostEvent(UUID player, Host host) {
|
||||||
if (Util.isNull(host)) throw new NullPointerException();
|
Util.nullpo(host);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.host = host;
|
this.host = host;
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public class SubAddProxyEvent extends Event implements SubEvent {
|
|||||||
* @param proxy Host Being Added
|
* @param proxy Host Being Added
|
||||||
*/
|
*/
|
||||||
public SubAddProxyEvent(Proxy proxy) {
|
public SubAddProxyEvent(Proxy proxy) {
|
||||||
if (Util.isNull(proxy)) throw new NullPointerException();
|
Util.nullpo(proxy);
|
||||||
this.proxy = proxy;
|
this.proxy = proxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ public class SubAddServerEvent extends Event implements SubEvent, Cancellable {
|
|||||||
* @param server Server Starting
|
* @param server Server Starting
|
||||||
*/
|
*/
|
||||||
public SubAddServerEvent(UUID player, Host host, Server server) {
|
public SubAddServerEvent(UUID player, Host host, Server server) {
|
||||||
if (Util.isNull(server)) throw new NullPointerException();
|
Util.nullpo(server);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
|
@ -36,7 +36,7 @@ public class SubCreateEvent extends Event implements SubEvent, Cancellable {
|
|||||||
* @param port Server Port Number
|
* @param port Server Port Number
|
||||||
*/
|
*/
|
||||||
public SubCreateEvent(UUID player, Host host, String name, SubCreator.ServerTemplate template, Version version, int port) {
|
public SubCreateEvent(UUID player, Host host, String name, SubCreator.ServerTemplate template, Version version, int port) {
|
||||||
if (Util.isNull(host, name, template, port)) throw new NullPointerException();
|
Util.nullpo(host, name, template, port);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
@ -54,7 +54,7 @@ public class SubCreateEvent extends Event implements SubEvent, Cancellable {
|
|||||||
* @param version Server Version
|
* @param version Server Version
|
||||||
*/
|
*/
|
||||||
public SubCreateEvent(UUID player, SubServer server, SubCreator.ServerTemplate template, Version version) {
|
public SubCreateEvent(UUID player, SubServer server, SubCreator.ServerTemplate template, Version version) {
|
||||||
if (Util.isNull(server)) throw new NullPointerException();
|
Util.nullpo(server);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.update = server;
|
this.update = server;
|
||||||
this.name = server.getName();
|
this.name = server.getName();
|
||||||
|
@ -39,7 +39,7 @@ public class SubCreatedEvent extends Event implements SubEvent {
|
|||||||
* @param success Success Status
|
* @param success Success Status
|
||||||
*/
|
*/
|
||||||
public SubCreatedEvent(UUID player, Host host, String name, SubCreator.ServerTemplate template, Version version, int port, SubServer server, boolean update, boolean success) {
|
public SubCreatedEvent(UUID player, Host host, String name, SubCreator.ServerTemplate template, Version version, int port, SubServer server, boolean update, boolean success) {
|
||||||
if (Util.isNull(host, name, template, port)) throw new NullPointerException();
|
Util.nullpo(host, name, template, port);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
@ -30,7 +30,7 @@ public class SubEditServerEvent extends Event implements SubEvent, Cancellable {
|
|||||||
* @param edit Edit to make
|
* @param edit Edit to make
|
||||||
*/
|
*/
|
||||||
public SubEditServerEvent(UUID player, Server server, Pair<String, ?> edit) {
|
public SubEditServerEvent(UUID player, Server server, Pair<String, ?> edit) {
|
||||||
if (Util.isNull(server, edit)) throw new NullPointerException();
|
Util.nullpo(server, edit);
|
||||||
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;
|
||||||
|
@ -20,7 +20,7 @@ public class SubNetworkConnectEvent extends Event implements SubEvent, Cancellab
|
|||||||
* SubData Network Connect Event
|
* SubData Network Connect Event
|
||||||
*/
|
*/
|
||||||
public SubNetworkConnectEvent(DataServer network, DataClient client) {
|
public SubNetworkConnectEvent(DataServer network, DataClient client) {
|
||||||
if (Util.isNull(network, client)) throw new NullPointerException();
|
Util.nullpo(network, client);
|
||||||
this.network = network;
|
this.network = network;
|
||||||
this.client = client;
|
this.client = client;
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ public class SubNetworkDisconnectEvent extends Event implements SubEvent {
|
|||||||
* SubData Network Disconnect Event
|
* SubData Network Disconnect Event
|
||||||
*/
|
*/
|
||||||
public SubNetworkDisconnectEvent(DataServer network, DataClient client, DisconnectReason reason) {
|
public SubNetworkDisconnectEvent(DataServer network, DataClient client, DisconnectReason reason) {
|
||||||
if (Util.isNull(network, client, reason)) throw new NullPointerException();
|
Util.nullpo(network, client, reason);
|
||||||
this.network = network;
|
this.network = network;
|
||||||
this.client = client;
|
this.client = client;
|
||||||
this.reason = reason;
|
this.reason = reason;
|
||||||
|
@ -18,7 +18,7 @@ public class SubNetworkLoginEvent extends Event implements SubEvent {
|
|||||||
* SubData Network Login Event
|
* SubData Network Login Event
|
||||||
*/
|
*/
|
||||||
public SubNetworkLoginEvent(DataServer network, DataClient client) {
|
public SubNetworkLoginEvent(DataServer network, DataClient client) {
|
||||||
if (Util.isNull(network, client)) throw new NullPointerException();
|
Util.nullpo(network, client);
|
||||||
this.network = network;
|
this.network = network;
|
||||||
this.client = client;
|
this.client = client;
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ public class SubRemoveHostEvent extends Event implements SubEvent, Cancellable {
|
|||||||
* @param host Host to be added
|
* @param host Host to be added
|
||||||
*/
|
*/
|
||||||
public SubRemoveHostEvent(UUID player, Host host) {
|
public SubRemoveHostEvent(UUID player, Host host) {
|
||||||
if (Util.isNull(host)) throw new NullPointerException();
|
Util.nullpo(host);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.host = host;
|
this.host = host;
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public class SubRemoveProxyEvent extends Event implements SubEvent {
|
|||||||
* @param proxy Host Being Added
|
* @param proxy Host Being Added
|
||||||
*/
|
*/
|
||||||
public SubRemoveProxyEvent(Proxy proxy) {
|
public SubRemoveProxyEvent(Proxy proxy) {
|
||||||
if (Util.isNull(proxy)) throw new NullPointerException();
|
Util.nullpo(proxy);
|
||||||
this.proxy = proxy;
|
this.proxy = proxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ public class SubRemoveServerEvent extends Event implements SubEvent, Cancellable
|
|||||||
* @param server Server Starting
|
* @param server Server Starting
|
||||||
*/
|
*/
|
||||||
public SubRemoveServerEvent(UUID player, Host host, Server server) {
|
public SubRemoveServerEvent(UUID player, Host host, Server server) {
|
||||||
if (Util.isNull(server)) throw new NullPointerException();
|
Util.nullpo(server);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
|
@ -25,7 +25,7 @@ public class SubSendCommandEvent extends Event implements SubEvent, Cancellable
|
|||||||
* @param server Server being Commanded
|
* @param server Server being Commanded
|
||||||
*/
|
*/
|
||||||
public SubSendCommandEvent(UUID player, SubServer server, String command) {
|
public SubSendCommandEvent(UUID player, SubServer server, String command) {
|
||||||
if (Util.isNull(server, command)) throw new NullPointerException();
|
Util.nullpo(server, command);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.command = command;
|
this.command = command;
|
||||||
|
@ -24,7 +24,7 @@ public class SubStartEvent extends Event implements SubEvent, Cancellable {
|
|||||||
* @param server Server Starting
|
* @param server Server Starting
|
||||||
*/
|
*/
|
||||||
public SubStartEvent(UUID player, SubServer server) {
|
public SubStartEvent(UUID player, SubServer server) {
|
||||||
if (Util.isNull(server)) throw new NullPointerException();
|
Util.nullpo(server);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ public class SubStartedEvent extends Event implements SubEvent {
|
|||||||
* @param server Server Starting
|
* @param server Server Starting
|
||||||
*/
|
*/
|
||||||
public SubStartedEvent(SubServer server) {
|
public SubStartedEvent(SubServer server) {
|
||||||
if (Util.isNull(server)) throw new NullPointerException();
|
Util.nullpo(server);
|
||||||
this.server = server;
|
this.server = server;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public class SubStopEvent extends Event implements SubEvent, Cancellable {
|
|||||||
* @param force If it was a Forced Shutdown
|
* @param force If it was a Forced Shutdown
|
||||||
*/
|
*/
|
||||||
public SubStopEvent(UUID player, SubServer server, boolean force) {
|
public SubStopEvent(UUID player, SubServer server, boolean force) {
|
||||||
if (Util.isNull(server, force)) throw new NullPointerException();
|
Util.nullpo(server, force);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.force = force;
|
this.force = force;
|
||||||
|
@ -18,7 +18,7 @@ public class SubStoppedEvent extends Event implements SubEvent {
|
|||||||
* @param server Server that Stopped
|
* @param server Server that Stopped
|
||||||
*/
|
*/
|
||||||
public SubStoppedEvent(SubServer server) {
|
public SubStoppedEvent(SubServer server) {
|
||||||
if (Util.isNull(server)) throw new NullPointerException();
|
Util.nullpo(server);
|
||||||
this.server = server;
|
this.server = server;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Host;
|
package net.ME1312.SubServers.Bungee.Host;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Platform;
|
import net.ME1312.Galaxi.Library.Platform;
|
||||||
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubServers.Bungee.Library.Compatibility.JNA;
|
import net.ME1312.SubServers.Bungee.Library.Compatibility.JNA;
|
||||||
|
|
||||||
@ -40,7 +41,7 @@ public class Executable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
USE_SESSION_TRACKING = Platform.getSystem() != Platform.WINDOWS && Util.getDespiteException(() -> {
|
USE_SESSION_TRACKING = Platform.getSystem() != Platform.WINDOWS && Try.all.get(() -> {
|
||||||
Process test = Runtime.getRuntime().exec(new String[]{"setsid", "bash", "-c", "exit 0"});
|
Process test = Runtime.getRuntime().exec(new String[]{"setsid", "bash", "-c", "exit 0"});
|
||||||
test.waitFor(); // The purpose of this block is to test for the 'setsid' command
|
test.waitFor(); // The purpose of this block is to test for the 'setsid' command
|
||||||
return test.exitValue() == 0;
|
return test.exitValue() == 0;
|
||||||
@ -95,9 +96,9 @@ public class Executable {
|
|||||||
if (process.isAlive()) {
|
if (process.isAlive()) {
|
||||||
Long pid;
|
Long pid;
|
||||||
if (Platform.getSystem() == Platform.WINDOWS) {
|
if (Platform.getSystem() == Platform.WINDOWS) {
|
||||||
if ((pid = pid(process)) != null) Util.isException(() -> Runtime.getRuntime().exec(new String[]{"taskkill.exe", "/T", "/F", "/PID", pid.toString()}).waitFor());
|
if ((pid = pid(process)) != null) Try.all.run(() -> Runtime.getRuntime().exec(new String[]{"taskkill.exe", "/T", "/F", "/PID", pid.toString()}).waitFor());
|
||||||
} else if (USE_SESSION_TRACKING) {
|
} else if (USE_SESSION_TRACKING) {
|
||||||
if ((pid = pid(process)) != null) Util.isException(() -> Runtime.getRuntime().exec(new String[]{"bash", "-c", "kill -9 $(ps -s " + pid + " -o pid=)"}).waitFor());
|
if ((pid = pid(process)) != null) Try.all.run(() -> Runtime.getRuntime().exec(new String[]{"bash", "-c", "kill -9 $(ps -s " + pid + " -o pid=)"}).waitFor());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (process.isAlive() && terminate9(process)) {
|
if (process.isAlive() && terminate9(process)) {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Host.External;
|
package net.ME1312.SubServers.Bungee.Host.External;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.ClientHandler;
|
import net.ME1312.SubData.Server.ClientHandler;
|
||||||
import net.ME1312.SubData.Server.DataClient;
|
import net.ME1312.SubData.Server.DataClient;
|
||||||
@ -189,7 +190,7 @@ public class ExternalHost extends Host implements ClientHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean removeSubServer(UUID player, String name, boolean forced) throws InterruptedException {
|
protected boolean removeSubServer(UUID player, String name, boolean forced) throws InterruptedException {
|
||||||
if (Util.isNull(name)) throw new NullPointerException();
|
Util.nullpo(name);
|
||||||
ExternalSubServer server = (ExternalSubServer) servers.get(name.toLowerCase());
|
ExternalSubServer server = (ExternalSubServer) servers.get(name.toLowerCase());
|
||||||
|
|
||||||
SubRemoveServerEvent event = new SubRemoveServerEvent(player, this, server);
|
SubRemoveServerEvent event = new SubRemoveServerEvent(player, this, server);
|
||||||
@ -214,7 +215,7 @@ public class ExternalHost extends Host implements ClientHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean recycleSubServer(UUID player, String name, boolean forced) throws InterruptedException {
|
protected boolean recycleSubServer(UUID player, String name, boolean forced) throws InterruptedException {
|
||||||
if (Util.isNull(name)) throw new NullPointerException();
|
Util.nullpo(name);
|
||||||
ExternalSubServer s = (ExternalSubServer) servers.get(name.toLowerCase());
|
ExternalSubServer s = (ExternalSubServer) servers.get(name.toLowerCase());
|
||||||
String server = s.getName();
|
String server = s.getName();
|
||||||
|
|
||||||
@ -256,7 +257,7 @@ public class ExternalHost extends Host implements ClientHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean deleteSubServer(UUID player, String name, boolean forced) throws InterruptedException {
|
protected boolean deleteSubServer(UUID player, String name, boolean forced) throws InterruptedException {
|
||||||
if (Util.isNull(name)) throw new NullPointerException();
|
Util.nullpo(name);
|
||||||
ExternalSubServer s = (ExternalSubServer) servers.get(name.toLowerCase());
|
ExternalSubServer s = (ExternalSubServer) servers.get(name.toLowerCase());
|
||||||
String server = s.getName();
|
String server = s.getName();
|
||||||
|
|
||||||
@ -298,7 +299,7 @@ public class ExternalHost extends Host implements ClientHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean destroy() {
|
public boolean destroy() {
|
||||||
if (Util.getDespiteException(() -> Util.reflect(SubProxy.class.getDeclaredField("running"), plugin), true)) {
|
if (Try.all.get(() -> Util.reflect(SubProxy.class.getDeclaredField("running"), plugin), true)) {
|
||||||
return super.destroy();
|
return super.destroy();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,19 +1,21 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Host.External;
|
package net.ME1312.SubServers.Bungee.Host.External;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Config.YAMLConfig;
|
import net.ME1312.Galaxi.Library.Config.YAMLConfig;
|
||||||
import net.ME1312.Galaxi.Library.Container.ContainedPair;
|
import net.ME1312.Galaxi.Library.Container.ContainedPair;
|
||||||
import net.ME1312.Galaxi.Library.Container.Container;
|
import net.ME1312.Galaxi.Library.Container.Container;
|
||||||
import net.ME1312.Galaxi.Library.Container.Pair;
|
import net.ME1312.Galaxi.Library.Container.Pair;
|
||||||
import net.ME1312.Galaxi.Library.Container.Value;
|
import net.ME1312.Galaxi.Library.Container.Value;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.UniversalFile;
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
import net.ME1312.SubData.Server.SubDataClient;
|
import net.ME1312.SubData.Server.SubDataClient;
|
||||||
import net.ME1312.SubServers.Bungee.Event.SubCreateEvent;
|
import net.ME1312.SubServers.Bungee.Event.SubCreateEvent;
|
||||||
import net.ME1312.SubServers.Bungee.Event.SubCreatedEvent;
|
import net.ME1312.SubServers.Bungee.Event.SubCreatedEvent;
|
||||||
import net.ME1312.SubServers.Bungee.Host.*;
|
import net.ME1312.SubServers.Bungee.Host.Host;
|
||||||
|
import net.ME1312.SubServers.Bungee.Host.SubCreator;
|
||||||
|
import net.ME1312.SubServers.Bungee.Host.SubLogger;
|
||||||
|
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||||
import net.ME1312.SubServers.Bungee.Host.SubServer.StopAction;
|
import net.ME1312.SubServers.Bungee.Host.SubServer.StopAction;
|
||||||
import net.ME1312.SubServers.Bungee.Library.Compatibility.Logger;
|
import net.ME1312.SubServers.Bungee.Library.Compatibility.Logger;
|
||||||
import net.ME1312.SubServers.Bungee.Network.Packet.PacketExConfigureHost;
|
import net.ME1312.SubServers.Bungee.Network.Packet.PacketExConfigureHost;
|
||||||
@ -30,6 +32,7 @@ import java.io.File;
|
|||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* External SubCreator Class
|
* External SubCreator Class
|
||||||
@ -55,7 +58,7 @@ public class ExternalSubCreator extends SubCreator {
|
|||||||
*/
|
*/
|
||||||
public ExternalSubCreator(ExternalHost host, Range<Integer> ports, boolean log, String gitBash) {
|
public ExternalSubCreator(ExternalHost host, Range<Integer> ports, boolean log, String gitBash) {
|
||||||
if (!ports.hasLowerBound() || !ports.hasUpperBound()) throw new IllegalArgumentException("Port range is not bound");
|
if (!ports.hasLowerBound() || !ports.hasUpperBound()) throw new IllegalArgumentException("Port range is not bound");
|
||||||
if (Util.isNull(host, ports, log, gitBash)) throw new NullPointerException();
|
Util.nullpo(host, ports, log, gitBash);
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.ports = ports;
|
this.ports = ports;
|
||||||
this.log = new Container<Boolean>(log);
|
this.log = new Container<Boolean>(log);
|
||||||
@ -67,10 +70,10 @@ public class ExternalSubCreator extends SubCreator {
|
|||||||
@Override
|
@Override
|
||||||
public void reload() {
|
public void reload() {
|
||||||
templatesR.clear();
|
templatesR.clear();
|
||||||
if (new UniversalFile(host.plugin.dir, "SubServers:Templates").exists()) for (File file : new UniversalFile(host.plugin.dir, "SubServers:Templates").listFiles()) {
|
if (new File(host.plugin.dir, "SubServers/Templates").exists()) for (File file : new File(host.plugin.dir, "SubServers/Templates").listFiles()) {
|
||||||
try {
|
try {
|
||||||
if (file.isDirectory() && !file.getName().endsWith(".x")) {
|
if (file.isDirectory() && !file.getName().endsWith(".x")) {
|
||||||
ObjectMap<String> config = (new UniversalFile(file, "template.yml").exists())?new YAMLConfig(new UniversalFile(file, "template.yml")).get().getMap("Template", new ObjectMap<String>()):new ObjectMap<String>();
|
ObjectMap<String> config = (new File(file, "template.yml").exists())? new YAMLConfig(new File(file, "template.yml")).get().getMap("Template", new ObjectMap<String>()) : new ObjectMap<String>();
|
||||||
ServerTemplate template = loadTemplate(file.getName(), config.getBoolean("Enabled", true), config.getBoolean("Internal", false), config.getRawString("Icon", "::NULL::"), file, config.getMap("Build", new ObjectMap<String>()), config.getMap("Settings", new ObjectMap<String>()));
|
ServerTemplate template = loadTemplate(file.getName(), config.getBoolean("Enabled", true), config.getBoolean("Internal", false), config.getRawString("Icon", "::NULL::"), file, config.getMap("Build", new ObjectMap<String>()), config.getMap("Settings", new ObjectMap<String>()));
|
||||||
templatesR.put(file.getName().toLowerCase(), template);
|
templatesR.put(file.getName().toLowerCase(), template);
|
||||||
if (config.getKeys().contains("Display")) template.setDisplayName(config.getString("Display"));
|
if (config.getKeys().contains("Display")) template.setDisplayName(config.getString("Display"));
|
||||||
@ -81,7 +84,7 @@ public class ExternalSubCreator extends SubCreator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (host.available && !Util.getDespiteException(() -> Util.reflect(SubProxy.class.getDeclaredField("reloading"), host.plugin), false)) {
|
if (host.available && !Try.all.get(() -> Util.reflect(SubProxy.class.getDeclaredField("reloading"), host.plugin), false)) {
|
||||||
host.queue(new PacketExConfigureHost(host.plugin, host), new PacketExUploadTemplates(host.plugin, () -> {
|
host.queue(new PacketExConfigureHost(host.plugin, host), new PacketExUploadTemplates(host.plugin, () -> {
|
||||||
if (enableRT == null || enableRT) host.queue(new PacketExDownloadTemplates(host.plugin, host));
|
if (enableRT == null || enableRT) host.queue(new PacketExDownloadTemplates(host.plugin, host));
|
||||||
}));
|
}));
|
||||||
@ -89,8 +92,8 @@ public class ExternalSubCreator extends SubCreator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean create(UUID player, String name, ServerTemplate template, Version version, Integer port, Callback<SubServer> callback) {
|
public boolean create(UUID player, String name, ServerTemplate template, Version version, Integer port, Consumer<SubServer> callback) {
|
||||||
if (Util.isNull(name, template)) throw new NullPointerException();
|
Util.nullpo(name, template);
|
||||||
if (host.isAvailable() && host.isEnabled() && template.isEnabled() && !SubAPI.getInstance().getSubServers().keySet().contains(name.toLowerCase()) && !SubCreator.isReserved(name) && (version != null || !template.requiresVersion())) {
|
if (host.isAvailable() && host.isEnabled() && template.isEnabled() && !SubAPI.getInstance().getSubServers().keySet().contains(name.toLowerCase()) && !SubCreator.isReserved(name) && (version != null || !template.requiresVersion())) {
|
||||||
StackTraceElement[] origin = new Exception().getStackTrace();
|
StackTraceElement[] origin = new Exception().getStackTrace();
|
||||||
|
|
||||||
@ -123,9 +126,9 @@ public class ExternalSubCreator extends SubCreator {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else return false;
|
} else return false;
|
||||||
} private <T> void callback(StackTraceElement[] origin, Callback<T> callback, T value) {
|
} private <T> void callback(StackTraceElement[] origin, Consumer<T> callback, T value) {
|
||||||
if (callback != null) try {
|
if (callback != null) try {
|
||||||
callback.run(value);
|
callback.accept(value);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Throwable ew = new InvocationTargetException(e);
|
Throwable ew = new InvocationTargetException(e);
|
||||||
ew.setStackTrace(origin);
|
ew.setStackTrace(origin);
|
||||||
@ -134,8 +137,8 @@ public class ExternalSubCreator extends SubCreator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean update(UUID player, SubServer server, ServerTemplate template, Version version, Callback<Boolean> callback) {
|
public boolean update(UUID player, SubServer server, ServerTemplate template, Version version, Consumer<Boolean> callback) {
|
||||||
if (Util.isNull(server)) throw new NullPointerException();
|
Util.nullpo(server);
|
||||||
final ServerTemplate ft = (template == null)?server.getTemplate():template;
|
final ServerTemplate ft = (template == null)?server.getTemplate():template;
|
||||||
if (host.isAvailable() && host.isEnabled() && host == server.getHost() && server.isAvailable() && !server.isRunning() && ft != null && ft.isEnabled() && ft.canUpdate() && (version != null || !ft.requiresVersion())) {
|
if (host.isAvailable() && host.isEnabled() && host == server.getHost() && server.isAvailable() && !server.isRunning() && ft != null && ft.isEnabled() && ft.canUpdate() && (version != null || !ft.requiresVersion())) {
|
||||||
StackTraceElement[] origin = new Exception().getStackTrace();
|
StackTraceElement[] origin = new Exception().getStackTrace();
|
||||||
@ -153,7 +156,7 @@ public class ExternalSubCreator extends SubCreator {
|
|||||||
host.queue(new PacketExCreateServer(player, server, ft, version, logger.getExternalAddress(), data -> {
|
host.queue(new PacketExCreateServer(player, server, ft, version, logger.getExternalAddress(), data -> {
|
||||||
finish(player, server, server.getName(), ft, version, server.getAddress().getPort(), prefix, origin, data, s -> {
|
finish(player, server, server.getName(), ft, version, server.getAddress().getPort(), prefix, origin, data, s -> {
|
||||||
((ExternalSubServer) server).updating(false);
|
((ExternalSubServer) server).updating(false);
|
||||||
if (callback != null) callback.run(s != null);
|
if (callback != null) callback.accept(s != null);
|
||||||
});
|
});
|
||||||
this.thread.remove(name.toLowerCase());
|
this.thread.remove(name.toLowerCase());
|
||||||
}));
|
}));
|
||||||
@ -165,7 +168,7 @@ public class ExternalSubCreator extends SubCreator {
|
|||||||
} else return false;
|
} else return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void finish(UUID player, SubServer update, String name, ServerTemplate template, Version version, int port, String prefix, StackTraceElement[] origin, ObjectMap<Integer> data, Callback<SubServer> callback) {
|
private void finish(UUID player, SubServer update, String name, ServerTemplate template, Version version, int port, String prefix, StackTraceElement[] origin, ObjectMap<Integer> data, Consumer<SubServer> callback) {
|
||||||
try {
|
try {
|
||||||
if (data.getInt(0x0001) == 0) {
|
if (data.getInt(0x0001) == 0) {
|
||||||
Logger.get(prefix).info("Saving...");
|
Logger.get(prefix).info("Saving...");
|
||||||
@ -201,14 +204,14 @@ public class ExternalSubCreator extends SubCreator {
|
|||||||
}
|
}
|
||||||
server.setAll(config);
|
server.setAll(config);
|
||||||
|
|
||||||
if (update != null) Util.isException(() -> update.getHost().forceRemoveSubServer(name));
|
if (update != null) Try.all.run(() -> update.getHost().forceRemoveSubServer(name));
|
||||||
subserver = host.constructSubServer(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"));
|
||||||
subserver.setTemplate(server.getRawString("Template"));
|
subserver.setTemplate(server.getRawString("Template"));
|
||||||
for (String group : server.getStringList("Group")) subserver.addGroup(group);
|
for (String group : server.getStringList("Group")) subserver.addGroup(group);
|
||||||
SubServer.StopAction action = Util.getDespiteException(() -> SubServer.StopAction.valueOf(server.getRawString("Stop-Action").toUpperCase().replace('-', '_').replace(' ', '_')), null);
|
SubServer.StopAction action = Try.all.get(() -> SubServer.StopAction.valueOf(server.getRawString("Stop-Action").toUpperCase().replace('-', '_').replace(' ', '_')));
|
||||||
if (action != null) subserver.setStopAction(action);
|
if (action != null) subserver.setStopAction(action);
|
||||||
if (server.contains("Extra")) for (String extra : server.getMap("Extra").getKeys())
|
if (server.contains("Extra")) for (String extra : server.getMap("Extra").getKeys())
|
||||||
subserver.addExtra(extra, server.getMap("Extra").getObject(extra));
|
subserver.addExtra(extra, server.getMap("Extra").getObject(extra));
|
||||||
@ -320,7 +323,7 @@ public class ExternalSubCreator extends SubCreator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLogging(boolean value) {
|
public void setLogging(boolean value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
Util.nullpo(value);
|
||||||
log.value(value);
|
log.value(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -350,7 +353,7 @@ public class ExternalSubCreator extends SubCreator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ServerTemplate getTemplate(String name) {
|
public ServerTemplate getTemplate(String name) {
|
||||||
if (Util.isNull(name)) throw new NullPointerException();
|
Util.nullpo(name);
|
||||||
name = name.toLowerCase();
|
name = name.toLowerCase();
|
||||||
|
|
||||||
ServerTemplate template = templates.getOrDefault(name, null);
|
ServerTemplate template = templates.getOrDefault(name, null);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Host.External;
|
package net.ME1312.SubServers.Bungee.Host.External;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Container.Value;
|
import net.ME1312.Galaxi.Library.Container.Value;
|
||||||
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubServers.Bungee.Host.SubLogFilter;
|
import net.ME1312.SubServers.Bungee.Host.SubLogFilter;
|
||||||
import net.ME1312.SubServers.Bungee.Host.SubLogger;
|
import net.ME1312.SubServers.Bungee.Host.SubLogger;
|
||||||
@ -20,8 +21,6 @@ import java.util.List;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* External Process Logger Class
|
* External Process Logger Class
|
||||||
@ -127,14 +126,14 @@ public class ExternalSubLogger extends SubLogger {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerFilter(SubLogFilter filter) {
|
public void registerFilter(SubLogFilter filter) {
|
||||||
if (Util.isNull(filter)) throw new NullPointerException();
|
Util.nullpo(filter);
|
||||||
filters.add(filter);
|
filters.add(filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void unregisterFilter(SubLogFilter filter) {
|
public void unregisterFilter(SubLogFilter filter) {
|
||||||
if (Util.isNull(filter)) throw new NullPointerException();
|
Util.nullpo(filter);
|
||||||
Util.isException(() -> filters.remove(filter));
|
Try.all.run(() -> filters.remove(filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Host.External;
|
package net.ME1312.SubServers.Bungee.Host.External;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.ReturnRunnable;
|
|
||||||
import net.ME1312.Galaxi.Library.Container.ContainedPair;
|
import net.ME1312.Galaxi.Library.Container.ContainedPair;
|
||||||
import net.ME1312.Galaxi.Library.Container.Container;
|
import net.ME1312.Galaxi.Library.Container.Container;
|
||||||
import net.ME1312.Galaxi.Library.Container.Value;
|
import net.ME1312.Galaxi.Library.Container.Value;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMapValue;
|
import net.ME1312.Galaxi.Library.Map.ObjectMapValue;
|
||||||
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.SubDataClient;
|
import net.ME1312.SubData.Server.SubDataClient;
|
||||||
import net.ME1312.SubServers.Bungee.Event.*;
|
import net.ME1312.SubServers.Bungee.Event.*;
|
||||||
@ -21,8 +21,11 @@ import net.ME1312.SubServers.Bungee.SubAPI;
|
|||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.reflect.Field;
|
import java.util.ArrayList;
|
||||||
import java.util.*;
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* External SubServer Class
|
* External SubServer Class
|
||||||
@ -83,7 +86,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void init(ExternalHost host, String name, boolean enabled, int port, String motd, boolean log, String directory, String executable, String stopcmd, boolean hidden, boolean restricted) throws InvalidServerException {
|
private void init(ExternalHost host, String name, boolean enabled, int port, String motd, boolean log, String directory, String executable, String stopcmd, boolean hidden, boolean restricted) throws InvalidServerException {
|
||||||
if (Util.isNull(host, name, enabled, port, motd, log, stopcmd, hidden, restricted)) throw new NullPointerException();
|
Util.nullpo(host, name, enabled, port, motd, log, stopcmd, hidden, restricted);
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.enabled = enabled;
|
this.enabled = enabled;
|
||||||
this.log = new Container<Boolean>(log);
|
this.log = new Container<Boolean>(log);
|
||||||
@ -209,7 +212,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean command(UUID player, String command) {
|
public boolean command(UUID player, String command) {
|
||||||
if (Util.isNull(command)) throw new NullPointerException();
|
Util.nullpo(command);
|
||||||
if (running) {
|
if (running) {
|
||||||
SubSendCommandEvent event = new SubSendCommandEvent(player, this, command);
|
SubSendCommandEvent event = new SubSendCommandEvent(player, this, command);
|
||||||
host.plugin.getPluginManager().callEvent(event);
|
host.plugin.getPluginManager().callEvent(event);
|
||||||
@ -393,7 +396,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
case "stop-cmd":
|
case "stop-cmd":
|
||||||
case "stop-command":
|
case "stop-command":
|
||||||
if (value.isString()) {
|
if (value.isString()) {
|
||||||
if (!stopcmd.equals(value)) host.queue(new PacketExControlServer(this, Action.SET_STOP_COMMAND, value.asRawString()));
|
if (!stopcmd.equals(value.asRawString())) host.queue(new PacketExControlServer(this, Action.SET_STOP_COMMAND, value.asRawString()));
|
||||||
stopcmd = value.asRawString();
|
stopcmd = 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("Stop-Command", getStopCommand());
|
this.host.plugin.servers.get().getMap("Servers").getMap(getName()).set("Stop-Command", getStopCommand());
|
||||||
@ -404,7 +407,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
break;
|
break;
|
||||||
case "stop-action":
|
case "stop-action":
|
||||||
if (value.isString()) {
|
if (value.isString()) {
|
||||||
StopAction action = Util.getDespiteException(() -> StopAction.valueOf(value.asRawString().toUpperCase().replace('-', '_').replace(' ', '_')), null);
|
StopAction action = Try.all.get(() -> StopAction.valueOf(value.asRawString().toUpperCase().replace('-', '_').replace(' ', '_')));
|
||||||
if (action != null) {
|
if (action != null) {
|
||||||
stopaction = action;
|
stopaction = action;
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
@ -497,8 +500,8 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
if (!isRunning() && forward == null && state) start(player);
|
if (!isRunning() && forward == null && state) start(player);
|
||||||
return c;
|
return c;
|
||||||
} else return -1;
|
} else return -1;
|
||||||
} private <V> void waitFor(ReturnRunnable<V> method, V value) throws InterruptedException {
|
} private <V> void waitFor(Supplier<V> method, V value) throws InterruptedException {
|
||||||
while (method.run() != value) {
|
while (method.get() != value) {
|
||||||
Thread.sleep(250);
|
Thread.sleep(250);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -533,7 +536,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setEnabled(boolean value) {
|
public void setEnabled(boolean value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
Util.nullpo(value);
|
||||||
if (enabled != value) host.queue(new PacketExControlServer(this, Action.SET_ENABLED, (Boolean) value));
|
if (enabled != value) host.queue(new PacketExControlServer(this, Action.SET_ENABLED, (Boolean) value));
|
||||||
enabled = value;
|
enabled = value;
|
||||||
}
|
}
|
||||||
@ -545,7 +548,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLogging(boolean value) {
|
public void setLogging(boolean value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
Util.nullpo(value);
|
||||||
if (log.value() != value) host.queue(new PacketExControlServer(this, Action.SET_LOGGING, (Boolean) value));
|
if (log.value() != value) host.queue(new PacketExControlServer(this, Action.SET_LOGGING, (Boolean) value));
|
||||||
log.value(value);
|
log.value(value);
|
||||||
}
|
}
|
||||||
@ -577,7 +580,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setStopCommand(String value) {
|
public void setStopCommand(String value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
Util.nullpo(value);
|
||||||
if (!stopcmd.equals(value)) host.queue(new PacketExControlServer(this, Action.SET_STOP_COMMAND, value));
|
if (!stopcmd.equals(value)) host.queue(new PacketExControlServer(this, Action.SET_STOP_COMMAND, value));
|
||||||
stopcmd = value;
|
stopcmd = value;
|
||||||
}
|
}
|
||||||
@ -589,7 +592,7 @@ public class ExternalSubServer extends SubServerImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setStopAction(StopAction action) {
|
public void setStopAction(StopAction action) {
|
||||||
if (Util.isNull(action)) throw new NullPointerException();
|
Util.nullpo(action);
|
||||||
stopaction = action;
|
stopaction = action;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,13 +14,16 @@ import com.google.common.collect.Range;
|
|||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
|
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.util.*;
|
import java.util.Collection;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Host Layout Class
|
* Host Layout Class
|
||||||
*/
|
*/
|
||||||
public abstract class Host implements ExtraDataHandler {
|
public abstract class Host implements ExtraDataHandler<String> {
|
||||||
private ObjectMap<String> extra = new ObjectMap<String>();
|
private final ObjectMap<String> extra = new ObjectMap<String>();
|
||||||
private final String signature;
|
private final String signature;
|
||||||
private String nick = null;
|
private String nick = null;
|
||||||
|
|
||||||
@ -40,7 +43,7 @@ public abstract class Host implements ExtraDataHandler {
|
|||||||
public Host(SubProxy plugin, String name, boolean enabled, Range<Integer> ports, boolean log, InetAddress address, String directory, String gitBash) {
|
public Host(SubProxy plugin, String name, boolean enabled, Range<Integer> ports, boolean log, InetAddress address, String directory, String gitBash) {
|
||||||
if (name.contains(" ")) throw new InvalidHostException("Host names cannot have spaces: " + name);
|
if (name.contains(" ")) throw new InvalidHostException("Host names cannot have spaces: " + name);
|
||||||
if (!ports.hasLowerBound() || !ports.hasUpperBound()) throw new InvalidHostException("Port range is not bound");
|
if (!ports.hasLowerBound() || !ports.hasUpperBound()) throw new InvalidHostException("Port range is not bound");
|
||||||
if (Util.isNull(plugin, name, enabled, ports, log, address, directory, gitBash)) throw new NullPointerException();
|
Util.nullpo(plugin, name, enabled, ports, log, address, directory, gitBash);
|
||||||
signature = plugin.api.signAnonymousObject();
|
signature = plugin.api.signAnonymousObject();
|
||||||
SubAPI.getInstance().getInternals().subprotocol.whitelist(address.getHostAddress());
|
SubAPI.getInstance().getInternals().subprotocol.whitelist(address.getHostAddress());
|
||||||
}
|
}
|
||||||
@ -533,19 +536,19 @@ public abstract class Host implements ExtraDataHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addExtra(String handle, Object value) {
|
public void addExtra(String handle, Object value) {
|
||||||
if (Util.isNull(handle, value)) throw new NullPointerException();
|
Util.nullpo(handle, value);
|
||||||
extra.set(handle, value);
|
extra.set(handle, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasExtra(String handle) {
|
public boolean hasExtra(String handle) {
|
||||||
if (Util.isNull(handle)) throw new NullPointerException();
|
Util.nullpo(handle);
|
||||||
return extra.getKeys().contains(handle);
|
return extra.getKeys().contains(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ObjectMapValue getExtra(String handle) {
|
public ObjectMapValue getExtra(String handle) {
|
||||||
if (Util.isNull(handle)) throw new NullPointerException();
|
Util.nullpo(handle);
|
||||||
return extra.get(handle);
|
return extra.get(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -556,7 +559,7 @@ public abstract class Host implements ExtraDataHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeExtra(String handle) {
|
public void removeExtra(String handle) {
|
||||||
if (Util.isNull(handle)) throw new NullPointerException();
|
Util.nullpo(handle);
|
||||||
extra.remove(handle);
|
extra.remove(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Host.Internal;
|
package net.ME1312.SubServers.Bungee.Host.Internal;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Config.YAMLSection;
|
import net.ME1312.Galaxi.Library.Config.YAMLSection;
|
||||||
|
import net.ME1312.Galaxi.Library.Directories;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.UniversalFile;
|
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubServers.Bungee.Event.SubAddServerEvent;
|
import net.ME1312.SubServers.Bungee.Event.SubAddServerEvent;
|
||||||
import net.ME1312.SubServers.Bungee.Event.SubRemoveServerEvent;
|
import net.ME1312.SubServers.Bungee.Event.SubRemoveServerEvent;
|
||||||
@ -121,7 +121,7 @@ public class InternalHost extends Host {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean removeSubServer(UUID player, String name, boolean forced) throws InterruptedException {
|
protected boolean removeSubServer(UUID player, String name, boolean forced) throws InterruptedException {
|
||||||
if (Util.isNull(name)) throw new NullPointerException();
|
Util.nullpo(name);
|
||||||
InternalSubServer server = (InternalSubServer) servers.get(name.toLowerCase());
|
InternalSubServer server = (InternalSubServer) servers.get(name.toLowerCase());
|
||||||
SubRemoveServerEvent event = new SubRemoveServerEvent(player, this, server);
|
SubRemoveServerEvent event = new SubRemoveServerEvent(player, this, server);
|
||||||
plugin.getPluginManager().callEvent(event);
|
plugin.getPluginManager().callEvent(event);
|
||||||
@ -153,22 +153,22 @@ public class InternalHost extends Host {
|
|||||||
* @return Success Status
|
* @return Success Status
|
||||||
*/
|
*/
|
||||||
protected boolean recycleSubServer(UUID player, String name, boolean forced, boolean multithreading) throws InterruptedException {
|
protected boolean recycleSubServer(UUID player, String name, boolean forced, boolean multithreading) throws InterruptedException {
|
||||||
if (Util.isNull(name)) throw new NullPointerException();
|
Util.nullpo(name);
|
||||||
String server = servers.get(name.toLowerCase()).getName();
|
String server = servers.get(name.toLowerCase()).getName();
|
||||||
File from = new File(getPath(), servers.get(server.toLowerCase()).getPath());
|
File from = new File(getPath(), servers.get(server.toLowerCase()).getPath());
|
||||||
if (removeSubServer(player, server, forced)) {
|
if (removeSubServer(player, server, forced)) {
|
||||||
Runnable method = () -> {
|
Runnable method = () -> {
|
||||||
UniversalFile to = new UniversalFile(plugin.dir, "SubServers:Recently Deleted:" + server.toLowerCase());
|
File to = new File(plugin.dir, "SubServers/Recently Deleted/" + server.toLowerCase());
|
||||||
try {
|
try {
|
||||||
if (from.exists()) {
|
if (from.exists()) {
|
||||||
Logger.get("SubServers").info("Moving Files...");
|
Logger.get("SubServers").info("Moving Files...");
|
||||||
if (to.exists()) {
|
if (to.exists()) {
|
||||||
if (to.isDirectory()) Util.deleteDirectory(to);
|
if (to.isDirectory()) Directories.delete(to);
|
||||||
else to.delete();
|
else to.delete();
|
||||||
}
|
}
|
||||||
to.mkdirs();
|
to.mkdirs();
|
||||||
Util.copyDirectory(from, to);
|
Directories.copy(from, to);
|
||||||
Util.deleteDirectory(from);
|
Directories.delete(from);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -215,7 +215,7 @@ public class InternalHost extends Host {
|
|||||||
* @return Success Status
|
* @return Success Status
|
||||||
*/
|
*/
|
||||||
protected boolean deleteSubServer(UUID player, String name, boolean forced, boolean multithreading) throws InterruptedException {
|
protected boolean deleteSubServer(UUID player, String name, boolean forced, boolean multithreading) throws InterruptedException {
|
||||||
if (Util.isNull(name)) throw new NullPointerException();
|
Util.nullpo(name);
|
||||||
String server = servers.get(name.toLowerCase()).getName();
|
String server = servers.get(name.toLowerCase()).getName();
|
||||||
File from = new File(getPath(), servers.get(server.toLowerCase()).getPath());
|
File from = new File(getPath(), servers.get(server.toLowerCase()).getPath());
|
||||||
if (removeSubServer(player, server, forced)) {
|
if (removeSubServer(player, server, forced)) {
|
||||||
@ -223,7 +223,7 @@ public class InternalHost extends Host {
|
|||||||
try {
|
try {
|
||||||
if (from.exists()) {
|
if (from.exists()) {
|
||||||
Logger.get("SubServers").info("Removing Files...");
|
Logger.get("SubServers").info("Removing Files...");
|
||||||
Util.deleteDirectory(from);
|
Directories.delete(from);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Host.Internal;
|
package net.ME1312.SubServers.Bungee.Host.Internal;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Config.YAMLConfig;
|
import net.ME1312.Galaxi.Library.Config.YAMLConfig;
|
||||||
import net.ME1312.Galaxi.Library.Config.YAMLSection;
|
import net.ME1312.Galaxi.Library.Config.YAMLSection;
|
||||||
import net.ME1312.Galaxi.Library.Container.ContainedPair;
|
import net.ME1312.Galaxi.Library.Container.ContainedPair;
|
||||||
import net.ME1312.Galaxi.Library.Container.Container;
|
import net.ME1312.Galaxi.Library.Container.Container;
|
||||||
import net.ME1312.Galaxi.Library.Container.Pair;
|
import net.ME1312.Galaxi.Library.Container.Pair;
|
||||||
import net.ME1312.Galaxi.Library.Container.Value;
|
import net.ME1312.Galaxi.Library.Container.Value;
|
||||||
|
import net.ME1312.Galaxi.Library.Directories;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMapValue;
|
import net.ME1312.Galaxi.Library.Map.ObjectMapValue;
|
||||||
import net.ME1312.Galaxi.Library.UniversalFile;
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
import net.ME1312.SubServers.Bungee.Event.SubCreateEvent;
|
import net.ME1312.SubServers.Bungee.Event.SubCreateEvent;
|
||||||
@ -37,9 +37,11 @@ import java.nio.file.LinkOption;
|
|||||||
import java.nio.file.StandardCopyOption;
|
import java.nio.file.StandardCopyOption;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.Consumer;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import static java.util.logging.Level.*;
|
import static java.util.logging.Level.INFO;
|
||||||
|
import static java.util.logging.Level.WARNING;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal SubCreator Class
|
* Internal SubCreator Class
|
||||||
@ -63,10 +65,10 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
private final String prefix;
|
private final String prefix;
|
||||||
private final InternalSubLogger log;
|
private final InternalSubLogger log;
|
||||||
private final HashMap<String, String> replacements;
|
private final HashMap<String, String> replacements;
|
||||||
private final Callback<SubServer> callback;
|
private final Consumer<SubServer> callback;
|
||||||
private Process process;
|
private Process process;
|
||||||
|
|
||||||
private CreatorTask(UUID player, String name, ServerTemplate template, Version version, int port, Callback<SubServer> callback) {
|
private CreatorTask(UUID player, String name, ServerTemplate template, Version version, int port, Consumer<SubServer> callback) {
|
||||||
super("SubServers.Bungee::Internal_SubCreator_Process_Handler(" + name + ')');
|
super("SubServers.Bungee::Internal_SubCreator_Process_Handler(" + name + ')');
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.update = null;
|
this.update = null;
|
||||||
@ -79,7 +81,7 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
this.callback = callback;
|
this.callback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CreatorTask(UUID player, SubServer server, ServerTemplate template, Version version, Callback<SubServer> callback) {
|
private CreatorTask(UUID player, SubServer server, ServerTemplate template, Version version, Consumer<SubServer> callback) {
|
||||||
super("SubServers.Bungee::Internal_SubCreator_Process_Handler(" + server.getName() + ')');
|
super("SubServers.Bungee::Internal_SubCreator_Process_Handler(" + server.getName() + ')');
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.update = server;
|
this.update = server;
|
||||||
@ -183,7 +185,7 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
if (template.getBuildOptions().contains("Executable")) {
|
if (template.getBuildOptions().contains("Executable")) {
|
||||||
File cache = null;
|
File cache = null;
|
||||||
if (template.getBuildOptions().getBoolean("Use-Cache", true)) {
|
if (template.getBuildOptions().getBoolean("Use-Cache", true)) {
|
||||||
cache = new UniversalFile(host.plugin.dir, "SubServers:Cache:Templates:" + template.getName());
|
cache = new File(host.plugin.dir, "SubServers/Cache/Templates/" + template.getName());
|
||||||
cache.mkdirs();
|
cache.mkdirs();
|
||||||
var.put("cache", cache.getAbsolutePath());
|
var.put("cache", cache.getAbsolutePath());
|
||||||
}
|
}
|
||||||
@ -211,14 +213,14 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
|
|
||||||
if (cache != null) {
|
if (cache != null) {
|
||||||
if (cache.isDirectory() && cache.listFiles().length == 0) cache.delete();
|
if (cache.isDirectory() && cache.listFiles().length == 0) cache.delete();
|
||||||
cache = new UniversalFile(host.plugin.dir, "SubServers:Cache:Templates");
|
cache = new File(host.plugin.dir, "SubServers/Cache/Templates");
|
||||||
if (cache.isDirectory() && cache.listFiles().length == 0) cache.delete();
|
if (cache.isDirectory() && cache.listFiles().length == 0) cache.delete();
|
||||||
cache = new UniversalFile(host.plugin.dir, "SubServers:Cache");
|
cache = new File(host.plugin.dir, "SubServers/Cache");
|
||||||
if (cache.isDirectory() && cache.listFiles().length == 0) cache.delete();
|
if (cache.isDirectory() && cache.listFiles().length == 0) cache.delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
new UniversalFile(dir, "template.yml").delete();
|
new File(dir, "template.yml").delete();
|
||||||
if (error) throw new SubCreatorException();
|
if (error) throw new SubCreatorException();
|
||||||
return server;
|
return server;
|
||||||
}
|
}
|
||||||
@ -303,14 +305,14 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
}
|
}
|
||||||
server.setAll(config);
|
server.setAll(config);
|
||||||
|
|
||||||
if (update != null) Util.isException(() -> update.getHost().forceRemoveSubServer(name));
|
if (update != null) Try.all.run(() -> update.getHost().forceRemoveSubServer(name));
|
||||||
subserver = host.constructSubServer(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"));
|
||||||
subserver.setTemplate(server.getRawString("Template"));
|
subserver.setTemplate(server.getRawString("Template"));
|
||||||
for (String group : server.getStringList("Group")) subserver.addGroup(group);
|
for (String group : server.getStringList("Group")) subserver.addGroup(group);
|
||||||
SubServer.StopAction action = Util.getDespiteException(() -> SubServer.StopAction.valueOf(server.getRawString("Stop-Action").toUpperCase().replace('-', '_').replace(' ', '_')), null);
|
SubServer.StopAction action = Try.all.get(() -> SubServer.StopAction.valueOf(server.getRawString("Stop-Action").toUpperCase().replace('-', '_').replace(' ', '_')));
|
||||||
if (action != null) subserver.setStopAction(action);
|
if (action != null) subserver.setStopAction(action);
|
||||||
if (server.contains("Extra")) for (String extra : server.getMap("Extra").getKeys())
|
if (server.contains("Extra")) for (String extra : server.getMap("Extra").getKeys())
|
||||||
subserver.addExtra(extra, server.getMap("Extra").getObject(extra));
|
subserver.addExtra(extra, server.getMap("Extra").getObject(extra));
|
||||||
@ -329,16 +331,16 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
InternalSubCreator.this.thread.remove(name.toLowerCase());
|
InternalSubCreator.this.thread.remove(name.toLowerCase());
|
||||||
|
|
||||||
host.plugin.getPluginManager().callEvent(new SubCreatedEvent(player, host, name, template, version, port, subserver, update != null, true));
|
host.plugin.getPluginManager().callEvent(new SubCreatedEvent(player, host, name, template, version, port, subserver, update != null, true));
|
||||||
callback.run(subserver);
|
callback.accept(subserver);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
host.plugin.getPluginManager().callEvent(new SubCreatedEvent(player, host, name, template, version, port, update, update != null, false));
|
host.plugin.getPluginManager().callEvent(new SubCreatedEvent(player, host, name, template, version, port, update, update != null, false));
|
||||||
callback.run(null);
|
callback.accept(null);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Logger.get(prefix).info("Couldn't build the server jar. Check the SubCreator logs for more detail.");
|
Logger.get(prefix).info("Couldn't build the server jar. Check the SubCreator logs for more detail.");
|
||||||
host.plugin.getPluginManager().callEvent(new SubCreatedEvent(player, host, name, template, version, port, update, update != null, false));
|
host.plugin.getPluginManager().callEvent(new SubCreatedEvent(player, host, name, template, version, port, update, update != null, false));
|
||||||
callback.run(null);
|
callback.accept(null);
|
||||||
}
|
}
|
||||||
InternalSubCreator.this.thread.remove(name.toLowerCase());
|
InternalSubCreator.this.thread.remove(name.toLowerCase());
|
||||||
}
|
}
|
||||||
@ -354,7 +356,7 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
*/
|
*/
|
||||||
public InternalSubCreator(InternalHost host, Range<Integer> ports, boolean log, String gitBash) {
|
public InternalSubCreator(InternalHost host, Range<Integer> ports, boolean log, String gitBash) {
|
||||||
if (!ports.hasLowerBound() || !ports.hasUpperBound()) throw new IllegalArgumentException("Port range is not bound");
|
if (!ports.hasLowerBound() || !ports.hasUpperBound()) throw new IllegalArgumentException("Port range is not bound");
|
||||||
if (Util.isNull(host, ports, log, gitBash)) throw new NullPointerException();
|
Util.nullpo(host, ports, log, gitBash);
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.ports = ports;
|
this.ports = ports;
|
||||||
this.log = new Container<Boolean>(log);
|
this.log = new Container<Boolean>(log);
|
||||||
@ -367,11 +369,11 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
@Override
|
@Override
|
||||||
public void reload() {
|
public void reload() {
|
||||||
templates.clear();
|
templates.clear();
|
||||||
if (new UniversalFile(host.plugin.dir, "SubServers:Templates").exists())
|
if (new File(host.plugin.dir, "SubServers/Templates").exists())
|
||||||
for (File file : new UniversalFile(host.plugin.dir, "SubServers:Templates").listFiles()) {
|
for (File file : new File(host.plugin.dir, "SubServers/Templates").listFiles()) {
|
||||||
try {
|
try {
|
||||||
if (file.isDirectory() && !file.getName().endsWith(".x")) {
|
if (file.isDirectory() && !file.getName().endsWith(".x")) {
|
||||||
ObjectMap<String> config = (new UniversalFile(file, "template.yml").exists()) ? new YAMLConfig(new UniversalFile(file, "template.yml")).get().getMap("Template", new ObjectMap<String>()) : new ObjectMap<String>();
|
ObjectMap<String> config = (new File(file, "template.yml").exists())? new YAMLConfig(new File(file, "template.yml")).get().getMap("Template", new ObjectMap<String>()) : new ObjectMap<String>();
|
||||||
ServerTemplate template = loadTemplate(file.getName(), config.getBoolean("Enabled", true), config.getBoolean("Internal", false), config.getRawString("Icon", "::NULL::"), file, config.getMap("Build", new ObjectMap<String>()), config.getMap("Settings", new ObjectMap<String>()));
|
ServerTemplate template = loadTemplate(file.getName(), config.getBoolean("Enabled", true), config.getBoolean("Internal", false), config.getRawString("Icon", "::NULL::"), file, config.getMap("Build", new ObjectMap<String>()), config.getMap("Settings", new ObjectMap<String>()));
|
||||||
templates.put(file.getName().toLowerCase(), template);
|
templates.put(file.getName().toLowerCase(), template);
|
||||||
if (config.getKeys().contains("Display")) template.setDisplayName(config.getString("Display"));
|
if (config.getKeys().contains("Display")) template.setDisplayName(config.getString("Display"));
|
||||||
@ -385,8 +387,8 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
public boolean create(UUID player, String name, ServerTemplate template, Version version, Integer port, Callback<SubServer> callback) {
|
public boolean create(UUID player, String name, ServerTemplate template, Version version, Integer port, Consumer<SubServer> callback) {
|
||||||
if (Util.isNull(name, template)) throw new NullPointerException();
|
Util.nullpo(name, template);
|
||||||
if (host.isAvailable() && host.isEnabled() && template.isEnabled() && !SubAPI.getInstance().getSubServers().keySet().contains(name.toLowerCase()) && !SubCreator.isReserved(name) && (version != null || !template.requiresVersion())) {
|
if (host.isAvailable() && host.isEnabled() && template.isEnabled() && !SubAPI.getInstance().getSubServers().keySet().contains(name.toLowerCase()) && !SubCreator.isReserved(name) && (version != null || !template.requiresVersion())) {
|
||||||
StackTraceElement[] origin = new Exception().getStackTrace();
|
StackTraceElement[] origin = new Exception().getStackTrace();
|
||||||
|
|
||||||
@ -403,7 +405,7 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
|
|
||||||
CreatorTask task = new CreatorTask(player, name, template, version, port, server -> {
|
CreatorTask task = new CreatorTask(player, name, template, version, port, server -> {
|
||||||
if (callback != null) try {
|
if (callback != null) try {
|
||||||
callback.run(server);
|
callback.accept(server);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Throwable ew = new InvocationTargetException(e);
|
Throwable ew = new InvocationTargetException(e);
|
||||||
ew.setStackTrace(origin);
|
ew.setStackTrace(origin);
|
||||||
@ -426,8 +428,8 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
public boolean update(UUID player, SubServer server, ServerTemplate template, Version version, Callback<Boolean> callback) {
|
public boolean update(UUID player, SubServer server, ServerTemplate template, Version version, Consumer<Boolean> callback) {
|
||||||
if (Util.isNull(server)) throw new NullPointerException();
|
Util.nullpo(server);
|
||||||
final ServerTemplate ft = (template == null)?server.getTemplate():template;
|
final ServerTemplate ft = (template == null)?server.getTemplate():template;
|
||||||
if (host.isAvailable() && host.isEnabled() && host == server.getHost() && server.isAvailable() && !server.isRunning() && ft != null && ft.isEnabled() && ft.canUpdate() && (version != null || !ft.requiresVersion())) {
|
if (host.isAvailable() && host.isEnabled() && host == server.getHost() && server.isAvailable() && !server.isRunning() && ft != null && ft.isEnabled() && ft.canUpdate() && (version != null || !ft.requiresVersion())) {
|
||||||
StackTraceElement[] origin = new Exception().getStackTrace();
|
StackTraceElement[] origin = new Exception().getStackTrace();
|
||||||
@ -436,7 +438,7 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
CreatorTask task = new CreatorTask(player, server, ft, version, x -> {
|
CreatorTask task = new CreatorTask(player, server, ft, version, x -> {
|
||||||
((InternalSubServer) server).updating(false);
|
((InternalSubServer) server).updating(false);
|
||||||
if (callback != null) try {
|
if (callback != null) try {
|
||||||
callback.run(x != null);
|
callback.accept(x != null);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Throwable ew = new InvocationTargetException(e);
|
Throwable ew = new InvocationTargetException(e);
|
||||||
ew.setStackTrace(origin);
|
ew.setStackTrace(origin);
|
||||||
@ -538,7 +540,7 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLogging(boolean value) {
|
public void setLogging(boolean value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
Util.nullpo(value);
|
||||||
log.value(value);
|
log.value(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -565,7 +567,7 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ServerTemplate getTemplate(String name) {
|
public ServerTemplate getTemplate(String name) {
|
||||||
if (Util.isNull(name)) throw new NullPointerException();
|
Util.nullpo(name);
|
||||||
|
|
||||||
ServerTemplate template = templates.getOrDefault(name.toLowerCase(), null);
|
ServerTemplate template = templates.getOrDefault(name.toLowerCase(), null);
|
||||||
if (template == null || template.isInternal()) {
|
if (template == null || template.isInternal()) {
|
||||||
@ -590,32 +592,32 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
boolean installed = false;
|
boolean installed = false;
|
||||||
if (type == ServerType.SPIGOT) {
|
if (type == ServerType.SPIGOT) {
|
||||||
installed = true;
|
installed = true;
|
||||||
if (!new UniversalFile(dir, "plugins").exists()) new UniversalFile(dir, "plugins").mkdirs();
|
if (!new File(dir, "plugins").exists()) new File(dir, "plugins").mkdirs();
|
||||||
if (!new UniversalFile(dir, "plugins:SubServers.Client.jar").exists())
|
if (!new File(dir, "plugins/SubServers.Client.jar").exists())
|
||||||
Util.copyFromJar(SubProxy.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/client.jar", new UniversalFile(dir, "plugins:SubServers.Client.jar").getPath());
|
Util.copyFromJar(SubProxy.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/client.jar", new File(dir, "plugins/SubServers.Client.jar").getPath());
|
||||||
} else if (type == ServerType.FORGE || type == ServerType.SPONGE) {
|
} else if (type == ServerType.FORGE || type == ServerType.SPONGE) {
|
||||||
installed = true;
|
installed = true;
|
||||||
if (!new UniversalFile(dir, "mods").exists()) new UniversalFile(dir, "mods").mkdirs();
|
if (!new File(dir, "mods").exists()) new File(dir, "mods").mkdirs();
|
||||||
if (!new UniversalFile(dir, "mods:SubServers.Client.jar").exists())
|
if (!new File(dir, "mods/SubServers.Client.jar").exists())
|
||||||
Util.copyFromJar(SubProxy.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/client.jar", new UniversalFile(dir, "mods:SubServers.Client.jar").getPath());
|
Util.copyFromJar(SubProxy.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/client.jar", new File(dir, "mods/SubServers.Client.jar").getPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (installed) {
|
if (installed) {
|
||||||
YAMLSection config = new YAMLSection();
|
YAMLSection config = new YAMLSection();
|
||||||
FileWriter writer = new FileWriter(new UniversalFile(dir, "subdata.json"), false);
|
FileWriter writer = new FileWriter(new File(dir, "subdata.json"), false);
|
||||||
config.setAll(getSubData());
|
config.setAll(getSubData());
|
||||||
writer.write(config.toJSON().toString());
|
writer.write(config.toJSON().toString());
|
||||||
writer.close();
|
writer.close();
|
||||||
|
|
||||||
if (!new UniversalFile(dir, "subdata.rsa.key").exists() && new UniversalFile("SubServers:subdata.rsa.key").exists()) {
|
if (!new File(dir, "subdata.rsa.key").exists() && new File("SubServers/subdata.rsa.key").exists()) {
|
||||||
Files.copy(new UniversalFile("SubServers:subdata.rsa.key").toPath(), new UniversalFile(dir, "subdata.rsa.key").toPath());
|
Files.copy(new File("SubServers/subdata.rsa.key").toPath(), new File(dir, "subdata.rsa.key").toPath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateDirectory(File from, File to, boolean overwrite) {
|
private void updateDirectory(File from, File to, boolean overwrite) {
|
||||||
if (!to.exists()) {
|
if (!to.exists()) {
|
||||||
Util.copyDirectory(from, to);
|
Directories.copy(from, to);
|
||||||
} else if (from.isDirectory() && !Files.isSymbolicLink(from.toPath())) {
|
} else if (from.isDirectory() && !Files.isSymbolicLink(from.toPath())) {
|
||||||
String files[] = from.list();
|
String files[] = from.list();
|
||||||
|
|
||||||
@ -629,7 +631,7 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
try {
|
try {
|
||||||
if (overwrite && (from.length() != to.length() || !Arrays.equals(generateSHA256(to), generateSHA256(from)))) {
|
if (overwrite && (from.length() != to.length() || !Arrays.equals(generateSHA256(to), generateSHA256(from)))) {
|
||||||
if (to.exists()) {
|
if (to.exists()) {
|
||||||
if (to.isDirectory()) Util.deleteDirectory(to);
|
if (to.isDirectory()) Directories.delete(to);
|
||||||
else to.delete();
|
else to.delete();
|
||||||
}
|
}
|
||||||
Files.copy(from.toPath(), to.toPath(), LinkOption.NOFOLLOW_LINKS, StandardCopyOption.REPLACE_EXISTING);
|
Files.copy(from.toPath(), to.toPath(), LinkOption.NOFOLLOW_LINKS, StandardCopyOption.REPLACE_EXISTING);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Host.Internal;
|
package net.ME1312.SubServers.Bungee.Host.Internal;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Container.Value;
|
import net.ME1312.Galaxi.Library.Container.Value;
|
||||||
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubServers.Bungee.Host.SubLogFilter;
|
import net.ME1312.SubServers.Bungee.Host.SubLogFilter;
|
||||||
import net.ME1312.SubServers.Bungee.Host.SubLogger;
|
import net.ME1312.SubServers.Bungee.Host.SubLogger;
|
||||||
@ -189,14 +190,14 @@ public class InternalSubLogger extends SubLogger {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerFilter(SubLogFilter filter) {
|
public void registerFilter(SubLogFilter filter) {
|
||||||
if (Util.isNull(filter)) throw new NullPointerException();
|
Util.nullpo(filter);
|
||||||
filters.add(filter);
|
filters.add(filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void unregisterFilter(SubLogFilter filter) {
|
public void unregisterFilter(SubLogFilter filter) {
|
||||||
if (Util.isNull(filter)) throw new NullPointerException();
|
Util.nullpo(filter);
|
||||||
Util.isException(() -> filters.remove(filter));
|
Try.all.run(() -> filters.remove(filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -5,7 +5,7 @@ import net.ME1312.Galaxi.Library.Container.Container;
|
|||||||
import net.ME1312.Galaxi.Library.Container.Value;
|
import net.ME1312.Galaxi.Library.Container.Value;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMapValue;
|
import net.ME1312.Galaxi.Library.Map.ObjectMapValue;
|
||||||
import net.ME1312.Galaxi.Library.UniversalFile;
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
import net.ME1312.SubData.Server.SubDataClient;
|
import net.ME1312.SubData.Server.SubDataClient;
|
||||||
@ -18,15 +18,16 @@ import net.ME1312.SubServers.Bungee.Network.Packet.PacketOutExEditServer.Edit;
|
|||||||
import net.ME1312.SubServers.Bungee.SubAPI;
|
import net.ME1312.SubServers.Bungee.SubAPI;
|
||||||
import net.ME1312.SubServers.Bungee.SubProxy;
|
import net.ME1312.SubServers.Bungee.SubProxy;
|
||||||
|
|
||||||
import net.md_5.bungee.BungeeServerInfo;
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
import java.io.BufferedWriter;
|
import java.io.BufferedWriter;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStreamWriter;
|
import java.io.OutputStreamWriter;
|
||||||
import java.lang.reflect.Field;
|
import java.util.ArrayList;
|
||||||
import java.util.*;
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.jar.JarFile;
|
import java.util.jar.JarFile;
|
||||||
import java.util.jar.JarInputStream;
|
import java.util.jar.JarInputStream;
|
||||||
|
|
||||||
@ -93,7 +94,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void init(InternalHost host, String name, boolean enabled, int port, String motd, boolean log, String directory, String executable, String stopcmd, boolean hidden, boolean restricted) throws InvalidServerException {
|
private void init(InternalHost host, String name, boolean enabled, int port, String motd, boolean log, String directory, String executable, String stopcmd, boolean hidden, boolean restricted) throws InvalidServerException {
|
||||||
if (Util.isNull(host, name, enabled, port, motd, log, directory, executable, stopcmd, hidden, restricted)) throw new NullPointerException();
|
Util.nullpo(host, name, enabled, port, motd, log, directory, executable, stopcmd, hidden, restricted);
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.enabled = enabled;
|
this.enabled = enabled;
|
||||||
this.log = new Container<Boolean>(log);
|
this.log = new Container<Boolean>(log);
|
||||||
@ -107,12 +108,12 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
this.logger = new InternalSubLogger(null, this, getName(), this.log, null);
|
this.logger = new InternalSubLogger(null, this, getName(), this.log, null);
|
||||||
this.thread = null;
|
this.thread = null;
|
||||||
this.command = null;
|
this.command = null;
|
||||||
final UniversalFile[] locations = new UniversalFile[] {
|
final File[] locations = new File[] {
|
||||||
new UniversalFile(this.directory, "plugins:SubServers.Client.jar"),
|
new File(this.directory, "plugins/SubServers.Client.jar"),
|
||||||
new UniversalFile(this.directory, "mods:SubServers.Client.jar")
|
new File(this.directory, "mods/SubServers.Client.jar")
|
||||||
};
|
};
|
||||||
|
|
||||||
for (UniversalFile location : locations) {
|
for (File location : locations) {
|
||||||
if (location.exists()) {
|
if (location.exists()) {
|
||||||
try {
|
try {
|
||||||
JarInputStream updated = new JarInputStream(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/client.jar"));
|
JarInputStream updated = new JarInputStream(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/client.jar"));
|
||||||
@ -275,7 +276,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean command(UUID player, String command) {
|
public boolean command(UUID player, String command) {
|
||||||
if (Util.isNull(command)) throw new NullPointerException();
|
Util.nullpo(command);
|
||||||
if (thread != null && thread.isAlive()) {
|
if (thread != null && thread.isAlive()) {
|
||||||
SubSendCommandEvent event = new SubSendCommandEvent(player, this, command);
|
SubSendCommandEvent event = new SubSendCommandEvent(player, this, command);
|
||||||
host.plugin.getPluginManager().callEvent(event);
|
host.plugin.getPluginManager().callEvent(event);
|
||||||
@ -467,7 +468,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
break;
|
break;
|
||||||
case "stop-action":
|
case "stop-action":
|
||||||
if (value.isString()) {
|
if (value.isString()) {
|
||||||
StopAction action = Util.getDespiteException(() -> StopAction.valueOf(value.asRawString().toUpperCase().replace('-', '_').replace(' ', '_')), null);
|
StopAction action = Try.all.get(() -> StopAction.valueOf(value.asRawString().toUpperCase().replace('-', '_').replace(' ', '_')));
|
||||||
if (action != null) {
|
if (action != null) {
|
||||||
stopaction = action;
|
stopaction = action;
|
||||||
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
if (perma && this.host.plugin.servers.get().getMap("Servers").getKeys().contains(getName())) {
|
||||||
@ -598,7 +599,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setEnabled(boolean value) {
|
public void setEnabled(boolean value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
Util.nullpo(value);
|
||||||
enabled = value;
|
enabled = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -609,7 +610,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLogging(boolean value) {
|
public void setLogging(boolean value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
Util.nullpo(value);
|
||||||
log.value(value);
|
log.value(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -640,7 +641,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setStopCommand(String value) {
|
public void setStopCommand(String value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
Util.nullpo(value);
|
||||||
stopcmd = value;
|
stopcmd = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -651,7 +652,7 @@ public class InternalSubServer extends SubServerImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setStopAction(StopAction action) {
|
public void setStopAction(StopAction action) {
|
||||||
if (Util.isNull(action)) throw new NullPointerException();
|
Util.nullpo(action);
|
||||||
stopaction = action;
|
stopaction = action;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,9 +19,9 @@ import java.util.*;
|
|||||||
/**
|
/**
|
||||||
* Proxy Class
|
* Proxy Class
|
||||||
*/
|
*/
|
||||||
public class Proxy implements ClientHandler, ExtraDataHandler {
|
public class Proxy implements ClientHandler, ExtraDataHandler<String> {
|
||||||
private HashMap<Integer, SubDataClient> subdata = new HashMap<Integer, SubDataClient>();
|
private final HashMap<Integer, SubDataClient> subdata = new HashMap<Integer, SubDataClient>();
|
||||||
private ObjectMap<String> extra = new ObjectMap<String>();
|
private final ObjectMap<String> extra = new ObjectMap<String>();
|
||||||
private final String signature;
|
private final String signature;
|
||||||
private boolean persistent = false;
|
private boolean persistent = false;
|
||||||
private String nick = null;
|
private String nick = null;
|
||||||
@ -158,19 +158,19 @@ public class Proxy implements ClientHandler, ExtraDataHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addExtra(String handle, Object value) {
|
public void addExtra(String handle, Object value) {
|
||||||
if (Util.isNull(handle, value)) throw new NullPointerException();
|
Util.nullpo(handle, value);
|
||||||
extra.set(handle, value);
|
extra.set(handle, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasExtra(String handle) {
|
public boolean hasExtra(String handle) {
|
||||||
if (Util.isNull(handle)) throw new NullPointerException();
|
Util.nullpo(handle);
|
||||||
return extra.getKeys().contains(handle);
|
return extra.getKeys().contains(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ObjectMapValue getExtra(String handle) {
|
public ObjectMapValue getExtra(String handle) {
|
||||||
if (Util.isNull(handle)) throw new NullPointerException();
|
Util.nullpo(handle);
|
||||||
return extra.get(handle);
|
return extra.get(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,7 +181,7 @@ public class Proxy implements ClientHandler, ExtraDataHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeExtra(String handle) {
|
public void removeExtra(String handle) {
|
||||||
if (Util.isNull(handle)) throw new NullPointerException();
|
Util.nullpo(handle);
|
||||||
extra.remove(handle);
|
extra.remove(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Host;
|
package net.ME1312.SubServers.Bungee.Host;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Container.ContainedPair;
|
import net.ME1312.Galaxi.Library.Container.ContainedPair;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.SubDataClient;
|
import net.ME1312.SubData.Server.SubDataClient;
|
||||||
import net.ME1312.SubData.Server.SubDataSerializable;
|
import net.ME1312.SubData.Server.SubDataSerializable;
|
||||||
import net.ME1312.SubServers.Bungee.Library.Compatibility.RPSI;
|
import net.ME1312.SubServers.Bungee.Library.Compatibility.RPSI;
|
||||||
import net.ME1312.SubServers.Bungee.Network.Packet.*;
|
import net.ME1312.SubServers.Bungee.Network.Packet.PacketDisconnectPlayer;
|
||||||
|
import net.ME1312.SubServers.Bungee.Network.Packet.PacketMessagePlayer;
|
||||||
|
import net.ME1312.SubServers.Bungee.Network.Packet.PacketTransferPlayer;
|
||||||
import net.ME1312.SubServers.Bungee.SubAPI;
|
import net.ME1312.SubServers.Bungee.SubAPI;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ProxyServer;
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
@ -19,6 +20,7 @@ import java.lang.reflect.InvocationTargetException;
|
|||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.IntConsumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remote Player Class
|
* Remote Player Class
|
||||||
@ -48,7 +50,7 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
* @param server Server the player is on
|
* @param server Server the player is on
|
||||||
*/
|
*/
|
||||||
public RemotePlayer(ProxiedPlayer player, ServerInfo server) {
|
public RemotePlayer(ProxiedPlayer player, ServerInfo server) {
|
||||||
if (Util.isNull(player)) throw new NullPointerException();
|
Util.nullpo(player);
|
||||||
this.local = player;
|
this.local = player;
|
||||||
this.id = player.getUniqueId();
|
this.id = player.getUniqueId();
|
||||||
this.server = (server instanceof Server)? (Server) server : null;
|
this.server = (server instanceof Server)? (Server) server : null;
|
||||||
@ -64,7 +66,7 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
* @param ip Player IP Address
|
* @param ip Player IP Address
|
||||||
*/
|
*/
|
||||||
public RemotePlayer(String name, UUID id, Proxy proxy, ServerInfo server, InetSocketAddress ip) {
|
public RemotePlayer(String name, UUID id, Proxy proxy, ServerInfo server, InetSocketAddress ip) {
|
||||||
if (Util.isNull(name, id, proxy, ip)) throw new NullPointerException();
|
Util.nullpo(name, id, proxy, ip);
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.ip = ip;
|
this.ip = ip;
|
||||||
@ -156,11 +158,11 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
// These overrides provide for the static methods in BungeeCommon
|
// These overrides provide for the static methods in BungeeCommon
|
||||||
new RPSI() {
|
new RPSI() {
|
||||||
@Override
|
@Override
|
||||||
protected void sendMessage(UUID[] players, String[] messages, Callback<Integer> response) {
|
protected void sendMessage(UUID[] players, String[] messages, IntConsumer response) {
|
||||||
StackTraceElement[] origin = new Exception().getStackTrace();
|
StackTraceElement[] origin = new Exception().getStackTrace();
|
||||||
PacketMessagePlayer.run(Arrays.asList(players), new ContainedPair<>(messages, null), null, i -> {
|
PacketMessagePlayer.run(Arrays.asList(players), new ContainedPair<>(messages, null), null, i -> {
|
||||||
try {
|
try {
|
||||||
response.run(i);
|
response.accept(i);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Throwable ew = new InvocationTargetException(e);
|
Throwable ew = new InvocationTargetException(e);
|
||||||
ew.setStackTrace(origin);
|
ew.setStackTrace(origin);
|
||||||
@ -170,11 +172,11 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void sendMessage(UUID[] players, BaseComponent[][] messages, Callback<Integer> response) {
|
protected void sendMessage(UUID[] players, BaseComponent[][] messages, IntConsumer response) {
|
||||||
StackTraceElement[] origin = new Exception().getStackTrace();
|
StackTraceElement[] origin = new Exception().getStackTrace();
|
||||||
PacketMessagePlayer.run(Arrays.asList(players), new ContainedPair<>(null, messages), null, i -> {
|
PacketMessagePlayer.run(Arrays.asList(players), new ContainedPair<>(null, messages), null, i -> {
|
||||||
try {
|
try {
|
||||||
response.run(i);
|
response.accept(i);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Throwable ew = new InvocationTargetException(e);
|
Throwable ew = new InvocationTargetException(e);
|
||||||
ew.setStackTrace(origin);
|
ew.setStackTrace(origin);
|
||||||
@ -184,11 +186,11 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void transfer(UUID[] players, String server, Callback<Integer> response) {
|
protected void transfer(UUID[] players, String server, IntConsumer response) {
|
||||||
StackTraceElement[] origin = new Exception().getStackTrace();
|
StackTraceElement[] origin = new Exception().getStackTrace();
|
||||||
PacketTransferPlayer.run(Arrays.asList(players), server, i -> {
|
PacketTransferPlayer.run(Arrays.asList(players), server, i -> {
|
||||||
try {
|
try {
|
||||||
response.run(i);
|
response.accept(i);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Throwable ew = new InvocationTargetException(e);
|
Throwable ew = new InvocationTargetException(e);
|
||||||
ew.setStackTrace(origin);
|
ew.setStackTrace(origin);
|
||||||
@ -198,11 +200,11 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void disconnect(UUID[] players, String reason, Callback<Integer> response) {
|
protected void disconnect(UUID[] players, String reason, IntConsumer response) {
|
||||||
StackTraceElement[] origin = new Exception().getStackTrace();
|
StackTraceElement[] origin = new Exception().getStackTrace();
|
||||||
PacketDisconnectPlayer.run(Arrays.asList(players), reason, i -> {
|
PacketDisconnectPlayer.run(Arrays.asList(players), reason, i -> {
|
||||||
try {
|
try {
|
||||||
response.run(i);
|
response.accept(i);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Throwable ew = new InvocationTargetException(e);
|
Throwable ew = new InvocationTargetException(e);
|
||||||
ew.setStackTrace(origin);
|
ew.setStackTrace(origin);
|
||||||
@ -218,11 +220,11 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(messages);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(messages);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void broadcastMessage(String message, Callback<Integer> response) {
|
public static void broadcastMessage(String message, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(message, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(message, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void broadcastMessage(String[] messages, Callback<Integer> response) {
|
public static void broadcastMessage(String[] messages, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(messages, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(messages, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -230,11 +232,11 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, messages);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, messages);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(UUID[] players, String message, Callback<Integer> response) {
|
public static void sendMessage(UUID[] players, String message, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, message, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, message, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(UUID[] players, String[] messages, Callback<Integer> response) {
|
public static void sendMessage(UUID[] players, String[] messages, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, messages, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, messages, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -242,11 +244,11 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(message);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void broadcastMessage(BaseComponent message, Callback<Integer> response) {
|
public static void broadcastMessage(BaseComponent message, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(message, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(message, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void broadcastMessage(BaseComponent[] message, Callback<Integer> response) {
|
public static void broadcastMessage(BaseComponent[] message, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(message, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(message, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,7 +256,7 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(messages);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(messages);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void broadcastMessage(BaseComponent[][] messages, Callback<Integer> response) {
|
public static void broadcastMessage(BaseComponent[][] messages, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(messages, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.broadcastMessage(messages, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -262,11 +264,11 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, message);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(UUID[] players, BaseComponent message, Callback<Integer> response) {
|
public static void sendMessage(UUID[] players, BaseComponent message, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, message, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, message, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(UUID[] players, BaseComponent[] message, Callback<Integer> response) {
|
public static void sendMessage(UUID[] players, BaseComponent[] message, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, message, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, message, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -274,7 +276,7 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, messages);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, messages);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(UUID[] players, BaseComponent[][] messages, Callback<Integer> response) {
|
public static void sendMessage(UUID[] players, BaseComponent[][] messages, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, messages, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.sendMessage(players, messages, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,7 +284,7 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.transfer(players, server);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.transfer(players, server);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void transfer(UUID[] players, String server, Callback<Integer> response) {
|
public static void transfer(UUID[] players, String server, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.transfer(players, server, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.transfer(players, server, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -290,7 +292,7 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.transfer(players, server);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.transfer(players, server);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void transfer(UUID[] players, ServerInfo server, Callback<Integer> response) {
|
public static void transfer(UUID[] players, ServerInfo server, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.transfer(players, server, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.transfer(players, server, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -298,7 +300,7 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.disconnect(players);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.disconnect(players);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void disconnect(UUID[] players, Callback<Integer> response) {
|
public static void disconnect(UUID[] players, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.disconnect(players, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.disconnect(players, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -306,7 +308,7 @@ public class RemotePlayer implements net.ME1312.SubServers.Bungee.Library.Compat
|
|||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.disconnect(players, reason);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.disconnect(players, reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void disconnect(UUID[] players, String reason, Callback<Integer> response) {
|
public static void disconnect(UUID[] players, String reason, IntConsumer response) {
|
||||||
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.disconnect(players, reason, response);
|
net.ME1312.SubServers.Bungee.Library.Compatibility.RemotePlayer.disconnect(players, reason, response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ import java.util.UUID;
|
|||||||
/**
|
/**
|
||||||
* Server Interface
|
* Server Interface
|
||||||
*/
|
*/
|
||||||
public interface Server extends ServerInfo, ClientHandler, ExtraDataHandler {
|
public interface Server extends ServerInfo, ClientHandler, ExtraDataHandler<String> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Link a SubData Client to this Object
|
* Link a SubData Client to this Object
|
||||||
|
@ -5,7 +5,6 @@ import net.ME1312.Galaxi.Library.Map.ObjectMapValue;
|
|||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.DataClient;
|
import net.ME1312.SubData.Server.DataClient;
|
||||||
import net.ME1312.SubData.Server.SubDataClient;
|
import net.ME1312.SubData.Server.SubDataClient;
|
||||||
import net.ME1312.SubServers.Bungee.Event.SubRemoveProxyEvent;
|
|
||||||
import net.ME1312.SubServers.Bungee.Library.Exception.InvalidServerException;
|
import net.ME1312.SubServers.Bungee.Library.Exception.InvalidServerException;
|
||||||
import net.ME1312.SubServers.Bungee.Network.Packet.PacketOutExEditServer;
|
import net.ME1312.SubServers.Bungee.Network.Packet.PacketOutExEditServer;
|
||||||
import net.ME1312.SubServers.Bungee.Network.Packet.PacketOutExEditServer.Edit;
|
import net.ME1312.SubServers.Bungee.Network.Packet.PacketOutExEditServer.Edit;
|
||||||
@ -13,7 +12,6 @@ import net.ME1312.SubServers.Bungee.SubAPI;
|
|||||||
|
|
||||||
import net.md_5.bungee.BungeeServerInfo;
|
import net.md_5.bungee.BungeeServerInfo;
|
||||||
import net.md_5.bungee.api.CommandSender;
|
import net.md_5.bungee.api.CommandSender;
|
||||||
import net.md_5.bungee.api.ProxyServer;
|
|
||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
|
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
@ -71,7 +69,7 @@ public class ServerImpl extends BungeeServerInfo implements Server {
|
|||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
private void init(String name, SocketAddress address, String motd, boolean hidden, boolean restricted) throws InvalidServerException {
|
private void init(String name, SocketAddress address, String motd, boolean hidden, boolean restricted) throws InvalidServerException {
|
||||||
if (Util.isNull(name, address, motd, hidden, restricted)) throw new NullPointerException();
|
Util.nullpo(name, address, motd, hidden, restricted);
|
||||||
if (name.contains(" ")) throw new InvalidServerException("Server names cannot have spaces: " + name);
|
if (name.contains(" ")) throw new InvalidServerException("Server names cannot have spaces: " + name);
|
||||||
SubAPI.getInstance().getInternals().subprotocol.whitelist(getAddress().getAddress().getHostAddress());
|
SubAPI.getInstance().getInternals().subprotocol.whitelist(getAddress().getAddress().getHostAddress());
|
||||||
this.hidden = hidden;
|
this.hidden = hidden;
|
||||||
@ -160,7 +158,7 @@ public class ServerImpl extends BungeeServerInfo implements Server {
|
|||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public void addGroup(String value) {
|
public void addGroup(String value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
Util.nullpo(value);
|
||||||
if (value.length() > 0 && !groups.contains(value)) {
|
if (value.length() > 0 && !groups.contains(value)) {
|
||||||
groups.add(value);
|
groups.add(value);
|
||||||
Collections.sort(groups);
|
Collections.sort(groups);
|
||||||
@ -170,7 +168,7 @@ public class ServerImpl extends BungeeServerInfo implements Server {
|
|||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public void removeGroup(String value) {
|
public void removeGroup(String value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
Util.nullpo(value);
|
||||||
groups.remove(value);
|
groups.remove(value);
|
||||||
Collections.sort(groups);
|
Collections.sort(groups);
|
||||||
}
|
}
|
||||||
@ -194,7 +192,7 @@ public class ServerImpl extends BungeeServerInfo implements Server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setMotd(String value) {
|
public void setMotd(String value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
Util.nullpo(value);
|
||||||
try {
|
try {
|
||||||
Util.reflect(BungeeServerInfo.class.getDeclaredField("motd"), this, value);
|
Util.reflect(BungeeServerInfo.class.getDeclaredField("motd"), this, value);
|
||||||
for (Proxy proxy : SubAPI.getInstance().getProxies().values()) if (proxy.getSubData()[0] != null) {
|
for (Proxy proxy : SubAPI.getInstance().getProxies().values()) if (proxy.getSubData()[0] != null) {
|
||||||
@ -206,7 +204,7 @@ public class ServerImpl extends BungeeServerInfo implements Server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setRestricted(boolean value) {
|
public void setRestricted(boolean value) {
|
||||||
if (Util.isNull(value)) throw new NullPointerException();
|
Util.nullpo(value);
|
||||||
try {
|
try {
|
||||||
Util.reflect(BungeeServerInfo.class.getDeclaredField("restricted"), this, value);
|
Util.reflect(BungeeServerInfo.class.getDeclaredField("restricted"), this, value);
|
||||||
|
|
||||||
@ -241,7 +239,7 @@ public class ServerImpl extends BungeeServerInfo implements Server {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void whitelist(UUID player) {
|
public void whitelist(UUID player) {
|
||||||
if (Util.isNull(player)) throw new NullPointerException();
|
Util.nullpo(player);
|
||||||
if (!whitelist.contains(player)) whitelist.add(player);
|
if (!whitelist.contains(player)) whitelist.add(player);
|
||||||
if (isRegistered()) for (Proxy proxy : SubAPI.getInstance().getProxies().values()) if (proxy.getSubData()[0] != null) {
|
if (isRegistered()) for (Proxy proxy : SubAPI.getInstance().getProxies().values()) if (proxy.getSubData()[0] != null) {
|
||||||
((SubDataClient) proxy.getSubData()[0]).sendPacket(new PacketOutExEditServer(this, Edit.WHITELIST_ADD, player));
|
((SubDataClient) proxy.getSubData()[0]).sendPacket(new PacketOutExEditServer(this, Edit.WHITELIST_ADD, player));
|
||||||
@ -250,7 +248,7 @@ public class ServerImpl extends BungeeServerInfo implements Server {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void unwhitelist(UUID player) {
|
public void unwhitelist(UUID player) {
|
||||||
if (Util.isNull(player)) throw new NullPointerException();
|
Util.nullpo(player);
|
||||||
whitelist.remove(player);
|
whitelist.remove(player);
|
||||||
if (isRegistered()) for (Proxy proxy : SubAPI.getInstance().getProxies().values()) if (proxy.getSubData()[0] != null) {
|
if (isRegistered()) for (Proxy proxy : SubAPI.getInstance().getProxies().values()) if (proxy.getSubData()[0] != null) {
|
||||||
((SubDataClient) proxy.getSubData()[0]).sendPacket(new PacketOutExEditServer(this, Edit.WHITELIST_REMOVE, player));
|
((SubDataClient) proxy.getSubData()[0]).sendPacket(new PacketOutExEditServer(this, Edit.WHITELIST_REMOVE, player));
|
||||||
@ -269,19 +267,19 @@ public class ServerImpl extends BungeeServerInfo implements Server {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addExtra(String handle, Object value) {
|
public void addExtra(String handle, Object value) {
|
||||||
if (Util.isNull(handle, value)) throw new NullPointerException();
|
Util.nullpo(handle, value);
|
||||||
extra.set(handle, value);
|
extra.set(handle, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasExtra(String handle) {
|
public boolean hasExtra(String handle) {
|
||||||
if (Util.isNull(handle)) throw new NullPointerException();
|
Util.nullpo(handle);
|
||||||
return extra.getKeys().contains(handle);
|
return extra.getKeys().contains(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ObjectMapValue getExtra(String handle) {
|
public ObjectMapValue getExtra(String handle) {
|
||||||
if (Util.isNull(handle)) throw new NullPointerException();
|
Util.nullpo(handle);
|
||||||
return extra.get(handle);
|
return extra.get(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -292,7 +290,7 @@ public class ServerImpl extends BungeeServerInfo implements Server {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeExtra(String handle) {
|
public void removeExtra(String handle) {
|
||||||
if (Util.isNull(handle)) throw new NullPointerException();
|
Util.nullpo(handle);
|
||||||
extra.remove(handle);
|
extra.remove(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Host;
|
package net.ME1312.SubServers.Bungee.Host;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
@ -12,6 +11,7 @@ import com.google.common.collect.Range;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SubCreator Layout Class
|
* SubCreator Layout Class
|
||||||
@ -44,7 +44,7 @@ public abstract class SubCreator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ServerTemplate(String name, boolean enabled, boolean internal, String icon, File directory, ObjectMap<String> build, ObjectMap<String> options, boolean dynamic) {
|
private ServerTemplate(String name, boolean enabled, boolean internal, String icon, File directory, ObjectMap<String> build, ObjectMap<String> options, boolean dynamic) {
|
||||||
if (Util.isNull(name, enabled, directory, build, options)) throw new NullPointerException();
|
Util.nullpo(name, enabled, directory, build, options);
|
||||||
if (name.contains(" ")) throw new InvalidTemplateException("Template names cannot have spaces: " + name);
|
if (name.contains(" ")) throw new InvalidTemplateException("Template names cannot have spaces: " + name);
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.enabled = enabled;
|
this.enabled = enabled;
|
||||||
@ -233,7 +233,7 @@ public abstract class SubCreator {
|
|||||||
* @param callback Callback
|
* @param callback Callback
|
||||||
* @return Success Status
|
* @return Success Status
|
||||||
*/
|
*/
|
||||||
public abstract boolean create(UUID player, String name, ServerTemplate template, Version version, Integer port, Callback<SubServer> callback);
|
public abstract boolean create(UUID player, String name, ServerTemplate template, Version version, Integer port, Consumer<SubServer> callback);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a SubServer
|
* Create a SubServer
|
||||||
@ -259,7 +259,7 @@ public abstract class SubCreator {
|
|||||||
* @param callback Callback
|
* @param callback Callback
|
||||||
* @return Success Status
|
* @return Success Status
|
||||||
*/
|
*/
|
||||||
public boolean create(String name, ServerTemplate template, Version version, Integer port, Callback<SubServer> callback) {
|
public boolean create(String name, ServerTemplate template, Version version, Integer port, Consumer<SubServer> callback) {
|
||||||
return create(null, name, template, version, port, callback);
|
return create(null, name, template, version, port, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -286,7 +286,7 @@ public abstract class SubCreator {
|
|||||||
* @param callback Callback
|
* @param callback Callback
|
||||||
* @return Success Status
|
* @return Success Status
|
||||||
*/
|
*/
|
||||||
public abstract boolean update(UUID player, SubServer server, ServerTemplate template, Version version, Callback<Boolean> callback);
|
public abstract boolean update(UUID player, SubServer server, ServerTemplate template, Version version, Consumer<Boolean> callback);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update a SubServer
|
* Update a SubServer
|
||||||
@ -310,7 +310,7 @@ public abstract class SubCreator {
|
|||||||
* @param callback Callback
|
* @param callback Callback
|
||||||
* @return Success Status
|
* @return Success Status
|
||||||
*/
|
*/
|
||||||
public boolean update(SubServer server, ServerTemplate template, Version version, Callback<Boolean> callback) {
|
public boolean update(SubServer server, ServerTemplate template, Version version, Consumer<Boolean> callback) {
|
||||||
return update(null, server, template, version, callback);
|
return update(null, server, template, version, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ public interface SubServer extends Server {
|
|||||||
* @param command Command
|
* @param command Command
|
||||||
*/
|
*/
|
||||||
public LoggedCommand(String command) {
|
public LoggedCommand(String command) {
|
||||||
if (Util.isNull(command)) throw new NullPointerException();
|
Util.nullpo(command);
|
||||||
this.date = Calendar.getInstance().getTime();
|
this.date = Calendar.getInstance().getTime();
|
||||||
this.sender = null;
|
this.sender = null;
|
||||||
this.command = command;
|
this.command = command;
|
||||||
@ -53,7 +53,7 @@ public interface SubServer extends Server {
|
|||||||
* @param command Command
|
* @param command Command
|
||||||
*/
|
*/
|
||||||
public LoggedCommand(UUID sender, String command) {
|
public LoggedCommand(UUID sender, String command) {
|
||||||
if (Util.isNull(command)) throw new NullPointerException();
|
Util.nullpo(command);
|
||||||
this.date = Calendar.getInstance().getTime();
|
this.date = Calendar.getInstance().getTime();
|
||||||
this.sender = sender;
|
this.sender = sender;
|
||||||
this.command = command;
|
this.command = command;
|
||||||
@ -67,7 +67,7 @@ public interface SubServer extends Server {
|
|||||||
* @param command Command
|
* @param command Command
|
||||||
*/
|
*/
|
||||||
public LoggedCommand(Date date, UUID sender, String command) {
|
public LoggedCommand(Date date, UUID sender, String command) {
|
||||||
if (Util.isNull(date, command)) throw new NullPointerException();
|
Util.nullpo(date, command);
|
||||||
this.date = date;
|
this.date = date;
|
||||||
this.sender = sender;
|
this.sender = sender;
|
||||||
this.command = command;
|
this.command = command;
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
package net.ME1312.SubServers.Bungee;
|
package net.ME1312.SubServers.Bungee;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Platform;
|
import net.ME1312.Galaxi.Library.Platform;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
|
|
||||||
import java.security.Security;
|
import java.security.Security;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SubServers/BungeeCord Launch Class
|
* SubServers/BungeeCord Launch Class
|
||||||
@ -26,7 +25,7 @@ public final class Launch {
|
|||||||
System.setProperty("jdk.util.jar.enableMultiRelease", "force");
|
System.setProperty("jdk.util.jar.enableMultiRelease", "force");
|
||||||
System.setProperty("apple.laf.useScreenMenuBar", "true");
|
System.setProperty("apple.laf.useScreenMenuBar", "true");
|
||||||
|
|
||||||
if (Util.getDespiteException(() -> Class.forName("net.md_5.bungee.BungeeCord") == null, true)) {
|
if (Try.all.get(() -> Class.forName("net.md_5.bungee.BungeeCord") == null, true)) {
|
||||||
System.out.println("");
|
System.out.println("");
|
||||||
System.out.println("*******************************************");
|
System.out.println("*******************************************");
|
||||||
System.out.println("*** Error: BungeeCord.jar Doesn't Exist ***");
|
System.out.println("*** Error: BungeeCord.jar Doesn't Exist ***");
|
||||||
@ -92,9 +91,9 @@ public final class Launch {
|
|||||||
|
|
||||||
if (!options.has("noconsole")) {
|
if (!options.has("noconsole")) {
|
||||||
try {
|
try {
|
||||||
if (Util.getDespiteException(() -> Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands") != null, false)) { // Waterfall Setup
|
if (Try.all.get(() -> Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands") != null, false)) { // Waterfall Setup
|
||||||
Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands").invoke(null);
|
Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands").invoke(null);
|
||||||
} else if (Util.getDespiteException(() -> Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("start") != null, false)) {
|
} else if (Try.all.get(() -> Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("start") != null, false)) {
|
||||||
Class console = Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole");
|
Class console = Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole");
|
||||||
console.getMethod("start").invoke(console.getConstructor().newInstance());
|
console.getMethod("start").invoke(console.getConstructor().newInstance());
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Library.Compatibility;
|
package net.ME1312.SubServers.Bungee.Library.Compatibility;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.UniversalFile;
|
|
||||||
import net.ME1312.SubServers.Bungee.SubAPI;
|
import net.ME1312.SubServers.Bungee.SubAPI;
|
||||||
|
|
||||||
import com.google.common.io.Resources;
|
import com.google.common.io.Resources;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
@ -28,8 +29,8 @@ public class JNA {
|
|||||||
public static ClassLoader get() {
|
public static ClassLoader get() {
|
||||||
if (JNA == null) {
|
if (JNA == null) {
|
||||||
boolean announced = false;
|
boolean announced = false;
|
||||||
UniversalFile library = new UniversalFile(SubAPI.getInstance().getInternals().dir, "SubServers:Cache:Libraries");
|
File library = new File(SubAPI.getInstance().getInternals().dir, "SubServers/Cache/Libraries");
|
||||||
UniversalFile jna = new UniversalFile(library, "jna-" + JNA_VERSION + ".jar");
|
File jna = new File(library, "jna-" + JNA_VERSION + ".jar");
|
||||||
jna.getParentFile().mkdirs();
|
jna.getParentFile().mkdirs();
|
||||||
if (!jna.exists()) {
|
if (!jna.exists()) {
|
||||||
announced = true;
|
announced = true;
|
||||||
@ -41,7 +42,7 @@ public class JNA {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
UniversalFile platform = new UniversalFile(library, "jna-platform-" + JNA_VERSION + ".jar");
|
File platform = new File(library, "jna-platform-" + JNA_VERSION + ".jar");
|
||||||
platform.getParentFile().mkdirs();
|
platform.getParentFile().mkdirs();
|
||||||
if (!platform.exists()) {
|
if (!platform.exists()) {
|
||||||
if (!announced) System.out.println(">> Downloading JNA Library v" + JNA_VERSION);
|
if (!announced) System.out.println(">> Downloading JNA Library v" + JNA_VERSION);
|
||||||
|
@ -5,10 +5,8 @@ import net.ME1312.SubServers.Bungee.SubAPI;
|
|||||||
import net.md_5.bungee.api.config.ServerInfo;
|
import net.md_5.bungee.api.config.ServerInfo;
|
||||||
import net.md_5.bungee.util.CaseInsensitiveMap;
|
import net.md_5.bungee.util.CaseInsensitiveMap;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Legacy Server Map Translation Class
|
* Legacy Server Map Translation Class
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Library;
|
package net.ME1312.SubServers.Bungee.Library;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Directories;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.File;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.PrimitiveIterator;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -19,7 +22,7 @@ public abstract class FileScanner {
|
|||||||
* @param whitelist File Whitelist
|
* @param whitelist File Whitelist
|
||||||
*/
|
*/
|
||||||
protected void scan(File dir, String... whitelist) throws IOException {
|
protected void scan(File dir, String... whitelist) throws IOException {
|
||||||
List<String> files = Util.searchDirectory(dir);
|
List<String> files = Directories.search(dir);
|
||||||
if (files.size() <= 0 || whitelist.length <= 0)
|
if (files.size() <= 0 || whitelist.length <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -4,14 +4,17 @@ import net.ME1312.SubData.Server.DataServer;
|
|||||||
import net.ME1312.SubServers.Bungee.BungeeCommon;
|
import net.ME1312.SubServers.Bungee.BungeeCommon;
|
||||||
import net.ME1312.SubServers.Bungee.SubAPI;
|
import net.ME1312.SubServers.Bungee.SubAPI;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import gnu.trove.map.hash.TIntObjectHashMap;
|
||||||
import java.io.BufferedWriter;
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
import java.io.ByteArrayOutputStream;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
import java.io.DataOutputStream;
|
import net.md_5.bungee.api.plugin.Plugin;
|
||||||
import java.io.File;
|
import net.md_5.bungee.config.Configuration;
|
||||||
import java.io.FileWriter;
|
import net.md_5.bungee.config.ConfigurationProvider;
|
||||||
import java.io.IOException;
|
import net.md_5.bungee.config.YamlConfiguration;
|
||||||
import java.io.InputStreamReader;
|
import net.md_5.bungee.protocol.ProtocolConstants;
|
||||||
|
|
||||||
|
import javax.net.ssl.HttpsURLConnection;
|
||||||
|
import java.io.*;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Modifier;
|
import java.lang.reflect.Modifier;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
@ -27,16 +30,6 @@ import java.util.function.Supplier;
|
|||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.zip.GZIPOutputStream;
|
import java.util.zip.GZIPOutputStream;
|
||||||
import javax.net.ssl.HttpsURLConnection;
|
|
||||||
|
|
||||||
import gnu.trove.map.hash.TIntObjectHashMap;
|
|
||||||
import net.md_5.bungee.api.ProxyServer;
|
|
||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
|
||||||
import net.md_5.bungee.api.plugin.Plugin;
|
|
||||||
import net.md_5.bungee.config.Configuration;
|
|
||||||
import net.md_5.bungee.config.ConfigurationProvider;
|
|
||||||
import net.md_5.bungee.config.YamlConfiguration;
|
|
||||||
import net.md_5.bungee.protocol.ProtocolConstants;
|
|
||||||
|
|
||||||
public class Metrics {
|
public class Metrics {
|
||||||
|
|
||||||
|
@ -3,9 +3,7 @@ package net.ME1312.SubServers.Bungee.Library;
|
|||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* File Replacement Scanner
|
* File Replacement Scanner
|
||||||
|
@ -28,7 +28,7 @@ public class PacketAddServer implements PacketObjectIn<Integer>, PacketObjectOut
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketAddServer(SubProxy plugin) {
|
public PacketAddServer(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
@ -9,12 +8,13 @@ import net.ME1312.SubData.Server.SubDataClient;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check Permission Packet
|
* Check Permission Packet
|
||||||
*/
|
*/
|
||||||
public class PacketCheckPermission implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
public class PacketCheckPermission implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
||||||
static HashMap<UUID, Callback<Boolean>[]> callbacks = new HashMap<UUID, Callback<Boolean>[]>();
|
static HashMap<UUID, Consumer<Boolean>[]> callbacks = new HashMap<UUID, Consumer<Boolean>[]>();
|
||||||
private UUID player;
|
private UUID player;
|
||||||
private String permission;
|
private String permission;
|
||||||
private UUID tracker;
|
private UUID tracker;
|
||||||
@ -32,7 +32,7 @@ public class PacketCheckPermission implements PacketObjectIn<Integer>, PacketObj
|
|||||||
* @param callback Callbacks
|
* @param callback Callbacks
|
||||||
*/
|
*/
|
||||||
@SafeVarargs
|
@SafeVarargs
|
||||||
public PacketCheckPermission(UUID player, String permission, Callback<Boolean>... callback) {
|
public PacketCheckPermission(UUID player, String permission, Consumer<Boolean>... callback) {
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.permission = permission;
|
this.permission = permission;
|
||||||
this.tracker = Util.getNew(callbacks.keySet(), UUID::randomUUID);
|
this.tracker = Util.getNew(callbacks.keySet(), UUID::randomUUID);
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
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;
|
||||||
@ -10,6 +9,7 @@ import net.ME1312.SubData.Server.SubDataClient;
|
|||||||
import net.md_5.bungee.api.ProxyServer;
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import static net.ME1312.SubServers.Bungee.Network.Packet.PacketCheckPermission.callbacks;
|
import static net.ME1312.SubServers.Bungee.Network.Packet.PacketCheckPermission.callbacks;
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ public class PacketCheckPermissionResponse implements PacketObjectIn<Integer>, P
|
|||||||
* @param tracker Receiver ID
|
* @param tracker Receiver ID
|
||||||
*/
|
*/
|
||||||
public PacketCheckPermissionResponse(UUID player, String permission, UUID tracker) {
|
public PacketCheckPermissionResponse(UUID player, String permission, UUID tracker) {
|
||||||
this.result = Util.getDespiteException(() -> ProxyServer.getInstance().getPlayer(player).hasPermission(permission), false);
|
this.result = Try.all.get(() -> ProxyServer.getInstance().getPlayer(player).hasPermission(permission), false);
|
||||||
this.tracker = tracker;
|
this.tracker = tracker;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ public class PacketCheckPermissionResponse implements PacketObjectIn<Integer>, P
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receive(SubDataClient client, ObjectMap<Integer> data) throws Throwable {
|
public void receive(SubDataClient client, ObjectMap<Integer> data) throws Throwable {
|
||||||
for (Callback<Boolean> callback : callbacks.get(data.getUUID(0x0000))) callback.run(data.getBoolean(0x0001));
|
for (Consumer<Boolean> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data.getBoolean(0x0001));
|
||||||
callbacks.remove(data.getUUID(0x0000));
|
callbacks.remove(data.getUUID(0x0000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public class PacketCommandServer implements PacketObjectIn<Integer>, PacketObjec
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketCommandServer(SubProxy plugin) {
|
public PacketCommandServer(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public class PacketDeleteServer implements PacketObjectIn<Integer>, PacketObject
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketDeleteServer(SubProxy plugin) {
|
public PacketDeleteServer(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.AsyncConsolidator;
|
import net.ME1312.Galaxi.Library.AsyncConsolidator;
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Container.Container;
|
import net.ME1312.Galaxi.Library.Container.Container;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
@ -9,13 +8,13 @@ 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.Proxy;
|
import net.ME1312.SubServers.Bungee.Host.Proxy;
|
||||||
import net.ME1312.SubServers.Bungee.Host.RemotePlayer;
|
import net.ME1312.SubServers.Bungee.Host.RemotePlayer;
|
||||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
|
||||||
import net.ME1312.SubServers.Bungee.SubAPI;
|
import net.ME1312.SubServers.Bungee.SubAPI;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ProxyServer;
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.IntConsumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Disconnect Player Packet
|
* Disconnect Player Packet
|
||||||
@ -59,7 +58,7 @@ public class PacketDisconnectPlayer implements PacketObjectIn<Integer>, PacketOb
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public static void run(List<UUID> ids, String reason, Callback<Integer> callback) {
|
public static void run(List<UUID> ids, String reason, IntConsumer callback) {
|
||||||
try {
|
try {
|
||||||
Container<Integer> failures = new Container<>(0);
|
Container<Integer> failures = new Container<>(0);
|
||||||
HashMap<Proxy, List<UUID>> requests = new HashMap<Proxy, List<UUID>>();
|
HashMap<Proxy, List<UUID>> requests = new HashMap<Proxy, List<UUID>>();
|
||||||
@ -81,10 +80,10 @@ public class PacketDisconnectPlayer implements PacketObjectIn<Integer>, PacketOb
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (requests.size() == 0) {
|
if (requests.size() == 0) {
|
||||||
callback.run(failures.value);
|
callback.accept(failures.value);
|
||||||
} else {
|
} else {
|
||||||
AsyncConsolidator merge = new AsyncConsolidator(() -> {
|
AsyncConsolidator merge = new AsyncConsolidator(() -> {
|
||||||
callback.run(failures.value);
|
callback.accept(failures.value);
|
||||||
});
|
});
|
||||||
for (Map.Entry<Proxy, List<UUID>> entry : requests.entrySet()) {
|
for (Map.Entry<Proxy, List<UUID>> entry : requests.entrySet()) {
|
||||||
merge.reserve();
|
merge.reserve();
|
||||||
@ -96,7 +95,7 @@ public class PacketDisconnectPlayer implements PacketObjectIn<Integer>, PacketOb
|
|||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
callback.run(-1);
|
callback.accept(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ public class PacketDownloadGroupInfo implements PacketObjectIn<Integer>, PacketO
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketDownloadGroupInfo(SubProxy plugin) {
|
public PacketDownloadGroupInfo(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ public class PacketDownloadGroupInfo implements PacketObjectIn<Integer>, PacketO
|
|||||||
* @param tracker Receiver ID
|
* @param tracker Receiver ID
|
||||||
*/
|
*/
|
||||||
public PacketDownloadGroupInfo(SubProxy plugin, List<String> groups, UUID tracker) {
|
public PacketDownloadGroupInfo(SubProxy plugin, List<String> groups, UUID tracker) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.tracker = tracker;
|
this.tracker = tracker;
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public class PacketDownloadHostInfo implements PacketObjectIn<Integer>, PacketOb
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketDownloadHostInfo(SubProxy plugin) {
|
public PacketDownloadHostInfo(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ public class PacketDownloadHostInfo implements PacketObjectIn<Integer>, PacketOb
|
|||||||
* @param tracker Receiver ID
|
* @param tracker Receiver ID
|
||||||
*/
|
*/
|
||||||
public PacketDownloadHostInfo(SubProxy plugin, List<String> hosts, UUID tracker) {
|
public PacketDownloadHostInfo(SubProxy plugin, List<String> hosts, UUID tracker) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.tracker = tracker;
|
this.tracker = tracker;
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public class PacketDownloadPlayerInfo implements PacketObjectIn<Integer>, Packet
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketDownloadPlayerInfo(SubProxy plugin) {
|
public PacketDownloadPlayerInfo(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ public class PacketDownloadPlayerInfo implements PacketObjectIn<Integer>, Packet
|
|||||||
* @param tracker Receiver ID
|
* @param tracker Receiver ID
|
||||||
*/
|
*/
|
||||||
public PacketDownloadPlayerInfo(SubProxy plugin, List<String> names, List<UUID> ids, UUID tracker) {
|
public PacketDownloadPlayerInfo(SubProxy plugin, List<String> names, List<UUID> ids, UUID tracker) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.tracker = tracker;
|
this.tracker = tracker;
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public class PacketDownloadProxyInfo implements PacketObjectIn<Integer>, PacketO
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketDownloadProxyInfo(SubProxy plugin) {
|
public PacketDownloadProxyInfo(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ public class PacketDownloadProxyInfo implements PacketObjectIn<Integer>, PacketO
|
|||||||
* @param tracker Receiver ID
|
* @param tracker Receiver ID
|
||||||
*/
|
*/
|
||||||
public PacketDownloadProxyInfo(SubProxy plugin, List<String> proxies, UUID tracker) {
|
public PacketDownloadProxyInfo(SubProxy plugin, List<String> proxies, UUID tracker) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.tracker = tracker;
|
this.tracker = tracker;
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public class PacketDownloadServerInfo implements PacketObjectIn<Integer>, Packet
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketDownloadServerInfo(SubProxy plugin) {
|
public PacketDownloadServerInfo(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ public class PacketDownloadServerInfo implements PacketObjectIn<Integer>, Packet
|
|||||||
* @param tracker Receiver ID
|
* @param tracker Receiver ID
|
||||||
*/
|
*/
|
||||||
public PacketDownloadServerInfo(SubProxy plugin, List<String> servers, UUID tracker) {
|
public PacketDownloadServerInfo(SubProxy plugin, List<String> servers, UUID tracker) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.tracker = tracker;
|
this.tracker = tracker;
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ public class PacketEditServer implements PacketObjectIn<Integer>, PacketObjectOu
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketEditServer(SubProxy plugin) {
|
public PacketEditServer(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
@ -10,12 +9,13 @@ import net.ME1312.SubServers.Bungee.Host.External.ExternalSubServer;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add Server External Host Packet
|
* Add Server External Host Packet
|
||||||
*/
|
*/
|
||||||
public class PacketExAddServer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
public class PacketExAddServer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
||||||
private static HashMap<UUID, Callback<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Callback<ObjectMap<Integer>>[]>();
|
private static HashMap<UUID, Consumer<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Consumer<ObjectMap<Integer>>[]>();
|
||||||
private String name;
|
private String name;
|
||||||
private boolean enabled;
|
private boolean enabled;
|
||||||
private int port;
|
private int port;
|
||||||
@ -35,7 +35,7 @@ public class PacketExAddServer implements PacketObjectIn<Integer>, PacketObjectO
|
|||||||
* New PacketExAddServer (Out)
|
* New PacketExAddServer (Out)
|
||||||
*/
|
*/
|
||||||
@SafeVarargs
|
@SafeVarargs
|
||||||
public PacketExAddServer(ExternalSubServer server, UUID running, Callback<ObjectMap<Integer>>... callback) {
|
public PacketExAddServer(ExternalSubServer server, UUID running, Consumer<ObjectMap<Integer>>... callback) {
|
||||||
if (callback == null) throw new NullPointerException();
|
if (callback == null) throw new NullPointerException();
|
||||||
this.name = server.getName();
|
this.name = server.getName();
|
||||||
this.enabled = server.isEnabled();
|
this.enabled = server.isEnabled();
|
||||||
@ -66,7 +66,7 @@ public class PacketExAddServer implements PacketObjectIn<Integer>, PacketObjectO
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
||||||
for (Callback<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.run(data);
|
for (Consumer<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data);
|
||||||
callbacks.remove(data.getUUID(0x0000));
|
callbacks.remove(data.getUUID(0x0000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
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;
|
||||||
@ -43,7 +44,7 @@ public class PacketExConfigureHost implements PacketObjectIn<Integer>, PacketObj
|
|||||||
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
||||||
if (client.getHandler() != null && client.getHandler() instanceof ExternalHost && plugin.config.get().getMap("Hosts").getKeys().contains(((ExternalHost) client.getHandler()).getName())) {
|
if (client.getHandler() != null && client.getHandler() instanceof ExternalHost && plugin.config.get().getMap("Hosts").getKeys().contains(((ExternalHost) client.getHandler()).getName())) {
|
||||||
client.sendPacket(new PacketExConfigureHost(plugin, (ExternalHost) client.getHandler()));
|
client.sendPacket(new PacketExConfigureHost(plugin, (ExternalHost) client.getHandler()));
|
||||||
Util.isException(() -> Util.reflect(ExternalSubCreator.class.getDeclaredField("enableRT"), ((ExternalHost) client.getHandler()).getCreator(), ((data == null || data.getBoolean(0x0000, false))?null:false)));
|
Try.all.run(() -> Util.reflect(ExternalSubCreator.class.getDeclaredField("enableRT"), ((ExternalHost) client.getHandler()).getCreator(), ((data == null || data.getBoolean(0x0000, false))?null:false)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
@ -12,12 +11,13 @@ import net.ME1312.SubServers.Bungee.Host.SubServer;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create Server External Host Packet
|
* Create Server External Host Packet
|
||||||
*/
|
*/
|
||||||
public class PacketExCreateServer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
public class PacketExCreateServer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
||||||
private static HashMap<UUID, Callback<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Callback<ObjectMap<Integer>>[]>();
|
private static HashMap<UUID, Consumer<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Consumer<ObjectMap<Integer>>[]>();
|
||||||
private UUID player;
|
private UUID player;
|
||||||
private String name;
|
private String name;
|
||||||
private SubCreator.ServerTemplate template;
|
private SubCreator.ServerTemplate template;
|
||||||
@ -45,8 +45,8 @@ public class PacketExCreateServer implements PacketObjectIn<Integer>, PacketObje
|
|||||||
* @param callback Callbacks
|
* @param callback Callbacks
|
||||||
*/
|
*/
|
||||||
@SafeVarargs
|
@SafeVarargs
|
||||||
public PacketExCreateServer(UUID player, SubServer server, SubCreator.ServerTemplate template, Version version, UUID log, Callback<ObjectMap<Integer>>... callback) {
|
public PacketExCreateServer(UUID player, SubServer server, SubCreator.ServerTemplate template, Version version, UUID log, Consumer<ObjectMap<Integer>>... callback) {
|
||||||
if (Util.isNull(server, template, log, callback)) throw new NullPointerException();
|
Util.nullpo(server, template, log, callback);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.name = server.getName();
|
this.name = server.getName();
|
||||||
this.template = template;
|
this.template = template;
|
||||||
@ -70,8 +70,8 @@ public class PacketExCreateServer implements PacketObjectIn<Integer>, PacketObje
|
|||||||
* @param callback Callbacks
|
* @param callback Callbacks
|
||||||
*/
|
*/
|
||||||
@SafeVarargs
|
@SafeVarargs
|
||||||
public PacketExCreateServer(UUID player, String name, SubCreator.ServerTemplate template, Version version, int port, UUID log, Callback<ObjectMap<Integer>>... callback) {
|
public PacketExCreateServer(UUID player, String name, SubCreator.ServerTemplate template, Version version, int port, UUID log, Consumer<ObjectMap<Integer>>... callback) {
|
||||||
if (Util.isNull(name, template, port, log, callback)) throw new NullPointerException();
|
Util.nullpo(name, template, port, log, callback);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.template = template;
|
this.template = template;
|
||||||
@ -117,7 +117,7 @@ public class PacketExCreateServer implements PacketObjectIn<Integer>, PacketObje
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
||||||
for (Callback<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.run(data);
|
for (Consumer<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data);
|
||||||
callbacks.remove(data.getUUID(0x0000));
|
callbacks.remove(data.getUUID(0x0000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
@ -9,12 +8,13 @@ import net.ME1312.SubData.Server.SubDataClient;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete Server External Host Packet
|
* Delete Server External Host Packet
|
||||||
*/
|
*/
|
||||||
public class PacketExDeleteServer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
public class PacketExDeleteServer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
||||||
private static HashMap<UUID, Callback<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Callback<ObjectMap<Integer>>[]>();
|
private static HashMap<UUID, Consumer<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Consumer<ObjectMap<Integer>>[]>();
|
||||||
private String name;
|
private String name;
|
||||||
private ObjectMap<String> info;
|
private ObjectMap<String> info;
|
||||||
private boolean recycle;
|
private boolean recycle;
|
||||||
@ -33,8 +33,8 @@ public class PacketExDeleteServer implements PacketObjectIn<Integer>, PacketObje
|
|||||||
* @param callback Callbacks
|
* @param callback Callbacks
|
||||||
*/
|
*/
|
||||||
@SafeVarargs
|
@SafeVarargs
|
||||||
public PacketExDeleteServer(String name, ObjectMap<String> info, boolean recycle, Callback<ObjectMap<Integer>>... callback) {
|
public PacketExDeleteServer(String name, ObjectMap<String> info, boolean recycle, Consumer<ObjectMap<Integer>>... callback) {
|
||||||
if (Util.isNull(name, info, callback)) throw new NullPointerException();
|
Util.nullpo(name, info, callback);
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.info = info;
|
this.info = info;
|
||||||
this.recycle = recycle;
|
this.recycle = recycle;
|
||||||
@ -58,7 +58,7 @@ public class PacketExDeleteServer implements PacketObjectIn<Integer>, PacketObje
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
||||||
for (Callback<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.run(data);
|
for (Consumer<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data);
|
||||||
callbacks.remove(data.getUUID(0x0000));
|
callbacks.remove(data.getUUID(0x0000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
@ -10,12 +9,13 @@ import net.ME1312.SubData.Server.SubDataClient;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Disconnect External Player Packet
|
* Disconnect External Player Packet
|
||||||
*/
|
*/
|
||||||
public class PacketExDisconnectPlayer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
public class PacketExDisconnectPlayer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
||||||
private static HashMap<UUID, Callback<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Callback<ObjectMap<Integer>>[]>();
|
private static HashMap<UUID, Consumer<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Consumer<ObjectMap<Integer>>[]>();
|
||||||
private List<UUID> players;
|
private List<UUID> players;
|
||||||
private String reason;
|
private String reason;
|
||||||
private UUID id;
|
private UUID id;
|
||||||
@ -33,8 +33,8 @@ public class PacketExDisconnectPlayer implements PacketObjectIn<Integer>, Packet
|
|||||||
* @param callback Callbacks
|
* @param callback Callbacks
|
||||||
*/
|
*/
|
||||||
@SafeVarargs
|
@SafeVarargs
|
||||||
public PacketExDisconnectPlayer(List<UUID> players, String reason, Callback<ObjectMap<Integer>>... callback) {
|
public PacketExDisconnectPlayer(List<UUID> players, String reason, Consumer<ObjectMap<Integer>>... callback) {
|
||||||
if (Util.isNull(players, callback)) throw new NullPointerException();
|
Util.nullpo(players, callback);
|
||||||
this.players = players;
|
this.players = players;
|
||||||
this.reason = reason;
|
this.reason = reason;
|
||||||
this.id = Util.getNew(callbacks.keySet(), UUID::randomUUID);
|
this.id = Util.getNew(callbacks.keySet(), UUID::randomUUID);
|
||||||
@ -52,7 +52,7 @@ public class PacketExDisconnectPlayer implements PacketObjectIn<Integer>, Packet
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
||||||
for (Callback<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.run(data);
|
for (Consumer<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data);
|
||||||
callbacks.remove(data.getUUID(0x0000));
|
callbacks.remove(data.getUUID(0x0000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.UniversalFile;
|
import net.ME1312.Galaxi.Library.Directories;
|
||||||
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.Library.DataSize;
|
import net.ME1312.SubData.Server.Library.DataSize;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketIn;
|
import net.ME1312.SubData.Server.Protocol.PacketIn;
|
||||||
@ -45,12 +46,12 @@ public class PacketExDownloadTemplates implements PacketIn, PacketStreamOut {
|
|||||||
public void send(SubDataClient client, OutputStream stream) throws Throwable {
|
public void send(SubDataClient client, OutputStream stream) throws Throwable {
|
||||||
try {
|
try {
|
||||||
if (client.getBlockSize() < DataSize.MBB) client.tempBlockSize(DataSize.MBB);
|
if (client.getBlockSize() < DataSize.MBB) client.tempBlockSize(DataSize.MBB);
|
||||||
HashMap<String, ServerTemplate> map = Util.getDespiteException(() -> Util.reflect(ExternalSubCreator.class.getDeclaredField("templates"), ((ExternalHost) client.getHandler()).getCreator()), new HashMap<>());
|
HashMap<String, ServerTemplate> map = Try.all.getOrSupply(() -> Util.reflect(ExternalSubCreator.class.getDeclaredField("templates"), ((ExternalHost) client.getHandler()).getCreator()), HashMap::new);
|
||||||
File dir = new UniversalFile(plugin.dir, "SubServers:Templates");
|
File dir = new File(plugin.dir, "SubServers/Templates");
|
||||||
ZipOutputStream zip = new ZipOutputStream(stream);
|
ZipOutputStream zip = new ZipOutputStream(stream);
|
||||||
|
|
||||||
byte[] buffer = new byte[4096];
|
byte[] buffer = new byte[4096];
|
||||||
for (String file : Util.searchDirectory(dir)) {
|
for (String file : Directories.search(dir)) {
|
||||||
int index = file.indexOf(File.separatorChar);
|
int index = file.indexOf(File.separatorChar);
|
||||||
if (index != -1 && !map.containsKey(file.substring(0, index).toLowerCase())) {
|
if (index != -1 && !map.containsKey(file.substring(0, index).toLowerCase())) {
|
||||||
|
|
||||||
@ -67,7 +68,7 @@ public class PacketExDownloadTemplates implements PacketIn, PacketStreamOut {
|
|||||||
}
|
}
|
||||||
zip.close();
|
zip.close();
|
||||||
|
|
||||||
Util.isException(() -> Util.reflect(ExternalSubCreator.class.getDeclaredField("enableRT"), host.getCreator(), true));
|
Try.all.run(() -> Util.reflect(ExternalSubCreator.class.getDeclaredField("enableRT"), host.getCreator(), true));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Logger.get("SubData").info("Problem encoding template files for Host: " + host.getName());
|
Logger.get("SubData").info("Problem encoding template files for Host: " + host.getName());
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
@ -10,12 +9,13 @@ import net.ME1312.SubData.Server.SubDataClient;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Message External Player Packet
|
* Message External Player Packet
|
||||||
*/
|
*/
|
||||||
public class PacketExMessagePlayer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
public class PacketExMessagePlayer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
||||||
private static HashMap<UUID, Callback<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Callback<ObjectMap<Integer>>[]>();
|
private static HashMap<UUID, Consumer<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Consumer<ObjectMap<Integer>>[]>();
|
||||||
private List<UUID> players;
|
private List<UUID> players;
|
||||||
private List<String> legacy, raw;
|
private List<String> legacy, raw;
|
||||||
private UUID id;
|
private UUID id;
|
||||||
@ -34,7 +34,7 @@ public class PacketExMessagePlayer implements PacketObjectIn<Integer>, PacketObj
|
|||||||
* @param callback Callbacks
|
* @param callback Callbacks
|
||||||
*/
|
*/
|
||||||
@SafeVarargs
|
@SafeVarargs
|
||||||
public PacketExMessagePlayer(List<UUID> players, List<String> legacy, List<String> raw, Callback<ObjectMap<Integer>>... callback) {
|
public PacketExMessagePlayer(List<UUID> players, List<String> legacy, List<String> raw, Consumer<ObjectMap<Integer>>... callback) {
|
||||||
this.players = players;
|
this.players = players;
|
||||||
this.legacy = legacy;
|
this.legacy = legacy;
|
||||||
this.raw = raw;
|
this.raw = raw;
|
||||||
@ -54,7 +54,7 @@ public class PacketExMessagePlayer implements PacketObjectIn<Integer>, PacketObj
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
||||||
for (Callback<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.run(data);
|
for (Consumer<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data);
|
||||||
callbacks.remove(data.getUUID(0x0000));
|
callbacks.remove(data.getUUID(0x0000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
@ -9,12 +8,13 @@ import net.ME1312.SubData.Server.SubDataClient;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create Server External Host Packet
|
* Create Server External Host Packet
|
||||||
*/
|
*/
|
||||||
public class PacketExRemoveServer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
public class PacketExRemoveServer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
||||||
private static HashMap<UUID, Callback<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Callback<ObjectMap<Integer>>[]>();
|
private static HashMap<UUID, Consumer<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Consumer<ObjectMap<Integer>>[]>();
|
||||||
private String name;
|
private String name;
|
||||||
private UUID tracker;
|
private UUID tracker;
|
||||||
|
|
||||||
@ -30,8 +30,8 @@ public class PacketExRemoveServer implements PacketObjectIn<Integer>, PacketObje
|
|||||||
* @param callback Callbacks
|
* @param callback Callbacks
|
||||||
*/
|
*/
|
||||||
@SafeVarargs
|
@SafeVarargs
|
||||||
public PacketExRemoveServer(String name, Callback<ObjectMap<Integer>>... callback) {
|
public PacketExRemoveServer(String name, Consumer<ObjectMap<Integer>>... callback) {
|
||||||
if (Util.isNull(name, callback)) throw new NullPointerException();
|
Util.nullpo(name, callback);
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.tracker = Util.getNew(callbacks.keySet(), UUID::randomUUID);
|
this.tracker = Util.getNew(callbacks.keySet(), UUID::randomUUID);
|
||||||
callbacks.put(tracker, callback);
|
callbacks.put(tracker, callback);
|
||||||
@ -47,7 +47,7 @@ public class PacketExRemoveServer implements PacketObjectIn<Integer>, PacketObje
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
||||||
for (Callback<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.run(data);
|
for (Consumer<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data);
|
||||||
callbacks.remove(data.getUUID(0x0000));
|
callbacks.remove(data.getUUID(0x0000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ public class PacketExSyncPlayer implements PacketObjectIn<Integer>, PacketObject
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketExSyncPlayer(SubProxy plugin) {
|
public PacketExSyncPlayer(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
@ -10,12 +9,13 @@ import net.ME1312.SubData.Server.SubDataClient;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transfer External Player Packet
|
* Transfer External Player Packet
|
||||||
*/
|
*/
|
||||||
public class PacketExTransferPlayer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
public class PacketExTransferPlayer implements PacketObjectIn<Integer>, PacketObjectOut<Integer> {
|
||||||
private static HashMap<UUID, Callback<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Callback<ObjectMap<Integer>>[]>();
|
private static HashMap<UUID, Consumer<ObjectMap<Integer>>[]> callbacks = new HashMap<UUID, Consumer<ObjectMap<Integer>>[]>();
|
||||||
private List<UUID> players;
|
private List<UUID> players;
|
||||||
private String server;
|
private String server;
|
||||||
private UUID id;
|
private UUID id;
|
||||||
@ -33,8 +33,8 @@ public class PacketExTransferPlayer implements PacketObjectIn<Integer>, PacketOb
|
|||||||
* @param callback Callbacks
|
* @param callback Callbacks
|
||||||
*/
|
*/
|
||||||
@SafeVarargs
|
@SafeVarargs
|
||||||
public PacketExTransferPlayer(List<UUID> players, String server, Callback<ObjectMap<Integer>>... callback) {
|
public PacketExTransferPlayer(List<UUID> players, String server, Consumer<ObjectMap<Integer>>... callback) {
|
||||||
if (Util.isNull(players, server, callback)) throw new NullPointerException();
|
Util.nullpo(players, server, callback);
|
||||||
this.players = players;
|
this.players = players;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.id = Util.getNew(callbacks.keySet(), UUID::randomUUID);
|
this.id = Util.getNew(callbacks.keySet(), UUID::randomUUID);
|
||||||
@ -52,7 +52,7 @@ public class PacketExTransferPlayer implements PacketObjectIn<Integer>, PacketOb
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
||||||
for (Callback<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.run(data);
|
for (Consumer<ObjectMap<Integer>> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data);
|
||||||
callbacks.remove(data.getUUID(0x0000));
|
callbacks.remove(data.getUUID(0x0000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.UniversalFile;
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
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.PacketOut;
|
import net.ME1312.SubData.Server.Protocol.PacketOut;
|
||||||
@ -37,13 +37,13 @@ public class PacketExUploadTemplates implements PacketObjectIn<Integer>, PacketO
|
|||||||
@Override
|
@Override
|
||||||
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
public void receive(SubDataClient client, ObjectMap<Integer> data) {
|
||||||
if (client.getHandler() != null && client.getHandler() instanceof ExternalHost) {
|
if (client.getHandler() != null && client.getHandler() instanceof ExternalHost) {
|
||||||
HashMap<String, SubCreator.ServerTemplate> map = Util.getDespiteException(() -> Util.reflect(ExternalSubCreator.class.getDeclaredField("templates"), ((ExternalHost) client.getHandler()).getCreator()), new HashMap<>());
|
HashMap<String, SubCreator.ServerTemplate> map = Try.all.get(() -> Util.reflect(ExternalSubCreator.class.getDeclaredField("templates"), ((ExternalHost) client.getHandler()).getCreator()), new HashMap<>());
|
||||||
UniversalFile templatedir = new UniversalFile(plugin.dir, "SubServers:Cache:Remote:Templates");
|
File templatedir = new File(plugin.dir, "SubServers/Cache/Remote/Templates");
|
||||||
ObjectMap<String> templates = new ObjectMap<>((Map<String, ?>) data.getObject(0x0000));
|
ObjectMap<String> templates = new ObjectMap<>((Map<String, ?>) data.getObject(0x0000));
|
||||||
map.clear();
|
map.clear();
|
||||||
for (String name : templates.getKeys()) {
|
for (String name : templates.getKeys()) {
|
||||||
try {
|
try {
|
||||||
UniversalFile dir = new UniversalFile(templatedir, name);
|
File dir = new File(templatedir, name);
|
||||||
SubCreator.ServerTemplate template = Util.reflect(SubCreator.class.getDeclaredMethod("loadTemplate", String.class, boolean.class, boolean.class, String.class, File.class, ObjectMap.class, ObjectMap.class),
|
SubCreator.ServerTemplate template = Util.reflect(SubCreator.class.getDeclaredMethod("loadTemplate", String.class, boolean.class, boolean.class, String.class, File.class, ObjectMap.class, ObjectMap.class),
|
||||||
((ExternalHost) client.getHandler()).getCreator(), name, templates.getMap(name).getBoolean("enabled"), templates.getMap(name).getBoolean("internal"), templates.getMap(name).getRawString("icon"), dir,
|
((ExternalHost) client.getHandler()).getCreator(), name, templates.getMap(name).getBoolean("enabled"), templates.getMap(name).getBoolean("internal"), templates.getMap(name).getRawString("icon"), dir,
|
||||||
templates.getMap(name).getMap("build").clone(), templates.getMap(name).getMap("settings").clone());
|
templates.getMap(name).getMap("build").clone(), templates.getMap(name).getMap("settings").clone());
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.Protocol.Initial.InitialPacket;
|
import net.ME1312.SubData.Server.Protocol.Initial.InitialPacket;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
@ -30,7 +31,7 @@ public class PacketLinkExHost implements InitialPacket, PacketObjectIn<Integer>,
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketLinkExHost(SubProxy plugin) {
|
public PacketLinkExHost(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,7 +42,7 @@ public class PacketLinkExHost implements InitialPacket, PacketObjectIn<Integer>,
|
|||||||
* @param message Message
|
* @param message Message
|
||||||
*/
|
*/
|
||||||
public PacketLinkExHost(int response, String message) {
|
public PacketLinkExHost(int response, String message) {
|
||||||
if (Util.isNull(response)) throw new NullPointerException();
|
Util.nullpo(response);
|
||||||
this.response = response;
|
this.response = response;
|
||||||
this.message = message;
|
this.message = message;
|
||||||
}
|
}
|
||||||
@ -62,7 +63,7 @@ public class PacketLinkExHost implements InitialPacket, PacketObjectIn<Integer>,
|
|||||||
Host host = hosts.get(data.getRawString(0x0000).toLowerCase());
|
Host host = hosts.get(data.getRawString(0x0000).toLowerCase());
|
||||||
if (host instanceof ExternalHost) {
|
if (host instanceof ExternalHost) {
|
||||||
Integer channel = data.getInt(0x0001);
|
Integer channel = data.getInt(0x0001);
|
||||||
HashMap<Integer, SubDataClient> subdata = Util.getDespiteException(() -> Util.reflect(ExternalHost.class.getDeclaredField("subdata"), host), null);
|
HashMap<Integer, SubDataClient> subdata = Try.all.get(() -> Util.reflect(ExternalHost.class.getDeclaredField("subdata"), host));
|
||||||
if (!subdata.keySet().contains(channel) || (channel == 0 && subdata.get(0) == null)) {
|
if (!subdata.keySet().contains(channel) || (channel == 0 && subdata.get(0) == null)) {
|
||||||
((ExternalHost) host).setSubData(client, channel);
|
((ExternalHost) host).setSubData(client, channel);
|
||||||
Logger.get("SubData").info(client.getAddress().toString() + " has been defined as Host: " + host.getName() + ((channel > 0)?" [+"+channel+"]":""));
|
Logger.get("SubData").info(client.getAddress().toString() + " has been defined as Host: " + host.getName() + ((channel > 0)?" [+"+channel+"]":""));
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.Protocol.Initial.InitialPacket;
|
import net.ME1312.SubData.Server.Protocol.Initial.InitialPacket;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
@ -31,7 +32,7 @@ public class PacketLinkProxy implements InitialPacket, PacketObjectIn<Integer>,
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketLinkProxy(SubProxy plugin) {
|
public PacketLinkProxy(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,7 +73,7 @@ public class PacketLinkProxy implements InitialPacket, PacketObjectIn<Integer>,
|
|||||||
isnew = true;
|
isnew = true;
|
||||||
plugin.proxies.put(proxy.getName().toLowerCase(), proxy);
|
plugin.proxies.put(proxy.getName().toLowerCase(), proxy);
|
||||||
}
|
}
|
||||||
HashMap<Integer, SubDataClient> subdata = Util.getDespiteException(() -> Util.reflect(Proxy.class.getDeclaredField("subdata"), proxy), null);
|
HashMap<Integer, SubDataClient> subdata = Try.all.get(() -> Util.reflect(Proxy.class.getDeclaredField("subdata"), proxy));
|
||||||
if (!subdata.keySet().contains(channel) || (channel == 0 && subdata.get(0) == null)) {
|
if (!subdata.keySet().contains(channel) || (channel == 0 && subdata.get(0) == null)) {
|
||||||
proxy.setSubData(client, channel);
|
proxy.setSubData(client, channel);
|
||||||
if (isnew) plugin.getPluginManager().callEvent(new SubAddProxyEvent(proxy));
|
if (isnew) plugin.getPluginManager().callEvent(new SubAddProxyEvent(proxy));
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.SubData.Server.Library.DisconnectReason;
|
import net.ME1312.SubData.Server.Library.DisconnectReason;
|
||||||
import net.ME1312.SubData.Server.Protocol.Initial.InitialPacket;
|
import net.ME1312.SubData.Server.Protocol.Initial.InitialPacket;
|
||||||
@ -44,7 +45,7 @@ public class PacketLinkServer implements InitialPacket, PacketObjectIn<Integer>,
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketLinkServer(SubProxy plugin) {
|
public PacketLinkServer(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,7 +57,7 @@ public class PacketLinkServer implements InitialPacket, PacketObjectIn<Integer>,
|
|||||||
* @param message Message
|
* @param message Message
|
||||||
*/
|
*/
|
||||||
public PacketLinkServer(String name, int response, String message) {
|
public PacketLinkServer(String name, int response, String message) {
|
||||||
if (Util.isNull(response)) throw new NullPointerException();
|
Util.nullpo(response);
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.response = response;
|
this.response = response;
|
||||||
this.message = message;
|
this.message = message;
|
||||||
@ -137,7 +138,7 @@ public class PacketLinkServer implements InitialPacket, PacketObjectIn<Integer>,
|
|||||||
static long req = 1;
|
static long req = 1;
|
||||||
static long last = Calendar.getInstance().getTime().getTime();
|
static long last = Calendar.getInstance().getTime().getTime();
|
||||||
private void link(SubDataClient client, Server server, int channel) throws Throwable {
|
private void link(SubDataClient client, Server server, int channel) throws Throwable {
|
||||||
HashMap<Integer, SubDataClient> subdata = Util.getDespiteException(() -> Util.reflect(ServerImpl.class.getDeclaredField("subdata"), server), null);
|
HashMap<Integer, SubDataClient> subdata = Try.all.get(() -> Util.reflect(ServerImpl.class.getDeclaredField("subdata"), server));
|
||||||
if (!subdata.keySet().contains(channel) || (channel == 0 && subdata.get(0) == null)) {
|
if (!subdata.keySet().contains(channel) || (channel == 0 && subdata.get(0) == null)) {
|
||||||
server.setSubData(client, channel);
|
server.setSubData(client, channel);
|
||||||
Logger.get("SubData").info(client.getAddress().toString() + " has been defined as " + ((server instanceof SubServer) ? "SubServer" : "Server") + ": " + server.getName() + ((channel > 0)?" [+"+channel+"]":""));
|
Logger.get("SubData").info(client.getAddress().toString() + " has been defined as " + ((server instanceof SubServer) ? "SubServer" : "Server") + ": " + server.getName() + ((channel > 0)?" [+"+channel+"]":""));
|
||||||
@ -148,11 +149,11 @@ public class PacketLinkServer implements InitialPacket, PacketObjectIn<Integer>,
|
|||||||
client.sendPacket(new PacketOutExReset("Rogue SubServer Detected"));
|
client.sendPacket(new PacketOutExReset("Rogue SubServer Detected"));
|
||||||
} else {
|
} else {
|
||||||
// Drop connection if host is unavailable for rogue checking (try again later)
|
// Drop connection if host is unavailable for rogue checking (try again later)
|
||||||
Util.isException(() -> Util.reflect(SubDataClient.class.getDeclaredMethod("close", DisconnectReason.class), client, DisconnectReason.CLOSE_REQUESTED));
|
Try.all.run(() -> Util.reflect(SubDataClient.class.getDeclaredMethod("close", DisconnectReason.class), client, DisconnectReason.CLOSE_REQUESTED));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (server instanceof SubServer && !Util.getDespiteException(() -> Util.reflect(SubServerImpl.class.getDeclaredField("started"), server), true)) {
|
if (server instanceof SubServer && !Try.all.get(() -> Util.reflect(SubServerImpl.class.getDeclaredField("started"), server), true)) {
|
||||||
Util.isException(() -> Util.reflect(SubServerImpl.class.getDeclaredField("started"), server, true));
|
Try.all.run(() -> Util.reflect(SubServerImpl.class.getDeclaredField("started"), server, true));
|
||||||
SubStartedEvent event = new SubStartedEvent((SubServer) server);
|
SubStartedEvent event = new SubStartedEvent((SubServer) server);
|
||||||
ProxyServer.getInstance().getPluginManager().callEvent(event);
|
ProxyServer.getInstance().getPluginManager().callEvent(event);
|
||||||
}
|
}
|
||||||
|
@ -1,18 +1,15 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.AsyncConsolidator;
|
import net.ME1312.Galaxi.Library.AsyncConsolidator;
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Container.ContainedPair;
|
import net.ME1312.Galaxi.Library.Container.ContainedPair;
|
||||||
import net.ME1312.Galaxi.Library.Container.Container;
|
import net.ME1312.Galaxi.Library.Container.Container;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
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.Proxy;
|
import net.ME1312.SubServers.Bungee.Host.Proxy;
|
||||||
import net.ME1312.SubServers.Bungee.Host.RemotePlayer;
|
import net.ME1312.SubServers.Bungee.Host.RemotePlayer;
|
||||||
import net.ME1312.SubServers.Bungee.SubAPI;
|
import net.ME1312.SubServers.Bungee.SubAPI;
|
||||||
import net.ME1312.SubServers.Bungee.SubProxy;
|
|
||||||
|
|
||||||
import net.md_5.bungee.api.ProxyServer;
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
import net.md_5.bungee.api.chat.BaseComponent;
|
import net.md_5.bungee.api.chat.BaseComponent;
|
||||||
@ -20,6 +17,7 @@ import net.md_5.bungee.api.connection.ProxiedPlayer;
|
|||||||
import net.md_5.bungee.chat.ComponentSerializer;
|
import net.md_5.bungee.chat.ComponentSerializer;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.IntConsumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Message Player Packet
|
* Message Player Packet
|
||||||
@ -63,7 +61,7 @@ public class PacketMessagePlayer implements PacketObjectIn<Integer>, PacketObjec
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public static void run(List<UUID> ids, ContainedPair<String[], BaseComponent[][]> message, ObjectMap<Integer> data, Callback<Integer> callback) {
|
public static void run(List<UUID> ids, ContainedPair<String[], BaseComponent[][]> message, ObjectMap<Integer> data, IntConsumer callback) {
|
||||||
try {
|
try {
|
||||||
Container<Integer> failures = new Container<>(0);
|
Container<Integer> failures = new Container<>(0);
|
||||||
HashMap<Proxy, List<UUID>> requests = new HashMap<Proxy, List<UUID>>();
|
HashMap<Proxy, List<UUID>> requests = new HashMap<Proxy, List<UUID>>();
|
||||||
@ -101,10 +99,10 @@ public class PacketMessagePlayer implements PacketObjectIn<Integer>, PacketObjec
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (requests.size() == 0) {
|
if (requests.size() == 0) {
|
||||||
callback.run(failures.value);
|
callback.accept(failures.value);
|
||||||
} else {
|
} else {
|
||||||
AsyncConsolidator merge = new AsyncConsolidator(() -> {
|
AsyncConsolidator merge = new AsyncConsolidator(() -> {
|
||||||
callback.run(failures.value);
|
callback.accept(failures.value);
|
||||||
});
|
});
|
||||||
List<String> legacy, raw;
|
List<String> legacy, raw;
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
@ -129,7 +127,7 @@ public class PacketMessagePlayer implements PacketObjectIn<Integer>, PacketObjec
|
|||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
callback.run((ids == null || ids.size() == 0)? 1 : ids.size());
|
callback.accept((ids == null || ids.size() == 0)? 1 : ids.size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ public class PacketOutExRunEvent implements Listener, PacketObjectOut<Integer> {
|
|||||||
* @param plugin
|
* @param plugin
|
||||||
*/
|
*/
|
||||||
public PacketOutExRunEvent(SubProxy plugin) {
|
public PacketOutExRunEvent(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ public class PacketOutExRunEvent implements Listener, PacketObjectOut<Integer> {
|
|||||||
* @param args Arguments
|
* @param args Arguments
|
||||||
*/
|
*/
|
||||||
public PacketOutExRunEvent(Class<? extends SubEvent> event, ObjectMap<String> args) {
|
public PacketOutExRunEvent(Class<? extends SubEvent> event, ObjectMap<String> args) {
|
||||||
if (Util.isNull(event, args)) throw new NullPointerException();
|
Util.nullpo(event, args);
|
||||||
this.type = event.getSimpleName();
|
this.type = event.getSimpleName();
|
||||||
this.args = args;
|
this.args = args;
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ public class PacketRemoveServer implements PacketObjectIn<Integer>, PacketObject
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketRemoveServer(SubProxy plugin) {
|
public PacketRemoveServer(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public class PacketRestartServer implements PacketObjectIn<Integer>, PacketObjec
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketRestartServer(SubProxy plugin) {
|
public PacketRestartServer(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ public class PacketStartServer implements PacketObjectIn<Integer>, PacketObjectO
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketStartServer(SubProxy plugin) {
|
public PacketStartServer(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public class PacketStopServer implements PacketObjectIn<Integer>, PacketObjectOu
|
|||||||
* @param plugin SubPlugin
|
* @param plugin SubPlugin
|
||||||
*/
|
*/
|
||||||
public PacketStopServer(SubProxy plugin) {
|
public PacketStopServer(SubProxy plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.AsyncConsolidator;
|
import net.ME1312.Galaxi.Library.AsyncConsolidator;
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Container.Container;
|
import net.ME1312.Galaxi.Library.Container.Container;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
import net.ME1312.SubData.Server.Protocol.PacketObjectIn;
|
||||||
@ -16,6 +15,7 @@ import net.md_5.bungee.api.ProxyServer;
|
|||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.IntConsumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transfer Player Packet
|
* Transfer Player Packet
|
||||||
@ -58,7 +58,7 @@ public class PacketTransferPlayer implements PacketObjectIn<Integer>, PacketObje
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void run(List<UUID> ids, String name, Callback<Integer> callback) {
|
public static void run(List<UUID> ids, String name, IntConsumer callback) {
|
||||||
try {
|
try {
|
||||||
Container<Integer> failures = new Container<>(0);
|
Container<Integer> failures = new Container<>(0);
|
||||||
HashMap<Proxy, List<UUID>> requests = new HashMap<Proxy, List<UUID>>();
|
HashMap<Proxy, List<UUID>> requests = new HashMap<Proxy, List<UUID>>();
|
||||||
@ -81,10 +81,10 @@ public class PacketTransferPlayer implements PacketObjectIn<Integer>, PacketObje
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (requests.size() == 0) {
|
if (requests.size() == 0) {
|
||||||
callback.run(failures.value);
|
callback.accept(failures.value);
|
||||||
} else {
|
} else {
|
||||||
AsyncConsolidator merge = new AsyncConsolidator(() -> {
|
AsyncConsolidator merge = new AsyncConsolidator(() -> {
|
||||||
callback.run(failures.value);
|
callback.accept(failures.value);
|
||||||
});
|
});
|
||||||
for (Map.Entry<Proxy, List<UUID>> entry : requests.entrySet()) {
|
for (Map.Entry<Proxy, List<UUID>> entry : requests.entrySet()) {
|
||||||
merge.reserve();
|
merge.reserve();
|
||||||
@ -96,7 +96,7 @@ public class PacketTransferPlayer implements PacketObjectIn<Integer>, PacketObje
|
|||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
callback.run(-1);
|
callback.accept(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.ME1312.SubServers.Bungee.Network;
|
package net.ME1312.SubServers.Bungee.Network;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
import net.ME1312.SubData.Server.SubDataProtocol;
|
import net.ME1312.SubData.Server.SubDataProtocol;
|
||||||
import net.ME1312.SubData.Server.SubDataServer;
|
import net.ME1312.SubData.Server.SubDataServer;
|
||||||
@ -13,6 +12,7 @@ import net.ME1312.SubServers.Bungee.SubProxy;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
|
import java.util.function.Consumer;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -154,7 +154,7 @@ public class SubProtocol extends SubDataProtocol {
|
|||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
public SubDataServer open(Callback<Runnable> scheduler, Logger logger, InetAddress address, int port, String cipher) throws IOException {
|
public SubDataServer open(Consumer<Runnable> scheduler, Logger logger, InetAddress address, int port, String cipher) throws IOException {
|
||||||
SubDataServer subdata = super.open(scheduler, logger, address, port, cipher);
|
SubDataServer subdata = super.open(scheduler, logger, address, port, cipher);
|
||||||
SubProxy plugin = SubAPI.getInstance().getInternals();
|
SubProxy plugin = SubAPI.getInstance().getInternals();
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ package net.ME1312.SubServers.Bungee;
|
|||||||
|
|
||||||
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.UniversalFile;
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
import net.ME1312.SubData.Server.DataProtocol;
|
import net.ME1312.SubData.Server.DataProtocol;
|
||||||
@ -19,6 +19,7 @@ import com.google.common.collect.Range;
|
|||||||
import net.md_5.bungee.api.config.ServerInfo;
|
import net.md_5.bungee.api.config.ServerInfo;
|
||||||
import net.md_5.bungee.protocol.ProtocolConstants;
|
import net.md_5.bungee.protocol.ProtocolConstants;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
@ -93,7 +94,7 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
* @param handle Handle to Bind
|
* @param handle Handle to Bind
|
||||||
*/
|
*/
|
||||||
public void addHostDriver(Class<? extends Host> driver, String handle) {
|
public void addHostDriver(Class<? extends Host> driver, String handle) {
|
||||||
if (Util.isNull(driver, handle)) throw new NullPointerException();
|
Util.nullpo(driver, handle);
|
||||||
if (plugin.hostDrivers.keySet().contains(handle.toUpperCase().replace('-', '_').replace(' ', '_'))) throw new IllegalStateException("Driver already exists: " + handle);
|
if (plugin.hostDrivers.keySet().contains(handle.toUpperCase().replace('-', '_').replace(' ', '_'))) throw new IllegalStateException("Driver already exists: " + handle);
|
||||||
plugin.hostDrivers.put(handle.toUpperCase().replace('-', '_').replace(' ', '_'), driver);
|
plugin.hostDrivers.put(handle.toUpperCase().replace('-', '_').replace(' ', '_'), driver);
|
||||||
}
|
}
|
||||||
@ -167,7 +168,7 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
* @throws InstantiationException
|
* @throws InstantiationException
|
||||||
*/
|
*/
|
||||||
public Host addHost(UUID player, String 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, String 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();
|
Util.nullpo(driver, name, enabled, ports, log, address, directory, gitBash);
|
||||||
if (!getHostDrivers().contains(driver.toUpperCase().replace('-', '_').replace(' ', '_'))) throw new InvalidHostException("Invalid Driver for host: " + name);
|
if (!getHostDrivers().contains(driver.toUpperCase().replace('-', '_').replace(' ', '_'))) throw new InvalidHostException("Invalid Driver for host: " + name);
|
||||||
return addHost(player, plugin.hostDrivers.get(driver.toUpperCase().replace('-', '_').replace(' ', '_')), name, enabled, ports, log, address, directory, gitBash);
|
return addHost(player, plugin.hostDrivers.get(driver.toUpperCase().replace('-', '_').replace(' ', '_')), name, enabled, ports, log, address, directory, gitBash);
|
||||||
}
|
}
|
||||||
@ -212,7 +213,7 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
* @throws InstantiationException
|
* @throws 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 {
|
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();
|
Util.nullpo(driver, name, enabled, ports, log, address, directory, gitBash);
|
||||||
Host host = plugin.constructHost(driver, 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;
|
||||||
}
|
}
|
||||||
@ -263,7 +264,7 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
* @return Success Status
|
* @return Success Status
|
||||||
*/
|
*/
|
||||||
public boolean removeHost(UUID player, String name) {
|
public boolean removeHost(UUID player, String name) {
|
||||||
if (Util.isNull(name, getHost(name))) throw new NullPointerException();
|
Util.nullpo(name, getHost(name));
|
||||||
SubRemoveHostEvent event = new SubRemoveHostEvent(player, getHost(name));
|
SubRemoveHostEvent event = new SubRemoveHostEvent(player, getHost(name));
|
||||||
plugin.getPluginManager().callEvent(event);
|
plugin.getPluginManager().callEvent(event);
|
||||||
if (!event.isCancelled()) {
|
if (!event.isCancelled()) {
|
||||||
@ -294,7 +295,7 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
* @return Success Status
|
* @return Success Status
|
||||||
*/
|
*/
|
||||||
public boolean forceRemoveHost(UUID player, String name) {
|
public boolean forceRemoveHost(UUID player, String name) {
|
||||||
if (Util.isNull(name, getHost(name))) throw new NullPointerException();
|
Util.nullpo(name, getHost(name));
|
||||||
SubRemoveHostEvent event = new SubRemoveHostEvent(player, getHost(name));
|
SubRemoveHostEvent event = new SubRemoveHostEvent(player, getHost(name));
|
||||||
plugin.getPluginManager().callEvent(event);
|
plugin.getPluginManager().callEvent(event);
|
||||||
if (getHost(name).destroy()) {
|
if (getHost(name).destroy()) {
|
||||||
@ -463,7 +464,7 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
* @return Success Status
|
* @return Success Status
|
||||||
*/
|
*/
|
||||||
public boolean removeServer(UUID player, String name) {
|
public boolean removeServer(UUID player, String name) {
|
||||||
if (Util.isNull(name, getServer(name))) throw new NullPointerException();
|
Util.nullpo(name, getServer(name));
|
||||||
SubRemoveServerEvent event = new SubRemoveServerEvent(player, null, getServer(name));
|
SubRemoveServerEvent event = new SubRemoveServerEvent(player, null, getServer(name));
|
||||||
plugin.getPluginManager().callEvent(event);
|
plugin.getPluginManager().callEvent(event);
|
||||||
if (!event.isCancelled()) {
|
if (!event.isCancelled()) {
|
||||||
@ -490,7 +491,7 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
* @return Success Status
|
* @return Success Status
|
||||||
*/
|
*/
|
||||||
public boolean forceRemoveServer(UUID player, String name) {
|
public boolean forceRemoveServer(UUID player, String name) {
|
||||||
if (Util.isNull(name, getServer(name))) throw new NullPointerException();
|
Util.nullpo(name, getServer(name));
|
||||||
SubRemoveServerEvent event = new SubRemoveServerEvent(player, null, getServer(name));
|
SubRemoveServerEvent event = new SubRemoveServerEvent(player, null, getServer(name));
|
||||||
plugin.getPluginManager().callEvent(event);
|
plugin.getPluginManager().callEvent(event);
|
||||||
plugin.exServers.remove(name.toLowerCase());
|
plugin.exServers.remove(name.toLowerCase());
|
||||||
@ -599,7 +600,7 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
* @return Remote Player
|
* @return Remote Player
|
||||||
*/
|
*/
|
||||||
public RemotePlayer getRemotePlayer(String name) {
|
public RemotePlayer getRemotePlayer(String name) {
|
||||||
if (Util.isNull(name)) throw new NullPointerException();
|
Util.nullpo(name);
|
||||||
for (RemotePlayer player : plugin.rPlayers.values()) {
|
for (RemotePlayer player : plugin.rPlayers.values()) {
|
||||||
if (player.getName().equalsIgnoreCase(name)) return player;
|
if (player.getName().equalsIgnoreCase(name)) return player;
|
||||||
}
|
}
|
||||||
@ -613,7 +614,7 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
* @return Remote Player
|
* @return Remote Player
|
||||||
*/
|
*/
|
||||||
public RemotePlayer getRemotePlayer(UUID id) {
|
public RemotePlayer getRemotePlayer(UUID id) {
|
||||||
if (Util.isNull(id)) throw new NullPointerException();
|
Util.nullpo(id);
|
||||||
return plugin.rPlayers.getOrDefault(id, null);
|
return plugin.rPlayers.getOrDefault(id, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -625,7 +626,7 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
* @param value Lang Value
|
* @param value Lang Value
|
||||||
*/
|
*/
|
||||||
public void setLang(String channel, String key, String value) {
|
public void setLang(String channel, String key, String value) {
|
||||||
if (Util.isNull(channel, key, value)) throw new NullPointerException();
|
Util.nullpo(channel, key, value);
|
||||||
LinkedHashMap<String, String> map = (plugin.exLang.containsKey(channel.toLowerCase()))?plugin.exLang.get(channel.toLowerCase()):new LinkedHashMap<String, String>();
|
LinkedHashMap<String, String> map = (plugin.exLang.containsKey(channel.toLowerCase()))?plugin.exLang.get(channel.toLowerCase()):new LinkedHashMap<String, String>();
|
||||||
map.put(key, value);
|
map.put(key, value);
|
||||||
plugin.exLang.put(channel.toLowerCase(), map);
|
plugin.exLang.put(channel.toLowerCase(), map);
|
||||||
@ -685,7 +686,7 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public <R> R getObjectBySignature(String signature) {
|
public <R> R getObjectBySignature(String signature) {
|
||||||
if (Util.isNull(signature)) throw new NullPointerException();
|
Util.nullpo(signature);
|
||||||
return (R) knownSignatures.getOrDefault(signature, null);
|
return (R) knownSignatures.getOrDefault(signature, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -703,7 +704,7 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
*
|
*
|
||||||
* @return Directory
|
* @return Directory
|
||||||
*/
|
*/
|
||||||
public UniversalFile getRuntimeDirectory() {
|
public File getRuntimeDirectory() {
|
||||||
return plugin.dir;
|
return plugin.dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -743,12 +744,12 @@ public final class SubAPI implements BungeeAPI {
|
|||||||
if (GAME_VERSION == null) {
|
if (GAME_VERSION == null) {
|
||||||
if (System.getProperty("subservers.minecraft.version", "").length() > 0) {
|
if (System.getProperty("subservers.minecraft.version", "").length() > 0) {
|
||||||
return new Version[]{new Version(System.getProperty("subservers.minecraft.version"))};
|
return new Version[]{new Version(System.getProperty("subservers.minecraft.version"))};
|
||||||
} else if (Util.getDespiteException(() -> ProtocolConstants.SUPPORTED_VERSIONS != null, false)) {
|
} else if (Try.all.get(() -> ProtocolConstants.SUPPORTED_VERSIONS != null, false)) {
|
||||||
List<Version> versions = new LinkedList<Version>();
|
List<Version> versions = new LinkedList<Version>();
|
||||||
for (String version : ProtocolConstants.SUPPORTED_VERSIONS) versions.add(new Version(version));
|
for (String version : ProtocolConstants.SUPPORTED_VERSIONS) versions.add(new Version(version));
|
||||||
Collections.sort(versions);
|
Collections.sort(versions);
|
||||||
return versions.toArray(new Version[versions.size()]);
|
return versions.toArray(new Version[versions.size()]);
|
||||||
} else if (Util.getDespiteException(() -> plugin.getGameVersion() != null, false)) {
|
} else if (Try.all.get(() -> plugin.getGameVersion() != null, false)) {
|
||||||
String raw = plugin.getGameVersion();
|
String raw = plugin.getGameVersion();
|
||||||
if (raw.contains("-") || raw.contains(",")) {
|
if (raw.contains("-") || raw.contains(",")) {
|
||||||
List<Version> versions = new LinkedList<Version>();
|
List<Version> versions = new LinkedList<Version>();
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
package net.ME1312.SubServers.Bungee;
|
package net.ME1312.SubServers.Bungee;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.ReturnRunnable;
|
|
||||||
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.Galaxi.Library.Platform;
|
import net.ME1312.Galaxi.Library.Platform;
|
||||||
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
import net.ME1312.SubData.Server.ClientHandler;
|
import net.ME1312.SubData.Server.ClientHandler;
|
||||||
@ -33,6 +32,8 @@ import java.net.URL;
|
|||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plugin Command Class
|
* Plugin Command Class
|
||||||
@ -102,7 +103,7 @@ public final class SubCommand extends Command implements TabExecutor {
|
|||||||
plugin.stopListeners();
|
plugin.stopListeners();
|
||||||
plugin.getLogger().info("Closing player connections");
|
plugin.getLogger().info("Closing player connections");
|
||||||
for (ProxiedPlayer player : plugin.getPlayers()) {
|
for (ProxiedPlayer player : plugin.getPlayers()) {
|
||||||
Util.isException(() -> player.disconnect(plugin.getTranslation("restart")));
|
Try.all.run(() -> player.disconnect(plugin.getTranslation("restart")));
|
||||||
}
|
}
|
||||||
plugin.shutdown();
|
plugin.shutdown();
|
||||||
case "*":
|
case "*":
|
||||||
@ -432,7 +433,7 @@ public final class SubCommand extends Command implements TabExecutor {
|
|||||||
if (args.length > 1) {
|
if (args.length > 1) {
|
||||||
ServerSelection select = selectServers(sender, args, 1, true);
|
ServerSelection select = selectServers(sender, args, 1, true);
|
||||||
if (select.subservers.length > 0) {
|
if (select.subservers.length > 0) {
|
||||||
Callback<SubServer> starter = server -> {
|
Consumer<SubServer> starter = server -> {
|
||||||
Map<String, Server> servers = plugin.api.getServers();
|
Map<String, Server> servers = plugin.api.getServers();
|
||||||
if (!servers.keySet().contains(server.getName().toLowerCase()) || !(servers.get(server.getName().toLowerCase()) instanceof SubServer)) {
|
if (!servers.keySet().contains(server.getName().toLowerCase()) || !(servers.get(server.getName().toLowerCase()) instanceof SubServer)) {
|
||||||
sender.sendMessage("SubServers > Could not restart server: Subserver " + server.getName() + " has disappeared");
|
sender.sendMessage("SubServers > Could not restart server: Subserver " + server.getName() + " has disappeared");
|
||||||
@ -467,7 +468,7 @@ public final class SubCommand extends Command implements TabExecutor {
|
|||||||
try {
|
try {
|
||||||
server.waitFor();
|
server.waitFor();
|
||||||
Thread.sleep(100);
|
Thread.sleep(100);
|
||||||
starter.run(server);
|
starter.accept(server);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -475,7 +476,7 @@ public final class SubCommand extends Command implements TabExecutor {
|
|||||||
success++;
|
success++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
starter.run(server);
|
starter.accept(server);
|
||||||
success++;
|
success++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -583,7 +584,7 @@ public final class SubCommand extends Command implements TabExecutor {
|
|||||||
sender.sendMessage("SubServers > That template is not enabled");
|
sender.sendMessage("SubServers > That template is not enabled");
|
||||||
} else if (args.length <= 4 && plugin.hosts.get(args[2].toLowerCase()).getCreator().getTemplate(args[3].toLowerCase()).requiresVersion()) {
|
} else if (args.length <= 4 && plugin.hosts.get(args[2].toLowerCase()).getCreator().getTemplate(args[3].toLowerCase()).requiresVersion()) {
|
||||||
sender.sendMessage("SubServers > That template requires a Minecraft version to be specified");
|
sender.sendMessage("SubServers > That template requires a Minecraft version to be specified");
|
||||||
} else if (args.length > 5 && (Util.isException(() -> Integer.parseInt(args[5])) || Integer.parseInt(args[5]) <= 0 || Integer.parseInt(args[5]) > 65535)) {
|
} else if (args.length > 5 && (!Try.all.run(() -> Integer.parseInt(args[5])) || Integer.parseInt(args[5]) <= 0 || Integer.parseInt(args[5]) > 65535)) {
|
||||||
sender.sendMessage("SubServers > Invalid port number");
|
sender.sendMessage("SubServers > Invalid port number");
|
||||||
} else {
|
} else {
|
||||||
plugin.hosts.get(args[2].toLowerCase()).getCreator().create(args[1], plugin.hosts.get(args[2].toLowerCase()).getCreator().getTemplate(args[3].toLowerCase()), (args.length > 4)?new Version(args[4]):null, (args.length > 5)?Integer.parseInt(args[5]):null);
|
plugin.hosts.get(args[2].toLowerCase()).getCreator().create(args[1], plugin.hosts.get(args[2].toLowerCase()).getCreator().getTemplate(args[3].toLowerCase()), (args.length > 4)?new Version(args[4]):null, (args.length > 5)?Integer.parseInt(args[5]):null);
|
||||||
@ -877,7 +878,7 @@ public final class SubCommand extends Command implements TabExecutor {
|
|||||||
return list;
|
return list;
|
||||||
} else {
|
} else {
|
||||||
if (args[0].equals("info") || args[0].equals("status")) {
|
if (args[0].equals("info") || args[0].equals("status")) {
|
||||||
ReturnRunnable<Collection<String>> getPlayers = () -> {
|
Supplier<Collection<String>> getPlayers = () -> {
|
||||||
LinkedList<String> names = new LinkedList<String>();
|
LinkedList<String> names = new LinkedList<String>();
|
||||||
for (ProxiedPlayer player : plugin.getPlayers()) names.add(player.getName());
|
for (ProxiedPlayer player : plugin.getPlayers()) names.add(player.getName());
|
||||||
for (RemotePlayer player : plugin.api.getRemotePlayers().values()) if (!names.contains(player.getName())) names.add(player.getName());
|
for (RemotePlayer player : plugin.api.getRemotePlayers().values()) if (!names.contains(player.getName())) names.add(player.getName());
|
||||||
@ -917,7 +918,7 @@ public final class SubCommand extends Command implements TabExecutor {
|
|||||||
if (!list.contains(server.getName()) && server.getName().toLowerCase().startsWith(last))
|
if (!list.contains(server.getName()) && server.getName().toLowerCase().startsWith(last))
|
||||||
list.add(Last + server.getName().substring(last.length()));
|
list.add(Last + server.getName().substring(last.length()));
|
||||||
}
|
}
|
||||||
for (String player : getPlayers.run()) {
|
for (String player : getPlayers.get()) {
|
||||||
if (!list.contains(player) && player.toLowerCase().startsWith(last))
|
if (!list.contains(player) && player.toLowerCase().startsWith(last))
|
||||||
list.add(Last + player.substring(last.length()));
|
list.add(Last + player.substring(last.length()));
|
||||||
}
|
}
|
||||||
@ -958,8 +959,10 @@ public final class SubCommand extends Command implements TabExecutor {
|
|||||||
list.add(Last + server.getName().substring(last.length()));
|
list.add(Last + server.getName().substring(last.length()));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "u":
|
||||||
|
case "user":
|
||||||
case "player":
|
case "player":
|
||||||
for (String player : getPlayers.run()) {
|
for (String player : getPlayers.get()) {
|
||||||
if (player.toLowerCase().startsWith(last))
|
if (player.toLowerCase().startsWith(last))
|
||||||
list.add(Last + player.substring(last.length()));
|
list.add(Last + player.substring(last.length()));
|
||||||
}
|
}
|
||||||
@ -1072,7 +1075,7 @@ public final class SubCommand extends Command implements TabExecutor {
|
|||||||
return Collections.singletonList("[Version]");
|
return Collections.singletonList("[Version]");
|
||||||
} else if (args.length == 6) {
|
} else if (args.length == 6) {
|
||||||
if (last.length() > 0) {
|
if (last.length() > 0) {
|
||||||
if (Util.isException(() -> Integer.parseInt(last)) || Integer.parseInt(last) <= 0 || Integer.parseInt(last) > 65535) {
|
if (!Try.all.run(() -> Integer.parseInt(last)) || Integer.parseInt(last) <= 0 || Integer.parseInt(last) > 65535) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,9 @@ package net.ME1312.SubServers.Bungee;
|
|||||||
import net.ME1312.Galaxi.Library.Config.YAMLConfig;
|
import net.ME1312.Galaxi.Library.Config.YAMLConfig;
|
||||||
import net.ME1312.Galaxi.Library.Config.YAMLSection;
|
import net.ME1312.Galaxi.Library.Config.YAMLSection;
|
||||||
import net.ME1312.Galaxi.Library.Container.Container;
|
import net.ME1312.Galaxi.Library.Container.Container;
|
||||||
|
import net.ME1312.Galaxi.Library.Directories;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
import net.ME1312.Galaxi.Library.UniversalFile;
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
import net.ME1312.SubData.Server.ClientHandler;
|
import net.ME1312.SubData.Server.ClientHandler;
|
||||||
@ -81,7 +82,7 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
private final HashMap<UUID, FallbackState> fallback = new HashMap<UUID, FallbackState>();
|
private final HashMap<UUID, FallbackState> fallback = new HashMap<UUID, FallbackState>();
|
||||||
|
|
||||||
public final PrintStream out;
|
public final PrintStream out;
|
||||||
public final UniversalFile dir = new UniversalFile(new File(System.getProperty("user.dir")));
|
public final File dir = new File(System.getProperty("user.dir"));
|
||||||
public YAMLConfig config;
|
public YAMLConfig config;
|
||||||
public YAMLConfig servers;
|
public YAMLConfig servers;
|
||||||
private YAMLConfig bungee;
|
private YAMLConfig bungee;
|
||||||
@ -111,110 +112,110 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
this.isPatched = isPatched;
|
this.isPatched = isPatched;
|
||||||
|
|
||||||
Logger.get("SubServers").info("Loading SubServers.Bungee v" + version.toString() + " Libraries (for Minecraft " + api.getGameVersion()[api.getGameVersion().length - 1] + ")");
|
Logger.get("SubServers").info("Loading SubServers.Bungee v" + version.toString() + " Libraries (for Minecraft " + api.getGameVersion()[api.getGameVersion().length - 1] + ")");
|
||||||
Util.isException(() -> new RemotePlayer(null)); // runs <clinit>
|
Try.all.run(() -> new RemotePlayer(null)); // runs <clinit>
|
||||||
|
|
||||||
this.out = out;
|
this.out = out;
|
||||||
if (!(new UniversalFile(dir, "config.yml").exists())) {
|
if (!(new File(dir, "config.yml").exists())) {
|
||||||
Util.copyFromJar(SubProxy.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/bungee.yml", new UniversalFile(dir, "config.yml").getPath());
|
Util.copyFromJar(SubProxy.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/bungee.yml", new File(dir, "config.yml").getPath());
|
||||||
YAMLConfig tmp = new YAMLConfig(new UniversalFile("config.yml"));
|
YAMLConfig tmp = new YAMLConfig(new File("config.yml"));
|
||||||
tmp.get().set("stats", UUID.randomUUID().toString());
|
tmp.get().set("stats", UUID.randomUUID().toString());
|
||||||
tmp.save();
|
tmp.save();
|
||||||
Logger.get("SubServers").info("Created ./config.yml");
|
Logger.get("SubServers").info("Created ./config.yml");
|
||||||
}
|
}
|
||||||
bungee = new YAMLConfig(new UniversalFile(dir, "config.yml"));
|
bungee = new YAMLConfig(new File(dir, "config.yml"));
|
||||||
|
|
||||||
UniversalFile dir = new UniversalFile(this.dir, "SubServers");
|
File dir = new File(this.dir, "SubServers");
|
||||||
dir.mkdir();
|
dir.mkdir();
|
||||||
|
|
||||||
ConfigUpdater.updateConfig(new UniversalFile(dir, "config.yml"));
|
ConfigUpdater.updateConfig(new File(dir, "config.yml"));
|
||||||
config = new YAMLConfig(new UniversalFile(dir, "config.yml"));
|
config = new YAMLConfig(new File(dir, "config.yml"));
|
||||||
|
|
||||||
ConfigUpdater.updateServers(new UniversalFile(dir, "servers.yml"));
|
ConfigUpdater.updateServers(new File(dir, "servers.yml"));
|
||||||
servers = new YAMLConfig(new UniversalFile(dir, "servers.yml"));
|
servers = new YAMLConfig(new File(dir, "servers.yml"));
|
||||||
|
|
||||||
ConfigUpdater.updateLang(new UniversalFile(dir, "lang.yml"));
|
ConfigUpdater.updateLang(new File(dir, "lang.yml"));
|
||||||
lang = new YAMLConfig(new UniversalFile(dir, "lang.yml"));
|
lang = new YAMLConfig(new File(dir, "lang.yml"));
|
||||||
|
|
||||||
if (!(new UniversalFile(dir, "Templates").exists())) {
|
if (!(new File(dir, "Templates").exists())) {
|
||||||
new UniversalFile(dir, "Templates").mkdirs();
|
new File(dir, "Templates").mkdirs();
|
||||||
|
|
||||||
Util.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/vanilla.zip"), new UniversalFile(dir, "Templates"));
|
Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/vanilla.zip"), new File(dir, "Templates"));
|
||||||
Logger.get("SubServers").info("Created ./SubServers/Templates/Vanilla");
|
Logger.get("SubServers").info("Created ./SubServers/Templates/Vanilla");
|
||||||
|
|
||||||
Util.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/spigot.zip"), new UniversalFile(dir, "Templates"));
|
Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/spigot.zip"), new File(dir, "Templates"));
|
||||||
Logger.get("SubServers").info("Created ./SubServers/Templates/Spigot");
|
Logger.get("SubServers").info("Created ./SubServers/Templates/Spigot");
|
||||||
|
|
||||||
Util.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/paper.zip"), new UniversalFile(dir, "Templates"));
|
Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/paper.zip"), new File(dir, "Templates"));
|
||||||
Logger.get("SubServers").info("Created ./SubServers/Templates/Paper");
|
Logger.get("SubServers").info("Created ./SubServers/Templates/Paper");
|
||||||
|
|
||||||
Util.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/purpur.zip"), new UniversalFile(dir, "Templates"));
|
Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/purpur.zip"), new File(dir, "Templates"));
|
||||||
Logger.get("SubServers").info("Created ./SubServers/Templates/Purpur");
|
Logger.get("SubServers").info("Created ./SubServers/Templates/Purpur");
|
||||||
|
|
||||||
Util.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/forge.zip"), new UniversalFile(dir, "Templates"));
|
Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/forge.zip"), new File(dir, "Templates"));
|
||||||
Logger.get("SubServers").info("Created ./SubServers/Templates/Forge");
|
Logger.get("SubServers").info("Created ./SubServers/Templates/Forge");
|
||||||
|
|
||||||
Util.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/sponge.zip"), new UniversalFile(dir, "Templates"));
|
Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/sponge.zip"), new File(dir, "Templates"));
|
||||||
Logger.get("SubServers").info("Created ./SubServers/Templates/Sponge");
|
Logger.get("SubServers").info("Created ./SubServers/Templates/Sponge");
|
||||||
} else {
|
} else {
|
||||||
long stamp = Math.round(Math.random() * 100000);
|
long stamp = Math.round(Math.random() * 100000);
|
||||||
Version version = new Version("2.16a+");
|
Version version = new Version("2.16a+");
|
||||||
|
|
||||||
if (new UniversalFile(dir, "Templates:Vanilla:template.yml").exists() && ((new YAMLConfig(new UniversalFile(dir, "Templates:Vanilla:template.yml"))).get().getVersion("Version", version)).compareTo(version) != 0) {
|
if (new File(dir, "Templates/Vanilla/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Vanilla/template.yml"))).get().getVersion("Version", version)).compareTo(version) != 0) {
|
||||||
Files.move(new UniversalFile(dir, "Templates:Vanilla").toPath(), new UniversalFile(dir, "Templates:Vanilla." + stamp + ".x").toPath());
|
Files.move(new File(dir, "Templates/Vanilla").toPath(), new File(dir, "Templates/Vanilla." + stamp + ".x").toPath());
|
||||||
Util.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/vanilla.zip"), new UniversalFile(dir, "Templates"));
|
Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/vanilla.zip"), new File(dir, "Templates"));
|
||||||
Logger.get("SubServers").info("Updated ./SubServers/Templates/Vanilla");
|
Logger.get("SubServers").info("Updated ./SubServers/Templates/Vanilla");
|
||||||
}
|
}
|
||||||
if (new UniversalFile(dir, "Templates:Spigot:template.yml").exists() && ((new YAMLConfig(new UniversalFile(dir, "Templates:Spigot:template.yml"))).get().getVersion("Version", version)).compareTo(version) != 0) {
|
if (new File(dir, "Templates/Spigot/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Spigot/template.yml"))).get().getVersion("Version", version)).compareTo(version) != 0) {
|
||||||
Files.move(new UniversalFile(dir, "Templates:Spigot").toPath(), new UniversalFile(dir, "Templates:Spigot." + stamp + ".x").toPath());
|
Files.move(new File(dir, "Templates/Spigot").toPath(), new File(dir, "Templates/Spigot." + stamp + ".x").toPath());
|
||||||
Util.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/spigot.zip"), new UniversalFile(dir, "Templates"));
|
Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/spigot.zip"), new File(dir, "Templates"));
|
||||||
Logger.get("SubServers").info("Updated ./SubServers/Templates/Spigot");
|
Logger.get("SubServers").info("Updated ./SubServers/Templates/Spigot");
|
||||||
}
|
}
|
||||||
if (new UniversalFile(dir, "Templates:Paper:template.yml").exists() && ((new YAMLConfig(new UniversalFile(dir, "Templates:Paper:template.yml"))).get().getVersion("Version", version)).compareTo(version) != 0) {
|
if (new File(dir, "Templates/Paper/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Paper/template.yml"))).get().getVersion("Version", version)).compareTo(version) != 0) {
|
||||||
Files.move(new UniversalFile(dir, "Templates:Paper").toPath(), new UniversalFile(dir, "Templates:Paper." + stamp + ".x").toPath());
|
Files.move(new File(dir, "Templates/Paper").toPath(), new File(dir, "Templates/Paper." + stamp + ".x").toPath());
|
||||||
Util.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/paper.zip"), new UniversalFile(dir, "Templates"));
|
Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/paper.zip"), new File(dir, "Templates"));
|
||||||
Logger.get("SubServers").info("Updated ./SubServers/Templates/Paper");
|
Logger.get("SubServers").info("Updated ./SubServers/Templates/Paper");
|
||||||
}
|
}
|
||||||
if (new UniversalFile(dir, "Templates:Purpur:template.yml").exists() && ((new YAMLConfig(new UniversalFile(dir, "Templates:Purpur:template.yml"))).get().getVersion("Version", version)).compareTo(version) != 0) {
|
if (new File(dir, "Templates/Purpur/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Purpur/template.yml"))).get().getVersion("Version", version)).compareTo(version) != 0) {
|
||||||
Files.move(new UniversalFile(dir, "Templates:Purpur").toPath(), new UniversalFile(dir, "Templates:Purpur." + stamp + ".x").toPath());
|
Files.move(new File(dir, "Templates/Purpur").toPath(), new File(dir, "Templates/Purpur." + stamp + ".x").toPath());
|
||||||
Util.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/purpur.zip"), new UniversalFile(dir, "Templates"));
|
Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/purpur.zip"), new File(dir, "Templates"));
|
||||||
Logger.get("SubServers").info("Updated ./SubServers/Templates/Purpur");
|
Logger.get("SubServers").info("Updated ./SubServers/Templates/Purpur");
|
||||||
}
|
}
|
||||||
if (new UniversalFile(dir, "Templates:Forge:template.yml").exists() && ((new YAMLConfig(new UniversalFile(dir, "Templates:Forge:template.yml"))).get().getVersion("Version", version)).compareTo(version) != 0) {
|
if (new File(dir, "Templates/Forge/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Forge/template.yml"))).get().getVersion("Version", version)).compareTo(version) != 0) {
|
||||||
Files.move(new UniversalFile(dir, "Templates:Forge").toPath(), new UniversalFile(dir, "Templates:Forge." + stamp + ".x").toPath());
|
Files.move(new File(dir, "Templates/Forge").toPath(), new File(dir, "Templates/Forge." + stamp + ".x").toPath());
|
||||||
Util.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/forge.zip"), new UniversalFile(dir, "Templates"));
|
Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/forge.zip"), new File(dir, "Templates"));
|
||||||
Logger.get("SubServers").info("Updated ./SubServers/Templates/Forge");
|
Logger.get("SubServers").info("Updated ./SubServers/Templates/Forge");
|
||||||
}
|
}
|
||||||
if (new UniversalFile(dir, "Templates:Sponge:template.yml").exists() && ((new YAMLConfig(new UniversalFile(dir, "Templates:Sponge:template.yml"))).get().getVersion("Version", version)).compareTo(version) != 0) {
|
if (new File(dir, "Templates/Sponge/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Sponge/template.yml"))).get().getVersion("Version", version)).compareTo(version) != 0) {
|
||||||
Files.move(new UniversalFile(dir, "Templates:Sponge").toPath(), new UniversalFile(dir, "Templates:Sponge." + stamp + ".x").toPath());
|
Files.move(new File(dir, "Templates/Sponge").toPath(), new File(dir, "Templates/Sponge." + stamp + ".x").toPath());
|
||||||
Util.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/sponge.zip"), new UniversalFile(dir, "Templates"));
|
Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/sponge.zip"), new File(dir, "Templates"));
|
||||||
Logger.get("SubServers").info("Updated ./SubServers/Templates/Sponge");
|
Logger.get("SubServers").info("Updated ./SubServers/Templates/Sponge");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Runnable clean = () -> {
|
Runnable clean = () -> {
|
||||||
try {
|
try {
|
||||||
if (new UniversalFile(dir, "Recently Deleted").exists()) {
|
if (new File(dir, "Recently Deleted").exists()) {
|
||||||
int f = new UniversalFile(dir, "Recently Deleted").listFiles().length;
|
int f = new File(dir, "Recently Deleted").listFiles().length;
|
||||||
for (File file : new UniversalFile(dir, "Recently Deleted").listFiles()) {
|
for (File file : new File(dir, "Recently Deleted").listFiles()) {
|
||||||
try {
|
try {
|
||||||
if (file.isDirectory()) {
|
if (file.isDirectory()) {
|
||||||
if (new UniversalFile(dir, "Recently Deleted:" + file.getName() + ":info.json").exists()) {
|
if (new File(dir, "Recently Deleted/" + file.getName() + "/info.json").exists()) {
|
||||||
FileReader reader = new FileReader(new UniversalFile(dir, "Recently Deleted:" + file.getName() + ":info.json"));
|
FileReader reader = new FileReader(new File(dir, "Recently Deleted/" + file.getName() + "/info.json"));
|
||||||
YAMLSection info = new YAMLSection(new Gson().fromJson(Util.readAll(reader), Map.class));
|
YAMLSection info = new YAMLSection(new Gson().fromJson(Util.readAll(reader), Map.class));
|
||||||
reader.close();
|
reader.close();
|
||||||
if (info.contains("Timestamp")) {
|
if (info.contains("Timestamp")) {
|
||||||
if (TimeUnit.MILLISECONDS.toDays(Calendar.getInstance().getTime().getTime() - info.getLong("Timestamp")) >= 7) {
|
if (TimeUnit.MILLISECONDS.toDays(Calendar.getInstance().getTime().getTime() - info.getLong("Timestamp")) >= 7) {
|
||||||
Util.deleteDirectory(file);
|
Directories.delete(file);
|
||||||
f--;
|
f--;
|
||||||
Logger.get("SubServers").info("Removed ./SubServers/Recently Deleted/" + file.getName());
|
Logger.get("SubServers").info("Removed ./SubServers/Recently Deleted/" + file.getName());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Util.deleteDirectory(file);
|
Directories.delete(file);
|
||||||
f--;
|
f--;
|
||||||
Logger.get("SubServers").info("Removed ./SubServers/Recently Deleted/" + file.getName());
|
Logger.get("SubServers").info("Removed ./SubServers/Recently Deleted/" + file.getName());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Util.deleteDirectory(file);
|
Directories.delete(file);
|
||||||
f--;
|
f--;
|
||||||
Logger.get("SubServers").info("Removed ./SubServers/Recently Deleted/" + file.getName());
|
Logger.get("SubServers").info("Removed ./SubServers/Recently Deleted/" + file.getName());
|
||||||
}
|
}
|
||||||
@ -230,7 +231,7 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (f <= 0) {
|
if (f <= 0) {
|
||||||
Files.delete(new UniversalFile(dir, "Recently Deleted").toPath());
|
Files.delete(new File(dir, "Recently Deleted").toPath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -253,7 +254,7 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
PluginDescription description = new PluginDescription();
|
PluginDescription description = new PluginDescription();
|
||||||
description.setName("SubServers-Bungee");
|
description.setName("SubServers-Bungee");
|
||||||
description.setMain(net.ME1312.SubServers.Bungee.Library.Compatibility.Plugin.class.getCanonicalName());
|
description.setMain(net.ME1312.SubServers.Bungee.Library.Compatibility.Plugin.class.getCanonicalName());
|
||||||
description.setFile(Util.getDespiteException(() -> new File(SubProxy.class.getProtectionDomain().getCodeSource().getLocation().toURI()), null));
|
description.setFile(Try.all.get(() -> new File(SubProxy.class.getProtectionDomain().getCodeSource().getLocation().toURI())));
|
||||||
description.setVersion(version.toString());
|
description.setVersion(version.toString());
|
||||||
description.setAuthor("ME1312");
|
description.setAuthor("ME1312");
|
||||||
|
|
||||||
@ -346,9 +347,9 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
if (!status) resetDate = begin;
|
if (!status) resetDate = begin;
|
||||||
reloading = true;
|
reloading = true;
|
||||||
|
|
||||||
ConfigUpdater.updateConfig(new UniversalFile(dir, "SubServers:config.yml"));
|
ConfigUpdater.updateConfig(new File(dir, "SubServers/config.yml"));
|
||||||
ConfigUpdater.updateServers(new UniversalFile(dir, "SubServers:servers.yml"));
|
ConfigUpdater.updateServers(new File(dir, "SubServers/servers.yml"));
|
||||||
ConfigUpdater.updateLang(new UniversalFile(dir, "SubServers:lang.yml"));
|
ConfigUpdater.updateLang(new File(dir, "SubServers/lang.yml"));
|
||||||
|
|
||||||
YAMLSection prevconfig = config.get();
|
YAMLSection prevconfig = config.get();
|
||||||
config.reload();
|
config.reload();
|
||||||
@ -363,7 +364,7 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
)) {
|
)) {
|
||||||
SubDataServer subdata = this.subdata;
|
SubDataServer subdata = this.subdata;
|
||||||
subdata.close();
|
subdata.close();
|
||||||
Util.isException(subdata::waitFor);
|
Try.all.run(subdata::waitFor);
|
||||||
}
|
}
|
||||||
|
|
||||||
PacketLinkServer.strict = config.get().getMap("Settings").getBoolean("Strict-Server-Linking", true);
|
PacketLinkServer.strict = config.get().getMap("Settings").getBoolean("Strict-Server-Linking", true);
|
||||||
@ -493,7 +494,7 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
edits.set("exec", this.servers.get().getMap("Servers").getMap(name).getRawString("Executable"));
|
edits.set("exec", this.servers.get().getMap("Servers").getMap(name).getRawString("Executable"));
|
||||||
if (!this.servers.get().getMap("Servers").getMap(name).getRawString("Stop-Command").equals(server.getStopCommand()))
|
if (!this.servers.get().getMap("Servers").getMap(name).getRawString("Stop-Command").equals(server.getStopCommand()))
|
||||||
edits.set("stop-cmd", this.servers.get().getMap("Servers").getMap(name).getRawString("Stop-Command"));
|
edits.set("stop-cmd", this.servers.get().getMap("Servers").getMap(name).getRawString("Stop-Command"));
|
||||||
SubServer.StopAction action = Util.getDespiteException(() -> SubServer.StopAction.valueOf(this.servers.get().getMap("Servers").getMap(name).getRawString("Stop-Action", "NONE").toUpperCase().replace('-', '_').replace(' ', '_')), null);
|
SubServer.StopAction action = Try.all.get(() -> SubServer.StopAction.valueOf(this.servers.get().getMap("Servers").getMap(name).getRawString("Stop-Action", "NONE").toUpperCase().replace('-', '_').replace(' ', '_')));
|
||||||
if (action != null && action != server.getStopAction())
|
if (action != null && action != server.getStopAction())
|
||||||
edits.set("stop-action", action.toString());
|
edits.set("stop-action", action.toString());
|
||||||
if (this.servers.get().getMap("Servers").getMap(name).getBoolean("Restricted") != server.isRestricted())
|
if (this.servers.get().getMap("Servers").getMap(name).getBoolean("Restricted") != server.isRestricted())
|
||||||
@ -533,7 +534,7 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
if (this.servers.get().getMap("Servers").getMap(name).getBoolean("Hidden") != server.isHidden())
|
if (this.servers.get().getMap("Servers").getMap(name).getBoolean("Hidden") != server.isHidden())
|
||||||
server.setHidden(this.servers.get().getMap("Servers").getMap(name).getBoolean("Hidden"));
|
server.setHidden(this.servers.get().getMap("Servers").getMap(name).getBoolean("Hidden"));
|
||||||
} // Apply these changes regardless of reset
|
} // Apply these changes regardless of reset
|
||||||
SubServer.StopAction action = Util.getDespiteException(() -> SubServer.StopAction.valueOf(this.servers.get().getMap("Servers").getMap(name).getRawString("Stop-Action", "NONE").toUpperCase().replace('-', '_').replace(' ', '_')), null);
|
SubServer.StopAction action = Try.all.get(() -> SubServer.StopAction.valueOf(this.servers.get().getMap("Servers").getMap(name).getRawString("Stop-Action", "NONE").toUpperCase().replace('-', '_').replace(' ', '_')));
|
||||||
if (action != null && action != server.getStopAction())
|
if (action != null && action != server.getStopAction())
|
||||||
server.setStopAction(action);
|
server.setStopAction(action);
|
||||||
if (!status && this.servers.get().getMap("Servers").getMap(name).getBoolean("Run-On-Launch"))
|
if (!status && this.servers.get().getMap("Servers").getMap(name).getBoolean("Run-On-Launch"))
|
||||||
@ -629,8 +630,8 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
} else if (ciphers[0].equals("RSA") || ciphers[0].equals("RSA-2048") || ciphers[0].equals("RSA-3072") || ciphers[0].equals("RSA-4096")) {
|
} else if (ciphers[0].equals("RSA") || ciphers[0].equals("RSA-2048") || ciphers[0].equals("RSA-3072") || ciphers[0].equals("RSA-4096")) {
|
||||||
try {
|
try {
|
||||||
int length = (ciphers[0].contains("-"))?Integer.parseInt(ciphers[0].split("-")[1]):2048;
|
int length = (ciphers[0].contains("-"))?Integer.parseInt(ciphers[0].split("-")[1]):2048;
|
||||||
if (!(new UniversalFile("SubServers:Cache").exists())) new UniversalFile("SubServers:Cache").mkdirs();
|
if (!(new File("SubServers/Cache").exists())) new File("SubServers/Cache").mkdirs();
|
||||||
subprotocol.registerCipher("RSA", new RSA(length, new UniversalFile("SubServers:Cache:private.rsa.key"), new UniversalFile("SubServers:subdata.rsa.key")));
|
subprotocol.registerCipher("RSA", new RSA(length, new File("SubServers/Cache/private.rsa.key"), new File("SubServers/subdata.rsa.key")));
|
||||||
cipher = "RSA" + cipher.substring(ciphers[0].length());
|
cipher = "RSA" + cipher.substring(ciphers[0].length());
|
||||||
|
|
||||||
Logger.get("SubData").info("Encrypting SubData with RSA:");
|
Logger.get("SubData").info("Encrypting SubData with RSA:");
|
||||||
@ -873,7 +874,7 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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 {
|
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();
|
Util.nullpo(driver, name, enabled, ports, log, address, directory, gitBash);
|
||||||
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);
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -960,7 +961,7 @@ public final class SubProxy extends BungeeCommon implements Listener {
|
|||||||
lock.value = false;
|
lock.value = false;
|
||||||
if (mode) e.completeIntent(plugin);
|
if (mode) e.completeIntent(plugin);
|
||||||
}, ((InitialHandler) e.getConnection()).getHandshake().getProtocolVersion());
|
}, ((InitialHandler) e.getConnection()).getHandshake().getProtocolVersion());
|
||||||
if (!mode) while (lock.value) Util.isException(() -> Thread.sleep(4));
|
if (!mode) while (lock.value) Try.all.run(() -> Thread.sleep(4));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (dynamic) {
|
} else if (dynamic) {
|
||||||
|
@ -22,7 +22,7 @@ public class SubAddHostEvent extends Event implements SubEvent {
|
|||||||
* @param host Host to be added
|
* @param host Host to be added
|
||||||
*/
|
*/
|
||||||
public SubAddHostEvent(UUID player, String host) {
|
public SubAddHostEvent(UUID player, String host) {
|
||||||
if (Util.isNull(host)) throw new NullPointerException();
|
Util.nullpo(host);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.host = host;
|
this.host = host;
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public class SubAddProxyEvent extends Event implements SubEvent {
|
|||||||
* @param proxy Host Being Added
|
* @param proxy Host Being Added
|
||||||
*/
|
*/
|
||||||
public SubAddProxyEvent(String proxy) {
|
public SubAddProxyEvent(String proxy) {
|
||||||
if (Util.isNull(proxy)) throw new NullPointerException();
|
Util.nullpo(proxy);
|
||||||
this.proxy = proxy;
|
this.proxy = proxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ public class SubAddServerEvent extends Event implements SubEvent {
|
|||||||
* @param server Server Starting
|
* @param server Server Starting
|
||||||
*/
|
*/
|
||||||
public SubAddServerEvent(UUID player, String host, String server) {
|
public SubAddServerEvent(UUID player, String host, String server) {
|
||||||
if (Util.isNull(server)) throw new NullPointerException();
|
Util.nullpo(server);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.ME1312.SubServers.Client.Bukkit.Event;
|
package net.ME1312.SubServers.Client.Bukkit.Event;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
import net.ME1312.SubServers.Client.Bukkit.Library.SubEvent;
|
import net.ME1312.SubServers.Client.Bukkit.Library.SubEvent;
|
||||||
@ -12,6 +11,7 @@ import org.bukkit.event.HandlerList;
|
|||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Server Create Event
|
* Server Create Event
|
||||||
@ -36,7 +36,7 @@ public class SubCreateEvent extends Event implements SubEvent {
|
|||||||
* @param port Server Port Number
|
* @param port Server Port Number
|
||||||
*/
|
*/
|
||||||
public SubCreateEvent(UUID player, String host, String name, String template, Version version, int port, boolean update) {
|
public SubCreateEvent(UUID player, String host, String name, String template, Version version, int port, boolean update) {
|
||||||
if (Util.isNull(host, name, template, port)) throw new NullPointerException();
|
Util.nullpo(host, name, template, port);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.update = update;
|
this.update = update;
|
||||||
this.host = host;
|
this.host = host;
|
||||||
@ -69,10 +69,10 @@ public class SubCreateEvent extends Event implements SubEvent {
|
|||||||
*
|
*
|
||||||
* @param callback Updating Server
|
* @param callback Updating Server
|
||||||
*/
|
*/
|
||||||
public void getUpdatingServer(Callback<SubServer> callback) {
|
public void getUpdatingServer(Consumer<SubServer> callback) {
|
||||||
if (!update) {
|
if (!update) {
|
||||||
try {
|
try {
|
||||||
callback.run(null);
|
callback.accept(null);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Throwable ew = new InvocationTargetException(e);
|
Throwable ew = new InvocationTargetException(e);
|
||||||
ew.printStackTrace();
|
ew.printStackTrace();
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.ME1312.SubServers.Client.Bukkit.Event;
|
package net.ME1312.SubServers.Client.Bukkit.Event;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
import net.ME1312.SubServers.Client.Bukkit.Library.SubEvent;
|
import net.ME1312.SubServers.Client.Bukkit.Library.SubEvent;
|
||||||
@ -12,6 +11,7 @@ import org.bukkit.event.HandlerList;
|
|||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Server Created Event
|
* Server Created Event
|
||||||
@ -37,7 +37,7 @@ public class SubCreatedEvent extends Event implements SubEvent {
|
|||||||
* @param port Server Port Number
|
* @param port Server Port Number
|
||||||
*/
|
*/
|
||||||
public SubCreatedEvent(UUID player, String host, String name, String template, Version version, int port, boolean update, boolean success) {
|
public SubCreatedEvent(UUID player, String host, String name, String template, Version version, int port, boolean update, boolean success) {
|
||||||
if (Util.isNull(host, name, template, port)) throw new NullPointerException();
|
Util.nullpo(host, name, template, port);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.success = success;
|
this.success = success;
|
||||||
this.update = update;
|
this.update = update;
|
||||||
@ -80,10 +80,10 @@ public class SubCreatedEvent extends Event implements SubEvent {
|
|||||||
*
|
*
|
||||||
* @param callback Updating Server
|
* @param callback Updating Server
|
||||||
*/
|
*/
|
||||||
public void getServer(Callback<SubServer> callback) {
|
public void getServer(Consumer<SubServer> callback) {
|
||||||
if (!update && !success) {
|
if (!update && !success) {
|
||||||
try {
|
try {
|
||||||
callback.run(null);
|
callback.accept(null);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Throwable ew = new InvocationTargetException(e);
|
Throwable ew = new InvocationTargetException(e);
|
||||||
ew.printStackTrace();
|
ew.printStackTrace();
|
||||||
|
@ -28,7 +28,7 @@ public class SubEditServerEvent extends Event implements SubEvent {
|
|||||||
* @param edit Edit to make
|
* @param edit Edit to make
|
||||||
*/
|
*/
|
||||||
public SubEditServerEvent(UUID player, String server, Pair<String, ?> edit) {
|
public SubEditServerEvent(UUID player, String server, Pair<String, ?> edit) {
|
||||||
if (Util.isNull(server, edit)) throw new NullPointerException();
|
Util.nullpo(server, edit);
|
||||||
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;
|
||||||
|
@ -17,7 +17,7 @@ public class SubNetworkConnectEvent extends Event implements SubEvent {
|
|||||||
* SubData Network Connect Event
|
* SubData Network Connect Event
|
||||||
*/
|
*/
|
||||||
public SubNetworkConnectEvent(DataClient network) {
|
public SubNetworkConnectEvent(DataClient network) {
|
||||||
if (Util.isNull(network)) throw new NullPointerException();
|
Util.nullpo(network);
|
||||||
this.network = network;
|
this.network = network;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ public class SubNetworkDisconnectEvent extends Event implements SubEvent {
|
|||||||
* SubData Network Disconnect Event
|
* SubData Network Disconnect Event
|
||||||
*/
|
*/
|
||||||
public SubNetworkDisconnectEvent(DataClient network, DisconnectReason reason) {
|
public SubNetworkDisconnectEvent(DataClient network, DisconnectReason reason) {
|
||||||
if (Util.isNull(network, reason)) throw new NullPointerException();
|
Util.nullpo(network, reason);
|
||||||
this.network = network;
|
this.network = network;
|
||||||
this.reason = reason;
|
this.reason = reason;
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ public class SubRemoveHostEvent extends Event implements SubEvent {
|
|||||||
* @param host Server Starting
|
* @param host Server Starting
|
||||||
*/
|
*/
|
||||||
public SubRemoveHostEvent(UUID player, String host) {
|
public SubRemoveHostEvent(UUID player, String host) {
|
||||||
if (Util.isNull(host)) throw new NullPointerException();
|
Util.nullpo(host);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.host = host;
|
this.host = host;
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public class SubRemoveProxyEvent extends Event implements SubEvent {
|
|||||||
* @param proxy Host Being Added
|
* @param proxy Host Being Added
|
||||||
*/
|
*/
|
||||||
public SubRemoveProxyEvent(String proxy) {
|
public SubRemoveProxyEvent(String proxy) {
|
||||||
if (Util.isNull(proxy)) throw new NullPointerException();
|
Util.nullpo(proxy);
|
||||||
this.proxy = proxy;
|
this.proxy = proxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ public class SubRemoveServerEvent extends Event implements SubEvent {
|
|||||||
* @param server Server Starting
|
* @param server Server Starting
|
||||||
*/
|
*/
|
||||||
public SubRemoveServerEvent(UUID player, String host, String server) {
|
public SubRemoveServerEvent(UUID player, String host, String server) {
|
||||||
if (Util.isNull(server)) throw new NullPointerException();
|
Util.nullpo(server);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
|
@ -23,7 +23,7 @@ public class SubSendCommandEvent extends Event implements SubEvent {
|
|||||||
* @param server Server being Commanded
|
* @param server Server being Commanded
|
||||||
*/
|
*/
|
||||||
public SubSendCommandEvent(UUID player, String server, String command) {
|
public SubSendCommandEvent(UUID player, String server, String command) {
|
||||||
if (Util.isNull(server, command)) throw new NullPointerException();
|
Util.nullpo(server, command);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.command = command;
|
this.command = command;
|
||||||
|
@ -23,7 +23,7 @@ public class SubStartEvent extends Event implements SubEvent {
|
|||||||
* @param server Server Starting
|
* @param server Server Starting
|
||||||
*/
|
*/
|
||||||
public SubStartEvent(UUID player, String server) {
|
public SubStartEvent(UUID player, String server) {
|
||||||
if (Util.isNull(server)) throw new NullPointerException();
|
Util.nullpo(server);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ public class SubStartedEvent extends Event implements SubEvent {
|
|||||||
* @param server Server that Started
|
* @param server Server that Started
|
||||||
*/
|
*/
|
||||||
public SubStartedEvent(String server) {
|
public SubStartedEvent(String server) {
|
||||||
if (Util.isNull(server)) throw new NullPointerException();
|
Util.nullpo(server);
|
||||||
this.server = server;
|
this.server = server;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public class SubStopEvent extends Event implements SubEvent {
|
|||||||
* @param force If it was a Forced Shutdown
|
* @param force If it was a Forced Shutdown
|
||||||
*/
|
*/
|
||||||
public SubStopEvent(UUID player, String server, boolean force) {
|
public SubStopEvent(UUID player, String server, boolean force) {
|
||||||
if (Util.isNull(server, force)) throw new NullPointerException();
|
Util.nullpo(server, force);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.force = force;
|
this.force = force;
|
||||||
|
@ -18,7 +18,7 @@ public class SubStoppedEvent extends Event implements SubEvent {
|
|||||||
* @param server Server that Stopped
|
* @param server Server that Stopped
|
||||||
*/
|
*/
|
||||||
public SubStoppedEvent(String server) {
|
public SubStoppedEvent(String server) {
|
||||||
if (Util.isNull(server)) throw new NullPointerException();
|
Util.nullpo(server);
|
||||||
this.server = server;
|
this.server = server;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package net.ME1312.SubServers.Client.Bukkit.Graphic;
|
package net.ME1312.SubServers.Client.Bukkit.Graphic;
|
||||||
|
|
||||||
import net.ME1312.Galaxi.Library.Callback.Callback;
|
|
||||||
import net.ME1312.Galaxi.Library.Config.YAMLSection;
|
import net.ME1312.Galaxi.Library.Config.YAMLSection;
|
||||||
import net.ME1312.Galaxi.Library.Container.Container;
|
import net.ME1312.Galaxi.Library.Container.Container;
|
||||||
import net.ME1312.Galaxi.Library.Container.Value;
|
import net.ME1312.Galaxi.Library.Container.Value;
|
||||||
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
import net.ME1312.Galaxi.Library.Map.ObjectMap;
|
||||||
|
import net.ME1312.Galaxi.Library.Try;
|
||||||
import net.ME1312.Galaxi.Library.Util;
|
import net.ME1312.Galaxi.Library.Util;
|
||||||
import net.ME1312.Galaxi.Library.Version.Version;
|
import net.ME1312.Galaxi.Library.Version.Version;
|
||||||
import net.ME1312.SubData.Client.SubDataClient;
|
import net.ME1312.SubData.Client.SubDataClient;
|
||||||
@ -29,6 +29,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import static net.ME1312.SubServers.Client.Bukkit.Library.ObjectPermission.permits;
|
import static net.ME1312.SubServers.Client.Bukkit.Library.ObjectPermission.permits;
|
||||||
|
|
||||||
@ -36,7 +37,7 @@ import static net.ME1312.SubServers.Client.Bukkit.Library.ObjectPermission.permi
|
|||||||
* Default GUI Listener
|
* Default GUI Listener
|
||||||
*/
|
*/
|
||||||
public class DefaultUIHandler implements UIHandler, Listener {
|
public class DefaultUIHandler implements UIHandler, Listener {
|
||||||
private HashMap<UUID, Callback<YAMLSection>> input = new HashMap<UUID, Callback<YAMLSection>>();
|
private HashMap<UUID, Consumer<YAMLSection>> input = new HashMap<UUID, Consumer<YAMLSection>>();
|
||||||
private HashMap<UUID, DefaultUIRenderer> gui = new HashMap<UUID, DefaultUIRenderer>();
|
private HashMap<UUID, DefaultUIRenderer> gui = new HashMap<UUID, DefaultUIRenderer>();
|
||||||
private boolean enabled = true;
|
private boolean enabled = true;
|
||||||
private SubPlugin plugin;
|
private SubPlugin plugin;
|
||||||
@ -47,7 +48,7 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
|||||||
* @param plugin Event
|
* @param plugin Event
|
||||||
*/
|
*/
|
||||||
public DefaultUIHandler(SubPlugin plugin) {
|
public DefaultUIHandler(SubPlugin plugin) {
|
||||||
if (Util.isNull(plugin)) throw new NullPointerException();
|
Util.nullpo(plugin);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||||
}
|
}
|
||||||
@ -71,7 +72,7 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
|||||||
if (gui.open && event.getClickedInventory() != null && title != null) {
|
if (gui.open && event.getClickedInventory() != null && title != null) {
|
||||||
if (plugin.api.getSubDataNetwork()[0] == null) {
|
if (plugin.api.getSubDataNetwork()[0] == null) {
|
||||||
new IllegalStateException("SubData is not connected").printStackTrace();
|
new IllegalStateException("SubData is not connected").printStackTrace();
|
||||||
} else if (Util.isException(() -> plugin.api.getLangChannels())) {
|
} else if (!Try.all.run(() -> plugin.api.getLangChannels())) {
|
||||||
new IllegalStateException("There are no lang options available at this time").printStackTrace();
|
new IllegalStateException("There are no lang options available at this time").printStackTrace();
|
||||||
} else if (title.equals(plugin.api.getLang("SubServers", "Interface.Host-Menu.Title"))) { // Host Menu
|
} else if (title.equals(plugin.api.getLang("SubServers", "Interface.Host-Menu.Title"))) { // Host Menu
|
||||||
if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR && event.getCurrentItem().hasItemMeta()) {
|
if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR && event.getCurrentItem().hasItemMeta()) {
|
||||||
@ -168,7 +169,7 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
|||||||
if (m.getString("message").length() <= 0) {
|
if (m.getString("message").length() <= 0) {
|
||||||
((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).setPort(null);
|
((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).setPort(null);
|
||||||
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
|
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
|
||||||
} else if (Util.isException(() -> Integer.parseInt(m.getString("message"))) || Integer.parseInt(m.getString("message")) <= 0 || Integer.parseInt(m.getString("message")) > 65535) {
|
} else if (!Try.all.run(() -> Integer.parseInt(m.getString("message"))) || Integer.parseInt(m.getString("message")) <= 0 || Integer.parseInt(m.getString("message")) > 65535) {
|
||||||
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Port.Invalid-Title"), 4 * 20))
|
if (!gui.sendTitle(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Port.Invalid-Title"), 4 * 20))
|
||||||
player.sendMessage(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Port.Invalid"));
|
player.sendMessage(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Port.Invalid"));
|
||||||
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]), 4 * 20);
|
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]), 4 * 20);
|
||||||
@ -354,9 +355,9 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
|||||||
if (permits((SubServer) gui.lastVisitedObjects[0], player, "subservers.subserver.%.*", "subservers.subserver.%.stop")) {
|
if (permits((SubServer) gui.lastVisitedObjects[0], player, "subservers.subserver.%.*", "subservers.subserver.%.stop")) {
|
||||||
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
||||||
final Value<Boolean> listening = new Container<Boolean>(true);
|
final Value<Boolean> listening = new Container<Boolean>(true);
|
||||||
PacketInExRunEvent.callback("SubStoppedEvent", new Callback<ObjectMap<String>>() {
|
PacketInExRunEvent.callback("SubStoppedEvent", new Consumer<ObjectMap<String>>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(ObjectMap<String> json) {
|
public void accept(ObjectMap<String> json) {
|
||||||
try {
|
try {
|
||||||
if (listening.value()) if (!json.getString("server").equalsIgnoreCase(((SubServer) gui.lastVisitedObjects[0]).getName())) {
|
if (listening.value()) if (!json.getString("server").equalsIgnoreCase(((SubServer) gui.lastVisitedObjects[0]).getName())) {
|
||||||
PacketInExRunEvent.callback("SubStoppedEvent", this);
|
PacketInExRunEvent.callback("SubStoppedEvent", this);
|
||||||
@ -378,9 +379,9 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
|||||||
if (permits((SubServer) gui.lastVisitedObjects[0], player, "subservers.subserver.%.*", "subservers.subserver.%.terminate")) {
|
if (permits((SubServer) gui.lastVisitedObjects[0], player, "subservers.subserver.%.*", "subservers.subserver.%.terminate")) {
|
||||||
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
gui.setDownloading(plugin.api.getLang("SubServers", "Interface.Generic.Downloading.Response"));
|
||||||
final Value<Boolean> listening = new Container<Boolean>(true);
|
final Value<Boolean> listening = new Container<Boolean>(true);
|
||||||
PacketInExRunEvent.callback("SubStoppedEvent", new Callback<ObjectMap<String>>() {
|
PacketInExRunEvent.callback("SubStoppedEvent", new Consumer<ObjectMap<String>>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(ObjectMap<String> json) {
|
public void accept(ObjectMap<String> json) {
|
||||||
try {
|
try {
|
||||||
if (listening.value()) if (!json.getString("server").equalsIgnoreCase(((SubServer) gui.lastVisitedObjects[0]).getName())) {
|
if (listening.value()) if (!json.getString("server").equalsIgnoreCase(((SubServer) gui.lastVisitedObjects[0]).getName())) {
|
||||||
PacketInExRunEvent.callback("SubStoppedEvent", this);
|
PacketInExRunEvent.callback("SubStoppedEvent", this);
|
||||||
@ -466,7 +467,7 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
|||||||
if (!event.isCancelled() && enabled && input.containsKey(event.getPlayer().getUniqueId())) {
|
if (!event.isCancelled() && enabled && input.containsKey(event.getPlayer().getUniqueId())) {
|
||||||
YAMLSection data = new YAMLSection();
|
YAMLSection data = new YAMLSection();
|
||||||
data.set("message", event.getMessage());
|
data.set("message", event.getMessage());
|
||||||
input.get(event.getPlayer().getUniqueId()).run(data);
|
input.get(event.getPlayer().getUniqueId()).accept(data);
|
||||||
input.remove(event.getPlayer().getUniqueId());
|
input.remove(event.getPlayer().getUniqueId());
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
@ -482,7 +483,7 @@ public class DefaultUIHandler implements UIHandler, Listener {
|
|||||||
if (!event.isCancelled() && enabled && input.containsKey(event.getPlayer().getUniqueId())) {
|
if (!event.isCancelled() && enabled && input.containsKey(event.getPlayer().getUniqueId())) {
|
||||||
YAMLSection data = new YAMLSection();
|
YAMLSection data = new YAMLSection();
|
||||||
data.set("message", (event.getMessage().startsWith("/"))?event.getMessage().substring(1):event.getMessage());
|
data.set("message", (event.getMessage().startsWith("/"))?event.getMessage().substring(1):event.getMessage());
|
||||||
input.get(event.getPlayer().getUniqueId()).run(data);
|
input.get(event.getPlayer().getUniqueId()).accept(data);
|
||||||
input.remove(event.getPlayer().getUniqueId());
|
input.remove(event.getPlayer().getUniqueId());
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user