Player format
This commit is contained in:
1 parent
3dcd4173c2
commit
632d990c85
5 files changed
+27
-13
No files matched your search
@@ -4,7 +4,7 @@ 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.service import write_log, player_tag
|
||||
from loon.web.logs.types import LogTypeEnum
|
||||
from loon.web.users.models import MinecraftUser, User
|
||||
|
||||
@@ -47,6 +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.")
|
||||
await write_log(LogTypeEnum.PLAYER_PASSWORD_CHANGED, f"Player {player_tag(uuid, internal_username)} changed their password.")
|
||||
|
||||
client.publish(f"loon/auth/change_password/{uuid}/response", json.dumps({"success": True, "error": None}))
|
||||
@@ -1,7 +1,7 @@
|
||||
import json
|
||||
import random
|
||||
|
||||
from loon.web.logs.service import write_log
|
||||
from loon.web.logs.service import write_log, player_tag
|
||||
from loon.web.logs.types import LogTypeEnum
|
||||
from loon.web.users.state import user_threads
|
||||
|
||||
@@ -94,41 +94,41 @@ async def marquee_handler(client, userdata, msg, data):
|
||||
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}.")
|
||||
await write_log(LogTypeEnum.PLAYER_DEAD, f"Player {player_tag(uuid, username)} 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}.")
|
||||
await write_log(LogTypeEnum.PLAYER_DEAD, f"Player {player_tag(uuid, username)} 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}.")
|
||||
await write_log(LogTypeEnum.PLAYER_DEAD, f"Player {player_tag(uuid, username)} died of {damage_type}.")
|
||||
else:
|
||||
message = f"{username} died"
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_DEAD, f"Player {username} ({uuid}) died.")
|
||||
await write_log(LogTypeEnum.PLAYER_DEAD, f"Player {player_tag(uuid, username)} died.")
|
||||
elif subtopic == "joined":
|
||||
message = f"{username} joined the game"
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_JOINED, f"Player {username} ({uuid}) joined the game.")
|
||||
await write_log(LogTypeEnum.PLAYER_JOINED, f"Player {player_tag(uuid, username)} joined the game.")
|
||||
elif subtopic == "kicked":
|
||||
reason = data.get("reason")
|
||||
|
||||
if reason == BAN_KICK_REASON:
|
||||
message = f"{username} was banned"
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_BANNED, f"Player {username} ({uuid}) was banned.")
|
||||
await write_log(LogTypeEnum.PLAYER_BANNED, f"Player {player_tag(uuid, username)} 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.",
|
||||
f"Player {player_tag(uuid, username)} was kicked: {reason}." if reason else f"Player {player_tag(uuid, username)} was kicked.",
|
||||
)
|
||||
else:
|
||||
message = f"{username} left the game"
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_LEFT, f"Player {username} ({uuid}) left the game.")
|
||||
await write_log(LogTypeEnum.PLAYER_LEFT, f"Player {player_tag(uuid, username)} left the game.")
|
||||
|
||||
envelope = json.dumps({"topic": "server/marquee", "payload": {"message": message}})
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ 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.service import write_log, player_tag
|
||||
from loon.web.logs.types import LogTypeEnum
|
||||
from loon.web.users.models import MinecraftUser, User
|
||||
|
||||
@@ -59,6 +59,6 @@ async def register_request_handler(client, userdata, msg, data):
|
||||
|
||||
return
|
||||
|
||||
await write_log(LogTypeEnum.PLAYER_REGISTERED, f"Player {internal_username} ({uuid}) registered.")
|
||||
await write_log(LogTypeEnum.PLAYER_REGISTERED, f"Player {player_tag(uuid, internal_username)} registered.")
|
||||
|
||||
client.publish(f"loon/auth/register/{uuid}/response", json.dumps({"success": True, "error": None}))
|
||||
@@ -7,6 +7,8 @@ from loon.web.auth.middleware import admin
|
||||
from loon.web.db import engine
|
||||
from loon.web.logs.models import LogEntry
|
||||
from loon.web.logs.schema import LogEntryResponse
|
||||
from loon.web.users.models import MinecraftUser
|
||||
from loon.web.users.schema import MinecraftUserPublic
|
||||
|
||||
router = APIRouter(prefix="/admin", tags=["admin"])
|
||||
|
||||
@@ -30,3 +32,11 @@ async def list_logs(request: Request):
|
||||
)
|
||||
for entry in entries
|
||||
]
|
||||
|
||||
|
||||
@router.get("/mc-users", response_model=list[MinecraftUserPublic])
|
||||
@admin
|
||||
async def list_mc_users(request: Request):
|
||||
with Session(engine) as session:
|
||||
statement = select(MinecraftUser).order_by(MinecraftUser.username)
|
||||
return session.exec(statement).all()
|
||||
@@ -7,6 +7,10 @@ from loon.web.logs.models import LogType, LogEntry
|
||||
from loon.web.logs.types import LogTypeEnum
|
||||
|
||||
|
||||
def player_tag(uuid: str, username: str) -> str:
|
||||
return f"[player:{uuid}]{username}[/player]"
|
||||
|
||||
|
||||
def _write_log(log_type: LogTypeEnum, message: str) -> None:
|
||||
with Session(engine) as session:
|
||||
statement = select(LogType).where(LogType.code == log_type.value)
|
||||
|
||||
Reference in new issue
Block a user