private static void HandleWithdrawApplication(GameSession session, PacketReader packet) { long guildApplicationId = packet.ReadLong(); GuildApplication application = session.Player.GuildApplications.FirstOrDefault(x => x.Id == guildApplicationId); if (application == null) { return; } Guild guild = GameServer.GuildManager.GetGuildById(application.GuildId); if (guild == null) { return; } application.Remove(session.Player, guild); session.Send(GuildPacket.WithdrawApplicationPlayerUpdate(application, guild.Name)); foreach (GuildMember member in guild.Members) { if (((GuildRights)guild.Ranks[member.Rank].Rights).HasFlag(GuildRights.CanInvite)) { member.Player.Session.Send(GuildPacket.WithdrawApplicationGuildUpdate(application.Id)); } } }
private static void HandleSubmitApplication(GameSession session, PacketReader packet) { long guildId = packet.ReadLong(); if (session.Player.GuildApplications.Count >= 10) { return; } Guild guild = GameServer.GuildManager.GetGuildById(guildId); if (guild == null) { return; } GuildApplication application = new GuildApplication(session.Player.CharacterId, guild.Id); application.Add(session.Player, guild); session.Send(GuildPacket.SubmitApplication(application, guild.Name)); foreach (GuildMember member in guild.Members) { if (((GuildRights)guild.Ranks[member.Rank].Rights).HasFlag(GuildRights.CanInvite)) { member.Player.Session.Send(GuildPacket.SendApplication(application, session.Player)); } } }
public static bool CreateGuildApplication(GuildApplication application) { using (DatabaseContext context = new DatabaseContext()) { context.GuildApplications.Add(application); return(SaveChanges(context)); } }
public static Packet WithdrawApplicationPlayerUpdate(GuildApplication application, string guildName) { PacketWriter pWriter = PacketWriter.Of(SendOp.GUILD); pWriter.WriteEnum(GuildPacketMode.WithdrawApplicationPlayerUpdate); pWriter.WriteLong(application.Id); pWriter.WriteUnicodeString(guildName); return(pWriter); }
public static Packet SubmitApplication(GuildApplication application, string guildName) { PacketWriter pWriter = PacketWriter.Of(SendOp.GUILD); pWriter.WriteEnum(GuildPacketMode.SubmitApplication); pWriter.WriteLong(application.Id); pWriter.WriteUnicodeString(guildName); return(pWriter); }
public void Update(GuildApplication guildApplication) { QueryFactory.Query(TableName).Where("id", guildApplication.Id).Update(new { character_id = guildApplication.CharacterId, guild_id = guildApplication.GuildId, creation_timestamp = guildApplication.CreationTimestamp }); }
public long Insert(GuildApplication guildApplication) { return(QueryFactory.Query(TableName).InsertGetId <long>(new { character_id = guildApplication.CharacterId, guild_id = guildApplication.GuildId, creation_timestamp = guildApplication.CreationTimestamp })); }
private static void HandleApplicationResponse(GameSession session, PacketReader packet) { long guildApplicationId = packet.ReadLong(); byte response = packet.ReadByte(); Guild guild = GameServer.GuildManager.GetGuildById(session.Player.Guild.Id); if (guild == null) { return; } GuildApplication application = guild.Applications.FirstOrDefault(x => x.Id == guildApplicationId); if (application == null) { return; } Player applier = GameServer.Storage.GetPlayerById(application.CharacterId); session.Send(GuildPacket.ApplicationResponse(guildApplicationId, applier.Name, response)); if (response == 1) { session.Send(GuildPacket.InviteNotification(applier.Name, response)); } guild.BroadcastPacketGuild(GuildPacket.ApplicationResponseBroadcastNotice(session.Player.Name, applier.Name, response, guildApplicationId)); application.Remove(applier, guild); if (applier.Session != null) { applier.Session.Send(GuildPacket.ApplicationResponseToApplier(guild.Name, guildApplicationId, response)); } if (response == 0) { if (applier.Session != null) { // TODO: Send System mail for rejection } return; } guild.AddMember(applier); if (applier.Session != null) { applier.Session.Send(GuildPacket.InviteResponseConfirm(session.Player, applier, guild, response)); applier.Session.FieldManager.BroadcastPacket(GuildPacket.UpdateGuildTag2(applier, guild.Name)); } GuildMember member = guild.Members.FirstOrDefault(x => x.Player == applier); guild.BroadcastPacketGuild(GuildPacket.MemberBroadcastJoinNotice(member, session.Player.Name, false)); guild.BroadcastPacketGuild(GuildPacket.MemberJoin(applier)); guild.BroadcastPacketGuild(GuildPacket.UpdateGuild(guild)); }
public static Packet SendApplication(GuildApplication application, Player player) { PacketWriter pWriter = PacketWriter.Of(SendOp.GUILD); pWriter.WriteEnum(GuildPacketMode.SendApplication); pWriter.WriteLong(application.Id); pWriter.WriteLong(application.GuildId); pWriter.WriteLong(player.AccountId); pWriter.WriteLong(player.CharacterId); pWriter.WriteUnicodeString(player.Name); pWriter.WriteUnicodeString(player.ProfileUrl); pWriter.WriteEnum(player.Job); pWriter.WriteEnum(player.JobCode); pWriter.WriteInt(player.Levels.Level); foreach (int trophyCategory in player.TrophyCount) { pWriter.WriteInt(trophyCategory); } pWriter.WriteLong(DateTimeOffset.Now.ToUnixTimeSeconds() + Environment.TickCount); return(pWriter); }