mirror of
https://github.com/ME1312/SubServers-2.git
synced 2024-11-25 11:46:50 +01:00
SubServers 2 Beta 4
This commit is contained in:
parent
84927aecdf
commit
b50452b93a
Binary file not shown.
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
Manifest-Version: 1.0
|
||||
Class-Path: BungeeCord.jar
|
||||
Main-Class: net.ME1312.SubServers.Proxy.Launch
|
||||
Main-Class: net.ME1312.SubServers.Bungee.Launch
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
package net.ME1312.SubServers.Proxy.Event;
|
||||
package net.ME1312.SubServers.Bungee.Event;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Host;
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Library.SubEvent;
|
||||
import net.ME1312.SubServers.Bungee.Host.Host;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Library.SubEvent;
|
||||
import net.md_5.bungee.api.plugin.Cancellable;
|
||||
import net.md_5.bungee.api.plugin.Event;
|
||||
|
@ -1,9 +1,9 @@
|
||||
package net.ME1312.SubServers.Proxy.Event;
|
||||
package net.ME1312.SubServers.Bungee.Event;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Host;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubCreator;
|
||||
import net.ME1312.SubServers.Proxy.Library.SubEvent;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Host.Host;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubCreator;
|
||||
import net.ME1312.SubServers.Bungee.Library.SubEvent;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.md_5.bungee.api.plugin.Cancellable;
|
||||
import net.md_5.bungee.api.plugin.Event;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package net.ME1312.SubServers.Proxy.Event;
|
||||
package net.ME1312.SubServers.Bungee.Event;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.SubEvent;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Library.SubEvent;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.md_5.bungee.api.plugin.Event;
|
||||
import org.json.JSONObject;
|
||||
|
@ -1,9 +1,9 @@
|
||||
package net.ME1312.SubServers.Proxy.Event;
|
||||
package net.ME1312.SubServers.Bungee.Event;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.NamedContainer;
|
||||
import net.ME1312.SubServers.Proxy.Library.SubEvent;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.NamedContainer;
|
||||
import net.ME1312.SubServers.Bungee.Library.SubEvent;
|
||||
import net.md_5.bungee.api.plugin.Cancellable;
|
||||
import net.md_5.bungee.api.plugin.Event;
|
||||
|
@ -1,8 +1,8 @@
|
||||
package net.ME1312.SubServers.Proxy.Event;
|
||||
package net.ME1312.SubServers.Bungee.Event;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Host;
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Library.SubEvent;
|
||||
import net.ME1312.SubServers.Bungee.Host.Host;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Library.SubEvent;
|
||||
import net.md_5.bungee.api.plugin.Cancellable;
|
||||
import net.md_5.bungee.api.plugin.Event;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package net.ME1312.SubServers.Proxy.Event;
|
||||
package net.ME1312.SubServers.Bungee.Event;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.SubEvent;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.SubEvent;
|
||||
import net.md_5.bungee.api.plugin.Cancellable;
|
||||
import net.md_5.bungee.api.plugin.Event;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package net.ME1312.SubServers.Proxy.Event;
|
||||
package net.ME1312.SubServers.Bungee.Event;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.SubEvent;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.SubEvent;
|
||||
import net.md_5.bungee.api.plugin.Cancellable;
|
||||
import net.md_5.bungee.api.plugin.Event;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package net.ME1312.SubServers.Proxy.Event;
|
||||
package net.ME1312.SubServers.Bungee.Event;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.SubEvent;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.SubEvent;
|
||||
import net.md_5.bungee.api.plugin.Cancellable;
|
||||
import net.md_5.bungee.api.plugin.Event;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package net.ME1312.SubServers.Proxy.Event;
|
||||
package net.ME1312.SubServers.Bungee.Event;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.SubEvent;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.SubEvent;
|
||||
import net.md_5.bungee.api.plugin.Event;
|
||||
|
||||
public class SubStoppedEvent extends Event implements SubEvent {
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Host;
|
||||
package net.ME1312.SubServers.Bungee.Host;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.Serializable;
|
@ -1,9 +1,9 @@
|
||||
package net.ME1312.SubServers.Proxy.Host;
|
||||
package net.ME1312.SubServers.Bungee.Host;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Exception.InvalidHostException;
|
||||
import net.ME1312.SubServers.Proxy.Library.Exception.InvalidServerException;
|
||||
import net.ME1312.SubServers.Proxy.Library.NamedContainer;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Library.Exception.InvalidHostException;
|
||||
import net.ME1312.SubServers.Bungee.Library.Exception.InvalidServerException;
|
||||
import net.ME1312.SubServers.Bungee.Library.NamedContainer;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.util.Map;
|
@ -1,14 +1,14 @@
|
||||
package net.ME1312.SubServers.Proxy.Host.Internal;
|
||||
package net.ME1312.SubServers.Bungee.Host.Internal;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Event.SubAddServerEvent;
|
||||
import net.ME1312.SubServers.Proxy.Event.SubRemoveServerEvent;
|
||||
import net.ME1312.SubServers.Proxy.Host.Executable;
|
||||
import net.ME1312.SubServers.Proxy.Library.Exception.InvalidServerException;
|
||||
import net.ME1312.SubServers.Proxy.Host.Host;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubCreator;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.NamedContainer;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Event.SubAddServerEvent;
|
||||
import net.ME1312.SubServers.Bungee.Event.SubRemoveServerEvent;
|
||||
import net.ME1312.SubServers.Bungee.Host.Executable;
|
||||
import net.ME1312.SubServers.Bungee.Library.Exception.InvalidServerException;
|
||||
import net.ME1312.SubServers.Bungee.Host.Host;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubCreator;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.NamedContainer;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.util.HashMap;
|
@ -1,14 +1,14 @@
|
||||
package net.ME1312.SubServers.Proxy.Host.Internal;
|
||||
package net.ME1312.SubServers.Bungee.Host.Internal;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Event.SubCreateEvent;
|
||||
import net.ME1312.SubServers.Proxy.Host.Executable;
|
||||
import net.ME1312.SubServers.Proxy.Host.Host;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubCreator;
|
||||
import net.ME1312.SubServers.Proxy.Library.Config.YAMLSection;
|
||||
import net.ME1312.SubServers.Proxy.Library.Container;
|
||||
import net.ME1312.SubServers.Proxy.Library.UniversalFile;
|
||||
import net.ME1312.SubServers.Proxy.Library.Util;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Event.SubCreateEvent;
|
||||
import net.ME1312.SubServers.Bungee.Host.Executable;
|
||||
import net.ME1312.SubServers.Bungee.Host.Host;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubCreator;
|
||||
import net.ME1312.SubServers.Bungee.Library.Config.YAMLSection;
|
||||
import net.ME1312.SubServers.Bungee.Library.Container;
|
||||
import net.ME1312.SubServers.Bungee.Library.UniversalFile;
|
||||
import net.ME1312.SubServers.Bungee.Library.Util;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
@ -20,11 +20,8 @@ import javax.xml.parsers.ParserConfigurationException;
|
||||
import java.io.*;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.Charset;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Locale;
|
||||
import java.util.UUID;
|
||||
|
||||
public class InternalSubCreator extends SubCreator {
|
@ -1,6 +1,6 @@
|
||||
package net.ME1312.SubServers.Proxy.Host.Internal;
|
||||
package net.ME1312.SubServers.Bungee.Host.Internal;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Container;
|
||||
import net.ME1312.SubServers.Bungee.Library.Container;
|
||||
import net.md_5.bungee.api.ProxyServer;
|
||||
|
||||
import java.io.*;
|
@ -1,13 +1,12 @@
|
||||
package net.ME1312.SubServers.Proxy.Host.Internal;
|
||||
package net.ME1312.SubServers.Bungee.Host.Internal;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Event.*;
|
||||
import net.ME1312.SubServers.Proxy.Host.Executable;
|
||||
import net.ME1312.SubServers.Proxy.Library.Container;
|
||||
import net.ME1312.SubServers.Proxy.Library.Exception.InvalidServerException;
|
||||
import net.ME1312.SubServers.Proxy.Host.Host;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.NamedContainer;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Event.*;
|
||||
import net.ME1312.SubServers.Bungee.Host.Executable;
|
||||
import net.ME1312.SubServers.Bungee.Library.Container;
|
||||
import net.ME1312.SubServers.Bungee.Library.Exception.InvalidServerException;
|
||||
import net.ME1312.SubServers.Bungee.Host.Host;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.NamedContainer;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
@ -1,8 +1,8 @@
|
||||
package net.ME1312.SubServers.Proxy.Host;
|
||||
package net.ME1312.SubServers.Bungee.Host;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Exception.InvalidServerException;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.ClientHandler;
|
||||
import net.ME1312.SubServers.Bungee.Library.Exception.InvalidServerException;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.ClientHandler;
|
||||
import net.md_5.bungee.BungeeServerInfo;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
|
@ -1,8 +1,7 @@
|
||||
package net.ME1312.SubServers.Proxy.Host;
|
||||
package net.ME1312.SubServers.Bungee.Host;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
@ -1,7 +1,7 @@
|
||||
package net.ME1312.SubServers.Proxy.Host;
|
||||
package net.ME1312.SubServers.Bungee.Host;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Exception.InvalidServerException;
|
||||
import net.ME1312.SubServers.Proxy.Library.NamedContainer;
|
||||
import net.ME1312.SubServers.Bungee.Library.Exception.InvalidServerException;
|
||||
import net.ME1312.SubServers.Bungee.Library.NamedContainer;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.UUID;
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy;
|
||||
package net.ME1312.SubServers.Bungee;
|
||||
|
||||
import java.security.Security;
|
||||
import java.text.SimpleDateFormat;
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Library.Config;
|
||||
package net.ME1312.SubServers.Bungee.Library.Config;
|
||||
|
||||
import org.json.JSONObject;
|
||||
import org.yaml.snakeyaml.DumperOptions;
|
@ -1,6 +1,6 @@
|
||||
package net.ME1312.SubServers.Proxy.Library.Config;
|
||||
package net.ME1312.SubServers.Bungee.Library.Config;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Util;
|
||||
import net.ME1312.SubServers.Bungee.Library.Util;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import org.json.JSONObject;
|
||||
import org.yaml.snakeyaml.Yaml;
|
||||
@ -87,6 +87,8 @@ public class YAMLSection {
|
||||
map.put(label, ((YAMLSection) value).map);
|
||||
} else if (value instanceof YAMLValue) {
|
||||
map.put(label, ((YAMLValue) value).asObject());
|
||||
} else if (value instanceof UUID) {
|
||||
map.put(label, ((UUID) value).toString());
|
||||
} else {
|
||||
map.put(label, value);
|
||||
}
|
||||
@ -409,6 +411,34 @@ public class YAMLSection {
|
||||
}
|
||||
}
|
||||
|
||||
public UUID getUUID(String label) {
|
||||
return (map.get(label) != null)?UUID.fromString((String) map.get(label)):null;
|
||||
}
|
||||
|
||||
public UUID getUUID(String label, UUID def) {
|
||||
return UUID.fromString((String) ((map.get(label) != null) ? map.get(label) : def));
|
||||
}
|
||||
|
||||
public List<UUID> getUUIDList(String label) {
|
||||
if (map.get(label) != null) {
|
||||
List<UUID> values = new ArrayList<UUID>();
|
||||
for (String value : (List<String>) map.get(label)) {
|
||||
values.add(UUID.fromString(value));
|
||||
}
|
||||
return values;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public List<UUID> getUUIDList(String label, List<UUID> def) {
|
||||
if (map.get(label) != null) {
|
||||
return getUUIDList(label);
|
||||
} else {
|
||||
return def;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isBoolean(String label) {
|
||||
return (map.get(label) instanceof Boolean);
|
||||
}
|
@ -1,12 +1,13 @@
|
||||
package net.ME1312.SubServers.Proxy.Library.Config;
|
||||
package net.ME1312.SubServers.Bungee.Library.Config;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Util;
|
||||
import net.ME1312.SubServers.Bungee.Library.Util;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import org.yaml.snakeyaml.Yaml;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
@SuppressWarnings({"unchecked", "unused"})
|
||||
public class YAMLValue {
|
||||
@ -118,6 +119,18 @@ public class YAMLValue {
|
||||
return values;
|
||||
}
|
||||
|
||||
public UUID asUUID() {
|
||||
return UUID.fromString((String) obj);
|
||||
}
|
||||
|
||||
public List<UUID> asUUIDList() {
|
||||
List<UUID> values = new ArrayList<UUID>();
|
||||
for (String value : (List<String>) obj) {
|
||||
values.add(UUID.fromString(value));
|
||||
}
|
||||
return values;
|
||||
}
|
||||
|
||||
public boolean isBoolean() {
|
||||
return (obj instanceof Boolean);
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Library;
|
||||
package net.ME1312.SubServers.Bungee.Library;
|
||||
|
||||
/**
|
||||
* Container Class
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Library.Exception;
|
||||
package net.ME1312.SubServers.Bungee.Library.Exception;
|
||||
|
||||
public class IllegalPacketException extends IllegalStateException {
|
||||
public IllegalPacketException() {}
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Library.Exception;
|
||||
package net.ME1312.SubServers.Bungee.Library.Exception;
|
||||
|
||||
public class InvalidDriverException extends IllegalStateException {
|
||||
public InvalidDriverException() {}
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Library.Exception;
|
||||
package net.ME1312.SubServers.Bungee.Library.Exception;
|
||||
|
||||
public class InvalidHostException extends IllegalStateException {
|
||||
public InvalidHostException() {}
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Library.Exception;
|
||||
package net.ME1312.SubServers.Bungee.Library.Exception;
|
||||
|
||||
public class InvalidServerException extends IllegalStateException {
|
||||
public InvalidServerException() {}
|
@ -1,4 +1,4 @@
|
||||
# Version: 2.11.0a+
|
||||
# Version: 2.11.2a+
|
||||
#
|
||||
# SubCreator Build Script
|
||||
# Usage: "bash build.sh <version> <software> [jre]"
|
@ -0,0 +1,40 @@
|
||||
ip_forward: true
|
||||
network_compression_threshold: 256
|
||||
stats: undefined
|
||||
permissions:
|
||||
default:
|
||||
- bungeecord.command.server
|
||||
- bungeecord.command.list
|
||||
admin:
|
||||
- bungeecord.command.find
|
||||
- bungeecord.command.alert
|
||||
- bungeecord.command.send
|
||||
- bungeecord.command.end
|
||||
- bungeecord.command.ip
|
||||
- bungeecord.command.reload
|
||||
groups: {}
|
||||
servers:
|
||||
Lobby:
|
||||
motd: '&1Just another BungeeCord - Forced Host'
|
||||
address: 127.0.0.1:25566
|
||||
restricted: false
|
||||
timeout: 30000
|
||||
listeners:
|
||||
- query_port: 25564
|
||||
motd: '&1Another Bungee server'
|
||||
priorities:
|
||||
- Lobby
|
||||
bind_local_address: true
|
||||
tab_list: GLOBAL_PING
|
||||
query_enabled: false
|
||||
host: 0.0.0.0:25565
|
||||
forced_hosts: {}
|
||||
max_players: 1
|
||||
tab_size: 60
|
||||
ping_passthrough: false
|
||||
force_default_server: false
|
||||
player_limit: -1
|
||||
online_mode: true
|
||||
log_commands: false
|
||||
disabled_commands: []
|
||||
connection_throttle: 4000
|
@ -1,5 +1,5 @@
|
||||
Settings:
|
||||
Version: '2.11.0a+'
|
||||
Version: '2.11.2a+'
|
||||
Log-Creator: true
|
||||
SubData:
|
||||
Address: '127.0.0.1:4391'
|
||||
@ -27,3 +27,4 @@ Servers:
|
||||
Run-On-Launch: false
|
||||
Auto-Restart: false
|
||||
Restricted: false
|
||||
Hidden: false
|
@ -1,5 +1,64 @@
|
||||
Version: '2.11.0a+'
|
||||
Version: '2.11.2a+'
|
||||
Lang:
|
||||
'Bungee.Server.Current': '&6You are currently connected to $str$'
|
||||
'Bungee.Server.Available': '&6You may connect to the following servers at this time:'
|
||||
'Bungee.Server.List': '&6$str$'
|
||||
'Bungee.Server.Hover': '$int$ player(s)\n&oClick to connect to the server'
|
||||
'Bungee.Server.Divider': '&6, '
|
||||
'Bungee.Server.Invalid': '&cThe specified server does not exist.'
|
||||
'Bungee.List.Format': '&a[$str$] &e($int$): '
|
||||
'Bungee.List.List': '&f$str$'
|
||||
'Bungee.List.Divider': '&f, '
|
||||
'Bungee.List.Total': 'Total players online: $int$'
|
||||
'Command.Generic.Player-Only': '&4SubServers \u00BB Console cannot run this command'
|
||||
'Command.Generic.Console-Only': '&4SubServers \u00BB This command is for console use only'
|
||||
'Command.Generic.Usage': '&7SubServers \u00BB Usage: &f$str$'
|
||||
'Command.Generic.Invalid-Subcommand': '&4SubServers \u00BB Unknown sub-command: $str$'
|
||||
'Command.Generic.Invalid-Permission': '&4SubServers \u00BB You need &n$str$&4 to use this command'
|
||||
'Command.Help.Header': '&7SubServers \u00BB Command Help:'
|
||||
'Command.Help.Help': ' &7Help:&f $str$'
|
||||
'Command.Help.List': ' &7List:&f $str$'
|
||||
'Command.Help.Version': ' &7Version:&f $str$'
|
||||
'Command.Help.Terminate': ' &7Teleport to Server:&f $str$'
|
||||
'Command.Help.Host.Create': ' &7Create Server:&f $str$'
|
||||
'Command.Help.Server.Teleport': ' &7Teleport to Server:&f $str$'
|
||||
'Command.Help.SubServer.Start': ' &7Start Server:&f $str$'
|
||||
'Command.Help.SubServer.Stop': ' &7Stop Server:&f $str$'
|
||||
'Command.Help.SubServer.Terminate': ' &7Terminate Server:&f $str$'
|
||||
'Command.Help.SubServer.Command': ' &7Command Server:&f $str$'
|
||||
'Command.Version': '&7SubServers \u00BB SubServers is running version &f$str$'
|
||||
'Command.List.Host-Header': '&7SubServers \u00BB Host List:'
|
||||
'Command.List.Server-Header': '&7SubServers \u00BB Server List:'
|
||||
'Command.List.Divider': '&7, '
|
||||
'Command.Start': '&aSubServers \u00BB Starting SubServer'
|
||||
'Command.Start.Unknown': '&cSubServers \u00BB There is no server with that name'
|
||||
'Command.Start.Invalid': '&cSubServers \u00BB That Server is not a SubServer'
|
||||
'Command.Start.Host-Disabled': '&cSubServers \u00BB That SubServer\u0027s Host is not enabled'
|
||||
'Command.Start.Server-Disabled': '&cSubServers \u00BB That SubServer is not enabled'
|
||||
'Command.Start.Running': '&cSubServers \u00BB That SubServer is already running'
|
||||
'Command.Stop': '&aSubServers \u00BB Stopping SubServer'
|
||||
'Command.Stop.Unknown': '&cSubServers \u00BB There is no server with that name'
|
||||
'Command.Stop.Invalid': '&cSubServers \u00BB That Server is not a SubServer'
|
||||
'Command.Stop.Not-Running': '&cSubServers \u00BB That SubServer is not running'
|
||||
'Command.Terminate': '&aSubServers \u00BB Stopping SubServer'
|
||||
'Command.Terminate.Unknown': '&cSubServers \u00BB There is no server with that name'
|
||||
'Command.Terminate.Invalid': '&cSubServers \u00BB That Server is not a SubServer'
|
||||
'Command.Terminate.Not-Running': '&cSubServers \u00BB That SubServer is not running'
|
||||
'Command.Command': '&aSubServers \u00BB Sending command to SubServer'
|
||||
'Command.Command.Unknown': '&cSubServers \u00BB There is no server with that name'
|
||||
'Command.Command.Invalid': '&cSubServers \u00BB That Server is not a SubServer'
|
||||
'Command.Command.Not-Running': '&cSubServers \u00BB That SubServer is not running'
|
||||
'Command.Teleport': '&aSubServers \u00BB Teleporting...'
|
||||
'Command.Teleport.Offline': '&cSubServers \u00BB There is no player online with that name'
|
||||
'Command.Teleport.Invalid': '&cSubServers \u00BB There is no server with that name'
|
||||
'Command.Creator': '&aSubServers \u00BB Creating SubServer'
|
||||
'Command.Creator.Exists': '&cSubServers \u00BB There is already a SubServer with that name'
|
||||
'Command.Creator.Unknown-Host': '&cSubServers \u00BB There is no host with that name'
|
||||
'Command.Creator.Running': '&cSubServers \u00BB The SubCreator instance on that host is already running'
|
||||
'Command.Creator.Invalid-Type': '&cSubServers \u00BB There is no server type with that name'
|
||||
'Command.Creator.Invalid-Version': '&cSubServers \u00BB SubCreator cannot create servers before Minecraft 1.8'
|
||||
'Command.Creator.Invalid-Port': '&cSubServers \u00BB Invalid Port Number'
|
||||
'Command.Creator.Invalid-Memory': '&cSubServers \u00BB Invalid RAM Amount'
|
||||
'Interface.Generic.Back': '&cBack'
|
||||
'Interface.Generic.Back-Arrow': '&e&l<--'
|
||||
'Interface.Generic.Next-Arrow': '&e&l-->'
|
||||
@ -55,6 +114,7 @@ Lang:
|
||||
'Interface.Host-SubServer.Title': 'Host/$str$/SubServers'
|
||||
'Interface.SubServer-Menu.Title': 'SubServer Menu'
|
||||
'Interface.SubServer-Menu.SubServer-Player-Count': '&2$int$ Player(s) Online'
|
||||
'Interface.SubServer-Menu.SubServer-External': '&7External Server'
|
||||
'Interface.SubServer-Menu.SubServer-Temporary': '&9Temporary'
|
||||
'Interface.SubServer-Menu.SubServer-Offline': '&6Offline'
|
||||
'Interface.SubServer-Menu.SubServer-Disabled': '&4Disabled'
|
||||
@ -73,3 +133,4 @@ Lang:
|
||||
'Interface.SubServer-Admin.Teleport': '&bTeleport to Server'
|
||||
'Interface.SubServer-Admin.Editor': '&eEdit SubServer'
|
||||
'Interface.SubServer-Admin.Editor-Unavailable': '&4This SubServer cannot be edited'
|
||||
'Interface.SubServer-Editor.Title': 'SubServer/$str$/Edit'
|
@ -0,0 +1,6 @@
|
||||
version: 2
|
||||
modules:
|
||||
- jenkins://cmd_alert
|
||||
- jenkins://cmd_find
|
||||
- jenkins://cmd_send
|
||||
- jenkins://reconnect_yaml
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Library;
|
||||
package net.ME1312.SubServers.Bungee.Library;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Library;
|
||||
package net.ME1312.SubServers.Bungee.Library;
|
||||
|
||||
public class NamedContainer<T, V> extends Container<V> {
|
||||
private T name;
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Library;
|
||||
package net.ME1312.SubServers.Bungee.Library;
|
||||
|
||||
public interface SubEvent {
|
||||
/*
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Library;
|
||||
package net.ME1312.SubServers.Bungee.Library;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Library;
|
||||
package net.ME1312.SubServers.Bungee.Library;
|
||||
|
||||
import java.io.*;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Library.Version;
|
||||
package net.ME1312.SubServers.Bungee.Library.Version;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Library.Version;
|
||||
package net.ME1312.SubServers.Bungee.Library.Version;
|
||||
|
||||
public final class VersionTokenizer {
|
||||
private final String _versionString;
|
@ -1,8 +1,8 @@
|
||||
package net.ME1312.SubServers.Proxy.Network;
|
||||
package net.ME1312.SubServers.Bungee.Network;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Exception.IllegalPacketException;
|
||||
import net.ME1312.SubServers.Proxy.Network.Packet.PacketAuthorization;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Library.Exception.IllegalPacketException;
|
||||
import net.ME1312.SubServers.Bungee.Network.Packet.PacketAuthorization;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
@ -13,7 +13,7 @@ import java.io.PrintWriter;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
import java.net.SocketAddress;
|
||||
import java.net.SocketException;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
@ -88,7 +88,7 @@ public final class Client {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (e.getMessage() == null || !e.getMessage().equals("Socket closed")) e.printStackTrace();
|
||||
if (!(e instanceof SocketException)) e.printStackTrace();
|
||||
try {
|
||||
plugin.subdata.removeClient(instance);
|
||||
} catch (IOException e1) {
|
@ -1,4 +1,4 @@
|
||||
package net.ME1312.SubServers.Proxy.Network;
|
||||
package net.ME1312.SubServers.Bungee.Network;
|
||||
|
||||
/**
|
||||
* Client Handler Layout Class
|
@ -1,10 +1,10 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PacketAuthorization implements PacketIn, PacketOut {
|
@ -1,12 +1,12 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.Map;
|
@ -1,12 +1,12 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.SubCreator;
|
||||
import net.ME1312.SubServers.Proxy.Library.Util;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubCreator;
|
||||
import net.ME1312.SubServers.Bungee.Library.Util;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.UUID;
|
@ -1,11 +1,11 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.UniversalFile;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Library.UniversalFile;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.BufferedReader;
|
@ -1,13 +1,13 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Host;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.Host.Host;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
import org.json.JSONObject;
|
||||
|
@ -1,10 +1,10 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PacketDownloadLang implements PacketIn, PacketOut {
|
@ -1,10 +1,10 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
import org.json.JSONObject;
|
||||
|
@ -1,14 +1,13 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PacketDownloadServerInfo implements PacketIn, PacketOut {
|
@ -1,21 +1,16 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Host;
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Host.Host;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.TreeMap;
|
||||
|
||||
public class PacketDownloadServerList implements PacketIn, PacketOut {
|
||||
private SubPlugin plugin;
|
||||
private String host;
|
@ -1,12 +1,12 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Event.SubDataRecieveGenericInfoEvent;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.ClientHandler;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Event.SubDataRecieveGenericInfoEvent;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.ClientHandler;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.net.InetSocketAddress;
|
@ -1,12 +1,12 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.Map;
|
@ -1,11 +1,11 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Event.*;
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Library.SubEvent;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Event.*;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Library.SubEvent;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import net.md_5.bungee.api.plugin.Listener;
|
||||
import net.md_5.bungee.event.EventHandler;
|
||||
import net.md_5.bungee.event.EventPriority;
|
@ -1,7 +1,7 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PacketOutShutdown implements PacketOut {
|
@ -1,12 +1,12 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.Map;
|
@ -1,12 +1,12 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.Map;
|
@ -1,11 +1,11 @@
|
||||
package net.ME1312.SubServers.Proxy.Network.Packet;
|
||||
package net.ME1312.SubServers.Bungee.Network.Packet;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Client;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Proxy.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Client;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketIn;
|
||||
import net.ME1312.SubServers.Bungee.Network.PacketOut;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.Map;
|
@ -1,6 +1,6 @@
|
||||
package net.ME1312.SubServers.Proxy.Network;
|
||||
package net.ME1312.SubServers.Bungee.Network;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import org.json.JSONObject;
|
||||
|
||||
/**
|
@ -1,6 +1,6 @@
|
||||
package net.ME1312.SubServers.Proxy.Network;
|
||||
package net.ME1312.SubServers.Bungee.Network;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import org.json.JSONObject;
|
||||
|
||||
/**
|
@ -1,9 +1,9 @@
|
||||
package net.ME1312.SubServers.Proxy.Network;
|
||||
package net.ME1312.SubServers.Bungee.Network;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Library.Exception.IllegalPacketException;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.Packet.*;
|
||||
import net.ME1312.SubServers.Proxy.SubPlugin;
|
||||
import net.ME1312.SubServers.Bungee.Library.Exception.IllegalPacketException;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.Packet.*;
|
||||
import net.ME1312.SubServers.Bungee.SubPlugin;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.IOException;
|
@ -1,13 +1,12 @@
|
||||
package net.ME1312.SubServers.Proxy;
|
||||
package net.ME1312.SubServers.Bungee;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Event.SubAddServerEvent;
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Host.Host;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.Config.YAMLSection;
|
||||
import net.ME1312.SubServers.Proxy.Library.UniversalFile;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.SubDataServer;
|
||||
import net.ME1312.SubServers.Bungee.Event.SubAddServerEvent;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Host.Host;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.UniversalFile;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.SubDataServer;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
@ -1,17 +1,24 @@
|
||||
package net.ME1312.SubServers.Proxy;
|
||||
package net.ME1312.SubServers.Bungee;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubCreator;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.Util;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Host.Host;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubCreator;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.Util;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.chat.ClickEvent;
|
||||
import net.md_5.bungee.api.chat.HoverEvent;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import net.md_5.bungee.api.config.ServerInfo;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
import net.md_5.bungee.api.plugin.Command;
|
||||
import net.md_5.bungee.command.ConsoleCommandSender;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@ -21,10 +28,12 @@ import java.util.Map;
|
||||
*/
|
||||
public final class SubCommand extends Command {
|
||||
private SubPlugin plugin;
|
||||
private String label;
|
||||
|
||||
public SubCommand(SubPlugin plugin) {
|
||||
super("subserver", null, "sub", "subservers");
|
||||
protected SubCommand(SubPlugin plugin, String command) {
|
||||
super(command);
|
||||
this.plugin = plugin;
|
||||
this.label = "/" + command;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -43,9 +52,15 @@ public final class SubCommand extends Command {
|
||||
} else if (args[0].equalsIgnoreCase("version") || args[0].equalsIgnoreCase("ver")) {
|
||||
sender.sendMessage("SubServers > SubServers.Bungee is running version " + plugin.version.toString() + ((plugin.bversion != null)?" BETA "+plugin.bversion.toString():""));
|
||||
} else if (args[0].equalsIgnoreCase("list")) {
|
||||
List<String> hosts = new ArrayList<String>();
|
||||
for (Host host : plugin.hosts.values()) {
|
||||
hosts.add(host.getName());
|
||||
}
|
||||
List<String> servers = new ArrayList<String>();
|
||||
servers.addAll(plugin.getServers().keySet());
|
||||
sender.sendMessages(
|
||||
"SubServers > Host List:", plugin.hosts.keySet().toString(),
|
||||
"SubServers > Server List:", plugin.api.getServers().keySet().toString());
|
||||
"SubServers > Host List:", hosts.toString().substring(1, hosts.toString().length() - 1),
|
||||
"SubServers > Server List:", servers.toString().substring(1, servers.toString().length() - 1));
|
||||
} else if (args[0].equalsIgnoreCase("start")) {
|
||||
if (args.length > 1) {
|
||||
Map<String, Server> servers = plugin.api.getServers();
|
||||
@ -63,7 +78,7 @@ public final class SubCommand extends Command {
|
||||
((SubServer) servers.get(args[1].toLowerCase())).start();
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage("SubServers > Usage: /sub start <SubServer>");
|
||||
sender.sendMessage("SubServers > Usage: " + label + " " + args[0].toLowerCase() + " <SubServer>");
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("stop")) {
|
||||
if (args.length > 1) {
|
||||
@ -78,7 +93,7 @@ public final class SubCommand extends Command {
|
||||
((SubServer) servers.get(args[1].toLowerCase())).stop();
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage("SubServers > Usage: /sub stop <SubServer>");
|
||||
sender.sendMessage("SubServers > Usage: " + label + " " + args[0].toLowerCase() + " <SubServer>");
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("kill") || args[0].equalsIgnoreCase("terminate")) {
|
||||
if (args.length > 1) {
|
||||
@ -93,7 +108,7 @@ public final class SubCommand extends Command {
|
||||
((SubServer) servers.get(args[1].toLowerCase())).terminate();
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage("SubServers > Usage: /sub kill <SubServer>");
|
||||
sender.sendMessage("SubServers > Usage: " + label + " " + args[0].toLowerCase() + " <SubServer>");
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("cmd") || args[0].equalsIgnoreCase("command")) {
|
||||
if (args.length > 2) {
|
||||
@ -116,7 +131,7 @@ public final class SubCommand extends Command {
|
||||
((SubServer) servers.get(args[1].toLowerCase())).command(str);
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage("SubServers > Usage: /sub cmd <SubServer> <Command> [Args...]");
|
||||
sender.sendMessage("SubServers > Usage: " + label + " " + args[0].toLowerCase() + " <SubServer> <Command> [Args...]");
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("create")) {
|
||||
if (args.length > 5) {
|
||||
@ -138,8 +153,10 @@ public final class SubCommand extends Command {
|
||||
plugin.hosts.get(args[2].toLowerCase()).getCreator().create(args[1], SubCreator.ServerType.valueOf(args[3].toUpperCase()), new Version(args[4]), (args.length > 6)?Integer.parseInt(args[6]):1024, Integer.parseInt(args[5]));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage("SubServers > Usage: /sub create <Name> <Host> <Type> <Version> <Port> [RAM]");
|
||||
sender.sendMessage("SubServers > Usage: " + label + " " + args[0].toLowerCase() + " <Name> <Host> <Type> <Version> <Port> [RAM]");
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage("SubServers > Unknown sub-command: " + args[0]);
|
||||
}
|
||||
} else {
|
||||
sender.sendMessages(printHelp());
|
||||
@ -151,11 +168,11 @@ public final class SubCommand extends Command {
|
||||
i++;
|
||||
str = str + " " + args[i];
|
||||
}
|
||||
((ProxiedPlayer) sender).chat("/subservers" + str);
|
||||
((ProxiedPlayer) sender).chat(label + str);
|
||||
}
|
||||
}
|
||||
|
||||
public String[] printHelp() {
|
||||
private String[] printHelp() {
|
||||
return new String[]{
|
||||
"SubServers > Console Command Help:",
|
||||
" Help: /sub help",
|
||||
@ -171,4 +188,79 @@ public final class SubCommand extends Command {
|
||||
" https://www.spigotmc.org/wiki/bungeecord-commands/"
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static class BungeeServer extends Command {
|
||||
private SubPlugin plugin;
|
||||
protected BungeeServer(SubPlugin plugin, String command) {
|
||||
super(command, "bungeecord.command.server");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
if (sender instanceof ProxiedPlayer) {
|
||||
if (args.length > 0) {
|
||||
Map<String, Server> servers = plugin.api.getServers();
|
||||
if (servers.keySet().contains(args[0].toLowerCase())) {
|
||||
((ProxiedPlayer) sender).connect(servers.get(args[0].toLowerCase()));
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.get().getSection("Lang").getColoredString("Bungee.Server.Invalid", '&'));
|
||||
}
|
||||
} else {
|
||||
int i = 0;
|
||||
TextComponent serverm = new TextComponent(ChatColor.RESET.toString());
|
||||
TextComponent div = new TextComponent(plugin.lang.get().getSection("Lang").getColoredString("Bungee.Server.Divider", '&'));
|
||||
for (Server server : plugin.api.getServers().values()) {
|
||||
if (!server.isHidden() && (!(server instanceof SubServer) || ((SubServer) server).isRunning())) {
|
||||
if (i != 0) serverm.addExtra(div);
|
||||
TextComponent message = new TextComponent(plugin.lang.get().getSection("Lang").getColoredString("Bungee.Server.List", '&').replace("$str$", server.getName()));
|
||||
message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponent[]{new TextComponent(plugin.lang.get().getSection("Lang").getColoredString("Bungee.Server.Hover", '&').replace("$int$", Integer.toString(server.getPlayers().size())))}));
|
||||
message.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/server " + server.getName()));
|
||||
serverm.addExtra(message);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
sender.sendMessages(
|
||||
plugin.lang.get().getSection("Lang").getColoredString("Bungee.Server.Current", '&').replace("$str$", ((ProxiedPlayer) sender).getServer().getInfo().getName()),
|
||||
plugin.lang.get().getSection("Lang").getColoredString("Bungee.Server.Available", '&'));
|
||||
sender.sendMessage(serverm);
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.get().getSection("Lang").getColoredString("Command.Generic.Player-Only", '&'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class BungeeList extends Command {
|
||||
private SubPlugin plugin;
|
||||
protected BungeeList(SubPlugin plugin, String command) {
|
||||
super(command, "bungeecord.command.list");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
List<String> messages = new LinkedList<String>();
|
||||
int players = 0;
|
||||
for (Server server : plugin.api.getServers().values()) {
|
||||
players += server.getPlayers().size();
|
||||
if (!server.isHidden() && (!(server instanceof SubServer) || ((SubServer) server).isRunning())) {
|
||||
int i = 0;
|
||||
String message = plugin.lang.get().getSection("Lang").getColoredString("Bungee.List.Format", '&').replace("$str$", server.getName()).replace("$int$", Integer.toString(server.getPlayers().size()));
|
||||
for (ProxiedPlayer player : server.getPlayers()) {
|
||||
if (i != 0) message += plugin.lang.get().getSection("Lang").getColoredString("Bungee.List.Divider", '&');
|
||||
message += plugin.lang.get().getSection("Lang").getColoredString("Bungee.List.List", '&').replace("$str$", player.getName());
|
||||
i++;
|
||||
}
|
||||
messages.add(message);
|
||||
}
|
||||
}
|
||||
sender.sendMessages(messages.toArray(new String[messages.size()]));
|
||||
sender.sendMessage(plugin.lang.get().getSection("Lang").getColoredString("Bungee.List.Total", '&').replace("$int$", Integer.toString(players)));
|
||||
}
|
||||
}
|
||||
}
|
@ -1,22 +1,23 @@
|
||||
package net.ME1312.SubServers.Proxy;
|
||||
package net.ME1312.SubServers.Bungee;
|
||||
|
||||
import net.ME1312.SubServers.Proxy.Host.Executable;
|
||||
import net.ME1312.SubServers.Proxy.Host.Server;
|
||||
import net.ME1312.SubServers.Proxy.Library.Config.YAMLConfig;
|
||||
import net.ME1312.SubServers.Proxy.Library.Exception.InvalidHostException;
|
||||
import net.ME1312.SubServers.Proxy.Library.Exception.InvalidServerException;
|
||||
import net.ME1312.SubServers.Proxy.Host.Host;
|
||||
import net.ME1312.SubServers.Proxy.Host.SubServer;
|
||||
import net.ME1312.SubServers.Proxy.Library.UniversalFile;
|
||||
import net.ME1312.SubServers.Proxy.Library.Util;
|
||||
import net.ME1312.SubServers.Proxy.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Proxy.Network.SubDataServer;
|
||||
import net.ME1312.SubServers.Bungee.Host.Executable;
|
||||
import net.ME1312.SubServers.Bungee.Host.Server;
|
||||
import net.ME1312.SubServers.Bungee.Library.Config.YAMLConfig;
|
||||
import net.ME1312.SubServers.Bungee.Library.Exception.InvalidHostException;
|
||||
import net.ME1312.SubServers.Bungee.Library.Exception.InvalidServerException;
|
||||
import net.ME1312.SubServers.Bungee.Host.Host;
|
||||
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
||||
import net.ME1312.SubServers.Bungee.Library.UniversalFile;
|
||||
import net.ME1312.SubServers.Bungee.Library.Util;
|
||||
import net.ME1312.SubServers.Bungee.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Bungee.Network.SubDataServer;
|
||||
import net.md_5.bungee.BungeeCord;
|
||||
import net.md_5.bungee.api.config.ServerInfo;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.SocketException;
|
||||
import java.nio.file.Files;
|
||||
import java.util.*;
|
||||
|
||||
@ -35,8 +36,8 @@ public final class SubPlugin extends BungeeCord {
|
||||
public YAMLConfig lang;
|
||||
public HashMap<String, String> exLang = new HashMap<String, String>();
|
||||
public SubDataServer subdata = null;
|
||||
public final Version version = new Version("2.11.0a");
|
||||
protected Version bversion = new Version(3);
|
||||
public final Version version = new Version("2.11.2a");
|
||||
protected Version bversion = new Version(4);
|
||||
|
||||
protected boolean running = false;
|
||||
public final SubAPI api = new SubAPI(this);
|
||||
@ -54,29 +55,40 @@ public final class SubPlugin extends BungeeCord {
|
||||
if (running) throw new IllegalStateException("SubServers has already been loaded");
|
||||
System.out.println("SubServers > Loading SubServers v" + version.toString() + " Libraries... ");
|
||||
running = true;
|
||||
if (!(new UniversalFile(dir, "config.yml").exists())) {
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/bungee.yml", new UniversalFile(dir, "config.yml").getPath());
|
||||
YAMLConfig tmp = new YAMLConfig(new UniversalFile("config.yml"));
|
||||
tmp.get().set("stats", UUID.randomUUID().toString());
|
||||
tmp.save();
|
||||
System.out.println("SubServers > Created ~/config.yml");
|
||||
}
|
||||
if (!(new UniversalFile(dir, "modules.yml").exists())) {
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/modules.yml", new UniversalFile(dir, "modules.yml").getPath());
|
||||
System.out.println("SubServers > Created ~/modules.yml");
|
||||
}
|
||||
UniversalFile dir = new UniversalFile(this.dir, "SubServers");
|
||||
dir.mkdir();
|
||||
if (!(new UniversalFile(dir, "config.yml").exists())) {
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Proxy/Library/Files/config.yml", new UniversalFile(dir, "config.yml").getPath());
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/config.yml", new UniversalFile(dir, "config.yml").getPath());
|
||||
System.out.println("SubServers > Created ~/SubServers/config.yml");
|
||||
} else if ((new Version((new YAMLConfig(new UniversalFile(dir, "config.yml"))).get().getSection("Settings").getString("Version", "0")).compareTo(new Version("2.11.0a+"))) != 0) {
|
||||
} else if ((new Version((new YAMLConfig(new UniversalFile(dir, "config.yml"))).get().getSection("Settings").getString("Version", "0")).compareTo(new Version("2.11.2a+"))) != 0) {
|
||||
Files.move(new UniversalFile(dir, "config.yml").toPath(), new UniversalFile(dir, "config.old" + Math.round(Math.random() * 100000) + ".yml").toPath());
|
||||
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Proxy/Library/Files/config.yml", new UniversalFile(dir, "config.yml").getPath());
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/config.yml", new UniversalFile(dir, "config.yml").getPath());
|
||||
System.out.println("SubServers > Updated ~/SubServers/config.yml");
|
||||
}
|
||||
|
||||
if (!(new UniversalFile(dir, "lang.yml").exists())) {
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Proxy/Library/Files/lang.yml", new UniversalFile(dir, "lang.yml").getPath());
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/lang.yml", new UniversalFile(dir, "lang.yml").getPath());
|
||||
System.out.println("SubServers > Created ~/SubServers/lang.yml");
|
||||
} else if ((new Version((new YAMLConfig(new UniversalFile(dir, "lang.yml"))).get().getString("Version", "0")).compareTo(new Version("2.11.0a+"))) != 0) {
|
||||
} else if ((new Version((new YAMLConfig(new UniversalFile(dir, "lang.yml"))).get().getString("Version", "0")).compareTo(new Version("2.11.2a+"))) != 0) {
|
||||
Files.move(new UniversalFile(dir, "lang.yml").toPath(), new UniversalFile(dir, "lang.old" + Math.round(Math.random() * 100000) + ".yml").toPath());
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Proxy/Library/Files/lang.yml", new UniversalFile(dir, "lang.yml").getPath());
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/lang.yml", new UniversalFile(dir, "lang.yml").getPath());
|
||||
System.out.println("SubServers > Updated ~/SubServers/lang.yml");
|
||||
}
|
||||
|
||||
if (!(new UniversalFile(dir, "build.sh").exists())) {
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Proxy/Library/Files/build.sh", new UniversalFile(dir, "build.sh").getPath());
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/build.sh", new UniversalFile(dir, "build.sh").getPath());
|
||||
System.out.println("SubServers > Created ~/SubServers/build.sh");
|
||||
} else {
|
||||
String Version = "null";
|
||||
@ -88,12 +100,12 @@ public final class SubPlugin extends BungeeCord {
|
||||
|
||||
if (!Version.equalsIgnoreCase("2.11.0a+")) {
|
||||
Files.move(new UniversalFile(dir, "build.sh").toPath(), new UniversalFile(dir, "build.old" + Math.round(Math.random() * 100000) + ".sh").toPath());
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Proxy/Library/Files/build.sh", new UniversalFile(dir, "build.sh").getPath());
|
||||
Util.copyFromJar(SubPlugin.class.getClassLoader(), "net/ME1312/SubServers/Bungee/Library/Files/build.sh", new UniversalFile(dir, "build.sh").getPath());
|
||||
System.out.println("SubServers > Updated ~/SubServers/build.sh");
|
||||
}
|
||||
}
|
||||
|
||||
hostDrivers.put("built-in", net.ME1312.SubServers.Proxy.Host.Internal.InternalHost.class);
|
||||
hostDrivers.put("built-in", net.ME1312.SubServers.Bungee.Host.Internal.InternalHost.class);
|
||||
|
||||
System.out.println("SubServers > Loading BungeeCord Libraries...");
|
||||
}
|
||||
@ -156,7 +168,7 @@ public final class SubPlugin extends BungeeCord {
|
||||
SubServer server = this.hosts.get(config.get().getSection("Servers").getSection(name).getString("Host").toLowerCase()).addSubServer(name, config.get().getSection("Servers").getSection(name).getBoolean("Enabled"),
|
||||
config.get().getSection("Servers").getSection(name).getInt("Port"), config.get().getSection("Servers").getSection(name).getColoredString("Motd", '&'), config.get().getSection("Servers").getSection(name).getBoolean("Log"),
|
||||
config.get().getSection("Servers").getSection(name).getRawString("Directory"), new Executable(config.get().getSection("Servers").getSection(name).getRawString("Executable")), config.get().getSection("Servers").getSection(name).getRawString("Stop-Command"),
|
||||
config.get().getSection("Servers").getSection(name).getBoolean("Run-On-Launch"), config.get().getSection("Servers").getSection(name).getBoolean("Hidden", false), config.get().getSection("Servers").getSection(name).getBoolean("Auto-Restart"), config.get().getSection("Servers").getSection(name).getBoolean("Restricted"), false);
|
||||
config.get().getSection("Servers").getSection(name).getBoolean("Run-On-Launch"), config.get().getSection("Servers").getSection(name).getBoolean("Hidden"), config.get().getSection("Servers").getSection(name).getBoolean("Auto-Restart"), config.get().getSection("Servers").getSection(name).getBoolean("Restricted"), false);
|
||||
subservers++;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -165,7 +177,11 @@ public final class SubPlugin extends BungeeCord {
|
||||
|
||||
System.out.println("SubServers > " + hosts + " Host(s), " + servers + " Server(s), and " + subservers + " SubServer(s) loaded in " + (Calendar.getInstance().getTime().getTime() - begin) + "ms");
|
||||
|
||||
getPluginManager().registerCommand(null, new SubCommand(this));
|
||||
getPluginManager().registerCommand(null, new SubCommand.BungeeServer(this, "server"));
|
||||
getPluginManager().registerCommand(null, new SubCommand.BungeeList(this, "glist"));
|
||||
getPluginManager().registerCommand(null, new SubCommand(this, "subservers"));
|
||||
getPluginManager().registerCommand(null, new SubCommand(this, "subserver"));
|
||||
getPluginManager().registerCommand(null, new SubCommand(this, "sub"));
|
||||
|
||||
super.startListeners();
|
||||
} catch (IOException e) {
|
||||
@ -179,7 +195,7 @@ public final class SubPlugin extends BungeeCord {
|
||||
try {
|
||||
subdata.addClient(subdata.getServer().accept());
|
||||
} catch (IOException e) {
|
||||
if (e.getMessage() == null || !e.getMessage().equals("Socket closed")) e.printStackTrace();
|
||||
if (!(e instanceof SocketException)) e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}).start();
|
@ -1,5 +1,5 @@
|
||||
Settings:
|
||||
Version: '2.11.0a+'
|
||||
Version: '2.11.2a+'
|
||||
Use-Title-Messages: true
|
||||
SubData:
|
||||
Name: 'Server_1'
|
||||
|
@ -50,7 +50,11 @@ public class UIListener implements Listener {
|
||||
if (!event.isCancelled() && gui.keySet().contains(player.getUniqueId())) {
|
||||
UIRenderer gui = this.gui.get(player.getUniqueId());
|
||||
if (gui.open && event.getClickedInventory() != null && event.getClickedInventory().getTitle() != null) {
|
||||
if (event.getClickedInventory().getTitle().equals(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Menu.Title", '&'))) { // Host Menu
|
||||
if (plugin.subdata == null) {
|
||||
new IllegalStateException("SubData is not connected").printStackTrace();
|
||||
} else if (plugin.lang == null) {
|
||||
new IllegalStateException("There are no lang options available at this time").printStackTrace();
|
||||
} else if (event.getClickedInventory().getTitle().equals(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Menu.Title", '&'))) { // Host Menu
|
||||
if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR && event.getCurrentItem().hasItemMeta()) {
|
||||
String item = event.getCurrentItem().getItemMeta().getDisplayName();
|
||||
|
||||
@ -305,14 +309,14 @@ public class UIListener implements Listener {
|
||||
player.sendMessage(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Command.Message", '&'));
|
||||
input.put(player.getUniqueId(), m -> {
|
||||
gui.setDownloading(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Downloading.Response", '&'));
|
||||
plugin.subdata.sendPacket(new PacketCommandServer(player.getUniqueId(), gui.lastVistedObject, m.getString("message"), UUID.randomUUID().toString(), json -> {
|
||||
plugin.subdata.sendPacket(new PacketCommandServer(player.getUniqueId(), gui.lastVistedObject, (m.getString("message").startsWith("/"))?m.getString("message").substring(1):m.getString("message"), UUID.randomUUID().toString(), json -> {
|
||||
gui.reopen();
|
||||
}));
|
||||
});
|
||||
} else gui.reopen();
|
||||
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Teleport", '&'))) {
|
||||
player.closeInventory();
|
||||
if (player.hasPermission("subservers.subserver.teleport.*") || player.hasPermission("subservers.subserver.teleport." + gui.lastVistedObject.toLowerCase())) {
|
||||
if (player.hasPermission("subservers.server.teleport.*") || player.hasPermission("subservers.server.teleport." + gui.lastVistedObject.toLowerCase())) {
|
||||
gui.setDownloading(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Downloading.Response", '&'));
|
||||
plugin.subdata.sendPacket(new PacketTeleportPlayer(player.getUniqueId(), gui.lastVistedObject, UUID.randomUUID().toString(), json -> {
|
||||
if (json.getInt("r") != 0) gui.reopen();
|
||||
|
@ -17,6 +17,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.*;
|
||||
|
||||
public class UIRenderer {
|
||||
@ -91,7 +92,7 @@ public class UIRenderer {
|
||||
* @return Window History Status
|
||||
*/
|
||||
public boolean hasHistory() {
|
||||
return !windowHistory.isEmpty();
|
||||
return windowHistory.size() > 1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -267,7 +268,7 @@ public class UIRenderer {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, enabled);
|
||||
blockMeta = block.getItemMeta();
|
||||
blockMeta.setDisplayName(ChatColor.AQUA + host);
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Menu.Host-Server-Count", '&').replace("$int$", Integer.toString(json.getJSONObject("hosts").getJSONObject(host).getJSONObject("servers").keySet().size()))));
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Menu.Host-Server-Count", '&').replace("$int$", new DecimalFormat("#,###").format(json.getJSONObject("hosts").getJSONObject(host).getJSONObject("servers").keySet().size()))));
|
||||
} else {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, disabled);
|
||||
blockMeta = block.getItemMeta();
|
||||
@ -336,7 +337,7 @@ public class UIRenderer {
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens Hosts/<name>
|
||||
* Opens Host/<name>
|
||||
*
|
||||
* @param host Host Name
|
||||
*/
|
||||
@ -345,7 +346,7 @@ public class UIRenderer {
|
||||
plugin.subdata.sendPacket(new PacketDownloadHostInfo(host, UUID.randomUUID().toString(), (json) -> {
|
||||
windowHistory.add(() -> hostAdmin(host));
|
||||
if (!json.getBoolean("valid")) {
|
||||
back();
|
||||
if (hasHistory()) back();
|
||||
} else {
|
||||
setDownloading(null);
|
||||
lastVistedObject = host;
|
||||
@ -423,7 +424,7 @@ public class UIRenderer {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 11);
|
||||
blockMeta = block.getItemMeta();
|
||||
blockMeta.setDisplayName(ChatColor.AQUA + host);
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Menu.Host-Server-Count", '&').replace("$int$", Integer.toString(json.getJSONObject("host").getJSONObject("servers").keySet().size()))));
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Menu.Host-Server-Count", '&').replace("$int$", new DecimalFormat("#,###").format(json.getJSONObject("host").getJSONObject("servers").keySet().size()))));
|
||||
} else {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14);
|
||||
blockMeta = block.getItemMeta();
|
||||
@ -436,12 +437,14 @@ public class UIRenderer {
|
||||
inv.setItem(32, block);
|
||||
|
||||
|
||||
if (hasHistory()) {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14);
|
||||
blockMeta = block.getItemMeta();
|
||||
blockMeta.setDisplayName(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Back", '&'));
|
||||
block.setItemMeta(blockMeta);
|
||||
inv.setItem(34, block);
|
||||
inv.setItem(35, block);
|
||||
}
|
||||
|
||||
Bukkit.getPlayer(player).openInventory(inv);
|
||||
open = true;
|
||||
@ -450,7 +453,7 @@ public class UIRenderer {
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens Hosts/<name>/Create
|
||||
* Opens Host/<name>/Create
|
||||
*
|
||||
* @param options Creator Options
|
||||
*/
|
||||
@ -463,9 +466,9 @@ public class UIRenderer {
|
||||
}
|
||||
|
||||
plugin.subdata.sendPacket(new PacketDownloadHostInfo(options.getHost(), UUID.randomUUID().toString(), json -> {
|
||||
if (!json.getJSONObject("host").getBoolean("enabled") || json.getJSONObject("host").getJSONObject("creator").getBoolean("busy")) {
|
||||
if (!json.getBoolean("valid")|| !json.getJSONObject("host").getBoolean("enabled") || json.getJSONObject("host").getJSONObject("creator").getBoolean("busy")) {
|
||||
lastUsedOptions = null;
|
||||
back();
|
||||
if (hasHistory()) back();
|
||||
} else {
|
||||
setDownloading(null);
|
||||
ItemStack block;
|
||||
@ -586,12 +589,14 @@ public class UIRenderer {
|
||||
inv.setItem(49, block);
|
||||
inv.setItem(50, block);
|
||||
|
||||
if (hasHistory()) {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14);
|
||||
blockMeta = block.getItemMeta();
|
||||
blockMeta.setDisplayName(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Back", '&'));
|
||||
block.setItemMeta(blockMeta);
|
||||
inv.setItem(52, block);
|
||||
inv.setItem(53, block);
|
||||
}
|
||||
|
||||
Bukkit.getPlayer(player).openInventory(inv);
|
||||
open = true;
|
||||
@ -726,7 +731,7 @@ public class UIRenderer {
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens Hosts/<name>/Edit
|
||||
* Opens Host/<name>/Edit
|
||||
*
|
||||
* @param options Host Editor Options
|
||||
*/
|
||||
@ -773,7 +778,7 @@ public class UIRenderer {
|
||||
|
||||
HashMap<String, String> hosts = new HashMap<String, String>();
|
||||
List<String> subservers = new ArrayList<String>();
|
||||
if (host != null) {
|
||||
if (host != null && json.getJSONObject("hosts").keySet().contains(host)) {
|
||||
lastVistedObject = host;
|
||||
for (String subserver : json.getJSONObject("hosts").getJSONObject(host).getJSONObject("servers").keySet()) {
|
||||
hosts.put(subserver, host);
|
||||
@ -789,6 +794,7 @@ public class UIRenderer {
|
||||
}
|
||||
}
|
||||
}
|
||||
Collections.sort(subservers);
|
||||
windowHistory.add(() -> subserverMenu(page, host));
|
||||
|
||||
ItemStack block;
|
||||
@ -828,13 +834,13 @@ public class UIRenderer {
|
||||
if (json.getJSONObject("hosts").getJSONObject(hosts.get(subserver)).getJSONObject("servers").getJSONObject(subserver).getBoolean("temp")) {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, temp);
|
||||
blockMeta = block.getItemMeta();
|
||||
blockMeta.setDisplayName(ChatColor.BLUE + subserver);
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Player-Count", '&').replace("$int$", Integer.toString(json.getJSONObject("hosts").getJSONObject(hosts.get(subserver)).getJSONObject("servers").getJSONObject(subserver).getJSONObject("players").keySet().size())), plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Temporary", '&')));
|
||||
blockMeta.setDisplayName(ChatColor.AQUA + subserver);
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Player-Count", '&').replace("$int$", new DecimalFormat("#,###").format(json.getJSONObject("hosts").getJSONObject(hosts.get(subserver)).getJSONObject("servers").getJSONObject(subserver).getJSONObject("players").keySet().size())), plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Temporary", '&')));
|
||||
} else if (json.getJSONObject("hosts").getJSONObject(hosts.get(subserver)).getJSONObject("servers").getJSONObject(subserver).getBoolean("running")) {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, online);
|
||||
blockMeta = block.getItemMeta();
|
||||
blockMeta.setDisplayName(ChatColor.GREEN + subserver);
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Player-Count", '&').replace("$int$", Integer.toString(json.getJSONObject("hosts").getJSONObject(hosts.get(subserver)).getJSONObject("servers").getJSONObject(subserver).getJSONObject("players").keySet().size()))));
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Player-Count", '&').replace("$int$", new DecimalFormat("#,###").format(json.getJSONObject("hosts").getJSONObject(hosts.get(subserver)).getJSONObject("servers").getJSONObject(subserver).getJSONObject("players").keySet().size()))));
|
||||
} else if (json.getJSONObject("hosts").getJSONObject(hosts.get(subserver)).getJSONObject("servers").getJSONObject(subserver).getBoolean("enabled")) {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, offline);
|
||||
blockMeta = block.getItemMeta();
|
||||
@ -885,14 +891,16 @@ public class UIRenderer {
|
||||
inv.setItem(i++, block);
|
||||
} else i += 2;
|
||||
i++;
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) ((host == null)?11:14));
|
||||
if (host == null || hasHistory()) {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) ((host == null) ? 11 : 14));
|
||||
blockMeta = block.getItemMeta();
|
||||
blockMeta.setDisplayName((host == null)?plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.Host-Menu", '&'):plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Back", '&'));
|
||||
blockMeta.setDisplayName((host == null) ? plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.Host-Menu", '&') : plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Back", '&'));
|
||||
block.setItemMeta(blockMeta);
|
||||
inv.setItem(i++, block);
|
||||
inv.setItem(i++, block);
|
||||
inv.setItem(i++, block);
|
||||
i++;
|
||||
}
|
||||
if (subservers.size() - 1 > max) {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 4);
|
||||
blockMeta = block.getItemMeta();
|
||||
@ -917,7 +925,7 @@ public class UIRenderer {
|
||||
plugin.subdata.sendPacket(new PacketDownloadServerInfo(subserver, UUID.randomUUID().toString(), json -> {
|
||||
windowHistory.add(() -> subserverAdmin(subserver));
|
||||
if (!json.getString("type").equals("subserver")) {
|
||||
back();
|
||||
if (hasHistory()) back();
|
||||
} else {
|
||||
setDownloading(null);
|
||||
lastVistedObject = subserver;
|
||||
@ -987,11 +995,11 @@ public class UIRenderer {
|
||||
inv.setItem(15, block);
|
||||
inv.setItem(16, block);
|
||||
|
||||
if (!(Bukkit.getPlayer(player).hasPermission("subservers.subserver.teleport.*") || Bukkit.getPlayer(player).hasPermission("subservers.subserver.teleport." + subserver.toLowerCase()))) {
|
||||
if (!(Bukkit.getPlayer(player).hasPermission("subservers.server.teleport.*") || Bukkit.getPlayer(player).hasPermission("subservers.server.teleport." + subserver.toLowerCase()))) {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 7);
|
||||
blockMeta = block.getItemMeta();
|
||||
blockMeta.setDisplayName(ChatColor.GRAY+ChatColor.stripColor(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Teleport", '&')));
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Invalid-Permission", '&').replace("$str$", "subservers.subserver.teleport." + subserver.toLowerCase())));
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Invalid-Permission", '&').replace("$str$", "subservers.server.teleport." + subserver.toLowerCase())));
|
||||
} else {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 11);
|
||||
blockMeta = block.getItemMeta();
|
||||
@ -1051,13 +1059,13 @@ public class UIRenderer {
|
||||
if (json.getJSONObject("server").getBoolean("temp")) {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 11);
|
||||
blockMeta = block.getItemMeta();
|
||||
blockMeta.setDisplayName(ChatColor.BLUE + subserver);
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Player-Count", '&').replace("$int$", Integer.toString(json.getJSONObject("server").getJSONObject("players").keySet().size())), plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Temporary", '&')));
|
||||
blockMeta.setDisplayName(ChatColor.AQUA + subserver);
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Player-Count", '&').replace("$int$", new DecimalFormat("#,###").format(json.getJSONObject("server").getJSONObject("players").keySet().size())), plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Temporary", '&')));
|
||||
} else if (json.getJSONObject("server").getBoolean("running")) {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 5);
|
||||
blockMeta = block.getItemMeta();
|
||||
blockMeta.setDisplayName(ChatColor.GREEN + subserver);
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Player-Count", '&').replace("$int$", Integer.toString(json.getJSONObject("server").getJSONObject("players").keySet().size()))));
|
||||
blockMeta.setLore(Arrays.asList(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Player-Count", '&').replace("$int$", new DecimalFormat("#,###").format(json.getJSONObject("server").getJSONObject("players").keySet().size()))));
|
||||
} else if (json.getJSONObject("server").getBoolean("enabled")) {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 4);
|
||||
blockMeta = block.getItemMeta();
|
||||
@ -1074,13 +1082,14 @@ public class UIRenderer {
|
||||
inv.setItem(31, block);
|
||||
inv.setItem(32, block);
|
||||
|
||||
|
||||
if (hasHistory()) {
|
||||
block = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14);
|
||||
blockMeta = block.getItemMeta();
|
||||
blockMeta.setDisplayName(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Back", '&'));
|
||||
block.setItemMeta(blockMeta);
|
||||
inv.setItem(34, block);
|
||||
inv.setItem(35, block);
|
||||
}
|
||||
|
||||
Bukkit.getPlayer(player).openInventory(inv);
|
||||
open = true;
|
||||
|
@ -86,6 +86,8 @@ public class YAMLSection {
|
||||
map.put(label, ((YAMLSection) value).map);
|
||||
} else if (value instanceof YAMLValue) {
|
||||
map.put(label, ((YAMLValue) value).asObject());
|
||||
} else if (value instanceof UUID) {
|
||||
map.put(label, ((UUID) value).toString());
|
||||
} else {
|
||||
map.put(label, value);
|
||||
}
|
||||
@ -408,6 +410,26 @@ public class YAMLSection {
|
||||
}
|
||||
}
|
||||
|
||||
public List<UUID> getUUIDList(String label) {
|
||||
if (map.get(label) != null) {
|
||||
List<UUID> values = new ArrayList<UUID>();
|
||||
for (String value : (List<String>) map.get(label)) {
|
||||
values.add(UUID.fromString(value));
|
||||
}
|
||||
return values;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public List<UUID> getUUIDList(String label, List<UUID> def) {
|
||||
if (map.get(label) != null) {
|
||||
return getUUIDList(label);
|
||||
} else {
|
||||
return def;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isBoolean(String label) {
|
||||
return (map.get(label) instanceof Boolean);
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import org.yaml.snakeyaml.Yaml;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
@SuppressWarnings({"unchecked", "unused"})
|
||||
public class YAMLValue {
|
||||
@ -117,6 +118,18 @@ public class YAMLValue {
|
||||
return values;
|
||||
}
|
||||
|
||||
public UUID asUUID() {
|
||||
return UUID.fromString((String) obj);
|
||||
}
|
||||
|
||||
public List<UUID> asUUIDList() {
|
||||
List<UUID> values = new ArrayList<UUID>();
|
||||
for (String value : (List<String>) obj) {
|
||||
values.add(UUID.fromString(value));
|
||||
}
|
||||
return values;
|
||||
}
|
||||
|
||||
public boolean isBoolean() {
|
||||
return (obj instanceof Boolean);
|
||||
}
|
||||
|
@ -29,6 +29,16 @@ public final class Util {
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isSpigot() {
|
||||
boolean spigot = false;
|
||||
try {
|
||||
if (Class.forName("org.spigotmc.SpigotConfig") != null) {
|
||||
spigot = true;
|
||||
}
|
||||
} catch (ClassNotFoundException e) {}
|
||||
return spigot;
|
||||
}
|
||||
|
||||
public static boolean isException(Runnable runnable) {
|
||||
try {
|
||||
runnable.run();
|
||||
|
@ -24,7 +24,7 @@ public class PacketDownloadHostInfo implements PacketIn, PacketOut {
|
||||
public JSONObject generate() {
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("id", id);
|
||||
if (host != null) json.put("host", host);
|
||||
json.put("host", host);
|
||||
return json;
|
||||
}
|
||||
|
||||
|
@ -7,30 +7,37 @@ import net.ME1312.SubServers.Client.Bukkit.Network.PacketOut;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class PacketDownloadPlayerList implements PacketIn, PacketOut {
|
||||
private List<JSONCallback> callbacks = new ArrayList<JSONCallback>();
|
||||
private static HashMap<String, JSONCallback> callbacks = new HashMap<String, JSONCallback>();
|
||||
private String id;
|
||||
|
||||
public PacketDownloadPlayerList() {}
|
||||
|
||||
public PacketDownloadPlayerList(String id, JSONCallback callback) {
|
||||
this.id = id;
|
||||
callbacks.put(id, callback);
|
||||
}
|
||||
@Override
|
||||
public JSONObject generate() {
|
||||
if (id != null) {
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("id", id);
|
||||
return json;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(JSONObject data) {
|
||||
callbacks.get(0).run(data);
|
||||
callbacks.remove(0);
|
||||
callbacks.get(data.getString("id")).run(data);
|
||||
callbacks.remove(data.getString("id"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Version getVersion() {
|
||||
return new Version("2.11.0a");
|
||||
}
|
||||
|
||||
public void callback(String id, JSONCallback callback) {
|
||||
callbacks.add(callback);
|
||||
}
|
||||
}
|
||||
|
@ -19,36 +19,36 @@ public class PacketInRunEvent implements PacketIn {
|
||||
callback("SubAddServerEvent", new JSONCallback() {
|
||||
@Override
|
||||
public void run(JSONObject json) {
|
||||
Bukkit.getPluginManager().callEvent(new SubAddServerEvent(UUID.fromString(json.getString("player")), json.getString("host"), json.getString("server")));
|
||||
Bukkit.getPluginManager().callEvent(new SubAddServerEvent((json.keySet().contains("player"))?UUID.fromString(json.getString("player")):null, json.getString("host"), json.getString("server")));
|
||||
callback("SubAddServerEvent", this);
|
||||
}
|
||||
});
|
||||
callback("SubCreateEvent", new JSONCallback() {
|
||||
@Override
|
||||
public void run(JSONObject json) {
|
||||
Bukkit.getPluginManager().callEvent(new SubCreateEvent(UUID.fromString(json.getString("player")), json.getString("host"), json.getString("server"),
|
||||
PacketCreateServer.ServerType.valueOf(json.getString("").toUpperCase()), new Version(json.getString("version")), json.getInt("memory"), json.getInt("port")));
|
||||
Bukkit.getPluginManager().callEvent(new SubCreateEvent((json.keySet().contains("player"))?UUID.fromString(json.getString("player")):null, json.getString("host"), json.getString("name"),
|
||||
PacketCreateServer.ServerType.valueOf(json.getString("type").toUpperCase()), new Version(json.getString("version")), json.getInt("memory"), json.getInt("port")));
|
||||
callback("SubCreateEvent", this);
|
||||
}
|
||||
});
|
||||
callback("SubSendCommandEvent", new JSONCallback() {
|
||||
@Override
|
||||
public void run(JSONObject json) {
|
||||
Bukkit.getPluginManager().callEvent(new SubSendCommandEvent(UUID.fromString(json.getString("player")), json.getString("server"), json.getString("command")));
|
||||
Bukkit.getPluginManager().callEvent(new SubSendCommandEvent((json.keySet().contains("player"))?UUID.fromString(json.getString("player")):null, json.getString("server"), json.getString("command")));
|
||||
callback("SubSendCommandEvent", this);
|
||||
}
|
||||
});
|
||||
callback("SubStartEvent", new JSONCallback() {
|
||||
@Override
|
||||
public void run(JSONObject json) {
|
||||
Bukkit.getPluginManager().callEvent(new SubStartEvent(UUID.fromString(json.getString("player")), json.getString("server")));
|
||||
Bukkit.getPluginManager().callEvent(new SubStartEvent((json.keySet().contains("player"))?UUID.fromString(json.getString("player")):null, json.getString("server")));
|
||||
callback("SubStartEvent", this);
|
||||
}
|
||||
});
|
||||
callback("SubStopEvent", new JSONCallback() {
|
||||
@Override
|
||||
public void run(JSONObject json) {
|
||||
Bukkit.getPluginManager().callEvent(new SubStopEvent(UUID.fromString(json.getString("player")), json.getString("server"), json.getBoolean("force")));
|
||||
Bukkit.getPluginManager().callEvent(new SubStopEvent((json.keySet().contains("player"))?UUID.fromString(json.getString("player")):null, json.getString("server"), json.getBoolean("force")));
|
||||
callback("SubStopEvent", this);
|
||||
}
|
||||
});
|
||||
@ -62,7 +62,7 @@ public class PacketInRunEvent implements PacketIn {
|
||||
callback("SubRemoveServerEvent", new JSONCallback() {
|
||||
@Override
|
||||
public void run(JSONObject json) {
|
||||
Bukkit.getPluginManager().callEvent(new SubRemoveServerEvent(UUID.fromString(json.getString("player")), json.getString("host"), json.getString("server")));
|
||||
Bukkit.getPluginManager().callEvent(new SubRemoveServerEvent((json.keySet().contains("player"))?UUID.fromString(json.getString("player")):null, json.getString("host"), json.getString("server")));
|
||||
callback("SubRemoveServerEvent", this);
|
||||
}
|
||||
});
|
||||
|
@ -15,6 +15,7 @@ import java.io.PrintWriter;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.Socket;
|
||||
import java.net.SocketException;
|
||||
import java.util.HashMap;
|
||||
|
||||
public final class SubDataClient {
|
||||
@ -106,7 +107,7 @@ public final class SubDataClient {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (e.getMessage() == null || !e.getMessage().equals("Socket closed")) e.printStackTrace();
|
||||
if (!(e instanceof SocketException)) e.printStackTrace();
|
||||
try {
|
||||
destroy(true);
|
||||
} catch (IOException e1) {
|
||||
|
@ -1,9 +1,19 @@
|
||||
package net.ME1312.SubServers.Client.Bukkit;
|
||||
|
||||
import net.ME1312.SubServers.Client.Bukkit.Graphic.UIRenderer;
|
||||
import net.ME1312.SubServers.Client.Bukkit.Library.Util;
|
||||
import net.ME1312.SubServers.Client.Bukkit.Library.Version.Version;
|
||||
import net.ME1312.SubServers.Client.Bukkit.Network.Packet.*;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.*;
|
||||
|
||||
public final class SubCommand implements CommandExecutor {
|
||||
private SubPlugin plugin;
|
||||
@ -14,7 +24,454 @@ public final class SubCommand implements CommandExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
label = "/" + label;
|
||||
if (plugin.subdata == null) {
|
||||
new IllegalStateException("SubData is not connected").printStackTrace();
|
||||
return false;
|
||||
} else if (plugin.lang == null) {
|
||||
new IllegalStateException("There are no lang options available at this time").printStackTrace();
|
||||
return false;
|
||||
} else {
|
||||
if (sender.hasPermission("subservers.command")) {
|
||||
if (args.length > 0) {
|
||||
if (args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("?")) {
|
||||
sender.sendMessage(printHelp(label));
|
||||
} else if (args[0].equalsIgnoreCase("version") || args[0].equalsIgnoreCase("ver")) {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Version", '&').replace("$str$", plugin.version.toString() + ((plugin.bversion != null)?" BETA "+plugin.bversion.toString():"")));
|
||||
} else if (args[0].equalsIgnoreCase("list")) {
|
||||
plugin.subdata.sendPacket(new PacketDownloadServerList(null, UUID.randomUUID().toString(), json -> {
|
||||
int i = 0;
|
||||
TreeMap<String, JSONObject> servers = new TreeMap<String, JSONObject>();
|
||||
if (Util.isSpigot() && sender instanceof Player) {
|
||||
net.md_5.bungee.api.chat.TextComponent hostm = new net.md_5.bungee.api.chat.TextComponent(ChatColor.RESET.toString());
|
||||
net.md_5.bungee.api.chat.TextComponent serverm = new net.md_5.bungee.api.chat.TextComponent(ChatColor.RESET.toString());
|
||||
net.md_5.bungee.api.chat.TextComponent div = new net.md_5.bungee.api.chat.TextComponent(plugin.lang.getSection("Lang").getColoredString("Command.List.Divider", '&'));
|
||||
for (String server : json.getJSONObject("servers").keySet()) {
|
||||
servers.put(server, json.getJSONObject("servers").getJSONObject(server));
|
||||
}
|
||||
for (String host : json.getJSONObject("hosts").keySet()) {
|
||||
List<net.md_5.bungee.api.chat.TextComponent> hoverm = new LinkedList<net.md_5.bungee.api.chat.TextComponent>();
|
||||
net.md_5.bungee.api.chat.TextComponent message = new net.md_5.bungee.api.chat.TextComponent(host);
|
||||
net.md_5.bungee.api.chat.TextComponent hover = new net.md_5.bungee.api.chat.TextComponent(host + '\n');
|
||||
if (json.getJSONObject("hosts").getJSONObject(host).getBoolean("enabled")) {
|
||||
message.setColor(net.md_5.bungee.api.ChatColor.AQUA);
|
||||
hover.setColor(net.md_5.bungee.api.ChatColor.AQUA);
|
||||
hoverm.add(hover);
|
||||
hover = new net.md_5.bungee.api.chat.TextComponent(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Menu.Host-Server-Count", '&').replace("$int$", new DecimalFormat("#,###").format(json.getJSONObject("hosts").getJSONObject(host).getJSONObject("servers").keySet().size())));
|
||||
} else {
|
||||
message.setColor(net.md_5.bungee.api.ChatColor.RED);
|
||||
hover.setColor(net.md_5.bungee.api.ChatColor.RED);
|
||||
hoverm.add(hover);
|
||||
hover = new net.md_5.bungee.api.chat.TextComponent(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Menu.Host-Disabled", '&'));
|
||||
}
|
||||
hoverm.add(hover);
|
||||
if (i != 0) hostm.addExtra(div);
|
||||
message.setClickEvent(new net.md_5.bungee.api.chat.ClickEvent(net.md_5.bungee.api.chat.ClickEvent.Action.RUN_COMMAND, "/subservers open Host/ " + host));
|
||||
message.setHoverEvent(new net.md_5.bungee.api.chat.HoverEvent(net.md_5.bungee.api.chat.HoverEvent.Action.SHOW_TEXT, hoverm.toArray(new net.md_5.bungee.api.chat.TextComponent[hoverm.size()])));
|
||||
hostm.addExtra(message);
|
||||
i++;
|
||||
for (String subserver : json.getJSONObject("hosts").getJSONObject(host).getJSONObject("servers").keySet()) {
|
||||
servers.put(subserver, json.getJSONObject("hosts").getJSONObject(host).getJSONObject("servers").getJSONObject(subserver));
|
||||
}
|
||||
}
|
||||
i = 0;
|
||||
for (String server : servers.keySet()) {
|
||||
List<net.md_5.bungee.api.chat.TextComponent> hoverm = new LinkedList<net.md_5.bungee.api.chat.TextComponent>();
|
||||
net.md_5.bungee.api.chat.TextComponent message = new net.md_5.bungee.api.chat.TextComponent(server);
|
||||
net.md_5.bungee.api.chat.TextComponent hover = new net.md_5.bungee.api.chat.TextComponent(server + '\n');
|
||||
if (!servers.get(server).keySet().contains("enabled")) {
|
||||
message.setColor(net.md_5.bungee.api.ChatColor.WHITE);
|
||||
hover.setColor(net.md_5.bungee.api.ChatColor.WHITE);
|
||||
hoverm.add(hover);
|
||||
hover = new net.md_5.bungee.api.chat.TextComponent(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-External", '&'));
|
||||
} else {
|
||||
message.setClickEvent(new net.md_5.bungee.api.chat.ClickEvent(net.md_5.bungee.api.chat.ClickEvent.Action.RUN_COMMAND, "/subservers open SubServer/ " + server));
|
||||
if (servers.get(server).getBoolean("temp")) {
|
||||
message.setColor(net.md_5.bungee.api.ChatColor.AQUA);
|
||||
hover.setColor(net.md_5.bungee.api.ChatColor.AQUA);
|
||||
hoverm.add(hover);
|
||||
hover = new net.md_5.bungee.api.chat.TextComponent(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Player-Count", '&').replace("$int$", new DecimalFormat("#,###").format(servers.get(server).getJSONObject("players").keySet().size())) + '\n');
|
||||
hoverm.add(hover);
|
||||
hover = new net.md_5.bungee.api.chat.TextComponent(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Temporary", '&'));
|
||||
} else if (servers.get(server).getBoolean("running")) {
|
||||
message.setColor(net.md_5.bungee.api.ChatColor.GREEN);
|
||||
hover.setColor(net.md_5.bungee.api.ChatColor.GREEN);
|
||||
hoverm.add(hover);
|
||||
hover = new net.md_5.bungee.api.chat.TextComponent(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Player-Count", '&').replace("$int$", new DecimalFormat("#,###").format(servers.get(server).getJSONObject("players").keySet().size())));
|
||||
} else if (servers.get(server).getBoolean("enabled")) {
|
||||
message.setColor(net.md_5.bungee.api.ChatColor.YELLOW);
|
||||
hover.setColor(net.md_5.bungee.api.ChatColor.YELLOW);
|
||||
hoverm.add(hover);
|
||||
hover = new net.md_5.bungee.api.chat.TextComponent(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Offline", '&'));
|
||||
} else {
|
||||
message.setColor(net.md_5.bungee.api.ChatColor.RED);
|
||||
hover.setColor(net.md_5.bungee.api.ChatColor.RED);
|
||||
hoverm.add(hover);
|
||||
hover = new net.md_5.bungee.api.chat.TextComponent(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Menu.SubServer-Disabled", '&'));
|
||||
}
|
||||
}
|
||||
hoverm.add(hover);
|
||||
if (i != 0) serverm.addExtra(div);
|
||||
message.setHoverEvent(new net.md_5.bungee.api.chat.HoverEvent(net.md_5.bungee.api.chat.HoverEvent.Action.SHOW_TEXT, hoverm.toArray(new net.md_5.bungee.api.chat.TextComponent[hoverm.size()])));
|
||||
serverm.addExtra(message);
|
||||
i++;
|
||||
}
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.List.Host-Header", '&'));
|
||||
((Player) sender).spigot().sendMessage(hostm);
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.List.Server-Header", '&'));
|
||||
((Player) sender).spigot().sendMessage(serverm);
|
||||
} else {
|
||||
String hostm = "";
|
||||
String serverm = "";
|
||||
String div = plugin.lang.getSection("Lang").getColoredString("Command.List.Divider", '&');
|
||||
|
||||
for (String server : json.getJSONObject("servers").keySet()) {
|
||||
servers.put(server, json.getJSONObject("servers").getJSONObject(server));
|
||||
}
|
||||
for (String host : json.getJSONObject("hosts").keySet()) {
|
||||
if (i != 0) hostm += div;
|
||||
if (json.getJSONObject("hosts").getJSONObject(host).getBoolean("enabled")) {
|
||||
hostm += ChatColor.AQUA + host;
|
||||
} else {
|
||||
hostm += ChatColor.RED + host;
|
||||
}
|
||||
i++;
|
||||
for (String subserver : json.getJSONObject("hosts").getJSONObject(host).getJSONObject("servers").keySet()) {
|
||||
servers.put(subserver, json.getJSONObject("hosts").getJSONObject(host).getJSONObject("servers").getJSONObject(subserver));
|
||||
}
|
||||
}
|
||||
i = 0;
|
||||
for (String server : servers.keySet()) {
|
||||
if (i != 0) serverm += div;
|
||||
if (!servers.get(server).keySet().contains("enabled")) {
|
||||
serverm += ChatColor.WHITE + server;
|
||||
} else if (servers.get(server).getBoolean("temp")) {
|
||||
serverm += ChatColor.AQUA + server;
|
||||
} else if (servers.get(server).getBoolean("running")) {
|
||||
serverm += ChatColor.GREEN + server;
|
||||
} else if (servers.get(server).getBoolean("enabled")) {
|
||||
serverm += ChatColor.YELLOW + server;
|
||||
} else {
|
||||
serverm += ChatColor.RED + server;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
sender.sendMessage(new String[]{plugin.lang.getSection("Lang").getColoredString("Command.List.Host-Header", '&'), hostm, plugin.lang.getSection("Lang").getColoredString("Command.List.Server-Header", '&'), serverm});
|
||||
}
|
||||
}));
|
||||
} else if (args[0].equalsIgnoreCase("start")) {
|
||||
if (sender.hasPermission("subservers.subserver.start.*") || sender.hasPermission("subservers.subserver.start." + args[1].toLowerCase())) {
|
||||
if (args.length > 1) {
|
||||
plugin.subdata.sendPacket(new PacketStartServer((sender instanceof Player)?((Player) sender).getUniqueId():null, args[1], UUID.randomUUID().toString(), json -> {
|
||||
switch (json.getInt("r")) {
|
||||
case 3:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Start.Unknown", '&'));
|
||||
break;
|
||||
case 4:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Start.Invalid", '&'));
|
||||
break;
|
||||
case 5:
|
||||
if (json.getString("m").contains("Host")) {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Start.Host-Disabled", '&'));
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Start.Server-Disabled", '&'));
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Start.Running", '&'));
|
||||
break;
|
||||
case 0:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Start", '&'));
|
||||
break;
|
||||
default:
|
||||
Bukkit.getLogger().warning("SubData > PacketStartServer(" + ((sender instanceof Player)?((Player) sender).getUniqueId().toString():"null") + ", " + args[1] + ") responded with: " + json.getString("m"));
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Start", '&'));
|
||||
break;
|
||||
}
|
||||
}));
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Usage", '&').replace("$str$", label.toLowerCase() + " " + args[0].toLowerCase() + " <SubServer>"));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Invalid-Permission", '&').replace("$str$", "subservers.subserver.start." + args[1].toLowerCase()));
|
||||
}
|
||||
|
||||
} else if (args[0].equalsIgnoreCase("stop")) {
|
||||
if (sender.hasPermission("subservers.subserver.stop.*") || sender.hasPermission("subservers.subserver.stop." + args[1].toLowerCase())) {
|
||||
if (args.length > 1) {
|
||||
plugin.subdata.sendPacket(new PacketStopServer((sender instanceof Player)?((Player) sender).getUniqueId():null, args[1], false, UUID.randomUUID().toString(), json -> {
|
||||
switch (json.getInt("r")) {
|
||||
case 3:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Stop.Unknown", '&'));
|
||||
break;
|
||||
case 4:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Stop.Invalid", '&'));
|
||||
break;
|
||||
case 5:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Stop.Not-Running", '&'));
|
||||
break;
|
||||
case 0:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Stop", '&'));
|
||||
break;
|
||||
default:
|
||||
Bukkit.getLogger().warning("SubData > PacketStopServer(" + ((sender instanceof Player)?((Player) sender).getUniqueId().toString():"null") + ", " + args[1] + ", false) responded with: " + json.getString("m"));
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Stop", '&'));
|
||||
break;
|
||||
}
|
||||
}));
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Usage", '&').replace("$str$", label.toLowerCase() + " " + args[0].toLowerCase() + " <SubServer>"));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Invalid-Permission", '&').replace("$str$", "subservers.subserver.stop." + args[1].toLowerCase()));
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("kill") || args[0].equalsIgnoreCase("terminate")) {
|
||||
if (sender.hasPermission("subservers.subserver.terminate.*") || sender.hasPermission("subservers.subserver.terminate." + args[1].toLowerCase())) {
|
||||
if (args.length > 1) {
|
||||
plugin.subdata.sendPacket(new PacketStopServer((sender instanceof Player)?((Player) sender).getUniqueId():null, args[1], true, UUID.randomUUID().toString(), json -> {
|
||||
switch (json.getInt("r")) {
|
||||
case 3:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Terminate.Unknown", '&'));
|
||||
break;
|
||||
case 4:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Terminate.Invalid", '&'));
|
||||
break;
|
||||
case 5:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Terminate.Not-Running", '&'));
|
||||
break;
|
||||
case 0:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Terminate", '&'));
|
||||
break;
|
||||
default:
|
||||
Bukkit.getLogger().warning("SubData > PacketStopServer(" + ((sender instanceof Player)?((Player) sender).getUniqueId().toString():"null") + ", " + args[1] + ", true) responded with: " + json.getString("m"));
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Terminate", '&'));
|
||||
break;
|
||||
}
|
||||
}));
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Usage", '&').replace("$str$", label.toLowerCase() + " " + args[0].toLowerCase() + " <SubServer>"));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Invalid-Permission", '&').replace("$str$", "subservers.subserver.terminate." + args[1].toLowerCase()));
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("cmd") || args[0].equalsIgnoreCase("command")) {
|
||||
if (sender.hasPermission("subservers.subserver.command.*") || sender.hasPermission("subservers.subserver.command." + args[1].toLowerCase())) {
|
||||
if (args.length > 2) {
|
||||
int i = 2;
|
||||
String str = args[2];
|
||||
if (args.length > 3) {
|
||||
do {
|
||||
i++;
|
||||
str = str + " " + args[i];
|
||||
} while ((i + 1) != args.length);
|
||||
}
|
||||
final String cmd = str;
|
||||
plugin.subdata.sendPacket(new PacketCommandServer((sender instanceof Player)?((Player) sender).getUniqueId():null, args[1], cmd, UUID.randomUUID().toString(), json -> {
|
||||
switch (json.getInt("r")) {
|
||||
case 3:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Command.Unknown", '&'));
|
||||
break;
|
||||
case 4:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Command.Invalid", '&'));
|
||||
break;
|
||||
case 5:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Command.Not-Running", '&'));
|
||||
break;
|
||||
case 0:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Command", '&'));
|
||||
break;
|
||||
default:
|
||||
Bukkit.getLogger().warning("SubData > PacketCommandServer(" + ((sender instanceof Player)?((Player) sender).getUniqueId().toString():"null") + ", " + args[1] + ", /" + cmd + ") responded with: " + json.getString("m"));
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Command", '&'));
|
||||
break;
|
||||
}
|
||||
}));
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Usage", '&').replace("$str$", label.toLowerCase() + " " + args[0].toLowerCase() + " <SubServer> <Command> [Args...]"));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Invalid-Permission", '&').replace("$str$", "subservers.subserver.command." + args[1].toLowerCase()));
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("create")) {
|
||||
if (sender.hasPermission("subservers.host.create.*") || sender.hasPermission("subservers.host.create." + args[2].toLowerCase())) {
|
||||
if (args.length > 5) {
|
||||
if (Util.isException(() -> PacketCreateServer.ServerType.valueOf(args[3].toUpperCase()))) {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Creator.Invalid-Type", '&'));
|
||||
} else if (Util.isException(() -> Integer.parseInt(args[5]))) {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Creator.Invalid-Port", '&'));
|
||||
} else if (args.length > 6 && Util.isException(() -> Integer.parseInt(args[6]))) {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Creator.Invalid-Memory", '&'));
|
||||
} else {
|
||||
plugin.subdata.sendPacket(new PacketCreateServer((sender instanceof Player)?((Player) sender).getUniqueId():null, args[1], args[2], PacketCreateServer.ServerType.valueOf(args[3].toUpperCase()), new Version(args[4]), Integer.parseInt(args[5]), (args.length > 6)?Integer.parseInt(args[6]):1024, UUID.randomUUID().toString(), json -> {
|
||||
switch (json.getInt("r")) {
|
||||
case 3:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Creator.Exists", '&'));
|
||||
break;
|
||||
case 4:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Creator.Unknown-Host", '&'));
|
||||
break;
|
||||
case 5:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Creator.Running", '&'));
|
||||
break;
|
||||
case 6:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Creator.Invalid-Type", '&'));
|
||||
break;
|
||||
case 7:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Creator.Invalid-Version", '&'));
|
||||
break;
|
||||
case 8:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Creator.Invalid-Port", '&'));
|
||||
break;
|
||||
case 9:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Creator.Invalid-Memory", '&'));
|
||||
break;
|
||||
case 0:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Creator", '&'));
|
||||
break;
|
||||
default:
|
||||
Bukkit.getLogger().warning("SubData > PacketCreateServer(" + ((sender instanceof Player)?((Player) sender).getUniqueId().toString():"null") + ", " + args[1] + ", " + args[2] + ", " + args[3].toUpperCase() + ", " + args[4] + ", " + args[5] + ", " + ((args.length > 6)?args[6]:"1024") + ") responded with: " + json.getString("m"));
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Creator", '&'));
|
||||
break;
|
||||
}
|
||||
}));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Usage", '&').replace("$str$", label.toLowerCase() + " " + args[0].toLowerCase() + " <Name> <Host> <Type> <Version> <Port> [RAM]"));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Invalid-Permission", '&').replace("$str$", "subservers.host.create." + args[2].toLowerCase()));
|
||||
}
|
||||
} else if ((args[0].equalsIgnoreCase("view") || args[0].equalsIgnoreCase("open")) && sender instanceof Player) {
|
||||
if (sender.hasPermission("subservers.interface")) {
|
||||
try {
|
||||
plugin.gui.getRenderer((Player) sender).clearHistory();
|
||||
switch (args[1].toLowerCase()) {
|
||||
case "host":
|
||||
if (args.length > 2) plugin.gui.getRenderer((Player) sender).hostMenu(Integer.parseInt(args[2]));
|
||||
else plugin.gui.getRenderer((Player) sender).hostMenu(1);
|
||||
break;
|
||||
case "host/":
|
||||
plugin.gui.getRenderer((Player) sender).hostAdmin(args[2]);
|
||||
break;
|
||||
case "host/creator":
|
||||
if (sender.hasPermission("subservers.host.create.*") || sender.hasPermission("subservers.host.create." + args[2].toLowerCase())) plugin.gui.getRenderer((Player) sender).hostCreator(new UIRenderer.CreatorOptions(args[2]));
|
||||
break;
|
||||
case "host/editor":
|
||||
if (sender.hasPermission("subservers.host.edit.*") || sender.hasPermission("subservers.host.edit." + args[2].toLowerCase())) plugin.gui.getRenderer((Player) sender).hostEditor(new UIRenderer.HostEditorOptions(args[2]));
|
||||
break;
|
||||
case "subserver":
|
||||
if (args.length > 3) plugin.gui.getRenderer((Player) sender).subserverMenu(Integer.parseInt(args[2]), args[3]);
|
||||
else if (args.length > 2) plugin.gui.getRenderer((Player) sender).subserverMenu(Integer.parseInt(args[2]), null);
|
||||
else plugin.gui.getRenderer((Player) sender).subserverMenu(1, null);
|
||||
break;
|
||||
case "subserver/":
|
||||
plugin.gui.getRenderer((Player) sender).subserverAdmin(args[2]);
|
||||
break;
|
||||
case "subserver/editor":
|
||||
if (sender.hasPermission("subservers.subserver.edit.*") || sender.hasPermission("subservers.subserver.edit." + args[2].toLowerCase())) plugin.gui.getRenderer((Player) sender).subserverEditor(new UIRenderer.SubServerEditorOptions(args[2]));
|
||||
break;
|
||||
}
|
||||
} catch (Throwable e) {}
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Invalid-Permission", '&').replace("$str$", "subservers.interface"));
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("tp") || args[0].equalsIgnoreCase("teleport")) {
|
||||
if (args.length > 2) {
|
||||
if (sender.hasPermission("subservers.server.teleport.*") || sender.hasPermission("subservers.server.teleport." + args[1].toLowerCase())) {
|
||||
if (sender.hasPermission("subservers.server.teleport-others")) {
|
||||
plugin.subdata.sendPacket(new PacketDownloadPlayerList(UUID.randomUUID().toString(), players -> {
|
||||
UUID uuid = null;
|
||||
for (String id : players.getJSONObject("players").keySet()) {
|
||||
if (players.getJSONObject("players").getJSONObject(id).getString("name").equalsIgnoreCase(args[2]))
|
||||
uuid = UUID.fromString(id);
|
||||
}
|
||||
if (uuid == null) {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Teleport.Offline", '&'));
|
||||
} else {
|
||||
final UUID player = uuid;
|
||||
plugin.subdata.sendPacket(new PacketTeleportPlayer(player, args[1], UUID.randomUUID().toString(), json -> {
|
||||
switch (json.getInt("r")) {
|
||||
case 2:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Teleport.Invalid", '&'));
|
||||
break;
|
||||
case 3:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Teleport.Offline", '&'));
|
||||
break;
|
||||
case 0:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Teleport", '&'));
|
||||
break;
|
||||
default:
|
||||
Bukkit.getLogger().warning("SubData > PacketTeleportPlayer(" + player.toString() + ", " + args[1] + ") responded with: " + json.getString("m"));
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Teleport", '&'));
|
||||
}
|
||||
}));
|
||||
}
|
||||
}));
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Invalid-Permission", '&').replace("$str$", "subservers.server.teleport-others"));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Invalid-Permission", '&').replace("$str$", "subservers.server.teleport." + args[1].toLowerCase()));
|
||||
}
|
||||
} else if (args.length > 1) {
|
||||
if (sender.hasPermission("subservers.server.teleport.*") || sender.hasPermission("subservers.server.teleport." + args[1].toLowerCase())) {
|
||||
if (sender instanceof Player) {
|
||||
plugin.subdata.sendPacket(new PacketTeleportPlayer(((Player) sender).getUniqueId(), args[1], UUID.randomUUID().toString(), json -> {
|
||||
switch (json.getInt("r")) {
|
||||
case 2:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Teleport.Invalid", '&'));
|
||||
break;
|
||||
case 3:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Teleport.Offline", '&'));
|
||||
break;
|
||||
case 0:
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Teleport", '&'));
|
||||
break;
|
||||
default:
|
||||
Bukkit.getLogger().warning("SubData > PacketTeleportPlayer(" + ((Player) sender).getUniqueId().toString() + ", " + args[1] + ") responded with: " + json.getString("m"));
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Teleport", '&'));
|
||||
}
|
||||
}));
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Player-Only", '&'));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Invalid-Permission", '&').replace("$str$", "subservers.server.teleport." + args[1].toLowerCase()));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Usage", '&').replace("$str$", label.toLowerCase() + " " + args[0].toLowerCase() + " <Server> [Player]"));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Invalid-Subcommand", '&').replace("$str$", args[0]));
|
||||
}
|
||||
} else {
|
||||
if (sender.hasPermission("subservers.interface") && sender instanceof Player) {
|
||||
plugin.gui.getRenderer((Player) sender).newUI();
|
||||
} else {
|
||||
sender.sendMessage(printHelp(label));
|
||||
}
|
||||
}
|
||||
} else if (sender.hasPermission("subservers.interface") && sender instanceof Player) {
|
||||
plugin.gui.getRenderer((Player) sender).newUI();
|
||||
} else {
|
||||
sender.sendMessage(plugin.lang.getSection("Lang").getColoredString("Command.Generic.Invalid-Permission", '&').replace("$str$", "subservers.command"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private String[] printHelp(String label) {
|
||||
return new String[]{
|
||||
plugin.lang.getSection("Lang").getColoredString("Command.Help.Header", '&'),
|
||||
plugin.lang.getSection("Lang").getColoredString("Command.Help.Help", '&').replace("$str$", label.toLowerCase() + " help"),
|
||||
plugin.lang.getSection("Lang").getColoredString("Command.Help.List", '&').replace("$str$", label.toLowerCase() + " list"),
|
||||
plugin.lang.getSection("Lang").getColoredString("Command.Help.Version", '&').replace("$str$", label.toLowerCase() + " version"),
|
||||
plugin.lang.getSection("Lang").getColoredString("Command.Help.SubServer.Start", '&').replace("$str$", label.toLowerCase() + " start <SubServer>"),
|
||||
plugin.lang.getSection("Lang").getColoredString("Command.Help.SubServer.Stop", '&').replace("$str$", label.toLowerCase() + " stop <SubServer>"),
|
||||
plugin.lang.getSection("Lang").getColoredString("Command.Help.SubServer.Terminate", '&').replace("$str$", label.toLowerCase() + " kill <SubServer>"),
|
||||
plugin.lang.getSection("Lang").getColoredString("Command.Help.SubServer.Command", '&').replace("$str$", label.toLowerCase() + " cmd <SubServer> <Command> [Args...]"),
|
||||
plugin.lang.getSection("Lang").getColoredString("Command.Help.Server.Teleport", '&').replace("$str$", label.toLowerCase() + " tp <Server> [Player]"),
|
||||
plugin.lang.getSection("Lang").getColoredString("Command.Help.Host.Create", '&').replace("$str$", label.toLowerCase() + " create <Name> <Host> <Type> <Version> <Port> [RAM]"),
|
||||
};
|
||||
}
|
||||
}
|
@ -20,13 +20,14 @@ public final class SubPlugin extends JavaPlugin {
|
||||
public SubDataClient subdata = null;
|
||||
|
||||
public UIListener gui = null;
|
||||
public final Version version = new Version("2.11.0a");
|
||||
protected Version bversion = new Version(3);
|
||||
public Version version;
|
||||
protected Version bversion = new Version(4);
|
||||
|
||||
//public final SubAPI api = new SubAPI(this);
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
version = new Version(getDescription().getVersion());
|
||||
try {
|
||||
Bukkit.getLogger().info("SubServers > Loading SubServers v" + version.toString() + " Libraries... ");
|
||||
getDataFolder().mkdirs();
|
||||
@ -47,7 +48,8 @@ public final class SubPlugin extends JavaPlugin {
|
||||
|
||||
gui = new UIListener(this);
|
||||
getCommand("subservers").setExecutor(new SubCommand(this));
|
||||
getCommand("subservers").setAliases(Arrays.asList("sub", "subserver"));
|
||||
getCommand("subserver").setExecutor(new SubCommand(this));
|
||||
getCommand("sub").setExecutor(new SubCommand(this));
|
||||
} catch (IOException e) {
|
||||
setEnabled(false);
|
||||
e.printStackTrace();
|
||||
@ -56,6 +58,7 @@ public final class SubPlugin extends JavaPlugin {
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
if (subdata != null)
|
||||
try {
|
||||
subdata.destroy(false);
|
||||
} catch (IOException e) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
name: 'SubServers'
|
||||
main: 'net.ME1312.SubServers.Client.Bukkit.SubPlugin'
|
||||
version: '2.11.0a'
|
||||
version: '2.11.2a'
|
||||
authors: [ME1312]
|
||||
softdepend: [TitleManager]
|
||||
website: 'http://www.ME1312.net/'
|
||||
@ -8,15 +8,21 @@ commands:
|
||||
subservers:
|
||||
description: 'The SubServers Command'
|
||||
usage: /subservers help
|
||||
subserver:
|
||||
description: 'The SubServers Command'
|
||||
usage: /subserver help
|
||||
sub:
|
||||
description: 'The SubServers Command'
|
||||
usage: /sub help
|
||||
permissions:
|
||||
subservers.*:
|
||||
description: 'Grants Access to to Everything in SubServers.Client'
|
||||
default: op
|
||||
children:
|
||||
subserver.interface:
|
||||
subservers.interface:
|
||||
description: 'Grants Access to the SubServers Interface'
|
||||
default: op
|
||||
subserver.command:
|
||||
subservers.command:
|
||||
description: 'Grants Access to the SubServers Command'
|
||||
default: op
|
||||
subservers.reload:
|
||||
@ -33,7 +39,7 @@ permissions:
|
||||
description: 'Grants Access to Edit a Host'
|
||||
default: op
|
||||
subservers.subserver.*:
|
||||
description: 'Grants Access to SubServers Server Actions'
|
||||
description: 'Grants Access to SubServers SubServer Actions'
|
||||
default: op
|
||||
children:
|
||||
subservers.subserver.start.*:
|
||||
@ -51,6 +57,13 @@ permissions:
|
||||
subservers.subserver.edit.*:
|
||||
description: 'Grants Access to Edit a SubServer'
|
||||
default: op
|
||||
subservers.subserver.teleport.*:
|
||||
description: 'Grants Acces to Teleport to a SubServer'
|
||||
subservers.server.*:
|
||||
description: 'Grants Access to SubServer Server Actions'
|
||||
default: op
|
||||
children:
|
||||
subservers.server.teleport-others:
|
||||
description: 'Grants Acces to Teleport Others to a Server'
|
||||
default: op
|
||||
subservers.server.teleport.*:
|
||||
description: 'Grants Acces to Teleport to a Server'
|
||||
default: op
|
Loading…
Reference in New Issue
Block a user