File size: 40,680 Bytes
309ec79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>🎯 إدارة الميزات — Sayed Bot v23</title>
<style>
*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#0d1117;--surface:rgba(22,27,34,.72);--surface2:rgba(30,39,50,.75);--surface3:rgba(40,50,65,.8);--border:rgba(255,255,255,.06);--border2:rgba(255,255,255,.03);--text:#e6edf3;--text2:#8b949e;--text3:#6e7681;--green:#3fb950;--green2:#56d364;--green-bg:rgba(63,185,80,.1);--blue:#58a6ff;--blue-bg:rgba(88,166,255,.1);--purple:#bc8cff;--purple-bg:rgba(188,140,255,.1);--amber:#d29922;--amber-bg:rgba(210,153,34,.1);--red:#f85149;--red-bg:rgba(248,81,73,.1);--cyan:#39d0d8;--radius:12px;--radius-sm:8px;--font:system-ui,'Segoe UI',Roboto,sans-serif;--mono:Consolas,'Courier New',monospace;--glass:rgba(22,27,34,.65);--glass-blur:20px}
html,body{min-height:100vh}
body{background:var(--bg);background-image:radial-gradient(ellipse 80% 50% at 20% 0%,rgba(63,185,80,.06) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 80% 100%,rgba(88,166,255,.04) 0%,transparent 50%);color:var(--text);font-family:var(--font);font-size:14px;direction:rtl;padding:20px 24px}
::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(63,185,80,.25);border-radius:10px}
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:12px}
.page-title{font-size:20px;font-weight:900;display:flex;align-items:center;gap:8px}
.page-title span{background:linear-gradient(135deg,var(--green),var(--blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.header-actions{display:flex;gap:8px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:var(--radius-sm);font-size:12px;font-weight:700;font-family:var(--font);cursor:pointer;border:1px solid rgba(255,255,255,.08);background:var(--glass);backdrop-filter:blur(10px);color:var(--text2);transition:all .2s;white-space:nowrap;text-decoration:none}
.btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.25)}.btn:active{transform:scale(.97)}
.btn-green{border-color:rgba(63,185,80,.25);color:var(--green);background:var(--green-bg)}.btn-green:hover{background:rgba(63,185,80,.18)}
.btn-red{border-color:rgba(248,81,73,.25);color:var(--red);background:var(--red-bg)}.btn-red:hover{background:rgba(248,81,73,.18)}
.btn-blue{border-color:rgba(88,166,255,.25);color:var(--blue);background:var(--blue-bg)}.btn-blue:hover{background:rgba(88,166,255,.18)}
.btn-purple{border-color:rgba(188,140,255,.25);color:var(--purple);background:var(--purple-bg)}.btn-purple:hover{background:rgba(188,140,255,.18)}
.btn-amber{border-color:rgba(210,153,34,.25);color:var(--amber);background:var(--amber-bg)}.btn-amber:hover{background:rgba(210,153,34,.18)}
.controls{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap;align-items:center}
.search-box{flex:1;min-width:200px;background:var(--glass);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);padding:9px 14px;color:var(--text);font-family:var(--font);font-size:13px;outline:none;transition:all .2s}
.search-box:focus{border-color:var(--green);box-shadow:0 0 0 2px rgba(63,185,80,.1)}
.filter-tabs{display:flex;gap:4px;flex-wrap:wrap}
.filter-tab{padding:6px 12px;border-radius:var(--radius-sm);font-size:11px;font-weight:700;cursor:pointer;border:1px solid rgba(255,255,255,.06);background:var(--glass);color:var(--text3);transition:all .2s;font-family:var(--font)}
.filter-tab:hover{border-color:rgba(255,255,255,.1);color:var(--text2)}
.filter-tab.active{background:var(--green-bg);border-color:rgba(63,185,80,.25);color:var(--green)}
.stats-bar{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.stat-pill{background:var(--glass);border:1px solid rgba(255,255,255,.06);border-radius:20px;padding:6px 14px;font-size:11px;font-weight:700;display:flex;align-items:center;gap:6px}
.stat-pill .num{font-family:var(--mono);font-weight:900}
.cat-section{margin-bottom:20px}
.cat-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.cat-icon{font-size:18px}.cat-name{font-size:15px;font-weight:800;flex:1}
.cat-count{font-size:11px;color:var(--text3);font-family:var(--mono);background:rgba(255,255,255,.05);padding:2px 8px;border-radius:10px}
.cat-toggle{font-size:11px;color:var(--green);cursor:pointer;font-weight:700;transition:color .2s;background:none;border:none;font-family:var(--font)}
.cat-toggle:hover{color:var(--green2)}
.features-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.feature-card{background:var(--glass);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);padding:12px 14px;display:flex;align-items:center;gap:12px;transition:all .2s}
.feature-card:hover{border-color:rgba(255,255,255,.1);background:var(--surface2)}
.feature-card.disabled{opacity:.5}
.feature-info{flex:1;min-width:0}
.feature-name{font-size:12px;font-weight:700;margin-bottom:2px}
.feature-desc{font-size:10px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toggle{position:relative;width:36px;height:20px;flex-shrink:0;display:inline-block}
.toggle input{opacity:0;width:0;height:0;position:absolute}
.toggle-slider{position:absolute;inset:0;background:rgba(255,255,255,.08);border:1px solid var(--border);border-radius:20px;cursor:pointer;transition:all .3s}
.toggle-slider::before{content:'';position:absolute;top:2px;right:2px;width:14px;height:14px;border-radius:50%;background:var(--text3);transition:all .3s}
.toggle input:checked+.toggle-slider{background:var(--green);border-color:var(--green)}
.toggle input:checked+.toggle-slider::before{transform:translateX(-16px);background:#fff}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(12px);background:var(--glass);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:10px 20px;font-size:12px;font-weight:700;opacity:0;transition:all .3s;pointer-events:none;z-index:9999;box-shadow:0 8px 30px rgba(0,0,0,.4)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.ok{border-color:rgba(63,185,80,.4);color:var(--green)}.toast.err{border-color:rgba(248,81,73,.4);color:var(--red)}
.empty{text-align:center;color:var(--text3);padding:40px;font-size:14px}
@media(max-width:768px){.features-grid{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start}}
</style>
</head>
<body>
<div class="page-header">
  <h1 class="page-title">🎯 <span>إدارة الميزات</span></h1>
  <div class="header-actions">
    <a href="/" class="btn btn-blue">📊 لوحة التحكم</a>
    <button class="btn btn-green" onclick="saveAll()">💾 حفظ</button>
    <button class="btn btn-purple" onclick="exportFeatures()">📤 تصدير</button>
    <button class="btn btn-amber" onclick="document.getElementById('importFile').click()">📥 استيراد</button>
    <input type="file" id="importFile" accept=".json" style="display:none" onchange="importFeatures(event)">
  </div>
</div>
<div class="controls">
  <input type="text" class="search-box" id="searchBox" placeholder="🔍 بحث بالاسم..." oninput="filterFeatures()">
  <div class="filter-tabs" id="filterTabs"></div>
</div>
<div class="stats-bar" id="statsBar"></div>
<div id="featuresContainer"></div>
<div class="toast" id="toast"></div>
<script>
const CATS=[
  {id:'protection',name:'الحماية',icon:'🛡️',color:'#3b82f6'},
  {id:'performance',name:'الأداء',icon:'⚡',color:'#10b981'},
  {id:'economy',name:'الاقتصاد',icon:'💰',color:'#f59e0b'},
  {id:'player',name:'اللاعبين',icon:'👥',color:'#8b5cf6'},
  {id:'world',name:'العوالم',icon:'🌍',color:'#06b6d4'},
  {id:'fun',name:'الترفيه',icon:'🎮',color:'#ec4899'},
  {id:'admin',name:'الإدارة',icon:'⚙️',color:'#ef4444'},
  {id:'bots',name:'البوتات',icon:'🤖',color:'#10b981'}
];
const ALL_FEATURES=[
  {id:'worldguard',name:'WorldGuard',cat:'protection',desc:'حماية المناطق من التخريب',on:true},{id:'worldedit',name:'WorldEdit',cat:'protection',desc:'أداة تعديل الخريطة',on:true},{id:'coreprotect',name:'CoreProtect',cat:'protection',desc:'تسجيل و التراجع',on:true},{id:'griefprevention',name:'GriefPrevention',cat:'protection',desc:'حماية الأراضي بالفأس',on:true},{id:'anticheat',name:'AntiCheat',cat:'protection',desc:'كشف الغش و hacks',on:true},{id:'combatlog',name:'CombatLog',cat:'protection',desc:'منع الفرار من القتال',on:true},{id:'spawnprotection',name:'SpawnProtection',cat:'protection',desc:'حماية الـ Spawn',on:true},{id:'lwc',name:'LWC Lock',cat:'protection',desc:'قفل الصناديق والأبواب',on:false},{id:'redprotect',name:'RedProtect',cat:'protection',desc:'حماية مناطق متقدمة',on:false},{id:'towny',name:'Towny',cat:'protection',desc:'نظام مدن وأراضي',on:false},{id:'factions',name:'Factions',cat:'protection',desc:'نظام فصائل وحروب',on:false},{id:'lands',name:'Lands',cat:'protection',desc:'نظام أراضي مبسط',on:false},{id:'playerwarps',name:'PlayerWarps',cat:'protection',desc:'نقاط teleport خاصة',on:false},{id:'antiexplosion',name:'AntiExplosion',cat:'protection',desc:'منع الانفجارات',on:false},{id:'antispam',name:'AntiSpam',cat:'protection',desc:'منع السبام في الشات',on:false},{id:'antifirewall',name:'FireWall',cat:'protection',desc:'جدار حماية متقدم',on:false},{id:'authme',name:'AuthMe',cat:'protection',desc:'تسجيل دخول أمان',on:false},{id:'badlion',name:'BadLion',cat:'protection',desc:'حماية Badlion',on:false},{id:'nokick',name:'NoKick',cat:'protection',desc:'منع الطرد التعسفي',on:false},{id:'sfprotect',name:'SkyFilter',cat:'protection',desc:'فلتر SkyBlock',on:false},{id:'worldbackup',name:'WorldBackup',cat:'protection',desc:'نسخ احتياطي للعوالم',on:false},{id:'itemprotect',name:'ItemProtect',cat:'protection',desc:'حماية الأغراض الملقاة',on:false},{id:'lockdoors',name:'LockDoors',cat:'protection',desc:'قفل الأبواب',on:false},{id:'regionprotect',name:'RegionProtect',cat:'protection',desc:'حماية المناطق التلقائية',on:false},{id:'pvplogger',name:'PvPLogger',cat:'protection',desc:'مراقبة PvP',on:false},{id:'sleepignore',name:'SleepIgnore',cat:'protection',desc:'تجاهل النوم القري',on:false},{id:'claimchunk',name:'ClaimChunk',cat:'protection',desc:'مطالعة بالـ chunks',on:false},{id:'simpleflags',name:'SimpleFlags',cat:'protection',desc:'علامات بسيطة للمناطق',on:false},{id:'blocklogging',name:'BlockLogging',cat:'protection',desc:'تسجيل تعديلات الكتل',on:false},{id:'antigrief',name:'AntiGrief',cat:'protection',desc:'كشف ومنع التخريب',on:false},{id:'areaoverlap',name:'AreaOverlap',cat:'protection',desc:'منع تداخل المناطق',on:false},{id:'safeexit',name:'SafeExit',cat:'protection',desc:'خروج آمن',on:false},{id:'worldguardex',name:'WG-Extended',cat:'protection',desc:'إضافات WorldGuard',on:false},{id:'pvpbalance',name:'PvPBalance',cat:'protection',desc:'توازن PvP',on:false},{id:'chestlock',name:'ChestLock',cat:'protection',desc:'قفل الصناديق المتقدم',on:false},{id:'entryprotect',name:'EntryProtect',cat:'protection',desc:'حماية المداخل',on:false},{id:'antiportal',name:'AntiPortal',cat:'protection',desc:'منع البوابات التعسفية',on:false},{id:'trapped',name:'Trapped',cat:'protection',desc:'مناطق الأسر',on:false},{id:'claimextend',name:'ClaimExtend',cat:'protection',desc:'توسيع المطالبات',on:false},{id:'spawnflags',name:'SpawnFlags',cat:'protection',desc:'علامات Spawning',on:false},{id:'blockregen',name:'BlockRegen',cat:'protection',desc:'تجديد الكتل تلقائياً',on:false},{id:'firecontrol',name:'FireControl',cat:'protection',desc:'تحكم بالنار',on:false},{id:'lavacontrol',name:'LavaControl',cat:'protection',desc:'تحكم في الحمم',on:false},{id:'watercontrol',name:'WaterControl',cat:'protection',desc:'تحكم في الماء',on:false},{id:'tntcontrol',name:'TNTControl',cat:'protection',desc:'تحكم في الـ TNT',on:false},{id:'creepercontrol',name:'CreeperControl',cat:'protection',desc:'تحكم في الـ Creeper',on:false},{id:'endermancontrol',name:'EndermanControl',cat:'protection',desc:'تحكم في Enderman',on:false},{id:'slimecontrol',name:'SlimeControl',cat:'protection',desc:'تحكم في Slime',on:false},{id:'mobcontrol',name:'MobControl',cat:'protection',desc:'تحكم عام في المخلوقات',on:false},{id:'griefalert',name:'GriefAlert',cat:'protection',desc:'تنبيهات التخريب',on:false},
  {id:'clearlag',name:'ClearLag',cat:'performance',desc:'تنظيف entities الزائدة',on:true},{id:'spark',name:'Spark',cat:'performance',desc:'مراقبة TPS و RAM',on:true},{id:'chunky',name:'Chunky',cat:'performance',desc:'توليد chunks مسبقاً',on:true},{id:'nolagg',name:'NoLagg',cat:'performance',desc:'إزالة entities الزائدة',on:true},{id:'farmcontrol',name:'FarmControl',cat:'performance',desc:'تحكم بحجم المزارع',on:true},{id:'entityclearer',name:'EntityClearer',cat:'performance',desc:'تنظيف entities تلقائي',on:true},{id:'tpsmonitor',name:'TPSMonitor',cat:'performance',desc:'مراقبة TPS مع تنبيهات',on:true},{id:'performanceplus',name:'PerformancePlus',cat:'performance',desc:'تحسين عام',on:false},{id:'fawe',name:'FastAsyncWorldEdit',cat:'performance',desc:'نسخة أسرع من WE',on:false},{id:'optimizedgenerators',name:'OptimizedGens',cat:'performance',desc:'تحسين المولدات',on:false},{id:'pufferfish',name:'Pufferfish',cat:'performance',desc:'تحسينات Paper',on:false},{id:'purpur',name:'Purpur',cat:'performance',desc:'تحسينات Paper+',on:false},{id:'aikarflags',name:'Aikar Flags',cat:'performance',desc:'تحسينات JVM',on:false},{id:'lithium',name:'Lithium',cat:'performance',desc:'تحسينات عامة',on:false},{id:'phosphor',name:'Phosphor',cat:'performance',desc:'تحسين الإضاءة',on:false},{id:'starlight',name:'Starlight',cat:'performance',desc:'محرك إضاءة سريع',on:false},{id:'asyncworld',name:'AsyncWorld',cat:'performance',desc:'تحميل العوالم غير المتزامن',on:false},{id:'mobfan',name:'MobFan',cat:'performance',desc:'تقليل عدد المخلوقات',on:false},{id:'slaboptimizer',name:'SlabOptimizer',cat:'performance',desc:'تحسين الألواح',on:false},{id:'redstonelag',name:'RedstoneLag',cat:'performance',desc:'تقليل lag الريدستون',on:false},{id:'itemhider',name:'ItemHider',cat:'performance',desc:'إخفاء الأغراض الملقاة',on:false},{id:'limitentities',name:'LimitEntities',cat:'performance',desc:'تحديد عدد entities',on:false},{id:'entitytracker',name:'EntityTracker',cat:'performance',desc:'تتبع entities',on:false},{id:'cacheprotocol',name:'CacheProtocol',cat:'performance',desc:'تخزين مؤقت للبروتوكول',on:false},{id:'packetlimiter',name:'PacketLimiter',cat:'performance',desc:'تحديد الحزم',on:false},{id:'timings',name:'Timings',cat:'performance',desc:'قياس أداء مفصل',on:false},{id:'gccontrol',name:'GCControl',cat:'performance',desc:'تحكم في garbage collector',on:false},{id:'heapdump',name:'HeapDump',cat:'performance',desc:'تصدير ذاكرة',on:false},{id:'memmonitor',name:'MemMonitor',cat:'performance',desc:'مراقبة الذاكرة',on:false},{id:'cpumonitor',name:'CPUMonitor',cat:'performance',desc:'مراقبة المعالج',on:false},{id:'diskmonitor',name:'DiskMonitor',cat:'performance',desc:'مراقبة القرص',on:false},{id:'netmonitor',name:'NetMonitor',cat:'performance',desc:'مراقبة الشبكة',on:false},{id:'threadwatch',name:'ThreadWatch',cat:'performance',desc:'مراقبة الخيوط',on:false},{id:'tickmonitor',name:'TickMonitor',cat:'performance',desc:'مراقبة الـ ticks',on:false},{id:'chunkoptim',name:'ChunkOptim',cat:'performance',desc:'تحسين chunks',on:false},{id:'lightoptim',name:'LightOptim',cat:'performance',desc:'تحسين الإضاءة',on:false},{id:'pathoptim',name:'PathOptim',cat:'performance',desc:'تحسين المسارات',on:false},{id:'aioptim',name:'AIOptim',cat:'performance',desc:'تحسين AI المخلوقات',on:false},{id:'redstoneoptim',name:'RedstoneOptim',cat:'performance',desc:'تحسين الريدستون',on:false},{id:'wateroptim',name:'WaterOptim',cat:'performance',desc:'تحسين تدفق الماء',on:false},{id:'fireoptim',name:'FireOptim',cat:'performance',desc:'تحسين انتشار النار',on:false},{id:'expopt',name:'ExpOptim',cat:'performance',desc:'تحسين خبرة XP',on:false},{id:'itemoptim',name:'ItemOptim',cat:'performance',desc:'تحسين الأغراض',on:false},{id:'moboptim',name:'MobOptim',cat:'performance',desc:'تحسين المخلوقات',on:false},{id:'nbtcompress',name:'NBTCompress',cat:'performance',desc:'ضغط البيانات NBT',on:false},{id:'chunkcache',name:'ChunkCache',cat:'performance',desc:'تخزين chunks مؤقت',on:false},{id:'packetcompress',name:'PacketCompress',cat:'performance',desc:'ضغط الحزم',on:false},{id:'networkoptim',name:'NetworkOptim',cat:'performance',desc:'تحسين الشبكة',on:false},{id:'iooptim',name:'IOOptim',cat:'performance',desc:'تحسين الإدخال/الإخراج',on:false},
  {id:'essentials_eco',name:'EssentialsX Economy',cat:'economy',desc:'نظام اقتصاد أساسي',on:true},{id:'shopguiplus',name:'ShopGUI+',cat:'economy',desc:'متجر GUI',on:true},{id:'auctionhouse',name:'AuctionHouse',cat:'economy',desc:'نظام مزادات',on:false},{id:'jobs',name:'Jobs',cat:'economy',desc:'نظام وظائف',on:false},{id:'crates',name:'Crates',cat:'economy',desc:'صناديق عشوائية',on:false},{id:'mcmmo',name:'mcMMO',cat:'economy',desc:'مهارات RPG',on:false},{id:'skills',name:'AureliumSkills',cat:'economy',desc:'مهارات متقدمة',on:false},{id:'tokenmanager',name:'TokenManager',cat:'economy',desc:'نظام توكنات',on:false},{id:'votifier',name:'Votifier',cat:'economy',desc:'مكافآت التصويت',on:false},{id:'luckyblocks',name:'LuckyBlocks',cat:'economy',desc:'صناديق حظ',on:false},{id:'bankplus',name:'BankPlus',cat:'economy',desc:'نظام بنك متقدم',on:false},{id:'coinflip',name:'CoinFlip',cat:'economy',desc:'رمي عملة',on:false},{id:'bounty',name:'Bounty',cat:'economy',desc:'مكافآت على القتل',on:false},{id:'robbery',name:'Robbery',cat:'economy',desc:'نظام سرقة',on:false},{id:'lottery',name:'Lottery',cat:'economy',desc:'نظام يانصيب',on:false},{id:'withdraw',name:'Withdraw',cat:'economy',desc:'سحب عملات',on:false},{id:'deposity',name:'Deposity',cat:'economy',desc:'إيداع عملات',on:false},{id:'transfer',name:'Transfer',cat:'economy',desc:'تحويل عملات',on:false},{id:'salary',name:'Salary',cat:'economy',desc:'رواتب يومية',on:false},{id:'taxes',name:'Taxes',cat:'economy',desc:'نظام ضرائب',on:false},{id:'market',name:'Market',cat:'economy',desc:'سوق للاعبين',on:false},{id:'trading',name:'Trading',cat:'economy',desc:'تبادل أغراض',on:false},{id:'auctionplus',name:'AuctionPlus',cat:'economy',desc:'مزادات إضافية',on:false},{id:'mining',name:'MiningRewards',cat:'economy',desc:'مكافآت الحفر',on:false},{id:'farming',name:'FarmingRewards',cat:'economy',desc:'مكافآت الزراعة',on:false},{id:'fishing',name:'FishingRewards',cat:'economy',desc:'مكافآت الصيد',on:false},{id:'woodcutting',name:'WoodCutting',cat:'economy',desc:'مكافآت قطع الأشجار',on:false},{id:'smelting',name:'SmeltingRewards',cat:'economy',desc:'مكافآت الصهر',on:false},{id:'breeding',name:'BreedingRewards',cat:'economy',desc:'مكافآت التكاثر',on:false},{id:'enchanting',name:'EnchantRewards',cat:'economy',desc:'مكافآت التسحيم',on:false},{id:'brewing',name:'BrewingRewards',cat:'economy',desc:'مكافآت التخمير',on:false},{id:'tradingpost',name:'TradingPost',cat:'economy',desc:'نقاط تبادل',on:false},{id:'playershops',name:'PlayerShops',cat:'economy',desc:'متاجر لاعبين',on:false},{id:'baltop',name:'BalTop',cat:'economy',desc:'أغنى اللاعبين',on:false},{id:'paymulti',name:'PayMulti',cat:'economy',desc:'مضاعفة الدفع',on:false},{id:'dailyreward',name:'DailyReward',cat:'economy',desc:'مكافأة يومية',on:false},{id:'weeklyreward',name:'WeeklyReward',cat:'economy',desc:'مكافأة أسبوعية',on:false},{id:'vipshop',name:'VIPShop',cat:'economy',desc:'متجر VIP',on:false},{id:'blackmarket',name:'BlackMarket',cat:'economy',desc:'السوق السوداء',on:false},{id:'itemshop',name:'ItemShop',cat:'economy',desc:'متجر أغراض',on:false},
  {id:'essentials_cmds',name:'EssentialsX Commands',cat:'player',desc:'أوامر أساسية: /tpa, /home',on:true},{id:'luckperms',name:'LuckPerms',cat:'admin',desc:'إدارة الصلاحيات',on:true},{id:'tab',name:'TAB',cat:'player',desc:'تخصيص قائمة اللاعبين',on:true},{id:'placeholderapi',name:'PlaceholderAPI',cat:'player',desc:'API للـ placeholders',on:true},{id:'skinsrestorer',name:'SkinsRestorer',cat:'player',desc:'استعادة الـ skins',on:true},{id:'chatmanager',name:'ChatManager',cat:'player',desc:'إدارة الشات',on:true},{id:'afkplus',name:'AntiAFK+',cat:'player',desc:'منع طرد AFK',on:true},{id:'discordsrv',name:'DiscordSRV',cat:'admin',desc:'ربط Discord',on:true},{id:'backpacks',name:'Backpacks',cat:'player',desc:'حقائب ظهر',on:false},{id:'nicknames',name:'Nicknames',cat:'player',desc:'تغيير الأسماء',on:false},{id:'heads',name:'HeadsDatabase',cat:'player',desc:'رؤوس لاعبين',on:false},{id:'silktouch',name:'SilkSpawners',cat:'player',desc:'نقل مولدات',on:false},{id:'homesystem',name:'HomeSystem',cat:'player',desc:'نظام بيوت متقدم',on:false},{id:'warpsystem',name:'WarpSystem',cat:'player',desc:'نظام نقاط انتقال',on:false},{id:'tpamulti',name:'TPAMulti',cat:'player',desc:'طلب انتقال متعدد',on:false},{id:'tpcoords',name:'TPCoords',cat:'player',desc:'انتقال بالإحداثيات',on:false},{id:'msgreply',name:'MsgReply',cat:'player',desc:'رد سريع على الرسائل',on:false},{id:'socialspy',name:'SocialSpy',cat:'player',desc:'متابعة المحادثات',on:false},{id:'flyzone',name:'FlyZone',cat:'player',desc:'مناطق طيران',on:false},{id:'speedmine',name:'SpeedMine',cat:'player',desc:'حفر سريع',on:false},{id:'doublejump',name:'DoubleJump',cat:'player',desc:'قفزة مزدوجة',on:false},{id:'jetpack',name:'JetPack',cat:'player',desc:'حقيبة نارية',on:false},{id:'godmode',name:'GodMode',cat:'player',desc:'وضع الإله',on:false},{id:'fly',name:'Fly',cat:'player',desc:'الطيران',on:false},{id:'vanish',name:'Vanish',cat:'player',desc:'الاختفاء',on:false},{id:'spectator',name:'Spectator',cat:'player',desc:'المشاهدة',on:false},{id:'heal',name:'Heal',cat:'player',desc:'العلاج',on:false},{id:'feed',name:'Feed',cat:'player',desc:'التغذية',on:false},{id:'kit',name:'Kit',cat:'player',desc:'أدوات جاهزة',on:false},{id:'spawn',name:'Spawn',cat:'player',desc:'العودة للـ spawn',on:false},{id:'back',name:'Back',cat:'player',desc:'العودة للمكان السابق',on:false},{id:'hat',name:'Hat',cat:'player',desc:'ارتداء القبعة',on:false},{id:'enderchest',name:'EnderChest',cat:'player',desc:'فتح صندوق Ender',on:false},{id:'craft',name:'Craft',cat:'player',desc:'صناعة في أي مكان',on:false},{id:'anvil',name:'Anvil',cat:'player',desc:'مسمار في أي مكان',on:false},{id:'enchant',name:'Enchant',cat:'player',desc:'تسحيم في أي مكان',on:false},{id:'repair',name:'Repair',cat:'player',desc:'إصلاح في أي مكان',on:false},{id:'trash',name:'Trash',cat:'player',desc:'سلة مهملات',on:false},{id:'report',name:'Report',cat:'player',desc:'الإبلاغ عن لاعب',on:false},{id:'warn',name:'Warn',cat:'player',desc:'تحذير لاعب',on:false},
  {id:'multiverse',name:'Multiverse-Core',cat:'world',desc:'إدارة عوالم متعددة',on:true},{id:'dynmap',name:'Dynmap',cat:'world',desc:'خريطة ديناميكية',on:true},{id:'bluemap',name:'BlueMap',cat:'world',desc:'خريطة ثلاثية الأبعاد',on:false},{id:'mv_inventories',name:'MV-Inventories',cat:'world',desc:'مخزونات منفصلة',on:false},{id:'plotme',name:'PlotMe',cat:'world',desc:'نظام مساحات بناء',on:false},{id:'myworlds',name:'MyWorlds',cat:'world',desc:'إدارة عوالم',on:false},{id:'voidgen',name:'VoidGen',cat:'world',desc:'توليد عوالم فارغة',on:false},{id:'worldborder',name:'WorldBorder',cat:'world',desc:'حدود عالم',on:false},{id:'netherportals',name:'NetherPortals',cat:'world',desc:'تخصيص بوابات',on:false},{id:'timecontrol',name:'TimeControl',cat:'world',desc:'تحكم بالوقت',on:false},{id:'weathercontrol',name:'WeatherControl',cat:'world',desc:'تحكم بالطقس',on:false},{id:'terraincontrol',name:'TerrainControl',cat:'world',desc:'تحكم بالطبوغرافيا',on:false},{id:'worldgen',name:'WorldGen',cat:'world',desc:'توليد عوالم',on:false},{id:'biomectl',name:'BiomeControl',cat:'world',desc:'تحكم بالبيئات',on:false},{id:'oregen',name:'OreGen',cat:'world',desc:'توليد الخامات',on:false},{id:'treegen',name:'TreeGen',cat:'world',desc:'توليد الأشجار',on:false},{id:'structuregen',name:'StructureGen',cat:'world',desc:'توليد الهياكل',on:false},{id:'dungeongen',name:'DungeonGen',cat:'world',desc:'توليد الزنزانات',on:false},{id:'villagegen',name:'VillageGen',cat:'world',desc:'توليد القرى',on:false},{id:'citygen',name:'CityGen',cat:'world',desc:'توليد المدن',on:false},{id:'islandgen',name:'IslandGen',cat:'world',desc:'توليد الجزر',on:false},{id:'flatworld',name:'FlatWorld',cat:'world',desc:'عوالم مسطحة',on:false},{id:'amplified',name:'Amplified',cat:'world',desc:'عوالم مكبرة',on:false},{id:'superflat',name:'SuperFlat',cat:'world',desc:'عوالم مسطحة خارقة',on:false},{id:'skyworld',name:'SkyWorld',cat:'world',desc:'عالم سماوي',on:false},{id:'netherworld',name:'NetherWorld',cat:'world',desc:'عالم Nether',on:false},{id:'endworld',name:'EndWorld',cat:'world',desc:'عالم End',on:false},{id:'pocketworld',name:'PocketWorld',cat:'world',desc:'عوالم جيبية',on:false},{id:'minworld',name:'MiniWorld',cat:'world',desc:'عوالم صغيرة',on:false},{id:'megaworld',name:'MegaWorld',cat:'world',desc:'عوالم ضخمة',on:false},
  {id:'bedwars',name:'BedWars',cat:'fun',desc:'لعبة BedWars',on:false},{id:'skyblock',name:'ASkyBlock',cat:'fun',desc:'نظام SkyBlock',on:false},{id:'parkour',name:'Parkour',cat:'fun',desc:'مسارات Parkour',on:false},{id:'duels',name:'Duels',cat:'fun',desc:'قتال 1v1',on:false},{id:'arenapvp',name:'ArenaPvP',cat:'fun',desc:'منطقة PvP',on:false},{id:'treasurereward',name:'TreasureReward',cat:'fun',desc:'مكافآت يومية',on:false},{id:'deathmessages',name:'DeathMessages',cat:'fun',desc:'رسائل وفاة',on:false},{id:'mobarena',name:'MobArena',cat:'fun',desc:'arena مخلوقات',on:false},{id:'minigames',name:'Minigames',cat:'fun',desc:'ميني غيمز',on:false},{id:'trivia',name:'Trivia',cat:'fun',desc:'أسئلة معلومات',on:false},{id:'sitanywhere',name:'SitAnywhere',cat:'fun',desc:'الجلوس في أي مكان',on:false},{id:'cosmetics',name:'CosmeticsPlus',cat:'fun',desc:'تزيينات',on:false},{id:'marriage',name:'Marriage',cat:'fun',desc:'نظام زواج',on:false},{id:'pets',name:'PetMaster',cat:'fun',desc:'حيوانات أليفة',on:false},{id:'headhunting',name:'HeadHunting',cat:'fun',desc:'صيد رؤوس',on:false},{id:'treecapitator',name:'Treecapitator',cat:'fun',desc:'قطع الأشجار',on:false},{id:'veinminer',name:'VeinMiner',cat:'fun',desc:'حفر الأوردة',on:false},{id:'durabilityping',name:'DurabilityPing',cat:'fun',desc:'تنبيه التلف',on:false},{id:'nightmare',name:'Nightmare',cat:'fun',desc:'مخلوقات مرعبة',on:false},{id:'armorstandtools',name:'ArmorStandTools',cat:'fun',desc:'تخصيص دروع الخشب',on:false},{id:'dropparty',name:'DropParty',cat:'fun',desc:'حزب إسقاط',on:false},{id:'lottery_fun',name:'Lottery Fun',cat:'fun',desc:'يانصيب ترفيهي',on:false},{id:'wheeloffortune',name:'WheelOfFortune',cat:'fun',desc:'عجلة الحظ',on:false},{id:'dailylogin',name:'DailyLogin',cat:'fun',desc:'تسجيل دخول يومي',on:false},{id:'streak',name:'Streak',cat:'fun',desc:'أيام متتالية',on:false},{id:'achievements',name:'Achievements',cat:'fun',desc:'إنجازات',on:false},{id:'leaderboard',name:'Leaderboard',cat:'fun',desc:'لوحة صدارة',on:false},{id:'rankup',name:'RankUp',cat:'fun',desc:'ترقيات',on:false},{id:'title',name:'Titles',cat:'fun',desc:'ألقاب',on:false},{id:'particle',name:'Particles',cat:'fun',desc:'جسيمات',on:false},{id:'hologram',name:'Hologram',cat:'fun',desc:'هولوغرام',on:false},{id:'disguise',name:'Disguise',cat:'fun',desc:'تنكر',on:false},{id:'morph',name:'Morph',cat:'fun',desc:'تحول',on:false},{id:'furniture',name:'Furniture',cat:'fun',desc:'أثاث',on:false},{id:'player_heads',name:'PlayerHeads',cat:'fun',desc:'رؤوس لاعبين ترفيهية',on:false},{id:'skulls',name:'Skulls',cat:'fun',desc:'جماجم',on:false},{id:'paintings',name:'Paintings',cat:'fun',desc:'لوحات',on:false},{id:'books',name:'Books',cat:'fun',desc:'كتب',on:false},{id:'music',name:'Music',cat:'fun',desc:'موسيقى',on:false},{id:'fireworks',name:'Fireworks',cat:'fun',desc:'ألعاب نارية',on:false},
  {id:'lp_groups',name:'LuckPerms Groups',cat:'admin',desc:'إدارة المجموعات',on:true},{id:'bansystem',name:'BanSystem',cat:'admin',desc:'نظام حظر و طرد',on:true},{id:'admin_tools',name:'AdminTools',cat:'admin',desc:'أدوات الإدارة المتقدمة',on:true},{id:'essentials_admin',name:'EssentialsX Admin',cat:'admin',desc:'أوامر الإدارة المتقدمة',on:true},{id:'vault_admin',name:'Vault',cat:'admin',desc:'API الأمان والصلاحيات',on:true},{id:'server_logs',name:'ServerLogs',cat:'admin',desc:'سجلات السيرفر',on:true},{id:'permission_manager',name:'PermissionManager',cat:'admin',desc:'مدير الصلاحيات',on:true},{id:'console_logger',name:'ConsoleLogger',cat:'admin',desc:'تسجيل وحدة التحكم',on:true},{id:'server_monitor',name:'ServerMonitor',cat:'admin',desc:'مراقبة السيرفر',on:true},{id:'luckyperms',name:'LuckPerms Editor',cat:'admin',desc:'محرر الصلاحيات',on:false},{id:'commandspy',name:'CommandSpy',cat:'admin',desc:'متابعة الأوامر',on:false},{id:'alert',name:'Alert',cat:'admin',desc:'تنبيهات إدارية',on:false},{id:'freeze',name:'Freeze',cat:'admin',desc:'تجميد لاعب',on:false},{id:'jail',name:'Jail',cat:'admin',desc:'سجن لاعب',on:false},{id:'mute',name:'Mute',cat:'admin',desc:'كتم لاعب',on:false},{id:'kick',name:'Kick',cat:'admin',desc:'طرد لاعب',on:false},{id:'ban',name:'Ban',cat:'admin',desc:'حظر لاعب',on:false},{id:'tempban',name:'TempBan',cat:'admin',desc:'حظر مؤقت',on:false},{id:'ipban',name:'IPBan',cat:'admin',desc:'حظر IP',on:false},{id:'unban',name:'UnBan',cat:'admin',desc:'رفع الحظر',on:false},{id:'pardon',name:'Pardon',cat:'admin',desc:'عفو',on:false},{id:'broadcast',name:'Broadcast',cat:'admin',desc:'بث عام',on:false},{id:'announce',name:'Announce',cat:'admin',desc:'إعلان',on:false},{id:'broadcasttitle',name:'BroadcastTitle',cat:'admin',desc:'بث بعنوان',on:false},{id:'serverlist',name:'ServerList',cat:'admin',desc:'قائمة السيرفر',on:false},{id:'serverinfo',name:'ServerInfo',cat:'admin',desc:'معلومات السيرفر',on:false},{id:'serverreload',name:'ServerReload',cat:'admin',desc:'إعادة تحميل',on:false},{id:'serverbackup',name:'ServerBackup',cat:'admin',desc:'نسخ احتياطي',on:false},{id:'serverrestart',name:'ServerRestart',cat:'admin',desc:'إعادة تشغيل',on:false},
  {id:'humanbehavior',name:'HumanBehavior',cat:'bots',desc:'سلوك بشري واقعي',on:true},{id:'aibehavior',name:'AI Engine',cat:'bots',desc:'محرك ذكاء اصطناعي',on:true},{id:'pathfinding',name:'PathFinding',cat:'bots',desc:'إيجاد مسارات',on:true},{id:'chatresponse',name:'ChatResponse',cat:'bots',desc:'ردود المحادثة',on:true},{id:'followplayer',name:'FollowPlayer',cat:'bots',desc:'متابعة اللاعبين',on:true},{id:'buildskill',name:'BuildSkill',cat:'bots',desc:'مهارة البناء',on:true},{id:'mineskill',name:'MineSkill',cat:'bots',desc:'مهارة الحفر',on:true},{id:'farmskill',name:'FarmSkill',cat:'bots',desc:'مهارة الزراعة',on:true},{id:'fightskill',name:'FightSkill',cat:'bots',desc:'مهارة القتال',on:true},{id:'craftskill',name:'CraftSkill',cat:'bots',desc:'مهارة الصناعة',on:true},{id:'fishskill',name:'FishSkill',cat:'bots',desc:'مهارة الصيد',on:true},{id:'sleepcycle',name:'SleepCycle',cat:'bots',desc:'دورة النوم',on:true},{id:'survivalinstinct',name:'SurvivalInstinct',cat:'bots',desc:'بقاء واقعي',on:true},{id:'weatherreact',name:'WeatherReact',cat:'bots',desc:'رد على الطقس',on:false},{id:'daynight',name:'DayNight',cat:'bots',desc:'دورة الليل والنهار',on:false},{id:'sociallearning',name:'SocialLearning',cat:'bots',desc:'تعلم اجتماعي',on:false},{id:'memorysystem',name:'MemorySystem',cat:'bots',desc:'نظام ذاكرة',on:false},{id:'goalsetting',name:'GoalSetting',cat:'bots',desc:'تحديد أهداف',on:false},{id:'threatassess',name:'ThreatAssess',cat:'bots',desc:'تقييم التهديدات',on:false},{id:'multiserver',name:'MultiServer',cat:'bots',desc:'إدارة سيرفرات متعددة',on:false}
];
let currentFilter='all';
let features={};
try{const s=localStorage.getItem('sb_features');if(s)features=JSON.parse(s);}catch(_){}
ALL_FEATURES.forEach(f=>{if(features[f.id]===undefined)features[f.id]=f.on;});
// render filter tabs
(function(){
  var h='<div class="filter-tab active" data-cat="all" onclick="setFilter(\'all\')">الكل</div>';
  CATS.forEach(function(c){h+='<div class="filter-tab" data-cat="'+c.id+'" onclick="setFilter(\''+c.id+'\')" style="--c:'+c.color+'">'+c.icon+' '+c.name+'</div>';});
  document.getElementById('filterTabs').innerHTML=h;
})();
function render(){
  var q=(document.getElementById('searchBox').value||'').toLowerCase();
  var filtered=ALL_FEATURES.filter(function(f){
    if(currentFilter!=='all'&&f.cat!==currentFilter)return false;
    if(q&&f.name.toLowerCase().indexOf(q)<0&&f.desc.toLowerCase().indexOf(q)<0)return false;
    return true;
  });
  var enabled=ALL_FEATURES.filter(function(f){return features[f.id];}).length;
  document.getElementById('statsBar').innerHTML='<div class="stat-pill" style="border-color:rgba(63,185,80,.3);color:var(--green)">✅ المفعلة: <span class="num">'+enabled+'</span></div><div class="stat-pill" style="border-color:rgba(248,81,73,.3);color:var(--red)">❌ المعطّلة: <span class="num">'+(ALL_FEATURES.length-enabled)+'</span></div><div class="stat-pill" style="border-color:rgba(88,166,255,.3);color:var(--blue)">📊 الإجمالي: <span class="num">'+ALL_FEATURES.length+'</span></div>';
  var grouped={};
  filtered.forEach(function(f){if(!grouped[f.cat])grouped[f.cat]=[];grouped[f.cat].push(f);});
  var html='';
  CATS.forEach(function(c){
    var feats=grouped[c.id];
    if(!feats||!feats.length)return;
    var catEnabled=feats.filter(function(f){return features[f.id];}).length;
    html+='<div class="cat-section" data-cat="'+c.id+'">';
    html+='<div class="cat-header"><span class="cat-icon">'+c.icon+'</span><span class="cat-name" style="color:'+c.color+'">'+c.name+'</span><span class="cat-count">'+catEnabled+'/'+feats.length+'</span><button class="cat-toggle" data-cid="'+c.id+'" onclick="toggleCat(this.dataset.cid)">تشغيل الكل / إيقاف الكل</button></div>';
    html+='<div class="features-grid">';
    feats.forEach(function(f){
      html+='<div class="'+(features[f.id]?'feature-card':'feature-card disabled')+'" id="fc-'+f.id+'">';
      html+='<label class="toggle"><input type="checkbox" '+(features[f.id]?'checked':'')+' data-fid="'+f.id+'" onchange="toggleFeature(this.dataset.fid,this.checked)"><span class="toggle-slider"></span></label>';
      html+='<div class="feature-info"><div class="feature-name">'+f.name+'</div><div class="feature-desc">'+f.desc+'</div></div></div>';
    });
    html+='</div></div>';
  });
  if(!filtered.length)html='<div class="empty">لا توجد ميزات مطابقة للبحث</div>';
  document.getElementById('featuresContainer').innerHTML=html;
}
function toggleFeature(id,val){
  features[id]=val;
  var card=document.getElementById('fc-'+id);
  if(card)card.classList.toggle('disabled',!val);
  localStorage.setItem('sb_features',JSON.stringify(features));
  updateStats();
}
function toggleCat(catId){
  var feats=ALL_FEATURES.filter(function(f){return f.cat===catId;});
  var allOn=feats.every(function(f){return features[f.id];});
  feats.forEach(function(f){features[f.id]=!allOn;});
  localStorage.setItem('sb_features',JSON.stringify(features));
  render();
}
function setFilter(cat){
  currentFilter=cat;
  document.querySelectorAll('.filter-tab').forEach(function(t){t.classList.toggle('active',t.dataset.cat===cat);});
  render();
}
function filterFeatures(){render();}
function updateStats(){
  var enabled=ALL_FEATURES.filter(function(f){return features[f.id];}).length;
  document.getElementById('statsBar').innerHTML='<div class="stat-pill" style="border-color:rgba(63,185,80,.3);color:var(--green)">✅ المفعلة: <span class="num">'+enabled+'</span></div><div class="stat-pill" style="border-color:rgba(248,81,73,.3);color:var(--red)">❌ المعطّلة: <span class="num">'+(ALL_FEATURES.length-enabled)+'</span></div><div class="stat-pill" style="border-color:rgba(88,166,255,.3);color:var(--blue)">📊 الإجمالي: <span class="num">'+ALL_FEATURES.length+'</span></div>';
}
async function saveAll(){
  try{
    await fetch('/api/features/save',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({features})});
    showToast('✅ تم حفظ جميع التغييرات','ok');
  }catch(e){showToast('❌ فشل الحفظ','err');}
}
function exportFeatures(){
  var data=JSON.stringify({features,exportedAt:new Date().toISOString()},null,2);
  var blob=new Blob([data],{type:'application/json'});
  var a=document.createElement('a');a.href=URL.createObjectURL(blob);a.download='features-config.json';a.click();
  showToast('✅ تم التصدير','ok');
}
function importFeatures(e){
  var file=e.target.files[0];if(!file)return;
  var reader=new FileReader();
  reader.onload=function(ev){
    try{
      var data=JSON.parse(ev.target.result);
      if(data.features){Object.assign(features,data.features);localStorage.setItem('sb_features',JSON.stringify(features));render();showToast('✅ تم الاستيراد','ok');}
      else showToast('❌ ملف غير صالح','err');
    }catch(_){showToast('❌ ملف غير صالح','err');}
  };
  reader.readAsText(file);
}
function showToast(msg,type){
  var t=document.getElementById('toast');t.textContent=msg;t.className='toast show '+type;
  clearTimeout(showToast._t);showToast._t=setTimeout(function(){t.className='toast';},3000);
}
render();
</script>
</body>
</html>