Beispiel #1
0
        public U3WorkshopInstaller(U3Server server, FileInfo steamcmd)
        {
            this.server = server;

            steam = new SteamInstance(steamcmd);
            steam.ModDownloaded += Steam_ModDownloaded;
            steam.SteamOutput   += Steam_SteamOutput;

            if (PrepareSteam(steam).Result)
            {
                MapFolder     = new DirectoryInfo(this.server.ServerInformation.ServerDirectory.Parent.Parent.FullName + "\\Bundles\\Workshop\\Maps");
                ContentFolder = new DirectoryInfo(this.server.ServerInformation.ServerDirectory.FullName + "\\Workshop\\Content\\");

                if (!MapFolder.Exists)
                {
                    MapFolder.Create();
                }
                if (!ContentFolder.Exists)
                {
                    ContentFolder.Create();
                }
            }
            else
            {
                Exception ex = new Exception("Unable to start steamcmd correctly!");
                throw ex;
            }
        }
 private void Con_ReceivedPlayerList(U3Server sender, List <string> playerlist)
 {
     if (sender != null)
     {
         sender.PlayerList = playerlist;
     }
 }
 public bool IsConnected(U3Server userver)
 {
     foreach (ClientConnection client in clients)
     {
         if (client.sid.Equals(userver.ServerInformation.ServerID))
         {
             return(true);
         }
     }
     return(false);
 }
 private ClientConnection GetConnection(U3Server userver)
 {
     foreach (ClientConnection client in clients)
     {
         if (client.sid.Equals(userver.ServerInformation.ServerID))
         {
             return(client);
         }
     }
     return(null);
 }
 public static void save(U3Server server, AdvancedConfig config)
 {
     try
     {
         FileInfo configFile = new FileInfo(server.ServerInformation.ServerDirectory.FullName + "\\Config.json");
         File.WriteAllText(configFile.FullName, config.getJson());
     }
     catch (Exception)
     {
         throw;
     }
 }
        public static AdvancedConfig loadJson(U3Server server)
        {
            FileInfo configFile = new FileInfo(server.ServerInformation.ServerDirectory.FullName + "\\Config.json");

            if (configFile.Exists)
            {
                return(JsonConvert.DeserializeObject <AdvancedConfig>(File.ReadAllText(server.ServerInformation.ServerDirectory.FullName + "\\Config.json")));
            }
            else
            {
                return(null);
            }
        }
        public bool Send(U3Server userver, string command)
        {
            ClientConnection con = GetConnection(userver);

            if (con != null)
            {
                return(con.Send(command));
            }
            else
            {
                return(false);
            }
        }
 public UCBServerConnection GetConnection(U3Server server)
 {
     if (IsIdentifed(server))
     {
         foreach (UCBServerConnection con in IdentifiedServers.Keys)
         {
             if (IdentifiedServers[con] == server)
             {
                 return(con);
             }
         }
     }
     return(null);
 }
        private void Listen()
        {
            while (client.Connected)
            {
                try
                {
                    StreamReader reader = new StreamReader(client.GetStream());
                    string       line   = reader.ReadLine();

                    lock (client)
                    {
                        if (line.StartsWith("sid://"))
                        {
                            U3Server s = GetU3Server(line.Remove(0, 6));
                            if (s.State == U3ServerState.Running | s.State == U3ServerState.Starting)
                            {
                                sid = line.Remove(0, 6);
                                InstanceConnected?.Invoke(GetU3Server(sid));
                            }
                            else
                            {
                                Send("unauthorized_server");
                                ClientDisconnected?.Invoke(this);
                            }
                        }
                        else if (line.StartsWith("players://"))
                        {
                            line = line.Remove(0, 10);
                            List <string> players = line.Split(';').ToList <string>();
                            players.Remove("");

                            U3Server instance = GetU3Server(sid);
                            ReceivedPlayerList?.Invoke(instance, players);
                        }
                        else if (line.StartsWith("consolelog://"))
                        {
                            Console.WriteLine(line);
                        }
                    }
                }
                catch (Exception) { }
            }
            ClientDisconnected?.Invoke(this);
        }
 public bool SendPackage(U3Server server, OPackage package)
 {
     if (IsIdentifed(server))
     {
         try
         {
             UCBServerConnection con = GetConnection(server);
             if (con != null)
             {
                 con.send(package);
                 return(true);
             }
             return(false);
         }
         catch (Exception)
         {
             return(false);
         }
     }
     else
     {
         return(false);
     }
 }
 public RocketConfig(U3Server server) : this(new DirectoryInfo(server.ServerInformation.ServerDirectory.FullName + "\\Rocket\\"))
 {
 }
        public static Task <ModuleInstalltionResult> InstallModule(string modZipFile, U3Server server)
        {
            string modulesFolder = server.ServerInformation.GameDirectory.FullName + "\\Modules\\";

            return(InstallModule(modZipFile, modulesFolder));
        }
 public bool IsIdentifed(U3Server server)
 {
     return(IdentifiedServers.ContainsValue(server));
 }
        public bool SendCommand(U3Server server, string command)
        {
            StringPackage package = new StringPackage(NetPackageHeader.Command, command);

            return(SendPackage(server, package));
        }
 private void Con_InstanceConnected(U3Server instance)
 {
     U3ServerConnected?.Invoke(instance);
 }
 public PackageReceivedEventArgs(U3Server server, OPackage package)
 {
     this.Server  = server;
     this.Package = package;
 }
 public CommandsConfig(U3Server server)
 {
     dat = prepareFile(server.ServerInformation.ServerDirectory);
     load();
 }
 public RocketPluginManager(U3Server instance)
 {
     this.server = instance;
     reload();
 }
 public void save(U3Server server)
 {
     AdvancedConfig.save(server, this);
 }