|
3 | 3 | import re |
4 | 4 |
|
5 | 5 |
|
| 6 | +@server_path('/Game/Badge/HasBadge.ashx', commands={'GET'}, versions={versions.rōblox.v347}) |
| 7 | +def _(self: web_server_handler) -> bool: |
| 8 | + user_id_num = int(self.query.get("UserID", 0)) |
| 9 | + badge_id = self.query.get("BadgeID", "0") |
| 10 | + |
| 11 | + database = self.server.storage.badges |
| 12 | + self.send_data("Success" if database.check(user_id_num, int(badge_id)) is not None else "Failure") |
| 13 | + |
| 14 | + return True |
| 15 | + |
| 16 | +@server_path('/assets/award-badge') |
| 17 | +def _(self: web_server_handler) -> bool: |
| 18 | + user_id_num = int(self.query.get("userId", 0)) |
| 19 | + badge_id = self.query.get("badgeId", "0") |
| 20 | + |
| 21 | + database = self.server.storage.badges |
| 22 | + badge_data = self.game_config.remote_data.badges.get(int(badge_id)) |
| 23 | + username = self.server.storage.players.get_player_field_from_index(self.server.storage.players.player_field.IDEN_NUM, user_id_num, self.server.storage.players.player_field.USERNAME) |
| 24 | + if not badge_data: |
| 25 | + self.send_data('0') |
| 26 | + return True |
| 27 | + if not username: |
| 28 | + self.send_data('0') |
| 29 | + return True |
| 30 | + if database.check(user_id_num, int(badge_id)) is not None: |
| 31 | + self.send_data('0') |
| 32 | + return True |
| 33 | + |
| 34 | + database.award(user_id_num, int(badge_id)) |
| 35 | + self.send_data(f'{username[0]} won {self.game_config.server_core.metadata.creator_name}\'s "{badge_data.name}" award!') |
| 36 | + |
| 37 | + return True |
| 38 | + |
6 | 39 | @server_path(r'/v1/users/(\d+)/badges/awarded-dates', regex=True, commands={'GET'}, versions={versions.rōblox.v463}) |
7 | 40 | def _(self: web_server_handler, match: re.Match[str]) -> bool: |
8 | 41 | ''' |
|
0 commit comments