Modification to send_discord_alert function so it can mention users if they're in the server and have their account linked
This commit is contained in:
parent
fd8f3b813a
commit
a0356105d7
@ -103,6 +103,8 @@ def award_achievement(user_id, achievement_id):
|
||||
{'$push': {'achievements': achievement_id}}
|
||||
)
|
||||
|
||||
send_discord_alert(f"🏆 Player {user['username']} has earned the '{achievement['name']}' achievement!", user['username'])
|
||||
|
||||
# Check for classes to unlock
|
||||
classes_to_unlock = list(classes_collection.find({'unlock_requirements.achievement': achievement_id}))
|
||||
for class_doc in classes_to_unlock:
|
||||
@ -116,7 +118,12 @@ def award_achievement(user_id, achievement_id):
|
||||
return False
|
||||
|
||||
|
||||
def send_discord_alert(message):
|
||||
def send_discord_alert(message, username=None):
|
||||
if username:
|
||||
user = users_collection.find_one({'username': username})
|
||||
if user and 'discord_id' in user:
|
||||
message = message.replace(username, f"{username} <@{user['discord_id']}>")
|
||||
|
||||
data = {
|
||||
"content": message
|
||||
}
|
||||
@ -968,7 +975,7 @@ def on_disconnect():
|
||||
del game_state['players'][player_id]
|
||||
active_players.discard(username)
|
||||
socketio.emit('player_disconnected', player_id, to=main_room)
|
||||
send_discord_alert(f"👋 Player {username} has disconnected!")
|
||||
send_discord_alert(f"👋 Player {username} has disconnected!", username)
|
||||
print(f"Player {player_id} disconnected")
|
||||
active_sockets_collection.delete_one({'_id': player_id})
|
||||
|
||||
@ -1077,7 +1084,7 @@ def on_join(data):
|
||||
'serverTime': time.time(),
|
||||
'songDuration': music_player.get_current_song_duration()
|
||||
})
|
||||
send_discord_alert(f"👋 Player {username} has joined the game!")
|
||||
send_discord_alert(f"👋 Player {username} has joined the game!", username)
|
||||
print(f"Player {username} (ID: {player_id}) joined the game")
|
||||
|
||||
except Exception as e:
|
||||
@ -1251,6 +1258,9 @@ def add_experience(player, amount):
|
||||
# Generate upgrade options and store them
|
||||
player_id = next(pid for pid, p in game_state['players'].items() if p == player)
|
||||
game_state['player_upgrade_options'][player_id] = get_random_upgrades(3)
|
||||
if player.level % 5 == 0:
|
||||
send_discord_alert(f"🎉 Player {player.name} has reached level {player.level}!", player.name)
|
||||
|
||||
|
||||
return True
|
||||
return False
|
||||
@ -1914,6 +1924,7 @@ if __name__ == '__main__':
|
||||
socketio.run(app, host='0.0.0.0', port=443, ssl_context=ssl_context)
|
||||
except KeyboardInterrupt:
|
||||
logging.info("Server shutting down...")
|
||||
send_discord_alert("🚀 Resonance Rumble is shutting down!")
|
||||
finally:
|
||||
# Perform cleanup
|
||||
logging.info("Cleaning up resources...")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user