fix world
This commit is contained in:
@@ -30,16 +30,17 @@ def _get_clan_from_request():
|
||||
# Helper — auto-register a player_id under a clan on first push.
|
||||
# ------------------------------------------------------------------
|
||||
def _auto_register_member(clan_id, player_id, player_name, world_id=''):
|
||||
world_id = world_id or ''
|
||||
conn = get_db()
|
||||
conn.execute('''
|
||||
INSERT OR IGNORE INTO clan_members (clan_id, player_id, player_name, world_id)
|
||||
VALUES (?, ?, ?, ?)
|
||||
''', (clan_id, str(player_id), player_name or '', world_id or ''))
|
||||
# Update name and world on every push (they can change)
|
||||
''', (clan_id, str(player_id), player_name or '', world_id))
|
||||
# Update name on every push (it can change); world_id is part of the key so no overwrite risk
|
||||
conn.execute('''
|
||||
UPDATE clan_members SET player_name = ?, world_id = ?
|
||||
WHERE clan_id = ? AND player_id = ?
|
||||
''', (player_name or '', world_id or '', clan_id, str(player_id)))
|
||||
UPDATE clan_members SET player_name = ?
|
||||
WHERE clan_id = ? AND player_id = ? AND world_id = ?
|
||||
''', (player_name or '', clan_id, str(player_id), world_id))
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
|
||||
@@ -127,12 +127,13 @@ def options():
|
||||
if clan:
|
||||
rows = conn.execute(
|
||||
'''SELECT cm.id, cm.player_id, cm.player_name, cm.world_id, cm.joined_at, cm.features,
|
||||
ts.updated_at
|
||||
MAX(ts.updated_at) as updated_at
|
||||
FROM clan_members cm
|
||||
LEFT JOIN town_state ts ON ts.player_id = cm.player_id
|
||||
AND ts.world_id = cm.world_id
|
||||
WHERE cm.clan_id = ?
|
||||
GROUP BY cm.player_id
|
||||
ORDER BY cm.joined_at DESC''',
|
||||
GROUP BY cm.player_id, cm.world_id
|
||||
ORDER BY cm.player_name ASC, cm.world_id ASC''',
|
||||
(clan['id'],)
|
||||
).fetchall()
|
||||
|
||||
@@ -212,17 +213,17 @@ def regenerate_key():
|
||||
return redirect(url_for('auth.options'))
|
||||
|
||||
|
||||
@auth.route('/auth/clan/remove-member/<player_id>', methods=['POST'])
|
||||
@auth.route('/auth/clan/remove-member/<player_id>/<path:world_id>', methods=['POST'])
|
||||
@login_required
|
||||
def remove_member(player_id):
|
||||
def remove_member(player_id, world_id):
|
||||
conn = get_db()
|
||||
clan = conn.execute(
|
||||
'SELECT id FROM clans WHERE owner_id = ?', (current_user.id,)
|
||||
).fetchone()
|
||||
if clan:
|
||||
conn.execute(
|
||||
'DELETE FROM clan_members WHERE clan_id = ? AND player_id = ?',
|
||||
(clan['id'], player_id)
|
||||
'DELETE FROM clan_members WHERE clan_id = ? AND player_id = ? AND world_id = ?',
|
||||
(clan['id'], player_id, world_id)
|
||||
)
|
||||
conn.commit()
|
||||
conn.close()
|
||||
@@ -232,12 +233,12 @@ def remove_member(player_id):
|
||||
# ------------------------------------------------------------------
|
||||
# POST /auth/clan/update-features/<player_id>
|
||||
# ------------------------------------------------------------------
|
||||
@auth.route('/auth/clan/update-features/<player_id>', methods=['POST'])
|
||||
@auth.route('/auth/clan/update-features/<player_id>/<path:world_id>', methods=['POST'])
|
||||
@login_required
|
||||
def update_member_features(player_id):
|
||||
farm = 'farm' if request.form.get('farm') else None
|
||||
admin = 'admin' if request.form.get('admin') else None
|
||||
atk_planner = 'attack_planner' if request.form.get('attack_planner') else None
|
||||
def update_member_features(player_id, world_id):
|
||||
farm = 'farm' if request.form.get('farm') else None
|
||||
admin = 'admin' if request.form.get('admin') else None
|
||||
atk_planner = 'attack_planner' if request.form.get('attack_planner') else None
|
||||
atk_planner_admin = 'attack_planner_admin' if request.form.get('attack_planner_admin') else None
|
||||
|
||||
features = ','.join(f for f in [farm, admin, atk_planner, atk_planner_admin] if f) or ''
|
||||
@@ -248,8 +249,8 @@ def update_member_features(player_id):
|
||||
).fetchone()
|
||||
if clan:
|
||||
conn.execute(
|
||||
'UPDATE clan_members SET features = ? WHERE clan_id = ? AND player_id = ?',
|
||||
(features, clan['id'], player_id)
|
||||
'UPDATE clan_members SET features = ? WHERE clan_id = ? AND player_id = ? AND world_id = ?',
|
||||
(features, clan['id'], player_id, world_id)
|
||||
)
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
Reference in New Issue
Block a user