예제 #1
0
        public void RemoveDeputyLeader(Data.GuildMember member)
        {
            if (DeputyLeaders.Contains(member.DatabaseUID))
            {
                if (DeputyLeaders.TryRemove(member.DatabaseUID))
                {
                    member.Rank = Enums.GuildRank.Member;

                    if (member.Client != null)
                    {
                        Database.CharacterDatabase.Save(member.Client);
                    }
                    else
                    {
                        Database.CharacterDatabase.SaveGuildRank(member.DatabaseUID, member.Rank);
                    }

                    SendMessage(string.Format(Core.MessageConst.DEPUTY_REMOVED, member.Name));
                }
            }

            if (member.Client != null)
            {
                member.Client.SendGuild();
                member.Client.Screen.FullUpdate();
            }

            ReorderIndex();
        }
예제 #2
0
        public void RemoveMember(Data.GuildMember member, bool order = true)
        {
            if (Members.Contains(member.DatabaseUID))
            {
                if (Members.TryRemove(member.DatabaseUID))
                {
                    RemoveDeputyLeader(member);

                    if (member.Client != null)
                    {
                        member.Client.GuildMemberInfo = null;
                        member.Client.Guild           = null;

                        Database.CharacterDatabase.Save(member.Client);
                    }
                    else
                    {
                        Database.CharacterDatabase.RemoveGuild(member.DatabaseUID);
                    }

                    SendMessage(string.Format(Core.MessageConst.LEAVE_GUILD, member.Name));
                }
            }

            if (member.Client != null)
            {
                member.Client.SendGuild();
                member.Client.Screen.FullUpdate();
            }

            if (order)
            {
                ReorderIndex();
            }
        }
예제 #3
0
        public void AddDeputyLeader(Data.GuildMember member)
        {
            if (DeputyLeaders.TryAdd(member.DatabaseUID, member.Name, member))
            {
                member.Rank = Enums.GuildRank.DeputyLeader;
                if (member.Client != null)
                {
                    Database.CharacterDatabase.Save(member.Client);
                }
                else
                {
                    Database.CharacterDatabase.SaveGuildRank(member.DatabaseUID, member.Rank);
                }

                SendMessage(string.Format(Core.MessageConst.NEW_DEPUTY_LEADER, member.Name));
            }

            if (member.Client != null)
            {
                member.Client.SendGuild();
                member.Client.Screen.FullUpdate();
            }

            ReorderIndex();
        }
예제 #4
0
            public static GuildMemberInfo Create(Data.GuildMember member)
            {
                GuildMemberInfo info = new GuildMemberListPacket.GuildMemberInfo();

                info.Name     = member.Name;
                info.Level    = member.Level;
                info.Rank     = member.Rank;
                info.Donation = (int)member.MoneyDonation;
                info.IsOnline = member.Online;
                return(info);
            }
예제 #5
0
        public void LoadGuildInfo()
        {
            // Send guild info
            string guildname = "";
            ProjectX_V3_Lib.Sql.SqlHandler sql = Database.CharacterDatabase.OpenRead(this, "DB_Players");
            if (sql != null)
            {
                guildname = sql.ReadString("PlayerGuild");//client.CharDB.databaseFiles[Database.CharacterDatabase.DatabaseFlag.CharacterFile].ReadString("Guild", string.Empty);
                sql.Dispose();
            }
            if (string.IsNullOrWhiteSpace(guildname))
            {
                this.Screen.FullUpdate();
                return;
            }
            if (Core.Kernel.Guilds.Contains(guildname))
            {
                Data.Guild guild;
                if (Core.Kernel.Guilds.TrySelect(guildname, out guild))
                {
                    Data.GuildMember memberinfo;
                    if (guild.Members.TrySelect(this.DatabaseUID, out memberinfo))
                    {
                        this.GuildMemberInfo = memberinfo;
                        this.GuildMemberInfo.Client = this;
                        this.Guild = guild;

                        SendGuild();
                        SendGuildAssociations();

                        using (var announce = new Packets.GuildPacket(new Packets.StringPacker(guild.Bullentin)))
                        {
                            announce.Data = Core.Kernel.TimeGet(Enums.TimeType.Day);
                            announce.Action = Enums.GuildAction.SetAnnounce;
                            this.Send(announce);
                        }

                        this.Screen.FullUpdate();
                    }
                }
            }
            else
                Database.CharacterDatabase.UpdateCharacter(this, "PlayerGuild", "");
            //client.CharDB.databaseFiles[Database.CharacterDatabase.DatabaseFlag.CharacterFile].WriteString("Guild", string.Empty);
        }