Beispiel #1
0
        /// <summary>
        /// Deletes a guild
        /// </summary>
        public static bool DeleteGuild(string guildName)
        {
            try
            {
                Guild removeGuild = GetGuildByName(guildName);
                // Does guild exist, if not return false.
                if (removeGuild == null)
                {
                    return(false);
                }

                var guilds = GameServer.Database.SelectObjects <DBGuild>("GuildName='" + GameServer.Database.Escape(guildName) + "'");
                foreach (var guild in guilds)
                {
                    foreach (var cha in GameServer.Database.SelectObjects <DOLCharacters>("GuildID = '" + GameServer.Database.Escape(guild.GuildID) + "'"))
                    {
                        cha.GuildID = "";
                    }

                    GameServer.Database.DeleteObject(guild);
                }

                //[StephenxPimentel] We need to delete the guild specific ranks aswell!
                var ranks = GameServer.Database.SelectObjects <DBRank>("`GuildID` = '" + removeGuild.ID + "'");
                foreach (var guildRank in ranks)
                {
                    GameServer.Database.DeleteObject(guildRank);
                }


                lock (removeGuild.GetListOfOnlineMembers())
                {
                    foreach (GamePlayer ply in removeGuild.GetListOfOnlineMembers())
                    {
                        ply.Guild     = null;
                        ply.GuildID   = "";
                        ply.GuildName = "";
                        ply.GuildRank = null;
                    }
                }

                RemoveGuild(removeGuild);

                return(true);
            }
            catch (Exception e)
            {
                if (log.IsErrorEnabled)
                {
                    log.Error("DeleteGuild", e);
                }
                return(false);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Deletes a guild
        /// </summary>
        public static bool DeleteGuild(string guildName)
        {
            try
            {
                Guild removeGuild = GetGuildByName(guildName);
                // Does guild exist, if not return false.
                if (removeGuild == null)
                {
                    return(false);
                }

                var guilds = DOLDB <DBGuild> .SelectObjects(DB.Column(nameof(DBGuild.GuildID)).IsEqualTo(removeGuild.GuildID));

                foreach (var guild in guilds)
                {
                    foreach (var cha in DOLDB <DOLCharacters> .SelectObjects(DB.Column(nameof(DOLCharacters.GuildID)).IsEqualTo(guild.GuildID)))
                    {
                        cha.GuildID = "";
                    }
                }
                GameServer.Database.DeleteObject(guilds);

                //[StephenxPimentel] We need to delete the guild specific ranks aswell!
                var ranks = DOLDB <DBRank> .SelectObjects(DB.Column(nameof(DBRank.GuildID)).IsEqualTo(removeGuild.GuildID));

                GameServer.Database.DeleteObject(ranks);

                lock (removeGuild.GetListOfOnlineMembers())
                {
                    foreach (GamePlayer ply in removeGuild.GetListOfOnlineMembers())
                    {
                        ply.Guild     = null;
                        ply.GuildID   = "";
                        ply.GuildName = "";
                        ply.GuildRank = null;
                    }
                }

                RemoveGuild(removeGuild);

                return(true);
            }
            catch (Exception e)
            {
                if (log.IsErrorEnabled)
                {
                    log.Error("DeleteGuild", e);
                }
                return(false);
            }
        }