server-icon.png: نیازمندیهای دقیق و API مدیریتی که هیچکس استفاده نمیکند
64x64، PNG، در ریشه سرور — اگر هر کدام از این سه اشتباه باشد، آیکون در سکوت نمایش داده نمیشود. بهعلاوه API مدیریتی JSON-RPC که جایگزین اسکرپ کردن کنسول شد.
آیکون سرور سختگیرانهترین ویژگی کوچک در Minecraft است، زیرا همه حالتهای خطا یکسان به نظر میرسند: بدون آیکون، بدون خطا.
سه شرط، همگی اجباری
- دقیقاً 64×64 پیکسل. نه 63، نه 128. سرور اندازه را تغییر نمیدهد.
- فرمت PNG. واقعاً PNG، نه یک JPG تغییرنامیافته.
- با نام
server-icon.png, in the server root — در کنارserver.properties, not
داخل پوشه world.
اگر هر کدام اشتباه باشد، سرور به طور عادی شروع به کار کرده و آیکون پیشفرض را نشان میدهد. هیچ چیزی در سطح لاگ پیشفرض ثبت نمیشود.
مواردی که باز هم باعث خرابی آن میشوند
- PNG از نوع Interlaced. برخی ویرایشگرها به طور پیشفرض به صورت interlaced ذخیره میکنند؛ خواننده Minecraft آن را رد میکند
آن. دوباره به صورت non-interlaced خروجی بگیرید.
- عمق رنگ 16 بیتی. به عنوان 8 بیت در هر کانال ذخیره کنید.
- پروفایلهای رنگی. یک پروفایل تعبیهشده ICC گهگاه پارسر را دچار خطا میکند. حذف
متادیتا هنگام خروجی گرفتن.
- شفافیت مجاز است و به درستی در فهرست سرورها نمایش داده میشود.
کلاینت آن را ذخیره موقت (کش) میکند
هنگامی که یک کلاینت سرور شما را ببیند، آیکون را نگه میدارد. تغییر آن در سمت سرور ورودیهای موجود را بهروز نمیکند — بازیکن باید سرور را حذف و دوباره اضافه کند، یا منتظر بماند تا کش منقضی شود. آزمایش تغییر آیکون از کلاینت خودتان شما را متقاعد میکند که اعمال نشده، در حالی که شده است.
API مدیریت
نسخههای اخیر سرور یک JSON-RPC رابط مدیریتی ارائه میدهند که جایگزین رسمی برای تجزیه خروجی کنسول یا اضافه کردن پلاگین است.
آن را فعال کنید در server.properties:
management-server-enabled=true
management-server-host=localhost
management-server-port=25585
سپس از طریق آن پورت با JSON-RPC ارتباط برقرار کنید:
{ "jsonrpc": "2.0", "id": 1, "method": "minecraft:players" }
متدها شامل لیست بازیکنان، وضعیت سرور، allowlist و لیست بن، gamerules، تنظیمات، و یک جفت save/stop هستند. هر کدام به جای یک خط متنی که باید regex کنید، JSON ساختاریافته برمیگردانند.
آن را به localhost متصل کنید
پیشفرض localhost and it should stay there. The interface is نیست برای اتصال مستقیم به اینترنت در نظر گرفته نشده است — هر چیزی که به آن دسترسی پیدا کند میتواند سرور شما را متوقف کند. اگر به دسترسی از راه دور نیاز دارید، آن را از طریق یک تونل SSH یا یک Reverse Proxy با احراز هویت در دسترس قرار دهید، هرگز با تغییر هاست به 0.0.0.0.
چرا این موضوع اهمیت دارد
داشبوردها، رباتهای Discord و ناظران آپتایم در طول تاریخ با خواندن لاگ کنسول یا استفاده از RCON کار کردهاند که هر دو شکننده هستند. یک API ساختاریافته به این معنی است که با تغییر فرمت یک خط لاگ، ویجت تعداد بازیکنان از کار نمیافتد.
تبدیل هر تصویری به یک تصویر سازگار server-icon.png and browse the JSON-RPC methods in the ابزارهای آیکون و API سرور.