wServer.realm.entities.player.Player.ChangeGuildRank C# (CSharp) 메소드

ChangeGuildRank() 공개 메소드

public ChangeGuildRank ( RealmTime t, wServer.cliPackets.ChangeGuildRankPacket pkt ) : void
t RealmTime
pkt wServer.cliPackets.ChangeGuildRankPacket
리턴 void
        public void ChangeGuildRank(RealmTime t, ChangeGuildRankPacket pkt)
        {
            var pname = pkt.Name;
            var rank = pkt.GuildRank;
            if (GuildRank >= 20)
            {
                var other = RealmManager.FindPlayer(pname);
                if (other != null && other.Guild == Guild)
                {
                    var rankname = ResolveRankName(other.GuildRank);
                    var rankname2 = ResolveRankName(rank);
                    other.GuildRank = rank;
                    other.Client.Account.Guild.Rank = rank;
                    new Database().ChangeGuild(other.Client.Account, other.Client.Account.Guild.Id, other.GuildRank, other.Client.Account.Guild.Fame, false);
                    other.UpdateCount++;
                    foreach (var p in RealmManager.GuildMembersOf(Guild))
                    {
                        p.Client.SendPacket(new TextPacket()
                        {
                            BubbleTime = 0,
                            Stars = -1,
                            Name = "",
                            Recipient = "*Guild*",
                            Text = other.Client.Account.Name + " has been demoted to " + rankname2 + "."
                        });
                    }
                }
                else
                {
                    try
                    {
                        var db = new Database();
                        var acc = db.GetAccount(pname);
                        if (acc.Guild.Name == Guild)
                        {
                            var rankname = ResolveRankName(acc.Guild.Rank);
                            var rankname2 = ResolveRankName(rank);
                            db.ChangeGuild(acc, acc.Guild.Id, rank, acc.Guild.Fame, false);
                            foreach (var p in RealmManager.GuildMembersOf(Guild))
                            {
                                p.Client.SendPacket(new TextPacket()
                                {
                                    BubbleTime = 0,
                                    Stars = -1,
                                    Name = "",
                                    Recipient = "*Guild*",
                                    Text = acc.Name + " has been promoted to " + rankname2 + "."
                                });
                            }
                        }
                        else
                        {
                            psr.SendPacket(new TextPacket()
                            {
                                BubbleTime = 0,
                                Stars = -1,
                                Name = "*Error*",
                                Text = "You can only change a player in your guild."
                            });
                        }
                    }
                    catch (Exception e)
                    {
                        psr.SendPacket(new TextPacket()
                        {
                            BubbleTime = 0,
                            Stars = -1,
                            Name = "*Error*",
                            Text = e.Message
                        });
                    }
                }
            }
            else
            {
                psr.SendPacket(new TextPacket()
                {
                    BubbleTime = 0,
                    Stars = -1,
                    Name = "",
                    Text = "Members and initiates cannot promote!"
                });
            }
        }