📗پلاگین ماینکرفت

توضیحات کلی در مورد پلاگین ماینکرفت گیم تولز

پلاگین گیم تولز یک افزونه برای سرورهای ماینکرفت است که امکانات ویژه‌ای مانند سیستم رای‌دهی و بوست کردن سرور را ارائه می‌دهد.

✅ سیستم رای‌دهی

با استفاده از این سیستم، کاربران می‌توانند به سرورهای مورد علاقه‌شان رای دهند. این فرآیند به بازیکنان پاداش‌هایی از جمله آیتم‌ها و رتبه‌های مختلف می‌دهد.

🚀 سیستم بوست

این قابلیت به کاربران این امکان را می‌دهد که با خرید بوست، سرور مورد نظر خود را ارتقاء دهند. بوست کردن سرور باعث افزایش دیده شدن آن در بین کاربران و ارتقاء سطح دسترسی‌ها می‌شود.

توجه داشته باشید که برای استفاده از قابیلت پاداش بوست بازیکن باید قبل از بوست کردن سرور (با استفاده از پلاگین) به سرور شما در گیم تولز رای داده باشد تا اطلاعات آن در زمان رای ثبت شود.


⚙️ راهنمای نصب پلاگین

برای نصب پلاگین گیم تولز، مراحل زیر را دنبال کنید:

1️⃣ مرحله اول برای نصب پلاگین، کافیست وارد گیت هاب پلاگین شوید و آخرین نسخه پلاگین را دانلود کنید.

2️⃣ مرحله دوم پس از دانلود کردن پلاگین، آن را در فولدر plugins سرور خود قرار دهید و سپس سرور را یک بار ریستارت کنید تا فایل‌های پلاگین ساخته شوند.

3️⃣ مرحله سوم پس از ساخته شدن فولدر GameTools در فولدر plugins وارد آن شوید و فایل config.yml را باز کنید. در قسمت websocket.token، توکن سرور خود را وارد کنید:

برای دریافت توکن سرور شما باید رنک Owner داشته باشید. پس از آن، وارد پنل کاربری خود در گیم تولز شوید و از بخش سرورها تنظیمات سرور خود را باز کنید و توکن سرور خود را دریافت کنید.

4️⃣ مرحله چهارم سرور را یک بار دیگر ریستارت کنید تا تنظیمات اعمال شوند. پس از ریستارت شدن سرور، کنسول سرور را باز کنید. شما باید پیام زیر را مشاهده کنید:

[GameTools] Successfully Connected to the Websocket.

با مشاهده این پیام، پلاگین به‌طور کامل نصب شده است و شما می‌توانید از تمام امکانات آن استفاده کنید.

⚙️ Config

در این قسمت، برخی از تنظیماتی که ممکن است کمی نامفهوم باشند را به صورت کامل توضیح داده‌ایم.

فایل setting.yml

vote.only-broadcast-exist-player-message: boolean # true/false

این تنظیم در صورت true بودن به این معناست که فقط پیام رای دادن افرادی که از طریق پلاگین (فرمان /gametools vote) رای داده‌اند برای بقیه‌ی سرور ارسال شود. ولی در صورت false هر زمان که شخصی چه از طریق وب‌سایت گیم تولز چه از طریق دیسکورد MC Tools به سرور شما رای دهد، پیام رای او در سرور ارسال می‌شود.


vote.get-reward-just-in-first-time: boolean # true/false

این تنظیم به این معناست که سیستم پاداش توسط شما مدیریت شود یا خود گیم تولز. زمانی که این تنظیم true باشد، فقط زمانی که کاربر اولین بار در گیم تولز به سرور شما رای دهد پاداش دریافت می‌کند و اگر رای خود را به سرور دیگر تغییر دهد و دوباره به سرور شما رای دهد دیگر پاداش دریافت نمی‌کند. زمانی که این تنظیم false باشد، سیستم پاداش توسط خود سرور شما مدیریت می‌شود. یعنی زمانی که اطلاعات شخص رای دهنده از دیتابیس سرور شما حذف شود کاربر می تواند دوباره به سرور شما رای دهد.

این رای صرفاً برای سرور شما ارسال می‌شود و اگر در گیم تولز قبلاً رای داده باشد، رای دوباره ثبت نمی‌شود و صرفاً برای گرفتن پاداش دوباره فقط برای سرور شما ارسال می‌شود.


