# گزارش تغییرات — این پاس

## 1) حذف کامل «حالت مخفی»
طبق درخواست، کاملاً حذف شد:
- پنل تنظیمات لابی + دکمهٔ toggle + `handleGodSettingsCallback` (از `godplay_lobby.php`)
- روتینگ `gsettings:` (از `webhook.php`)
- منطق نمایش «ناشناس N» و توابع مشترک `anonymousLabelMap()`/`anonAwareDisplayName()` (از `includes/db.php`)
- ارجاعات `anonymous_mode` در `godplay_night.php`/`godplay_voting.php`
- ستون `anonymous_mode` از `schema.sql` (نصب‌های تازه دیگه این ستون رو نمی‌سازن)

**اگه قبلاً این ستون رو روی دیتابیس واقعی ساخته بودی** (یعنی زمانی
`migrations/add_anonymous_mode.sql` رو اجرا کرده بودی)، یک‌بار این رو اجرا کن
تا کامل پاک بشه:
```sql
ALTER TABLE godplay_games DROP COLUMN anonymous_mode;
```
(همین دستور تو `migrations/remove_anonymous_mode.sql` هم هست.) اگه اصلاً
نداشتیش، لازم نیست کاری کنی.

## 2) قفل رأی‌گیری در LUCIFER ROMA (هر دو مود: معمولی و 😈 EVIL)
تو `handlers/godplay_voting.php`، `handleGodVoteCallback()` قبلاً با
`ON DUPLICATE KEY UPDATE` اجازه می‌داد رأی هرکس تا آخر فاز رأی‌گیری بی‌نهایت
عوض بشه. الان:
- اولین رأی هرکس **قفل** می‌شه؛ تلاش دوم برای رأی‌دادن با پیام
  «🔒 رأی شما قبلاً ثبت و قفل شده» رد می‌شه.
- حتی اگه دو تپ دقیقاً هم‌زمان بزنه (race condition)، `UNIQUE KEY
  uniq_god_vote` تو دیتابیس (که از قبل وجود داشت) جلوی دوتا رأی رو
  می‌گیره — پس نیازی به migration جدید نبود.
- چون هم مود معمولی هم 😈 EVIL از همین یک فایل/تابع استفاده می‌کنن، این
  قفل خودکار روی هر دو اعمال می‌شه.

## 3) بروزرسانی پنل کامندهای تلگرام
`registerBotCommands()` تو `includes/telegram.php` رو با کامندهای واقعی
موجود تو `webhook.php` مقایسه کردم و:
- کامندهای **جاافتاده** رو اضافه کردم: `tutorial`, `restart`, `live`,
  `roombastnplay_evil`, `leaderboard`, `myleague`, `auction`, `empire`,
  `shopempire`
- کامند **باقیمانده از قدیم و دیگه واقعی نیست** رو حذف کردم: `coind`
  (این با فیچر متنی «انتقال مقدار» جایگزین شده بود ولی تو منو مونده بود)
- کامندهای صرفاً owner-محور (`announce*`, `createcode`, `newseason`,
  `xp`, `coin`, `clancoin`, `clanxp`, `deleteclan`,
  `grant/revokeclanpremium`, `setemojy`, ...) **عمداً** تو منوی عمومی
  اضافه نشدن — چون `setMyCommands` بدون scope برای همه نمایش داده
  می‌شه و نشون‌دادن این‌ها به کاربر عادی هم گمراه‌کننده‌ست هم لو دادن
  ابزارهای مدیریتی. این‌ها مثل قبل فقط با تایپ مستقیم کار می‌کنن.

**برای اعمال شدن روی خودِ تلگرام**، فقط کافیه یک‌بار `set_webhook.php`
رو (که همین الانم داری، هیچ تغییری نکرده) دوباره باز کنی — همون‌جا
`registerBotCommands()` صدا زده می‌شه و پنل "/" تو تلگرام آپدیت می‌شه.

## 4) سایت (`webapp/index.html`) به‌روز شد
- دو نقش جدید (🪔 خوانندهٔ خاکستر، 🌑 سایهٔ زمزمه‌گر) به لیست تیم‌های
  ولکان/پلوتو تو صفحهٔ آموزش اضافه شدن.
- یک آیتم آموزشی جدید برای 😈 LUCIFER ROMA — EVIL اضافه شد.
- یک نکته دربارهٔ «رأی‌گیری قفله» به بخش آموزش Godplay اضافه شد.
- آیتم مربوط به انتقال سکه با توضیح درست فیچر واقعی (ریپلای + «انتقال
  مقدار») جایگزین شد (توضیح بیشتر در بخش ۵).
- نسخهٔ فوتر از V34 به V35 آپدیت شد.

## 5) نکتهٔ مهم: `/gift` حذف شد (تکراری بود)
تو پاس قبلی یک فیچر `/gift` ساختم، ولی بعداً متوجه شدم ربات از قبل یک
سیستم انتقال سکهٔ کاملاً کارکردی داشت: ریپلای روی پیام کسی + نوشتن
«انتقال 200» (با دکمهٔ تأیید، تو `handlers/shop.php`). برای جلوگیری از
دو سیستم موازی که می‌تونست باعث سردرگمی یا حتی سوءاستفاده بشه (مثلاً
دو مسیر با سقف‌های متفاوت)، `/gift` و جدول `coin_gifts` کاملاً حذف
شدن. اگه سقف روزانه/محدودیت سوءاستفاده رو برای همون فیچر «انتقال»
موجود می‌خوای، بگو تا همون‌جا اضافه کنم.

## نکات اجرا
1. `check_db.php` رو یک‌بار اجرا کن — الان دیگه دنبال `anonymous_mode`
   نمی‌گرده، فقط `mode` (برای EVIL) و `cron_periodic_jobs` رو چک می‌کنه.
2. اگه ستون `anonymous_mode` رو قبلاً داشتی، دستور بخش ۱ رو اجرا کن تا
   پاک بشه (اختیاریه، فقط برای تمیزی؛ چیزی رو خراب نمی‌کنه اگه بمونه هم).
3. `set_webhook.php` رو یک‌بار باز کن تا پنل کامندهای تلگرام آپدیت بشه.
4. تست: تو یک بازی Godplay/EVIL، یک نفر رأی بده و دوباره روی یه دکمهٔ
   دیگه بزنه — باید پیام «قفل شده» ببینه، نه تغییر رأی.
