修复PHP添加/移除成员不通知Java同步:写入web_admin_changes变更队列

1. handleAddVisitor: 添加访客后写入add_visitor变更记录,Java轮询后同步到area_land_permissions+白名单
2. handleRemoveVisitor: 移除访客后写入remove_visitor变更记录,Java轮询后同步删除
3. playerExists已检查login.db兜底,确保添加不存在的玩家会被拒绝
This commit is contained in:
ypsdf1
2026-07-11 13:36:03 +08:00
parent 646ecfa162
commit 4998d7bdfa
+24
View File
@@ -1152,6 +1152,18 @@ function handleAddVisitor($db, $playerName, $req) {
$stmt2->bindValue(':now', time(), SQLITE3_INTEGER);
$stmt2->execute();
// ★ 写入变更队列通知Java同步(add_visitor)
try {
$changeStmt = $db->prepare("INSERT INTO web_admin_changes (change_type, target_id, target_name, change_data, created_at) VALUES ('add_visitor', :lid, :name, :data, :now)");
$changeStmt->bindValue(':lid', (int)$land['id'], SQLITE3_INTEGER);
$changeStmt->bindValue(':name', $landName, SQLITE3_TEXT);
$changeStmt->bindValue(':data', json_encode(['player' => $visitor, 'land_name' => $landName, 'role' => 'visitor'], JSON_UNESCAPED_UNICODE), SQLITE3_TEXT);
$changeStmt->bindValue(':now', time(), SQLITE3_INTEGER);
$changeStmt->execute();
} catch (\Throwable $e) {
// 非致命
}
echo json_encode(['success' => true, 'message' => "已添加访客: $visitor"]);
}
@@ -1524,6 +1536,18 @@ function handleRemoveVisitor($db, $playerName, $req) {
$stmt2->bindValue(':player', $visitor, SQLITE3_TEXT);
$stmt2->execute();
// ★ 写入变更队列通知Java同步(remove_visitor)
try {
$changeStmt = $db->prepare("INSERT INTO web_admin_changes (change_type, target_id, target_name, change_data, created_at) VALUES ('remove_visitor', :lid, :name, :data, :now)");
$changeStmt->bindValue(':lid', (int)$land['id'], SQLITE3_INTEGER);
$changeStmt->bindValue(':name', $landName, SQLITE3_TEXT);
$changeStmt->bindValue(':data', json_encode(['player' => $visitor, 'land_name' => $landName], JSON_UNESCAPED_UNICODE), SQLITE3_TEXT);
$changeStmt->bindValue(':now', time(), SQLITE3_INTEGER);
$changeStmt->execute();
} catch (\Throwable $e) {
// 非致命
}
echo json_encode(['success' => true, 'message' => "已移除访客: $visitor"]);
}