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!"
});
}
}