vote.auto-announce.interval: integer

این تنظیم مشخص می‌کند پیام Auto Announce برای رای هر چند ثانیه فرستاده شود. این عدد بر اساس ثانیه تعریف می‌شود.


boost.only-broadcast-exist-player-message: boolean # true/false

این تنظیم در صورت true بودن به این معناست که فقط پیام بوست دادن افرادی که قبلاً رای داده‌اند و داده‌های مربوط به دیسکورد آن‌ها در دیتابیس شما ثبت شده‌اند، فرستاده می‌شود. اگر این مقدار false باشد، هر شخصی که سرور شما را بوست کند، پیام آن برای همه ارسال می‌شود.

توجه داشته باشید برای اینکه بخواهید از قسمت پاداش بوست پلاگین استفاده کنید، شخصی که بوست می‌کند باید داده‌های دیسکورد او در دیتابیس پلاگین گیم تولز موجود باشد. برای اضافه شدن داده‌ها به دیتابیس گیم تولز، شخص کافی است با استفاده از فرمان gametools vote/ یک لینک رای دریافت کند و وارد وب‌سایت گیم تولز شود. حتماً توجه کنید که باید پیام رای دادن شخص در سرور ارسال شده باشد تا داده‌ی آن کامل در دیتابیس پلاگین گیم تولز ثبت شود. پس از انجام این کار، توسط پلیر داده‌ی او در دیتابیس محلی شما ثبت می‌شود و پس از آن هر چند بار که بوست انجام دهد، به طور خودکار پاداشی که شما در تنظیمات قرار داده‌اید را دریافت می‌کند و در صورت آفلاین بودن پلیر، زمانی که وارد سرور شود پاداش را دریافت می‌کند، یعنی با آفلاین بودن پلیر مشکلی در گرفتن پاداش پیش نمی‌آید.

توجه داشته باشید برای اینکه سیستم پاداش چه در قسمت رای و چه در قسمت بوست به درستی عمل کند، باید زمان رای دادن یا بوست کردن سرور توسط پلیر، سرور شما آنلاین باشد و به صورت کامل به گیم تولز متصل باشد. در صورت آفلاین بودن سرور شما، شخص هیچ پاداشی دریافت نمی‌کند و شما باید بطور دستی از طریق کامند های gametools reward boost-vote/ به پلیر مورد نظر پاداش را بدهید. توجه داشته باشد در قسمت رای اگر شما به شخصی که در زمان آفلاین بودن سرور رای داده است دستی پاداش دهید و پلیر دوباره از کامند gametools vote/ استفاده کند و کانفیگ vote.get-reward-just-in-first-time به حالت false باشد باز هم پاداش دریافت می کند پس بهتر است از پلیر بخواهید دوباره از کامند gametools vote/ استفاده کند و لینک ارسالی را باز کند.


⚡ Commands / Permissions

دستوردسترسی مورد نیاز
gametools vote/gametools.command.vote
gametools reward boost [player] [amount]/gametools.command.reward
gametools reward vote [player]/gametools.command.reward
gametools reload/gametools.command.reload

🔧 Plugin Usage

برای استفاده کردن از API پلاگین گیم تولز می‌توانید از روش‌های زیر استفاده کنید:

🛠️ Maven

<repository>
  <id>repo-sayandevelopment-snapshots</id>
  <name>SayanDevelopment Repository</name>
  <url>https://repo.sayandev.org/snapshots</url>
</repository>
 
<dependency>
  <groupId>ir.taher7</groupId>
  <artifactId>gametools</artifactId>
  <version>1.0.0-SNAPSHOT</version>
</dependency>

🛠️ Gradle

Groovy

repositories {
    maven {
        url "https://repo.sayandev.org/snapshots"
    }
}
 
dependencies {
    implementation 'ir.taher7:gametools:1.0.0-SNAPSHOT'
}

Kotlin

repositories {
    maven {
        url = uri("https://repo.sayandev.org/snapshots")
    }
}
 
dependencies {
    implementation("ir.taher7:gametools:1.0.0-SNAPSHOT")
}

🚨 Events

🔸 NewVoteEvent

این رویداد زمانی اجرا می‌شود که شخصی در گیم تولز به سرور شما رأی داده است و گیم تولز اطلاعات آن را برای شما ارسال می‌کند.

این رویداد قابل لغو است (Cancellable) و شما می‌توانید آن را در پلاگین خود مدیریت کنید.

