use of com.google.gson.reflect.TypeToken in project CloudNet by Dytanic.
the class PacketInCopyServer method handleInput.
@Override
public void handleInput(Document data, PacketSender packetSender) {
ServerInfo serverInfo = data.getObject("serverInfo", new TypeToken<ServerInfo>() {
}.getType());
GameServer gameServer = CloudNetWrapper.getInstance().getServers().get(serverInfo.getServiceId().getServerId());
if (gameServer != null) {
if (!data.contains("template")) {
CloudNetWrapper.getInstance().getScheduler().runTaskAsync(new Runnable() {
@Override
public void run() {
gameServer.copy();
}
});
} else {
CloudNetWrapper.getInstance().getScheduler().runTaskAsync(new Runnable() {
@Override
public void run() {
gameServer.copy(data.getObject("template", new TypeToken<Template>() {
}.getType()));
}
});
}
}
}
use of com.google.gson.reflect.TypeToken in project CloudNet by Dytanic.
the class PacketInCreateTemplate method handleInput.
@Override
public void handleInput(Document data, PacketSender packetSender) {
if (data.getString("type").equals(DefaultType.BUKKIT.name())) {
ServerGroup serverGroup = data.getObject("serverGroup", new TypeToken<ServerGroup>() {
}.getType());
try {
for (Template template : serverGroup.getTemplates()) {
if (!Files.exists(Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName()))) {
System.out.println("Creating GroupTemplate for " + serverGroup.getName() + " " + template.getName() + "...");
Files.createDirectories(Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + ""));
}
if (!Files.exists(Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/server.properties"))) {
FileCopy.insertData("files/server.properties", "local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/server.properties");
}
if (!Files.exists(Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/plugins"))) {
new File("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/plugins").mkdir();
}
}
Template template = serverGroup.getGlobalTemplate();
if (!Files.exists(Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName()))) {
System.out.println("Creating GroupTemplate for " + serverGroup.getName() + " " + template.getName() + "...");
Files.createDirectories(Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + ""));
}
if (!Files.exists(Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/server.properties"))) {
FileCopy.insertData("files/server.properties", "local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/server.properties");
}
if (!Files.exists(Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/plugins"))) {
new File("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/plugins").mkdir();
}
} catch (IOException e) {
e.printStackTrace();
}
if (serverGroup.getServerType().equals(ServerGroupType.CAULDRON)) {
for (Template template : serverGroup.getTemplates()) {
if (!Files.exists(Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/cauldron.jar"))) {
try {
System.out.println("Downloading cauldron.zip...");
File file = new File("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/cauldron.zip");
URLConnection connection = new URL("https://yivesmirror.com/files/cauldron/cauldron-1.7.10-2.1403.1.54.zip").openConnection();
connection.setUseCaches(false);
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
connection.connect();
Files.copy(connection.getInputStream(), Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/cauldron.zip"));
System.out.println("Downloading Complete!");
ZipFile zip = new ZipFile(file);
Enumeration<? extends ZipEntry> entryEnumeration = zip.entries();
while (entryEnumeration.hasMoreElements()) {
ZipEntry entry = entryEnumeration.nextElement();
if (!entry.isDirectory()) {
extractEntry(zip, entry, "local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName());
}
}
zip.close();
file.delete();
new File("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/cauldron-1.7.10-2.1403.1.54-server.jar").renameTo(new File("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/cauldron.jar"));
System.out.println("Using a cauldron.jar for your minecraft service template " + serverGroup.getName() + ", please copy a eula.txt into the template or into the global folder");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Template template = serverGroup.getGlobalTemplate();
if (!Files.exists(Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/cauldron.jar"))) {
try {
System.out.println("Downloading cauldron.zip...");
File file = new File("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/cauldron.zip");
URLConnection connection = new URL("https://yivesmirror.com/files/cauldron/cauldron-1.7.10-2.1403.1.54.zip").openConnection();
connection.setUseCaches(false);
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
connection.connect();
Files.copy(connection.getInputStream(), Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/cauldron.zip"));
System.out.println("Download was completed successfully!");
ZipFile zip = new ZipFile(file);
Enumeration<? extends ZipEntry> entryEnumeration = zip.entries();
while (entryEnumeration.hasMoreElements()) {
ZipEntry entry = entryEnumeration.nextElement();
if (!entry.isDirectory()) {
extractEntry(zip, entry, "local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName());
}
}
zip.close();
file.delete();
new File("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/cauldron-1.7.10-2.1403.1.54-server.jar").renameTo(new File("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/cauldron.jar"));
System.out.println("Using a cauldron.jar for your minecraft service template " + serverGroup.getName() + ", please copy a eula.txt into the template or into the global folder");
} catch (Exception e) {
e.printStackTrace();
}
}
}
if (serverGroup.getServerType().equals(ServerGroupType.GLOWSTONE)) {
for (Template template : serverGroup.getTemplates()) {
Path path = Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/glowstone.jar");
if (!Files.exists(path)) {
try {
URLConnection connection = new URL("https://yivesmirror.com/grab/glowstone/Glowstone-latest.jar").openConnection();
connection.setUseCaches(false);
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
connection.connect();
System.out.println("Downloading glowstone.jar...");
Files.copy(connection.getInputStream(), path);
System.out.println("Download was completed successfully");
((HttpURLConnection) connection).disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Template template = serverGroup.getGlobalTemplate();
Path path = Paths.get("local/templates/" + serverGroup.getName() + NetworkUtils.SLASH_STRING + template.getName() + "/glowstone.jar");
if (!Files.exists(path)) {
try {
URLConnection connection = new URL("https://yivesmirror.com/grab/glowstone/Glowstone-latest.jar").openConnection();
connection.setUseCaches(false);
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
connection.connect();
System.out.println("Downloading glowstone.jar...");
Files.copy(connection.getInputStream(), path);
System.out.println("Download was completed successfully");
((HttpURLConnection) connection).disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
} else {
ProxyGroup proxyGroup = data.getObject("proxyGroup", new TypeToken<ProxyGroup>() {
}.getType());
try {
if (!Files.exists(Paths.get("local/templates/" + proxyGroup.getName()))) {
System.out.println("Creating GroupTemplate for " + proxyGroup.getName() + " DEFAULT...");
Files.createDirectories(Paths.get("local/templates/" + proxyGroup.getName() + "/plugins"));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
use of com.google.gson.reflect.TypeToken in project CloudNet by Dytanic.
the class PacketInStartCloudServer method handleInput.
@Override
public void handleInput(Document data, PacketSender packetSender) {
CloudServerMeta cloudServerMeta = data.getObject("cloudServerMeta", new TypeToken<CloudServerMeta>() {
}.getType());
if (!data.contains("async")) {
System.out.println("Cloud game server process is now in queue [" + cloudServerMeta.getServiceId() + "]");
CloudNetWrapper.getInstance().getServerProcessQueue().putProcess(cloudServerMeta);
} else {
CloudNetWrapper.getInstance().getServerProcessQueue().patchAsync(cloudServerMeta);
}
}
use of com.google.gson.reflect.TypeToken in project CloudNet by Dytanic.
the class PacketInWrapperInfo method handleInput.
@Override
public void handleInput(Document data, PacketSender packetSender) {
WrapperExternal wrapperExternal = data.getObject("wrapper", new TypeToken<WrapperExternal>() {
}.getType());
CloudNetWrapper.getInstance().setSimpledUser(wrapperExternal.getUser());
CloudNetWrapper.getInstance().getServerGroups().clear();
NetworkUtils.addAll(CloudNetWrapper.getInstance().getServerGroups(), wrapperExternal.getServerGroups(), new Acceptable<ServerGroup>() {
@Override
public boolean isAccepted(ServerGroup value) {
System.out.println("Importing server group [" + value.getName() + "] from CloudNet-Master");
return true;
}
});
CloudNetWrapper.getInstance().getProxyGroups().clear();
NetworkUtils.addAll(CloudNetWrapper.getInstance().getProxyGroups(), wrapperExternal.getProxyGroups(), new Acceptable<ProxyGroup>() {
@Override
public boolean isAccepted(ProxyGroup value) {
System.out.println("Importing proxy group [" + value.getName() + "] from CloudNet-Master");
return true;
}
});
}
use of com.google.gson.reflect.TypeToken in project CloudNet by Dytanic.
the class ProxiedListener method handleLogin.
@EventHandler(priority = EventPriority.LOWEST)
public void handleLogin(LoginEvent e) {
PlayerConnection playerConnection = new PlayerConnection(e.getConnection().getUniqueId(), e.getConnection().getName(), e.getConnection().getVersion(), e.getConnection().getAddress().getAddress().getHostAddress(), e.getConnection().getAddress().getPort(), e.getConnection().isOnlineMode(), e.getConnection().isLegacy());
CloudPlayer cloudPlayer = CloudAPI.getInstance().getNetworkConnection().getPacketManager().sendQuery(new PacketOutPlayerLoginRequest(playerConnection), CloudAPI.getInstance().getNetworkConnection()).getResult().getObject("player", new TypeToken<CloudPlayer>() {
}.getType());
if (cloudPlayer == null) {
e.setCancelReason(TextComponent.fromLegacyText("§cYou are already on the network!"));
e.setCancelled(true);
}
CommandSender cloudCommandSender = new CloudPlayerCommandSender(cloudPlayer);
if (CloudProxy.getInstance().getProxyGroup() != null) {
ProxyConfig proxyConfig = CloudProxy.getInstance().getProxyGroup().getProxyConfig();
if ((proxyConfig.isEnabled() && proxyConfig.isMaintenance())) {
PermissionCheckEvent permissionCheckEvent = new PermissionCheckEvent(cloudCommandSender, "cloudnet.maintenance", false);
if (!proxyConfig.getWhitelist().contains(e.getConnection().getName()) && !ProxyServer.getInstance().getPluginManager().callEvent(permissionCheckEvent).hasPermission()) {
e.setCancelled(true);
e.setCancelReason(ChatColor.translateAlternateColorCodes('&', CloudAPI.getInstance().getCloudNetwork().getMessages().getString("kick-maintenance")));
return;
}
}
}
ProxyGroup proxyGroup = CloudProxy.getInstance().getProxyGroup();
if (proxyGroup.getProxyConfig().isEnabled())
if (CloudAPI.getInstance().getOnlineCount() >= CloudProxy.getInstance().getProxyGroup().getProxyConfig().getMaxPlayers()) {
PermissionCheckEvent permissionCheckEvent = new PermissionCheckEvent(cloudCommandSender, "cloudnet.fulljoin", false);
if (!ProxyServer.getInstance().getPluginManager().callEvent(permissionCheckEvent).hasPermission()) {
e.setCancelled(true);
e.setCancelReason(ChatColor.translateAlternateColorCodes('&', CloudAPI.getInstance().getCloudNetwork().getMessages().getString("full-join")));
return;
}
}
CloudProxy.getInstance().getCloudPlayers().put(cloudPlayer.getUniqueId(), cloudPlayer);
}
Aggregations