diff --git a/admin.php b/admin.php index cb46973..f2d8b49 100644 --- a/admin.php +++ b/admin.php @@ -2635,8 +2635,13 @@ async function apiCall(action, params = {}, method = 'GET') { async function loadUserGroups(el) { el.innerHTML = '
加载中...
'; try { - const res = await apiCall('list_user_groups'); + const [res, configRes] = await Promise.all([ + apiCall('list_user_groups'), + fetch('api/land_api.php?action=get_config&secret=sdf1_web_comm_2026_ypshidifu').then(r => r.json()).catch(() => ({config:{}})) + ]); const groups = res.groups || []; + const homeCfg = (configRes.config && configRes.config.max_home_per_player) || '5'; + window._homeCfgData = homeCfg; let html = '
'; html += '

👥 用户组管理

'; @@ -2651,6 +2656,12 @@ async function loadUserGroups(el) {
${groups.length}
用户组总数
`; + // 全局传送点(home)上限卡片 + html += `
+
${escAdmHtml(String(homeCfg))}
+
全局传送点上限(home)
+ +
`; html += ''; // 用户组列表 @@ -2701,6 +2712,35 @@ async function loadUserGroups(el) { } } +function showHomeConfig() { + const homeCfg = window._homeCfgData || '5'; + const html = `
+

⚙️ 全局传送点上限配置

+
+ + +
+

说明:该值为全局默认上限。若用户组配置了独立的Home上限(>0),则用户组上限覆盖此值;若用户组Home上限=0,则跟随此全局值;若用户组Home上限=-1,则该组玩家无限制。

+ +
`; + showModal('全局传送点上限', '', null, html); +} + +async function saveHomeConfig() { + const maxHome = document.getElementById('cfgMaxHome')?.value || '5'; + try { + await fetch('api/land_api.php?action=update_config', { + method: 'POST', + headers: {'Content-Type': 'application/x-www-form-urlencoded'}, + body: 'key=max_home_per_player&value=' + encodeURIComponent(maxHome) + '&secret=sdf1_web_comm_2026_ypshidifu' + }); + document.querySelector('.modal-close')?.click(); + loadUserGroups(document.getElementById('C')); + } catch(e) { + glassAlert('保存失败: ' + e.message); + } +} + function showAddUserGroup() { const html = `

+ 新建用户组