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> |