/// <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); }
public static bool QueryAttribute(Models.Entities.Player player, Models.Packets.Guilds.GuildPacket packet) { if (player.Guild != null) { player.UpdateClientGuild(); } return(true); }
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; }