예제 #1
0
    protected static bool GetOrigin(uLink.NetworkPlayer player, bool eyes, out Vector3 origin)
    {
        PlayerClient     playerClient;
        Transform        transforms;
        ServerManagement serverManagement = ServerManagement.Get();

        if (serverManagement && serverManagement.GetPlayerClient(player, out playerClient))
        {
            Controllable controllable = playerClient.controllable;
            if (controllable)
            {
                Character component = controllable.GetComponent <Character>();
                if (!component)
                {
                    transforms = controllable.transform;
                }
                else
                {
                    transforms = (!eyes || !component.eyesTransformReadOnly ? component.transform : component.eyesTransformReadOnly);
                }
                origin = transforms.position;
                return(true);
            }
        }
        origin = new Vector3();
        return(false);
    }
예제 #2
0
 protected void OnDestroy()
 {
     if (ServerManagement._serverMan == this)
     {
         ServerManagement._serverMan = null;
     }
 }
예제 #3
0
        static void Main()
        {
            #region Initialization
            ItemGeneration.ItemGenerationInitialization();
            WorldGeneration.InitializeWorldGeneration();
            #endregion

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            List <Player> playerList = ServerManagement.LoadPlayers("players.xml");
            SoundManager.InitializeSounds();

            playerList = ServerManagement.LoadFromFolder(Path.Combine(Environment.SpecialFolder.MyDocuments.ToString(), "/The Legend of Eiwar/players.xml"));

            if (playerList == null)
            {
                playerList = new List <Player>();
            }

            LoginForm lf = new LoginForm(playerList);
            Application.Run(lf);

            if (lf.DialogResult == DialogResult.OK)
            {
                Player player = lf.ReturnedPlayer();
                Application.Run(new MainWindow(player, playerList));
            }
        }
예제 #4
0
    public virtual void RemovePlayerSpawn(GameObject spawn)
    {
        ServerManagement serverManagement = ServerManagement.Get();

        if (serverManagement)
        {
            serverManagement.RemovePlayerSpawn(spawn);
        }
    }
예제 #5
0
    public virtual void RemovePlayerSpawn(GameObject spawn)
    {
        ServerManagement management = ServerManagement.Get();

        if (management != null)
        {
            management.RemovePlayerSpawn(spawn);
        }
    }
예제 #6
0
    public static IEnumerable <PlayerClient> FindAllWithName(string name, StringComparison comparison)
    {
        ServerManagement management;

        if (!string.IsNullOrEmpty(name) && ((management = ServerManagement.Get()) != null))
        {
            return(management.FindPlayerClientsByName(name, comparison));
        }
        return(EmptyArray <PlayerClient> .emptyEnumerable);
    }
예제 #7
0
        private void btExitGame_Click(object sender, EventArgs e)
        {
            Function.SoundManager.PlayButtonSound();
            player.Settings.ThisVersion = (Function.ServerManagement.GetRunningVersion()).ToString();
            ServerManagement.Saveplayers("players.xml", playerlist, player);
            ServerManagement.ExportToFolder(Path.Combine(Environment.SpecialFolder.MyDocuments.ToString(), "/The Legend of Eiwar/players.xml"), playerlist);

            Function.SoundManager.StopMainMenuMusic();
            this.Close();
        }
예제 #8
0
    public static IEnumerable <PlayerClient> FindAllWithString(string partialNameOrIDInt)
    {
        ServerManagement management = ServerManagement.Get();

        if ((management != null) && !string.IsNullOrEmpty(partialNameOrIDInt))
        {
            return(management.FindPlayerClientsByString(partialNameOrIDInt));
        }
        return(EmptyArray <PlayerClient> .emptyEnumerable);
    }
예제 #9
0
 private void Awake()
 {
     if (_instance)
     {
         Destroy(gameObject);
     }
     else
     {
         _instance = this;
     }
 }
