Logs
This commit is contained in:
1 parent
c500c3fadf
commit
5732e26380
10 files changed
+176
-2
No files matched your search
@@ -4,6 +4,8 @@ from sqlalchemy.exc import IntegrityError
|
||||
from sqlmodel import Session, select
|
||||
|
||||
from loon.web.db import engine
|
||||
from loon.web.logs.service import write_log
|
||||
from loon.web.logs.types import LogTypeEnum
|
||||
from loon.web.users.models import User
|
||||
|
||||
|
||||
@@ -34,6 +36,7 @@ async def change_password_handler(client, userdata, msg, data):
|
||||
select(User).where(User.uuid == uuid)
|
||||
).first()
|
||||
user.password = password
|
||||
internal_username = user.internal_username
|
||||
|
||||
try:
|
||||
session.commit()
|
||||
@@ -44,4 +47,6 @@ async def change_password_handler(client, userdata, msg, data):
|
||||
|
||||
return
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_PASSWORD_CHANGED, f"Player {internal_username} ({uuid}) changed their password.")
|
||||
|
||||
client.publish(f"loon/auth/change_password/{uuid}/response", json.dumps({"success": True, "error": None}))
|
||||
@@ -1,10 +1,14 @@
|
||||
import json
|
||||
import random
|
||||
|
||||
from loon.web.logs.service import write_log
|
||||
from loon.web.logs.types import LogTypeEnum
|
||||
from loon.web.users.state import user_threads
|
||||
|
||||
PLAYER_EVENT_SUFFIXES = ("died", "joined", "left", "kicked")
|
||||
|
||||
BAN_KICK_REASON = "Banned by admin"
|
||||
|
||||
DEATH_BY_DAMAGE = {
|
||||
"fall": (
|
||||
"{username} fell from a high place",
|
||||
@@ -78,7 +82,8 @@ async def marquee_handler(client, userdata, msg, data):
|
||||
if not isinstance(player, dict):
|
||||
return
|
||||
username = player.get("username")
|
||||
if not username:
|
||||
uuid = player.get("uuid")
|
||||
if not username or not uuid:
|
||||
return
|
||||
|
||||
if subtopic == "died":
|
||||
@@ -88,20 +93,43 @@ async def marquee_handler(client, userdata, msg, data):
|
||||
if killer:
|
||||
templates = DEATH_BY_KILLER.get(damage_type, DEATH_BY_KILLER_DEFAULT)
|
||||
message = get_random(templates, username=username, killer=killer)
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_DEAD, f"Player {username} ({uuid}) was killed by {killer}.")
|
||||
elif damage_type in DEATH_BY_DAMAGE:
|
||||
message = get_random(DEATH_BY_DAMAGE[damage_type], username=username)
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_DEAD, f"Player {username} ({uuid}) died of {damage_type}.")
|
||||
elif damage_type:
|
||||
message = f"{username} died of {damage_type}"
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_DEAD, f"Player {username} ({uuid}) died of {damage_type}.")
|
||||
else:
|
||||
message = f"{username} died"
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_DEAD, f"Player {username} ({uuid}) died.")
|
||||
elif subtopic == "joined":
|
||||
message = f"{username} joined the game"
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_JOINED, f"Player {username} ({uuid}) joined the game.")
|
||||
elif subtopic == "kicked":
|
||||
reason = data.get("reason")
|
||||
message = f"{username} was kicked: {reason}" if reason else f"{username} was kicked"
|
||||
|
||||
if reason == BAN_KICK_REASON:
|
||||
message = f"{username} was banned"
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_BANNED, f"Player {username} ({uuid}) was banned.")
|
||||
else:
|
||||
message = f"{username} was kicked: {reason}" if reason else f"{username} was kicked"
|
||||
|
||||
await write_log(
|
||||
LogTypeEnum.PLAYER_KICKED,
|
||||
f"Player {username} ({uuid}) was kicked: {reason}." if reason else f"Player {username} ({uuid}) was kicked.",
|
||||
)
|
||||
else:
|
||||
message = f"{username} left the game"
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_LEFT, f"Player {username} ({uuid}) left the game.")
|
||||
|
||||
envelope = json.dumps({"topic": "server/marquee", "payload": {"message": message}})
|
||||
|
||||
for queue in list(user_threads.values()):
|
||||
|
||||
@@ -4,6 +4,8 @@ from sqlalchemy.exc import IntegrityError
|
||||
from sqlmodel import Session, select
|
||||
|
||||
from loon.web.db import engine
|
||||
from loon.web.logs.service import write_log
|
||||
from loon.web.logs.types import LogTypeEnum
|
||||
from loon.web.users.models import User
|
||||
|
||||
|
||||
@@ -50,4 +52,6 @@ async def register_request_handler(client, userdata, msg, data):
|
||||
|
||||
return
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_REGISTERED, f"Player {internal_username} ({uuid}) registered.")
|
||||
|
||||
client.publish(f"loon/auth/register/{uuid}/response", json.dumps({"success": True, "error": None}))
|
||||
Reference in new issue
Block a user