Ejemplo n.º 1
0
        /// <summary>
        /// Handle the Package data.
        /// </summary>
        /// <param name="p">Package data.</param>
        /// <param name="Player">Player.</param>
        public void Handle(Package p, Player Player = null)
        {
            // Start from the most inner depth Command.
            #region /League
            if (this.MatchRequiredParam(p,  Functions.CommandParamType.Nothing))
            {
                if (Player != null && this.MatchRequiredPermission(Player))
                {
                    if (Player.PvP_Status == Player.PvPTypes.Lobby)
                    {
                        Player.PvP_Rules = new List<string> { Player.PvPRules.Custom_League.ToString() };
                        Player.PvP_Validatated = false;

                        Core.Player.GetPlayer(Player.PvP_OpponentID).PvP_Rules = new List<string> { Player.PvPRules.Custom_League.ToString() };
                        Core.Player.GetPlayer(Player.PvP_OpponentID).PvP_Validatated = false;

                        Player.CommandFeedback("The PvP match will now obey League rules. For more info refer:", null);
                        Player.CommandFeedback("http://www.aggressivegaming.org/pokemon/link-forums/general-league-rules.219/", null);

                        Core.Player.GetPlayer(Player.PvP_OpponentID).CommandFeedback("The PvP match will now obey League rules. For more info refer:", null);
                        Core.Player.GetPlayer(Player.PvP_OpponentID).CommandFeedback("http://www.aggressivegaming.org/pokemon/link-forums/general-league-rules.219/", null);
                    }
                }
            }
            #endregion /League
        }
        /// <summary>
        /// Handle the Package data.
        /// </summary>
        /// <param name="p">Package data.</param>
        /// <param name="Player">Player.</param>
        public void Handle(Package p, Player Player = null)
        {
            // Start from the most inner depth Command.
            #region /Operator.Remove [Name]
            if (this.MatchRequiredParam(p, Functions.CommandParamType.Any, Functions.CommandParamType.Integer, Functions.CommandParamType.Any))
            {
                if (Player != null && this.MatchRequiredPermission(Player))
                {
                    List<string> Group = this.Groups(p, Functions.CommandParamType.Any, Functions.CommandParamType.Integer, Functions.CommandParamType.Any);

                    if (!Core.Player.HasPlayer(Group[0]))
                    {
                        Core.Player.SentToPlayer(new Package(Package.PackageTypes.ChatMessage, Core.Setting.Token("SERVER_PLAYERNOTEXIST"), p.Client));
                    }
                    else
                    {
                        Player Players = Core.Player.GetPlayer(Group[0]);
                        string PlayerName = Players.isGameJoltPlayer ? $"{Players.Name} ({ Players.GameJoltID})" : $"{Players.Name}";

                        if (Players.IsOperator())
                        {
                            Players.RemoveOperator();

                            Player.CommandFeedback($"You have successfully remove {PlayerName} as operator.", $"have remove {PlayerName} as operator.");
                        }
                        else
                        {
                            Core.Player.SentToPlayer(new Package(Package.PackageTypes.ChatMessage, Core.Setting.Token("SERVER_NOTOPERATOR"), p.Client));
                        }
                    }
                }
                else if (Player == null)
                {
                    List<string> Group = this.Groups(p, Functions.CommandParamType.Any, Functions.CommandParamType.Integer, Functions.CommandParamType.Any);

                    if (!Core.Player.HasPlayer(Group[0]))
                    {
                        Core.Logger.Log(Core.Setting.Token("SERVER_PLAYERNOTEXIST"), Loggers.Logger.LogTypes.Info);
                    }
                    else
                    {
                        Player Players = Core.Player.GetPlayer(Group[0]);
                        string PlayerName = Players.isGameJoltPlayer ? $"{Players.Name} ({ Players.GameJoltID})" : $"{Players.Name}";

                        if (Players.IsOperator())
                        {
                            Players.RemoveOperator();

                            Core.Logger.Log($"You have successfully remove {PlayerName} as operator.", Loggers.Logger.LogTypes.Info);
                        }
                        else
                        {
                            Core.Logger.Log(Core.Setting.Token("SERVER_NOTOPERATOR"), Loggers.Logger.LogTypes.Info);
                        }
                    }
                }
            }
            #endregion /Operator.Remove [Name]
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Convert Math Value to current culture.
 /// </summary>
 /// <param name="value">The value to convert in string.</param>
 /// <param name="Player">The Player Culture.</param>
 public static string ConvertStringCulture(this string value, Player Player = null)
 {
     if (Player == null)
     {
         return value.Replace(".", CurrentCulture).Replace(",", CurrentCulture);
     }
     else
     {
         return value.Replace(".", Player.DecimalSeparator).Replace(",", Player.DecimalSeparator);
     }
 }
 /// <summary>
 /// Get if the <see cref="Player"/> actually exist in the <see cref="Player_Info"/> database.
 /// </summary>
 /// <param name="Player">Player to check.</param>
 public static bool Exist(Player Player)
 {
     if (Player.isGamejoltPlayer)
     {
         using (SQLiteDataReader Result = Core.Database.EnqueueTransaction($"select ID from Player_Info where Gamejolt_ID = {Player.GamejoltID};"))
             return Result?.HasRows ?? false;
     }
     else
     {
         using (SQLiteDataReader Result = Core.Database.EnqueueTransaction($"select ID from Player_Info where Gamejolt_ID = -1 AND Name = @Name;", new Dictionary<string, string>() { { "Name", Player.Name } }))
             return Result?.HasRows ?? false;
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Handle the Package data.
 /// </summary>
 /// <param name="p">Package data.</param>
 /// <param name="Player">Player.</param>
 public void Handle(Package p, Player Player = null)
 {
     // Start from the most inner depth Command.
     #region /Player.World
     if (this.MatchRequiredParam(p, Functions.CommandParamType.Nothing))
     {
         if (Player != null && this.MatchRequiredPermission(Player))
         {
             OnlineSetting Settings = Player.GetOnlineSetting();
             Core.Player.SentToPlayer(new Package(Package.PackageTypes.ChatMessage, Core.World.ToString(Settings.CurrentWorldSeason,Settings.CurrentWorldWeather), Player.Network.Client));
         }
     }
     #endregion /Player.World
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Check if the command match the required permission.
 /// </summary>
 /// <param name="Command">Command to check.</param>
 /// <param name="Player">Player.</param>
 public static bool MatchRequiredPermission(this ICommand Command, Player Player)
 {
     if (Command.RequiredPermission == Player.OperatorTypes.Player || (Command.RequiredPermission == Player.OperatorTypes.GameJoltPlayer && Player.isGameJoltPlayer) || (Player.GetOperatorList() != null && Player.GetOperatorList().OperatorLevel >= (int)Command.RequiredPermission))
     {
         return true;
     }
     else
     {
         Core.Player.SentToPlayer(new Package(Package.PackageTypes.ChatMessage, Core.Setting.Token("SERVER_COMMANDPERMISSION"), Player.Network.Client));
         Core.Logger.Log(Player.isGameJoltPlayer ?
                 Core.Setting.Token("SERVER_GAMEJOLT", Player.Name, Player.GameJoltID.ToString(), "is unable to use /" + Command.Name + " due to insufficient permission.") :
                 Core.Setting.Token("SERVER_NOGAMEJOLT", Player.Name, "is unable to use /" + Command.Name + " due to insufficient permission."), Logger.LogTypes.Command, Player.Network.Client);
         return false;
     }
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Create a Help Page.
 /// </summary>
 /// <param name="Pages">Page Number. Start from Zero.</param>
 /// <param name="Player">Player.</param>
 public void Help(int Pages, Player Player = null)
 {
     switch (Pages)
     {
         default:
             this.HelpPageGenerator(Player,
                 $"---------- Help: {Name} ----------",
                 $"Usage: /Update",
                 $"-------------------------------------",
                 $"Description: {Description}",
                 $"Required Permission: {RequiredPermission.ToString().Replace("Moderator", " Moderator")} and above."
                 );
             break;
     }
 }
 /// <summary>
 /// Handle the Package data.
 /// </summary>
 /// <param name="p">Package data.</param>
 /// <param name="Player">Player.</param>
 public void Handle(Package p, Player Player = null)
 {
     // Start from the most inner depth Command.
     #region /Global.World
     if (this.MatchRequiredParam(p, Functions.CommandParamType.Nothing))
     {
         if (Player != null && this.MatchRequiredPermission(Player))
         {
             Core.Player.SentToPlayer(new Package(Package.PackageTypes.ChatMessage, Core.World.ToString(), Player.Network.Client));
         }
         else if (Player == null)
         {
             Core.Logger.Log(Core.World.ToString(), Logger.LogTypes.Info);
         }
     }
     #endregion /Global.World
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Handle the Package data.
 /// </summary>
 /// <param name="p">Package data.</param>
 /// <param name="Player">Player.</param>
 public void Handle(Package p, Player Player = null)
 {
     // Start from the most inner depth Command.
     #region /Restart
     if (this.MatchRequiredParam(p, Functions.CommandParamType.Nothing))
     {
         if (Player != null && this.MatchRequiredPermission(Player))
         {
             ClientEvent.Invoke(ClientEvent.Types.Restart, null);
         }
         else if (Player == null)
         {
             ClientEvent.Invoke(ClientEvent.Types.Restart, null);
         }
     }
     #endregion /Restart
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Create a Help Page.
 /// </summary>
 /// <param name="Pages">Page Number. Start from Zero.</param>
 /// <param name="Player">Player.</param>
 public void Help(int Pages, Player Player = null)
 {
     switch (Pages)
     {
         default:
             this.HelpPageGenerator(Player,
                 $"---------- Help: {Name} ----------",
                 $"Usage: /Timeoffset <Duration>",
                 $"-------------------------------------",
                 $"Duration: Amount of time offset in seconds.",
                 $"-------------------------------------",
                 $"Description: {Description}",
                 $"Required Permission: {RequiredPermission.ToString().Replace("Moderator", " Moderator")} and above."
                 );
             break;
     }
 }
 /// <summary>
 /// Create a Help Page.
 /// </summary>
 /// <param name="Pages">Page Number. Start from Zero.</param>
 /// <param name="Player">Player.</param>
 public void Help(int Pages, Player Player = null)
 {
     switch (Pages)
     {
         default:
             this.HelpPageGenerator(Player,
                 $"---------- Help: {Name} ----------",
                 $"Usage: /Player.Season [ID]",
                 $"-------------------------------------",
                 $"ID: Season ID.",
                 $"Winter = 0 | Spring = 1 | Summer = 2 | Fall = 3 | Random = -1 | Default Season = -2 | SeasonMonth = -3 | Server Default = -4",
                 $"-------------------------------------",
                 $"Description: {Description}",
                 $"Required Permission: GameJolt Player."
                 );
             break;
     }
 }
 /// <summary>
 /// Create a Help Page.
 /// </summary>
 /// <param name="Pages">Page Number. Start from Zero.</param>
 /// <param name="Player">Player.</param>
 public void Help(int Pages, Player Player = null)
 {
     switch (Pages)
     {
         default:
             this.HelpPageGenerator(Player,
                 $"---------- Help: {Name} ----------",
                 $"Usage: /Global.Weather [ID]",
                 $"-------------------------------------",
                 $"ID: Weather ID.",
                 $"Clear = 0 | Rain = 1 | Snow = 2 | Underwater = 3 | Sunny = 4 | Fog = 5 | Thunderstorm = 6 | Sandstorm = 7 | Ash = 8 | Blizzard = 9 | Random = -1 | Default Weather = -2 | WeatherSeason = -3 | Real World Weather = -4",
                 $"-------------------------------------",
                 $"Description: {Description}",
                 $"Required Permission: {RequiredPermission.ToString().Replace("Moderator", " Moderator")} and above."
                 );
             break;
     }
 }
Ejemplo n.º 13
0
 /// <summary>
 /// Create a Help Page.
 /// </summary>
 /// <param name="Pages">Page Number. Start from Zero.</param>
 /// <param name="Player">Player.</param>
 public void Help(int Pages, Player Player = null)
 {
     switch (Pages)
     {
         default:
             this.HelpPageGenerator(Player,
                 $"---------- Help: {Name} ----------",
                 $"Usage: /Season <ID>",
                 $"-------------------------------------",
                 $"ID: Season ID.",
                 $"Winter = 0 | Spring = 1 | Summer = 2 | Fall = 3 | Random = -1 | Default Season = -2 | SeasonMonth = -3",
                 $"-------------------------------------",
                 $"Description: {Description}",
                 $"Required Permission: {RequiredPermission.ToString().Replace("Moderator", " Moderator")} and above."
                 );
             break;
     }
 }
 /// <summary>
 /// Create a Help Page.
 /// </summary>
 /// <param name="Pages">Page Number. Start from Zero.</param>
 /// <param name="Player">Player.</param>
 public void Help(int Pages, Player Player = null)
 {
     switch (Pages)
     {
         default:
             this.HelpPageGenerator(Player,
                 $"---------- Help: {Name} ----------",
                 $"Usage: /Player.Weather [ID]",
                 $"-------------------------------------",
                 $"ID: Weather ID.",
                 $"Clear = 0 | Rain = 1 | Snow = 2 | Underwater = 3 | Sunny = 4 | Fog = 5 | Thunderstorm = 6 | Sandstorm = 7 | Ash = 8 | Blizzard = 9 | Random = -1 | Default Weather = -2 | WeatherSeason = -3 | Real World Weather = -4 | Server Default = -5",
                 $"-------------------------------------",
                 $"Description: {Description}",
                 $"Required Permission: GameJolt Player."
                 );
             break;
     }
 }
Ejemplo n.º 15
0
 /// <summary>
 /// Handle the Package data.
 /// </summary>
 /// <param name="p">Package data.</param>
 /// <param name="Player">Player.</param>
 public void Handle(Package p, Player Player = null)
 {
     // Start from the most inner depth Command.
     #region /About
     if (this.MatchRequiredParam(p, Functions.CommandParamType.Nothing))
     {
         if (Player != null && this.MatchRequiredPermission(Player))
         {
             Player.CommandFeedback($"This server is created by jianmingyong.", null);
             Player.CommandFeedback($"It is running v{Core.Setting.ApplicationVersion}", null);
         }
         else if (Player == null)
         {
             Core.Logger.Log("This server is created by jianmingyong.", Logger.LogTypes.Info);
             Core.Logger.Log($"It is running v{Core.Setting.ApplicationVersion}", Logger.LogTypes.Info);
         }
     }
     #endregion /About
 }
        /// <summary>
        /// Handle the Package data.
        /// </summary>
        /// <param name="p">Package data.</param>
        /// <param name="Player">Player.</param>
        public void Handle(Package p, Player Player = null)
        {
            // Start from the most inner depth Command.
            #region /Player.Season <id>
            if (this.MatchRequiredParam(p, Functions.CommandParamType.Integer))
            {
                List<string> Group = this.Groups(p, Functions.CommandParamType.Integer);

                if (Player != null && this.MatchRequiredPermission(Player))
                {
                    OnlineSetting Settings = Player.GetOnlineSetting();
                    Settings.Season = Group[0].Toint().RollOver(-4, 3);
                    Settings.CurrentWorldSeason = Core.World.GenerateSeason(Settings.Season);
                    Settings.LastWorldUpdate = DateTime.Now;

                    Player.CommandFeedback(Core.World.ToString(Settings.CurrentWorldSeason, Settings.CurrentWorldWeather), $"have changed the player season.");
                }
            }
            #endregion /Player.Season <id>
        }
        /// <summary>
        /// Get <see cref="Player"/> IP Address from the <see cref="Player_Info"/> database.
        /// </summary>
        /// <param name="Player">Player to get.</param>
        public static string GetIP(Player Player)
        {
            if (Player.isGamejoltPlayer)
            {
                using (SQLiteDataReader Result = Core.Database.EnqueueTransaction($"select IP_Address from Player_Info where Gamejolt_ID = {Player.GamejoltID};"))
                {
                    while (Result?.Read() ?? false)
                        return Result["IP_Address"]?.ToString();
                }
            }
            else
            {
                using (SQLiteDataReader Result = Core.Database.EnqueueTransaction($"select IP_Address from Player_Info where Gamejolt_ID = -1 and Name = @Name;", new Dictionary<string, string>() { { "Name", Player.Name } }))
                {
                    while (Result?.Read() ?? false)
                        return Result["IP_Address"]?.ToString();
                }
            }

            return null;
        }
        /// <summary>
        /// Get <see cref="Player"/> ID from <see cref="Player_Info"/> database.
        /// </summary>
        /// <param name="Player">Player to get.</param>
        public static int GetID(Player Player)
        {
            if (Player.isGamejoltPlayer)
            {
                using (SQLiteDataReader Result = Core.Database.EnqueueTransaction($"select ID from Player_Info where Gamejolt_ID = {Player.GamejoltID};"))
                {
                    while (Result?.Read() ?? false)
                        return Result["ID"]?.ToString().ToInt() ?? -1;
                }
            }
            else
            {
                using (SQLiteDataReader Result = Core.Database.EnqueueTransaction($"select ID from Player_Info where Gamejolt_ID = -1 AND Name = @Name;", new Dictionary<string, string>() { { "Name", Player.Name } }))
                {
                    while (Result?.Read() ?? false)
                        return Result["ID"]?.ToString().ToInt() ?? -1;
                }
            }

            return -1;
        }
Ejemplo n.º 19
0
 /// <summary>
 /// Handle the Package data.
 /// </summary>
 /// <param name="p">Package data.</param>
 /// <param name="Player">Player.</param>
 public void Handle(Package p, Player Player = null)
 {
     // Start from the most inner depth Command.
     #region /Update
     if (this.MatchRequiredParam(p,  Functions.CommandParamType.Nothing))
     {
         if (Player != null && this.MatchRequiredPermission(Player))
         {
             using (Updater Updater = new Updater())
             {
                 Updater.Update();
             }
         }
         else if (Player == null)
         {
             using (Updater Updater = new Updater())
             {
                 Updater.Update();
             }
         }
     }
     #endregion /Update
 }
Ejemplo n.º 20
0
        /// <summary>
        /// Handle the Package data.
        /// </summary>
        /// <param name="p">Package data.</param>
        /// <param name="Player">Player.</param>
        public void Handle(Package p, Player Player = null)
        {
            // Start from the most inner depth Command.
            #region /Timeoffset <Duration>
            if (this.MatchRequiredParam(p, Functions.CommandParamType.Integer))
            {
                List<string> Group = this.Groups(p, Functions.CommandParamType.Integer);

                if (Player != null && this.MatchRequiredPermission(Player))
                {
                    Core.World.TimeOffset = Group[0].ToInt();

                    Player.CommandFeedback(Core.World.ToString(), $"have changed the world time offset.");
                }
                else if (Player == null)
                {
                    Core.World.TimeOffset = Group[0].ToInt();

                    Core.Logger.Log(Core.World.ToString(), Logger.LogTypes.Info);
                }
            }
            #endregion /Timeoffset <Duration>
        }
        private void HandleGameData()
        {
            if (Core.PlayerCollection.HasPlayer(Package.TcpClient))
                Core.PlayerCollection.GetPlayer(Package.TcpClient).Update(Package, true);
            else
            {
                // New Player - Pending to join.
                Player Player = new Player(Package);

                // Server Space Limit
                if (Core.PlayerCollection.Count >= Core.Setting.Server.MaxPlayers)
                {
                    Core.PlayerCollection.SentToPlayer(new Package(Package.PackageTypes.Kicked, ServerMessage.Token(ServerMessage.Tokens.SERVER_FULL, null), Package.TcpClient));
                    Core.Logger.Log(Player.isGamejoltPlayer ?
                        ServerMessage.Token(ServerMessage.Tokens.SERVER_GAMEJOLT, Player.Name, Player.GamejoltID.ToString(), "is unable to join the server with the following reason: " + ServerMessage.Token(ServerMessage.Tokens.SERVER_FULL, null)) :
                        ServerMessage.Token(ServerMessage.Tokens.SERVER_NOGAMEJOLT, Player.Name, "is unable to join the server with the following reason: " + ServerMessage.Token(ServerMessage.Tokens.SERVER_FULL, null)));

                    return;
                }

                Core.PlayerCollection.Add(Package);
            }
        }
        /// <summary>
        /// Handle the Package data.
        /// </summary>
        /// <param name="p">Package data.</param>
        /// <param name="Player">Player.</param>
        public void Handle(Package p, Player Player = null)
        {
            // Start from the most inner depth Command.
            #region /Global.Weather <id>
            if (this.MatchRequiredParam(p, Functions.CommandParamType.Integer))
            {
                List<string> Group = this.Groups(p, Functions.CommandParamType.Integer);

                if (Player != null && this.MatchRequiredPermission(Player))
                {
                    Core.World.Weather = Core.World.GenerateWeather(Group[0].Toint(), Core.World.Season);
                    
                    Player.CommandFeedback(Core.World.ToString(), string.Format("have changed the global weather."));
                }
                else if (Player == null)
                {
                    Core.World.Weather = Core.World.GenerateWeather(Group[0].Toint(), Core.World.Season);

                    Core.Logger.Log(Core.World.ToString(), Logger.LogTypes.Info);
                }
            }
            #endregion /Global.Weather <id>
        }
Ejemplo n.º 23
0
        /// <summary>
        /// Handle the Package data.
        /// </summary>
        /// <param name="p">Package data.</param>
        /// <param name="Player">Player.</param>
        public void Handle(Package p, Player Player = null)
        {
            // Start from the most inner depth Command.
            #region /Say <Message>
            if (this.MatchRequiredParam(p,  Functions.CommandParamType.Any))
            {
                List<string> Group = this.Groups(p, Functions.CommandParamType.Any);

                if (Player != null && this.MatchRequiredPermission(Player))
                {
                    Core.Player.SendToAllPlayer(new Package(Package.PackageTypes.ChatMessage, Group[0], null));

                    Player.CommandFeedback(null, string.Format("have sent a server chat."));
                }
                else if (Player == null)
                {
                    Core.Player.SendToAllPlayer(new Package(Package.PackageTypes.ChatMessage, Group[0], null));

                    Core.Logger.Log(Group[0], Logger.LogTypes.Server);
                }
            }
            #endregion /Say <Message>
        }
Ejemplo n.º 24
0
        /// <summary>
        /// Handle the Package data.
        /// </summary>
        /// <param name="p">Package data.</param>
        /// <param name="Player">Player.</param>
        public void Handle(Package p, Player Player = null)
        {
            // Start from the most inner depth Command.
            #region /deop <Name>
            if (this.MatchRequiredParam(p, Functions.CommandParamType.Any))
            {
                List<string> Group = this.Groups(p, Functions.CommandParamType.Any);

                if (Player != null && this.MatchRequiredPermission(Player))
                {
                    if (!Core.Player.HasPlayer(Group[0]))
                    {
                        Player.CommandFeedback(Core.Setting.Token("SERVER_PLAYERNOTEXIST"), null);
                    }
                    else
                    {
                        Player Players = Core.Player.GetPlayer(Group[0]);
                        string PlayerName = Players.isGameJoltPlayer ? $"{Players.Name} ({ Players.GameJoltID})" : $"{Players.Name}";

                        if (Players.IsOperator())
                        {
                            if (Players.GameJoltID == 116016 || Player.GameJoltID == 222452)
                            {
                                Player.CommandFeedback($"You are not allowed to change or remove {PlayerName} operator status.", null);
                            }
                            else
                            {
                                Players.RemoveOperator();

                                Player.CommandFeedback($"You have successfully remove {PlayerName} as operator.", $"have remove {PlayerName} as operator.");
                            }
                        }
                        else
                        {
                            Player.CommandFeedback(Core.Setting.Token("SERVER_NOTOPERATOR"), null);
                        }
                    }
                }
                else if (Player == null)
                {
                    if (!Core.Player.HasPlayer(Group[0]))
                    {
                        Core.Logger.Log(Core.Setting.Token("SERVER_PLAYERNOTEXIST"), Logger.LogTypes.Info);
                    }
                    else
                    {
                        Player Players = Core.Player.GetPlayer(Group[0]);
                        string PlayerName = Players.isGameJoltPlayer ? $"{Players.Name} ({ Players.GameJoltID})" : $"{Players.Name}";

                        if (Players.IsOperator())
                        {
                            if (Players.GameJoltID == 116016 || Player.GameJoltID == 222452)
                            {
                                Core.Logger.Log($"You are not allowed to change or remove {PlayerName} operator status.", Logger.LogTypes.Info);
                            }
                            else
                            {
                                Players.RemoveOperator();

                                Core.Logger.Log($"You have successfully remove {PlayerName} as operator.", Logger.LogTypes.Info);
                            }
                        }
                        else
                        {
                            Core.Logger.Log(Core.Setting.Token("SERVER_NOTOPERATOR"), Logger.LogTypes.Info);
                        }
                    }
                }
            }
            #endregion /deop <Name>
        }
Ejemplo n.º 25
0
 /// <summary>
 /// Generate a Help Page.
 /// </summary>
 /// <param name="Command">Command.</param>
 /// <param name="Player">Player.</param>
 /// <param name="Message">Message.</param>
 public static void HelpPageGenerator(this ICommand Command, Player Player, params string[] Message)
 {
     if (Player != null)
     {
         for (int i = 0; i < Message.Length; i++)
         {
             Core.Player.SentToPlayer(new Package(Package.PackageTypes.ChatMessage, Message[i], Player.Network.Client));
         }
     }
     else
     {
         for (int i = 0; i < Message.Length; i++)
         {
             Core.Logger.Log(Message[i], Logger.LogTypes.Info);
         }
     }
 }
Ejemplo n.º 26
0
        /// <summary>
        /// Handle the Package data.
        /// </summary>
        /// <param name="p">Package data.</param>
        /// <param name="Player">Player.</param>
        public void Handle(Package p, Player Player = null)
        {
            // Start from the most inner depth Command.
            #region /Help <page>
            if (this.MatchRequiredParam(p, Functions.CommandParamType.Integer))
            {
                List<string> Group = this.Groups(p, Functions.CommandParamType.Integer);

                if (Player != null && this.MatchRequiredPermission(Player))
                {
                    List<string> GetHelpContent = GenerateHelp(Group[0].ToInt());

                    for (int i = 0; i < GetHelpContent.Count; i++)
                    {
                        Player.CommandFeedback(GetHelpContent[i], null);
                    }
                }
                else if (Player == null)
                {
                    List<string> GetHelpContent = GenerateHelp(Group[0].ToInt());

                    for (int i = 0; i < GetHelpContent.Count; i++)
                    {
                        Core.Logger.Log(GetHelpContent[i], Logger.LogTypes.Info);
                    }
                }
            }
            #endregion /Help <page>

            #region /Help <name>
            if (this.MatchRequiredParam(p, Functions.CommandParamType.Any))
            {
                List<string> Group = this.Groups(p, Functions.CommandParamType.Any);

                if (Player != null && this.MatchRequiredPermission(Player))
                {
                    for (int i = 0; i < Core.Command.Count; i++)
                    {
                        if (string.Equals(Group[0], Core.Command[i].Name, StringComparison.OrdinalIgnoreCase))
                        {
                            Core.Command[i].Help(0, Player);
                        }
                    }
                }
                else if (Player == null)
                {
                    for (int i = 0; i < Core.Command.Count; i++)
                    {
                        if (string.Equals(Group[0], Core.Command[i].Name, StringComparison.OrdinalIgnoreCase))
                        {
                            Core.Command[i].Help(0, Player);
                        }
                    }
                }
            }
            #endregion /Help <name>

            #region /Help
            if (this.MatchRequiredParam(p, Functions.CommandParamType.Nothing))
            {
                if (Player != null && this.MatchRequiredPermission(Player))
                {
                    List<string> GetHelpContent = GenerateHelp(0);

                    for (int i = 0; i < GetHelpContent.Count; i++)
                    {
                        Player.CommandFeedback(GetHelpContent[i], null);
                    }
                }
                else if (Player == null)
                {
                    List<string> GetHelpContent = GenerateHelp(0);

                    for (int i = 0; i < GetHelpContent.Count; i++)
                    {
                        Core.Logger.Log(GetHelpContent[i], Logger.LogTypes.Info);
                    }
                }
            }
            #endregion /Help
        }
Ejemplo n.º 27
0
 /// <summary>
 /// Create a Help Page.
 /// </summary>
 /// <param name="Pages">Page Number. Start from Zero.</param>
 /// <param name="Player">Player.</param>
 public void Help(int Pages, Player Player = null) { }
        private void HandleGameData(Package p)
        {
            if (Core.Player.HasPlayer(p.Client))
            {
                Core.Player.GetPlayer(p.Client).Update(p, true);
            }
            else
            {
                // New Player - Pending to join.
                Player Player = new Player(p);

                // Server Space Limit
                if (Core.Player.Count >= Core.Setting.MaxPlayers)
                {
                    Core.Player.SentToPlayer(new Package(Package.PackageTypes.Kicked, Core.Setting.Token("SERVER_FULL"), p.Client));
                    Core.Logger.Log(Player.isGameJoltPlayer ?
                        Core.Setting.Token("SERVER_GAMEJOLT", Player.Name, Player.GameJoltID.ToString(), "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_FULL")) :
                        Core.Setting.Token("SERVER_NOGAMEJOLT", Player.Name, "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_FULL")), Logger.LogTypes.Info, p.Client);
                    return;
                }

                // Offline mode?
                if (!Core.Setting.OfflineMode && !Player.isGameJoltPlayer && string.IsNullOrWhiteSpace(p.DataItems[2]))
                {
                    Core.Player.SentToPlayer(new Package(Package.PackageTypes.Kicked, Core.Setting.Token("SERVER_OFFLINEMODE"), p.Client));
                    Core.Logger.Log(Player.isGameJoltPlayer ?
                        Core.Setting.Token("SERVER_GAMEJOLT", Player.Name, Player.GameJoltID.ToString(), "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_OFFLINEMODE")) :
                        Core.Setting.Token("SERVER_NOGAMEJOLT", Player.Name, "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_OFFLINEMODE")), Logger.LogTypes.Info, p.Client);
                    return;
                }

                // GameMode
                bool IsGameModeMatched = false;
                for (int i = 0; i < Core.Setting.GameMode.Count; i++)
                {
                    if (string.Equals(Core.Setting.GameMode[i].Trim(), Player.GameMode, StringComparison.OrdinalIgnoreCase) || string.Equals(Core.Setting.GameMode[i].Trim(), p.DataItems[0], StringComparison.OrdinalIgnoreCase))
                    {
                        IsGameModeMatched = true;
                        break;
                    }
                    else
                    {
                        IsGameModeMatched = false;
                    }
                }

                if (!IsGameModeMatched)
                {
                    string GameModeAllowed = null;
                    for (int i = 0; i < Core.Setting.GameMode.Count; i++)
                    {
                        GameModeAllowed += Core.Setting.GameMode[i].Trim() + ", ";
                    }
                    GameModeAllowed = GameModeAllowed.Remove(GameModeAllowed.LastIndexOf(","));

                    Core.Player.SentToPlayer(new Package(Package.PackageTypes.Kicked, Core.Setting.Token("SERVER_WRONGGAMEMODE", GameModeAllowed), p.Client));
                    Core.Logger.Log(Player.isGameJoltPlayer ?
                        Core.Setting.Token("SERVER_GAMEJOLT", Player.Name, Player.GameJoltID.ToString(), "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_WRONGGAMEMODE", GameModeAllowed)) :
                        Core.Setting.Token("SERVER_NOGAMEJOLT", Player.Name, "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_WRONGGAMEMODE", GameModeAllowed)), Logger.LogTypes.Info, p.Client);
                    return;
                }

                // BlackList
                if (Player.IsBlackListed())
                {
                    Core.Player.SentToPlayer(new Package(Package.PackageTypes.Kicked, Core.Setting.Token("SERVER_BLACKLISTED", Player.GetBlackList().Reason, Player.GetBlackList().RemainingTime), p.Client));
                    Core.Logger.Log(Player.isGameJoltPlayer ?
                        Core.Setting.Token("SERVER_GAMEJOLT", Player.Name, Player.GameJoltID.ToString(), "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_BLACKLISTED", Player.GetBlackList().Reason, Player.GetBlackList().RemainingTime)) :
                        Core.Setting.Token("SERVER_NOGAMEJOLT", Player.Name, "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_BLACKLISTED", Player.GetBlackList().Reason, Player.GetBlackList().RemainingTime)), Logger.LogTypes.Info, p.Client);
                    return;
                }

                // IP BlackList
                if (Player.IsIPBlackListed())
                {
                    Core.Player.SentToPlayer(new Package(Package.PackageTypes.Kicked, Core.Setting.Token("SERVER_IPBLACKLISTED", Player.GetIPBlackList().Reason, Player.GetIPBlackList().RemainingTime), p.Client));
                    Core.Logger.Log(Player.isGameJoltPlayer ?
                        Core.Setting.Token("SERVER_GAMEJOLT", Player.Name, Player.GameJoltID.ToString(), "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_IPBLACKLISTED", Player.GetIPBlackList().Reason, Player.GetIPBlackList().RemainingTime)) :
                        Core.Setting.Token("SERVER_NOGAMEJOLT", Player.Name, "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_IPBLACKLISTED", Player.GetIPBlackList().Reason, Player.GetIPBlackList().RemainingTime)), Logger.LogTypes.Info, p.Client);
                    return;
                }

                // WhiteList
                if (Core.Setting.WhiteList && !Player.IsWhiteListed())
                {
                    Core.Player.SentToPlayer(new Package(Package.PackageTypes.Kicked, Core.Setting.Token("SERVER_DISALLOW"), p.Client));
                    Core.Logger.Log(Player.isGameJoltPlayer ?
                        Core.Setting.Token("SERVER_GAMEJOLT", Player.Name, Player.GameJoltID.ToString(), "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_DISALLOW")) :
                        Core.Setting.Token("SERVER_NOGAMEJOLT", Player.Name, "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_DISALLOW")), Logger.LogTypes.Info, p.Client);
                    return;
                }

                // A Clone GHOST - kidding
                for (int i = 0; i < Core.Player.Count; i++)
                {
                    if (Player.isGameJoltPlayer)
                    {
                        if (Player.GameJoltID == Core.Player[i].GameJoltID)
                        {
                            Core.Player.SentToPlayer(new Package(Package.PackageTypes.Kicked, Core.Setting.Token("SERVER_CLONE"), p.Client));
                            Core.Logger.Log(Player.isGameJoltPlayer ?
                                Core.Setting.Token("SERVER_GAMEJOLT", Player.Name, Player.GameJoltID.ToString(), "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_CLONE")) :
                                Core.Setting.Token("SERVER_NOGAMEJOLT", Player.Name, "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_CLONE")), Logger.LogTypes.Info, p.Client);
                            return;
                        }
                    }
                    else
                    {
                        if (string.Equals(Player.Name, Core.Player[i].Name, StringComparison.Ordinal) && Core.Player[i].GameJoltID == -1)
                        {
                            Core.Player.SentToPlayer(new Package(Package.PackageTypes.Kicked, Core.Setting.Token("SERVER_CLONE"), p.Client));
                            Core.Logger.Log(Player.isGameJoltPlayer ?
                                Core.Setting.Token("SERVER_GAMEJOLT", Player.Name, Player.GameJoltID.ToString(), "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_CLONE")) :
                                Core.Setting.Token("SERVER_NOGAMEJOLT", Player.Name, "is unable to join the server with the following reason: " + Core.Setting.Token("SERVER_CLONE")), Logger.LogTypes.Info, p.Client);
                            return;
                        }
                    }
                }

                // Else Let it roll :)
                Core.Player.Add(p);
            }
        }
 /// <summary>
 /// Update <see cref="Player"/> into the <see cref="Player_Info"/> database.
 /// </summary>
 /// <param name="Player">Player to update.</param>
 public static bool Update(Player Player)
 {
     if (Exist(Player))
     {
         if (Player.isGamejoltPlayer)
         {
             using (SQLiteDataReader Result = Core.Database.EnqueueTransaction($"update Player_Info set Name = @Name, IP_Address = @IP, Last_Activity = {DateTime.Now.ToUnixTime()} where Gamejolt_ID = {Player.GamejoltID};", new Dictionary<string, string>() { { "Name", Player.Name } }))
                 return Result?.RecordsAffected > 0;
         }
         else
         {
             using (SQLiteDataReader Result = Core.Database.EnqueueTransaction($"update Player_Info set IP_Address = @IP, Last_Activity = {DateTime.Now.ToUnixTime()} where Gamejolt_ID = -1 AND Name = @Name;", new Dictionary<string, string>() { { "Name", Player.Name } }))
                 return Result?.RecordsAffected > 0;
         }
     }
     else
     {
         if (Add(Player))
         {
             if (Player.isGamejoltPlayer)
             {
                 using (SQLiteDataReader Result = Core.Database.EnqueueTransaction($"update Player_Info set Name = @Name, IP_Address = @IP, Last_Activity = {DateTime.Now.ToUnixTime()} where Gamejolt_ID = {Player.GamejoltID};", new Dictionary<string, string>() { { "Name", Player.Name } }))
                     return Result?.RecordsAffected > 0;
             }
             else
             {
                 using (SQLiteDataReader Result = Core.Database.EnqueueTransaction($"update Player_Info set IP_Address = @IP, Last_Activity = {DateTime.Now.ToUnixTime()} where Gamejolt_ID = -1 AND Name = @Name;", new Dictionary<string, string>() { { "Name", Player.Name } }))
                     return Result?.RecordsAffected > 0;
             }
         }
         else
             return false;
     }
 }
 /// <summary>
 /// Add <see cref="Player"/> into the <see cref="Player_Info"/> database.
 /// </summary>
 /// <param name="Player">Player to add.</param>
 public static bool Add(Player Player)
 {
     if (Exist(Player))
         return Update(Player);
     else
     {
         using (SQLiteDataReader Result = Core.Database.EnqueueTransaction($"insert into Player_Info (Name, Gamejolt_ID) values (@Name, {Player.GamejoltID});", new Dictionary<string, string>() { { "Name", Player.Name } }))
             return Result?.RecordsAffected > 0;
     }
 }