예제 #10
0
 public static void teleport(ref ConsoleSystem.Arg arg)
 {
     if (arg.Args.Length >= 2)
     {
         string[] array = arg.Args;
         if (array[0].Contains(","))
         {
             array = string.Join(" ", array).Replace(",", " ").Split(new string[]
             {
                 " "
             }, StringSplitOptions.RemoveEmptyEntries);
         }
         PlayerClient playerClient = Helper.GetPlayerClient(array[0]);
         if (playerClient == null)
         {
             arg.ReplyWith("Player with name " + Helper.QuoteSafe(array[0]) + " not found.");
         }
         else
         {
             Vector3 vector = Vector3.zero;
             if (array.Length > 2)
             {
                 float x = 0f;
                 float y = 0f;
                 float z = 0f;
                 if (!float.TryParse(array[1], out x) || !float.TryParse(array[2], out y) || !float.TryParse(array[3], out z))
                 {
                     arg.ReplyWith("Invalid syntax for execute command");
                     return;
                 }
                 vector = new Vector3(x, y, z);
                 arg.ReplyWith(Helper.QuoteSafe(playerClient.userName) + " teleported to " + vector.AsString());
             }
             else
             {
                 PlayerClient playerClient2 = Helper.GetPlayerClient(array[1]);
                 if (playerClient2 == null)
                 {
                     arg.ReplyWith(Config.GetMessage("Command.PlayerNoFound", null, array[1]));
                     return;
                 }
                 if (playerClient == playerClient2 || !ServerManagement.GetOrigin(playerClient2.netPlayer, true, out vector))
                 {
                     arg.ReplyWith(playerClient.userName + " cannot be teleported to " + playerClient2.userName);
                     return;
                 }
                 arg.ReplyWith(Helper.QuoteSafe(playerClient.userName) + " teleported to " + Helper.QuoteSafe(playerClient2.userName));
             }
             Helper.TeleportTo(playerClient.netUser, vector);
         }
     }
 }
예제 #11
0
 public override void Start()
 {
     try
     {
         ServerManagement serverManagement = new ServerManagement(_server);
         MBeanServer      beanServer       = ManagementFactory.PlatformMBeanServer;
         beanServer.registerMBean(serverManagement, CreateObjectName());
     }
     catch (Exception e)
     {
         throw new Exception("Unable to initialize jmx management, see nested exception.", e);
     }
 }
예제 #12
0
        public MainWindow(Player _player, List <Player> _playerlist)
        {
            InitializeComponent();
            player = _player;
            Function.SoundManager.PlayMain(player.Settings.SoundOn, this, player.Settings.SoundVolume);

            if (player.Settings.PrefChars == null)
            {
                player.Settings.PrefChars.Add("None");
            }
            if (player.CurrentQuest != null)
            {
                player.CurrentQuest.UpdateQuest(player, 1, null, 0, 0, 1.0, new List <EnumCharClass>(), false);
            }

            playerlist           = _playerlist;
            this.BackgroundImage = GeneralFunctions.ResizeImage(Properties.Resources.background, labelBackgroundIGNORE.Size);

            this.richTextBoxActionbox.Text = "Welcome to The Legend of Eiwar" + Environment.NewLine +
                                             "Version : " + ServerManagement.GetRunningVersion() + Environment.NewLine + Environment.NewLine +
                                             "Click the support tab to instructions on how to play and to see changes!" + Environment.NewLine +
                                             "If you find a bug or believe there is a balance issue in the game, please report this by pressing " +
                                             "the ''Support'' button and using the ''Bug/Suggestion Report'' function.";


            foreach (var item in player.ControlledCharacters)
            {
                item.ResetCharSkills();
            }

            if (this.player.ControlledCharacters.Count == 0)
            {
                NewPlayer();
            }
            else
            {
                foreach (var item in this.player.ControlledCharacters)
                {
                    this.flpCharacters.Controls.Add(new ucCharacterInterface(item, true));
                }

                foreach (var item in flpCharacters.Controls)
                {
                    (item as ucCharacterInterface).Update();
                }
            }

            UpdateQuestVisual();
            UpdateDustLabel();
            UpdateInventoryVisual();
        }