پارامترهایی که به شما داده می‌شود

در صورت داشتن ? در کنار نوع داده، این مقدار ممکن است null باشد.

پارامترنوعتوضیحات
voteNewVoteشیء NewVote، اطلاعات رأی داده شده توسط شخص.
isVotedVote?شیء Vote که وضعیت رأی را نشان می‌دهد.
playerPlayer?شیء Player که نماینده بازیکن است که رأی داده است.

برای اطلاعات بیشتر می توانید به Github پلاگین مراجع کنید.


🔸 NewBoostEvent

این رویداد زمانی اجرا می‌شود که شخصی سرور شما را بوست کرده باشد و گیم تولز اطلاعات آن را برای شما ارسال می‌کند.

این رویداد قابل لغو است (Cancellable) و شما می‌توانید آن را در پلاگین خود مدیریت کنید.

پارامترهایی که به شما داده می‌شود

در صورت داشتن ? در کنار نوع داده، این مقدار ممکن است null باشد.

پارامترنوعتوضیحات
boostNewBoostشیء NewBoost که اطلاعات مربوط به بوست را نشان می‌دهد.
userUser?شیء User که اطلاعات مربوط به کاربر را نشان می‌دهد.

برای اطلاعات بیشتر می توانید به Github پلاگین مراجع کنید.


🔸 RequestVoteEvent

این رویداد زمانی اجرا می‌شود که بازیکنی با استفاده از دستور /gametools vote درخواست رأی داده است و در جواب گیم تولز اطلاعات مربوط به رأی را برای او ارسال می‌کند.

این رویداد قابل لغو است (Cancellable) و شما می‌توانید آن را در پلاگین خود مدیریت کنید.

پارامترهایی که به شما داده می‌شود

در صورت داشتن ? در کنار نوع داده، این مقدار ممکن است null باشد.

پارامترنوعتوضیحات
requestVoteRequestVoteشیء RequestVote که اطلاعات مربوط به درخواست رأی را نشان می‌دهد.
playerPlayerشیء Player که نماینده بازیکنی است که درخواست رأی داده است.

برای اطلاعات بیشتر می توانید به Github پلاگین مراجع کنید.


🛠️ GameToolsManager

کلاس GameToolsManager تمام ابزارهای اصلی پلاگین GameTools را در خود جای داده است که شما می‌توانید از آن‌ها در پلاگین خود استفاده کنید.

🔸 متغیر serverData

این یک متغیر است که زمانی که پلاگین به گیم تولز متصل می‌شود، داده‌های مربوط به سرور را مقداردهی اولیه می‌کند و قبل از اتصال به گیم تولز، داده‌ها خالی هستند.

پارامترهای این متغیر

پارامترنوعتوضیحات
nameStringنام سرور
addressStringآدرس سرور
colorStringرنگ سرور (بصورت کد هگزادسیمال)

🔸 متد giveVoteRewards(player: Player)

با استفاده از این تابع می‌توانید به بازیکن دلخواه، پاداش‌هایی که در پیکربندی رأی تنظیم کرده‌اید، اختصاص دهید.

پارامترهای این متغیر

پارامترنوعتوضیحات
playerPlayerبازیکنی که می‌خواهید پاداش را به او بدهید.

🔸 متد giveBoostRewards(player: Player, amount: Int)

با استفاده از این تابع می‌توانید پاداش‌های مربوط به Boost که در پیکربندی تعیین کرده‌اید، را به بازیکن دلخواه اختصاص دهید.

پارامترهای این متغیر

پارامترنوعتوضیحات
playerPlayerبازیکنی که می‌خواهید پاداش را به او بدهید.
amountIntمقدار Boost که به بازیکن داده می‌شود.

🔸 متد sendVoteRequest(player: Player)

با استفاده از این تابع می‌توانید برای یک بازیکن دلخواه درخواست اطلاعات رأی به گیم تولز ارسال کنید و از طریق رویداد RequestVoteEvent آن را دریافت کنید.

پارامترهای این متغیر

پارامترنوعتوضیحات
playerPlayerبازیکنی که می‌خواهید درخواست رأی را برای او ارسال کنید.

اگر هر مشکلی در استفاده از پلاگین گیم تولز داشتید، می‌توانید با وارد شدن به دیسکورد گیم تواز از طریق سیستم تیکت، مشکل خود را بیان کنید.

آخرین آپدیت