Search in sources :

Example 31 with TypeToken

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()));
                }
            });
        }
    }
}
Also used : ServerInfo(de.dytanic.cloudnet.lib.server.info.ServerInfo) TypeToken(com.google.gson.reflect.TypeToken) GameServer(de.dytanic.cloudnetwrapper.server.GameServer)

Example 32 with TypeToken

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();
        }
    }
}
Also used : Path(java.nio.file.Path) ProxyGroup(de.dytanic.cloudnet.lib.server.ProxyGroup) ServerGroup(de.dytanic.cloudnet.lib.server.ServerGroup) ZipEntry(java.util.zip.ZipEntry) HttpURLConnection(java.net.HttpURLConnection) URLConnection(java.net.URLConnection) URL(java.net.URL) Template(de.dytanic.cloudnet.lib.server.template.Template) HttpURLConnection(java.net.HttpURLConnection) ZipFile(java.util.zip.ZipFile) TypeToken(com.google.gson.reflect.TypeToken) ZipFile(java.util.zip.ZipFile)

Example 33 with TypeToken

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);
    }
}
Also used : CloudServerMeta(de.dytanic.cloudnet.lib.cloudserver.CloudServerMeta) TypeToken(com.google.gson.reflect.TypeToken)

Example 34 with TypeToken

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;
        }
    });
}
Also used : ProxyGroup(de.dytanic.cloudnet.lib.server.ProxyGroup) ServerGroup(de.dytanic.cloudnet.lib.server.ServerGroup) TypeToken(com.google.gson.reflect.TypeToken) WrapperExternal(de.dytanic.cloudnet.lib.network.WrapperExternal)

Example 35 with TypeToken

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);
}
Also used : CloudPlayerCommandSender(de.dytanic.cloudnet.bridge.internal.util.CloudPlayerCommandSender) ProxyGroup(de.dytanic.cloudnet.lib.server.ProxyGroup) TypeToken(com.google.gson.reflect.TypeToken) CloudPlayer(de.dytanic.cloudnet.lib.player.CloudPlayer) CommandSender(net.md_5.bungee.api.CommandSender) CloudPlayerCommandSender(de.dytanic.cloudnet.bridge.internal.util.CloudPlayerCommandSender) ProxyConfig(de.dytanic.cloudnet.lib.proxylayout.ProxyConfig) PlayerConnection(de.dytanic.cloudnet.lib.player.PlayerConnection) EventHandler(net.md_5.bungee.event.EventHandler)

Aggregations

TypeToken (com.google.gson.reflect.TypeToken)419 Gson (com.google.gson.Gson)178 Test (org.junit.Test)100 IOException (java.io.IOException)83 Map (java.util.Map)71 List (java.util.List)56 CloseableHttpResponse (org.apache.http.client.methods.CloseableHttpResponse)54 ArrayList (java.util.ArrayList)53 HashMap (java.util.HashMap)53 GsonBuilder (com.google.gson.GsonBuilder)45 File (java.io.File)34 Notebook (org.apache.zeppelin.notebook.Notebook)32 Type (java.lang.reflect.Type)31 FileNotFoundException (java.io.FileNotFoundException)29 Paragraph (org.apache.zeppelin.notebook.Paragraph)27 RestResponse (com.google.gerrit.acceptance.RestResponse)24 JsonElement (com.google.gson.JsonElement)24 JsonObject (com.google.gson.JsonObject)24 OutputStreamWriter (java.io.OutputStreamWriter)22 AbstractDaemonTest (com.google.gerrit.acceptance.AbstractDaemonTest)21