Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 40 additions & 1 deletion modules/bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -754,6 +754,9 @@ async def processmsg(self, msg):
elif lower[0]=="cancel":
self.cancel_match(member, lower[1:2], access_level)

elif lower[0]=="register":
await self.register_player(member, msgtup[1:msglen], access_level)

elif lower[0] in ["reportwin", "rw"]:
self.report_match(member, args=lower[1:3], access_level=access_level)

Expand Down Expand Up @@ -1185,7 +1188,6 @@ def pick_player(self, member, args):
else:
who = match.team_names[1]

who_stat = player_stats.get_player()
msg += "\n{0}'s {1} turn to pick!".format(who, who_stat)
client.notice(self.channel, msg)
else:
Expand Down Expand Up @@ -2092,6 +2094,43 @@ async def set_phrase(self, member, args, access_level):
else:
client.reply(self.channel, member, "You have no right for this!")

async def register_player(self, member, args, access_level):
# .register_player @person 12234343434

def is_valid_2k4_id(ut_2k4_id):
formatted_string = f"{s[:8]}-{s[8:16]}-{s[16:24]}-{s[24:32]}"
pattern = re.compile(r'^[A-F0-9]{8}-[A-F0-9]{8}-[A-F0-9]{8}-[A-F0-9]{8}$')
return bool(pattern.match(formatted_string))

def normalize_2k4_id(ut_2k4_id):
return ut_2k4_id.replace('-', '').lower()

if access_level:
targetid = args.pop(0)
highlight = re.match(r"<@!?(\d+)>", targetid)

if highlight:
target = await self.guild.fetch_member(int(highlight.group(1)))
member_id = target.id
nick = target.nick
ut_2k4_id = args[-1]

ut_2k4_id = normalize_2k4_id(ut_2k4_id)
if is_valid_2k4_id(ut_2k4_id):
player = players.Player(
name=nick,
discord_id=member_id,
ut_2k4_id=ut_2k4_id
)

player_stats.add_player(player)
else:
client.reply(self.channel, member, "Targets 2k4 GUID is not valid. Proper command is `.register_player @mention <their-2k4-guid>`")
else:
client.reply(self.channel, member, "You must @mention a valid discord member. Proper command is `.register_player @mention <their-2k4-guid>`")
else:
client.reply(self.channel, member, "You have no right for this!")

async def noadd(self, member, args, access_level):
if access_level:
reason = ''
Expand Down
4 changes: 2 additions & 2 deletions modules/players.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,11 @@ def _load_player_stats(self, ttl_hash=None):
AND m.gm_numplayers >= 8
AND m.gm_tscore0 + m.gm_tscore1 >= 10
AND IF(gp.gp_team = 0, gp.gp_tscore0, gp.gp_tscore1) > 0
AND m.gm_start BETWEEN FROM_UNIXTIME(1714521600) AND FROM_UNIXTIME(1718849956)
AND datediff(curdate(), m.gm_start) <= 60
)

SELECT
player_match_history.plr_name as name,
ut_players.name,
ut_players.DISCORD_ID,
player_match_history.plr_key as player_guid,
SUM(Score) / SUM(Rounds) as PPR,
Expand Down