Skip to content

Commit 8ff1e12

Browse files
authored
Merge pull request #157 from michei69/feat/awardable-badges
feat: add endpoint for badges
2 parents 07ea6c4 + 8c3782d commit 8ff1e12

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

Source/web_server/endpoints/badges.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,39 @@
33
import re
44

55

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+
639
@server_path(r'/v1/users/(\d+)/badges/awarded-dates', regex=True, commands={'GET'}, versions={versions.rōblox.v463})
740
def _(self: web_server_handler, match: re.Match[str]) -> bool:
841
'''

0 commit comments

Comments
 (0)