예제 #13
0
 public static void teleport(ref ConsoleSystem.Arg arg)
 {
     if (arg.Args.Length >= 2)
     {
         string[] args = arg.Args;
         if (args[0].Contains(","))
         {
             args = string.Join(" ", args).Replace(",", " ").Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
         }
         PlayerClient playerClient = Helper.GetPlayerClient(args[0]);
         if (playerClient == null)
         {
             arg.ReplyWith("Player with name " + Helper.QuoteSafe(args[0]) + " not found.");
         }
         else
         {
             Vector3 zero = Vector3.zero;
             if (args.Length > 2)
             {
                 float result = 0f;
                 float num2   = 0f;
                 float num3   = 0f;
                 if ((!float.TryParse(args[1], out result) || !float.TryParse(args[2], out num2)) || !float.TryParse(args[3], out num3))
                 {
                     arg.ReplyWith("Invalid syntax for execute command");
                     return;
                 }
                 zero = new Vector3(result, num2, num3);
                 arg.ReplyWith(Helper.QuoteSafe(playerClient.userName) + " teleported to " + zero.AsString());
             }
             else
             {
                 PlayerClient client2 = Helper.GetPlayerClient(args[1]);
                 if (client2 == null)
                 {
                     arg.ReplyWith(Config.GetMessage("Command.PlayerNoFound", null, args[1]));
                     return;
                 }
                 if ((playerClient == client2) || !ServerManagement.GetOrigin(client2.netPlayer, true, out zero))
                 {
                     arg.ReplyWith(playerClient.userName + " cannot be teleported to " + client2.userName);
                     return;
                 }
                 arg.ReplyWith(Helper.QuoteSafe(playerClient.userName) + " teleported to " + Helper.QuoteSafe(client2.userName));
             }
             Helper.TeleportTo(playerClient.netUser, zero);
         }
     }
 }
예제 #14
0
    private ActivationResult ActRoute(bool?on, uLink.NetworkPlayer sender, ulong timestamp)
    {
        PlayerClient     playerClient;
        ServerManagement serverManagement = ServerManagement.Get();

        if (!serverManagement)
        {
            playerClient = null;
        }
        else
        {
            serverManagement.GetPlayerClient(sender, out playerClient);
        }
        return(this.ActRoute(on, playerClient, timestamp));
    }
예제 #15
0
    private ActivationResult ActRoute(bool?on, NetworkPlayer sender, ulong timestamp)
    {
        PlayerClient     client;
        ServerManagement management = ServerManagement.Get();

        if (management != null)
        {
            management.GetPlayerClient(sender, out client);
        }
        else
        {
            client = null;
        }
        return(this.ActRoute(on, client, timestamp));
    }
예제 #16
0
    private void uLink_OnDisconnectedFromServer(NetworkDisconnection netDisconnect)
    {
        NetError lastKickReason = ServerManagement.GetLastKickReason(true);

        this.LogDisconnect(lastKickReason, new NetworkDisconnection?(netDisconnect));
        DisableOnConnectedState.OnDisconnected();
        ConsoleSystem.Run("gameui.show", false);
        this.LoadBackground();
        if (lastKickReason != NetError.NoError)
        {
            this.ShowInformation("Disconnected (" + lastKickReason.NiceString() + ")");
        }
        else
        {
            this.ShowInformation("Disconnected from server.");
        }
        LoadingScreen.Hide();
    }
