Example #1
0
        /// <summary>
        /// Attempts to create a guild.
        /// </summary>
        /// <param name="player">The player who becomes the leader.</param>
        /// <param name="name">The name of the guild.</param>
        /// <returns>True if the guild was created.</returns>
        public static bool Create(Models.Entities.Player player, string name)
        {
            if (GetGuildByName(name) != null)
            {
                return(false);
            }

            var guild = new Guild(new Database.Models.DbGuild
            {
                Name             = name,
                Announcement     = Drivers.Messages.NEW_GUILD_ANNOUNCEMENT,
                AnnouncementDate = Drivers.Time.GetTime(Drivers.Time.TimeType.Day),
                Fund             = 0,
                CPsFund          = 0,
                Level            = 0,
                Server           = Drivers.Settings.WorldSettings.Server
            });

            if (guild.DbGuild.Create() && _guilds.TryAdd(guild.Id, guild))
            {
                guild.AddMember(player, Enums.GuildRank.GuildLeader, false);

                player.UpdateClientGuild();

                player.UpdateScreen(true);

                return(true);
            }

            return(false);
        }
        /// <summary>
        /// Donates cps.
        /// </summary>
        /// <param name="player">The player donating.</param>
        /// <param name="amount">The amount to donate.</param>
        /// <returns>True if the donation was a success.</returns>
        public bool DonateCPs(Models.Entities.Player player, uint amount)
        {
            if (player.CPs < amount)
            {
                return(false);
            }

            player.AddActionLog("DonateCpsGuild", amount);
            player.CPs -= amount;
            player.GuildMember.DbGuildRank.CPDonation += amount;
            player.GuildMember.DbGuildRank.Update();
            Guild.DbGuild.CPsFund += amount;
            Guild.DbGuild.Update();

            player.UpdateClientGuild();
            player.ClientSocket.Send(new Models.Packets.Guilds.GuildDonationPacket
            {
                Flags = Enums.GuildDonationFlags.AllDonations,
                Money = player.GuildMember.DbGuildRank.SilverDonation,
                CPs   = player.GuildMember.DbGuildRank.CPDonation
            });

            _cachedSortedMembers = null;

            SendMessageFormat("GUILD_DONATE", Enums.GuildMessageType.Green, player.Name, amount, "CPs");
            return(true);
        }
Example #3
0
        public static bool QueryAttribute(Models.Entities.Player player, Models.Packets.Guilds.GuildPacket packet)
        {
            if (player.Guild != null)
            {
                player.UpdateClientGuild();
            }

            return(true);
        }
Example #4
0
        public static bool GetSynAttr(Models.Entities.Player player, DataExchangePacket packet)
        {
            int guildId;

            if (Database.Dal.Guilds.HasGuild(player.DbPlayer.Id, out guildId))
            {
                Models.Guilds.Guild guild;
                if (Collections.GuildCollection.TryGetGuild(guildId, out guild))
                {
                    Models.Guilds.GuildMember member;
                    if (guild.TryGetMember(player.DbPlayer.Id, out member))
                    {
                        player.Guild       = guild;
                        player.GuildMember = member;
                        member.Player      = player;

                        player.UpdateClientGuild();
                    }
                }
            }

            player.ClientSocket.Send(packet);
            return(true);
        }
        /// <summary>
        /// Adds a member to the guild.
        /// </summary>
        /// <param name="player">The player.</param>
        /// <param name="rank">The starting rank.</param>
        /// <param name="update">A boolean determining whether the client of the player should be updated.</param>
        public void AddMember(Models.Entities.Player player, Enums.GuildRank rank, bool update = true)
        {
            var guildMember = new GuildMember(new Database.Models.DbGuildRank
            {
                GuildId        = Guild.Id,
                PlayerId       = player.DbPlayer.Id,
                PlayerName     = player.Name,
                PlayerLevel    = player.Level,
                SilverDonation = 0,
                CPDonation     = 0,
                GuildRank      = rank.ToString(),
                JoinDate       = Drivers.Time.GetTime(Drivers.Time.TimeType.Day)
            });

            if (guildMember.DbGuildRank.Create() && _members.TryAdd(player.DbPlayer.Id, guildMember))
            {
                player.AddActionLog("JoinGuild", Guild.Id);

                guildMember.Player = player;
                player.Guild       = Guild;
                player.GuildMember = guildMember;

                if (rank == Enums.GuildRank.GuildLeader)
                {
                    Guild.GuildLeader = guildMember;
                }

                if (update)
                {
                    player.UpdateClientGuild();
                    player.UpdateScreen(true);
                }
            }

            _cachedSortedMembers = null;
        }