Ejemplo n.º 1
0
        public void GiveBadge(string code, bool inDatabase, GameClient session)
        {
            if (HasBadge(code))
            {
                return;
            }

            BadgeDefinition badge = null;

            if (!PlusEnvironment.GetGame().GetBadgeManager().TryGetBadge(code.ToUpper(), out badge) || badge.RequiredRight.Length > 0 && !session.Habbo.GetPermissions().HasRight(badge.RequiredRight))
            {
                return;
            }

            if (inDatabase)
            {
                using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("REPLACE INTO `user_badges` (`user_id`,`badge_id`,`badge_slot`) VALUES ('" + _player.Id + "', @badge, '" + 0 + "')");
                    dbClient.AddParameter("badge", code);
                    dbClient.RunQuery();
                }
            }

            _badges.Add(code, new Badge(code, 0));

            if (session != null)
            {
                session.SendPacket(new BadgesComposer(session));
                session.SendPacket(new FurniListNotificationComposer(1, 4));
            }
        }
Ejemplo n.º 2
0
        public void GiveBadge(string Badge, Boolean InDatabase, GameClient Session)
        {
            if (HasBadge(Badge))
            {
                return;
            }

            BadgeDefinition BadgeDefinition = null;

            if (!PlusEnvironment.GetGame().GetBadgeManager().TryGetBadge(Badge.ToUpper(), out BadgeDefinition) || BadgeDefinition.RequiredRight.Length > 0 && !Session.GetHabbo().GetPermissions().HasRight(BadgeDefinition.RequiredRight))
            {
                return;
            }

            if (InDatabase)
            {
                using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("INSERT INTO user_badges (user_id,badge_id,badge_slot) VALUES (" + _player.Id + ",@badge," + 0 + ")");
                    dbClient.AddParameter("badge", Badge);
                    dbClient.RunQuery();
                }
            }

            _badges.Add(Badge, new Badge(Badge, 0));

            if (Session != null)
            {
                Session.SendMessage(new BadgesComposer(Session));
                Session.SendMessage(new FurniListNotificationComposer(1, 4));
            }
        }
Ejemplo n.º 3
0
        public void GiveBadge(string Badge, bool InDatabase, GameClient Session)
        {
            if (HasBadge(Badge))
            {
                return;
            }

            BadgeDefinition BadgeDefinition = null;

            if (!PlusEnvironment.GetGame().GetBadgeManager().TryGetBadge(Badge.ToUpper(), out BadgeDefinition))
            {
                return;
            }

            /* Disabled to allow any badge regardless of permission
             * if (BadgeDefinition.RequiredRight.Length > 0 && !Session.GetHabbo().GetPermissions().HasRight(BadgeDefinition.RequiredRight))
             *  return;*/

            if (InDatabase == true)
            {
                using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.RunQuery("INSERT INTO `user_badges` (`user_id`, `badge_id`, `badge_slot`) VALUES (" + _player.Id + ", '" + Badge + "', 0)");
                }
            }

            _badges.Add(Badge, new Badge(Badge, 0));

            if (Session != null)
            {
                Session.SendMessage(new BadgesComposer(Session));
                Session.SendMessage(new FurniListNotificationComposer(1, 4));
            }
        }
Ejemplo n.º 4
0
 public async Task UpdateBadgeAsync(BadgeDefinition badge, string oldCode)
 {
     if (!Badges.ContainsKey(badge.Code))
     {
         Badges.Remove(oldCode);
         Badges.Add(badge.Code, badge);
         await _dao.UpdatePlayerBadgeAsync(badge, oldCode, _player.Id);
     }
 }
Ejemplo n.º 5
0
        internal async Task <Dictionary <string, BadgeDefinition> > ReadPlayerBadgesByIdAsync(int id)
        {
            Dictionary <string, BadgeDefinition> badges = new Dictionary <string, BadgeDefinition>();

            await SelectAsync(async reader =>
            {
                while (await reader.ReadAsync())
                {
                    BadgeDefinition badge = new BadgeDefinition(reader);
                    if (badges.ContainsKey(badge.Code))
                    {
                        badges.Add(badge.Code, badge);
                    }
                }
            }, "SELECT `badge_code`, `slot_id` FROM `habbo_badges` WHERE `user_id` = @0", id);

            return(badges);
        }
Ejemplo n.º 6
0
        public BadgeComponent(Habbo Player, UserData data)
        {
            this._player = Player;
            this._badges = new Dictionary <string, Badge>();

            foreach (Badge badge in data.badges)
            {
                BadgeDefinition BadgeDefinition = null;
                if (!PlusEnvironment.GetGame().GetBadgeManager().TryGetBadge(badge.Code, out BadgeDefinition) || BadgeDefinition.RequiredRight.Length > 0 && !Player.GetPermissions().HasRight(BadgeDefinition.RequiredRight))
                {
                    continue;
                }

                if (!this._badges.ContainsKey(badge.Code))
                {
                    this._badges.Add(badge.Code, badge);
                }
            }
        }
        public Badge GiveBadge(string Badge, Boolean InDatabase, int Slot = 0)
        {
            var Session = _player.GetClient();

            if (HasBadge(Badge))
            {
                return(null);
            }

            BadgeDefinition BadgeDefinition = null;

            QuasarEnvironment.GetGame().GetBadgeManager().TryGetBadge(Badge.ToUpper(), out BadgeDefinition);
            if (BadgeDefinition != null && (BadgeDefinition.RequiredRight.Length > 0 && !Session.GetHabbo().GetPermissions().HasRight(BadgeDefinition.RequiredRight)))
            {
                return(null);
            }

            if (InDatabase)
            {
                using (IQueryAdapter dbClient = QuasarEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("INSERT INTO user_badges (user_id, badge_id, badge_slot) VALUES (" + _player.Id + ", @badge, " + Slot + ")");
                    dbClient.AddParameter("badge", Badge);
                    dbClient.RunQuery();
                }
            }

            var badge = new Badge(Badge, Slot);

            _badges.Add(Badge, badge);

            if (Session != null)
            {
                Session.SendMessage(new BadgesComposer(Session));
                Session.SendMessage(new FurniListNotificationComposer(1, 4));
            }
            if (Session.GetHabbo().CurrentRoom != null)
            {
                Session.GetHabbo().CurrentRoom.SendMessage(new HabboUserBadgesComposer(Session.GetHabbo()));
            }

            return(badge);
        }
Ejemplo n.º 8
0
 public bool TryGetBadge(string code, out BadgeDefinition badge) => Badges.TryGetValue(code, out badge);
Ejemplo n.º 9
0
 internal async Task UpdatePlayerBadgeAsync(BadgeDefinition badge, string oldCode, int userId)
 {
     await InsertAsync("UPDATE `habbo_badges` SET `badge_code` = @0, `slot_id` = @1 WHERE `badge_code` = @2 AND `user_id` = @3;", badge.Code, badge.Slot, oldCode, userId);
 }