예제 #17
0
        /// <summary>
        /// Allows to manage server's connection
        /// </summary>
        private void ManageServer()
        {
            try
            {
                CheckIP(txtIpServer.Text);
                ServerManager = new ServerManagement(txtIpServer.Text);

                ServerManager.SaveFileEvent += ServerManager_SaveFileEvent;

                lstBoxFile.DataSource = ServerManager.ReceiveDirectory();

                lblIP.Text = $"Connesso a : {txtIpServer.Text}";

                ToggleFields(Status.Online);
            }

            catch (ArgumentException) { lblErroreIP.Visible = true; txtIpServer.WithError = true; lblErroreIP.Text = "Indirizzo IP non valido"; }

            catch (SocketException) { MetroFramework.MetroMessageBox.Show(this, "\n\nImpossible contattare il server all'indirizzo: " + txtIpServer.Text, "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); }

            catch (Exception ex) { MetroFramework.MetroMessageBox.Show(this, "\n\n" + ex.Message, "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); }
        }
예제 #18
0
 public virtual void AddPlayerSpawn(GameObject spawn)
 {
     ServerManagement.Get().AddPlayerSpawn(spawn);
 }
예제 #19
0
 /// <summary>
 /// Kicks this player from the game
 /// </summary>
 /// <param name="reason"></param>
 public void Kick(string reason)
 {
     ServerManagement.Get().networkView.RPC("KP", netUser.networkPlayer, reason);
     NetCull.CloseConnection(netUser.networkPlayer, true);
 }
예제 #20
0
 protected void Awake()
 {
     _serverMan = this;
     UnityEngine.Object.DontDestroyOnLoad(base.gameObject);
     DestroysOnDisconnect.ApplyToGameObject(base.gameObject);
 }
예제 #21
0
 public ServerService(ServerManagement serverManagement)
 {
     this.serverManagement = serverManagement;
 }
예제 #22
0
            public Bot()
            {
                BotUser = new DiscordClient(x =>
                {
                    x.LogLevel = LogSeverity.Info;
                });
                BotUser.Log.Message += (s, e) => Console.WriteLine($"[{e.Severity}] {e.Source}: {e.Message}");

                BotUser.UsingCommands(x =>
                {
                    x.PrefixChar         = '-';
                    x.AllowMentionPrefix = true;
                });
                commands = BotUser.GetService <CommandService>();
                RoleManagementCommands    rmc = new RoleManagementCommands(BotUser, commands);
                AccountManagementCommands amc = new AccountManagementCommands(BotUser, commands);
                RoleManagementTrigger     roleManagementTrigger = new RoleManagementTrigger(BotUser, commands);
                RegionCommands            regionCommands        = new RegionCommands(BotUser, commands);
                RoleCommand          roleCommand        = new RoleCommand(BotUser, commands);
                ManagementTools      managementTools    = new ManagementTools(BotUser, commands);
                ServerInfoCommands   serverInfoCommands = new ServerInfoCommands(BotUser, commands);
                MasteryCommands      masteryCommands    = new MasteryCommands(BotUser, commands);
                ServerManagement     serverManagement   = new ServerManagement(BotUser, commands);
                RankCommands         rankCommands       = new RankCommands(BotUser, commands);
                SummonerInfo         summonerInfo       = new SummonerInfo(commands);
                BotManagement        botManagement      = new BotManagement(commands, BotUser);
                Interaction          inter               = new Interaction(BotUser, commands);
                CreateRoles          createRoles         = new CreateRoles(commands);
                Matchmaking_Settings matchmakingSettings = new Matchmaking_Settings(commands);
                CoachCommands        coachCommands       = new CoachCommands(commands);
                Stopwatch            stopwatch           = new Stopwatch();

                stopwatch.Start();
                MatchmakingTrigger  trigger             = new MatchmakingTrigger(BotUser, commands);
                MatchmakingCommands matchmakingCommands = new MatchmakingCommands(commands, BotUser, trigger);

                new HelpCommand(BotUser, commands);
                Task.Run(() => trigger.TimedClear(stopwatch));
                matchmakingCommands.CreateCommands();
                matchmakingSettings.ChannelSettings();
                coachCommands.CreateCommands();
                createRoles.CreateRank();
                summonerInfo.SelfInfo();
                summonerInfo.OtherInfo();
                serverManagement.ServerAdded();
                serverManagement.VerifyServer();
                serverInfoCommands.InviteLink();
                amc.ClaimAccount();
                amc.Claim();
                rankCommands.GetRank();
                new Universal_Role(BotUser, commands).UniversalRole();
                regionCommands.GetRegion();
                roleCommand.GetRole();
                rmc.Update();
                rmc.GetRoles();
                managementTools.ChangeType();
                managementTools.ChangeCommandAllowed();
                managementTools.OverrideSystem();
                serverInfoCommands.ServerInfo();
                serverInfoCommands.Description();
                serverManagement.CheckForNewServer();
                managementTools.Admin();
                roleCommand.GetRoleParameter();
                Legal();
                roleManagementTrigger.JoiningRoleGive();
                masteryCommands.GetMasteryPoints();
                managementTools.AdminMastery();

                Test();
                BotUser.ExecuteAndWait(async() =>
                {
                    await BotUser.Connect(global::Keys.Keys.discordKey, TokenType.Bot);
                });
            }
예제 #23
0
 public static IEnumerable <uLink.NetworkPlayer> GetNetworkPlayersByName(string name)
 {
     return(ServerManagement.GetNetworkPlayersByName(name, StringComparison.InvariantCultureIgnoreCase));
 }
예제 #24
0
 public static new RustServerManagement Get()
 {
     return((RustServerManagement)ServerManagement.Get());
 }
예제 #25
0
 protected void OnDestroy()
 {
     if (ServerManagement._serverMan == this)
     {
         ServerManagement._serverMan = null;
     }
 }
예제 #26
0
 protected void Awake()
 {
     ServerManagement._serverMan = this;
     UnityEngine.Object.DontDestroyOnLoad(base.gameObject);
     DestroysOnDisconnect.ApplyToGameObject(base.gameObject);
 }
예제 #27
0
 public void RequestRespawn_InCamp()
 {
     this.OutroAnimations();
     ServerManagement.Get().networkView.RPC <bool>("RequestRespawn", uLink.RPCMode.Server, true);
 }