示例#1
0
 public void JoinGuild(JoinGuildPacket pkt)
 {
     if (psr.Account.Guild.Name != "" || psr.Account.Guild.Id != 0 || psr.Account.Guild.Rank != -1 || psr.Account.Guild.Id != 0 && psr.Account.Guild.Rank != -1)
     {
         Console.WriteLine(psr.Account.Guild.Name + "!" + psr.Account.Guild.Id + "!" + psr.Account.Guild.Rank);
         psr.SendPacket(new TextPacket()
         {
             BubbleTime = 0,
             Name = "",
             Stars = -1,
             Text = "You already are in a guild!"
         });
         return;
     }
     if (psr.Player.Invited == false)
     {
         psr.SendPacket(new TextPacket()
         {
             BubbleTime = 0,
             Name = "",
             Stars = -1,
             Text = "You need to be invited to join a guild!"
         });
         return;
     }
     using (Database dbx = new Database())
     {
         var cmd = dbx.CreateQuery();
         cmd.CommandText = "UPDATE accounts SET guild=@guildId, guildRank='0' WHERE id=@accId";
         cmd.Parameters.AddWithValue("@accId", psr.Account.AccountId);
         cmd.Parameters.AddWithValue("@guildId", dbx.GetGuildIdByName(pkt.Name));
         if (cmd.ExecuteNonQuery() == 0)
         {
             psr.SendPacket(new TextPacket()
             {
                 BubbleTime = 0,
                 Name = "",
                 Stars = -1,
                 Text = "Error changing the guild in the account data!"
             });
             return;
         }
         psr.Account.Guild = new Guild()
         {
             Id = dbx.GetGuildIdByName(pkt.Name),
             Name = pkt.Name,
             Rank = 0
         };
         if(dbx.AddToGuildMembers(psr.Account, dbx.GetGuildIdByName(pkt.Name)) == false)
         {
             psr.SendPacket(new TextPacket()
             {
                 BubbleTime = 0,
                 Name = "",
                 Stars = -1,
                 Text = "Error adding the account to the guild's members list!"
             });
             return;
         }
         foreach (var i in RealmManager.Clients.Values)
         {
             if (i.Account.Guild.Name == psr.Account.Guild.Name)
             {
                 i.SendPacket(new TextPacket()
                 {
                     BubbleTime = 0,
                     Name = "",
                     Stars = -1,
                     Text = psr.Account.Name + " joined the guild."
                 });
             }
         }
     }
 }