PaperMC یک پایه ساده برای گسترش سمت سرور ماینکرفت با افزونههای کوچک فراهم میکند، بدون اینکه نیاز باشد کلاینتها چیزی نصب کنند. هنگام توسعه افزونهها، این سوال مطرح میشود که چگونه اطلاعات پویا را به بازیکن نمایش دهیم. پاسخ در یک ویژگی معمولی که اغلب نادیده گرفته میشود نهفته است: نوار رئیس . در ابتدا برای رئیسهای پایانی در نظر گرفته شده بود، نوار رئیس میتواند تغییر کاربری داده و به عنوان یک HUD مینیمالیستی استفاده شود.
به جای توضیح اعداد، میتوانید با وضعیتهای مختصری کار کنید که فقط یک احساس را منتقل میکنند. این اغلب تأثیر قویتری نسبت به یک تابلوی امتیازات دیگر یا پیامهای چت دارد. رابط برنامهنویسی Bossbar به طرز شگفتآوری قدرتمند است: رنگ، سبک و پیشرفت را میتوان به صورت پویا تغییر داد. برخلاف تابلوهای امتیازات، Bossbar به طور نامحسوس در بالای صفحه باقی میماند.
BossBar bar = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SOLID);
bar.addPlayer(player);
مثال ۱: نمایش دما: مقدار سانتیگراد در محدوده ۰ تا ۱ نرمالسازی میشود و رنگ بر این اساس انتخاب میشود: آبی برای سرما، سبز برای دلپذیری و قرمز برای گرما.:
bar.setTitle(String.format("🌡 %.0f°C", celsius));
bar.setProgress((celsius + 20) / 60.0);
bar.setColor(celsius < 10 ? BarColor.BLUE : celsius < 30 ? BarColor.GREEN : BarColor.RED);
مثال ۲: اکسیژن زیر آب: نمایشگر قطعهبندیشده برای مقادیر گسسته مانند تنفس کاملاً مناسب است. SEGMENTED_10 شما ده واحد قابل مشاهده دارید:
bar.setTitle("💨 Sauerstoff");
bar.setStyle(BarStyle.SEGMENTED_10);
bar.setProgress(player.getRemainingAir() / 300.0);
مثال ۳: نوار ترس ضرباندار: یک موج سینوسی باعث میشود که پیشرفت به صورت ریتمیک نوسان کند. در یک BukkitRunnable این یک اثر پر جنب و جوش ایجاد می کند.:
double pulse = 0.5 + 0.5 * Math.sin(phase);
bar.setProgress(fearLevel * pulse);
bar.setTitle(fearLevel > 0.7 ? "💀 GEFAHR" : "👁 Unruhe");
شما میتوانید تا پنج نوار رئیس را به طور همزمان روی هم قرار دهید و سیستمهای پیچیده HUD را فعال کنید. برای اینکه یک نوار تقریباً نامرئی شود، پیشرفت را روی ... تنظیم میکنید. 0.0001 – عنوان بازی قابل مشاهده باقی میماند، اما نوار پیشرفت ناپدید میشود. بنابراین، نوار رئیس ابزاری دست کم گرفته شده برای مکانیکهای بازی با اتمسفر خاص است. به خصوص در بازیهای ترسناک یا بقا، میتوان از آن برای پیشنهاد موقعیتها بدون آشکار کردن اعداد و ارقام قطعی برای بازیکن استفاده کرد.
برای پیاده سازی کارآمد چنین مکانیکی، توصیه می شود از دیگ بخار کوچک من استفاده کنید که ساختار پلاگین را مشخص می کند. علاوه بر پیکربندی Gradle، این مخزن همچنین حاوی اسکریپت های ساخت برای محیط های محلی و تولیدی و همچنین نمونه هایی برای سلاح های سفارشی و بسته های منابع است. این به شما امکان میدهد ایدههای جدید HUD را خیلی سریع امتحان کنید، زیرا لازم نیست هر بار برای بستهبندی، راهاندازی سرور و جزئیات استقرار وقت صرف کنید.