SlotSignPlugin
Minecraft Paper 1.26.2用のプラグインを作成してください。 機能 * 看板をスロットにできるプラグイン。 * 看板の1行目に (slot100) と書くと、その看板は100円で遊べるスロットになる。 * (slot500) と書けば500円、(slot1000) と書けば1000円など、数字がそのままプレイ料金になる。 * プレイ時はVault対応の経済プラグインから料金を引く。 当たり * ハズレ * 小当たり * 当たり * 大当たり * ジャックポット(超大当たり) 配当 倍率は看板の料金から自動で計算する。 例 * 小当たり:2倍 * 当たり:5倍 * 大当たり:10倍 * ジャックポット:50倍 例 * (slot100)なら * 小当たり 200円 * 当たり 500円 * 大当たり 1000円 * ジャックポット 5000円 * (slot1000)なら * 小当たり 2000円 * 当たり 5000円 * 大当たり 10000円 * ジャックポット 50000円 演出 * 数字や絵柄が回転する演出を入れる。 * 最後に結果が止まる。 * 当たりごとに違う音を鳴らす。 * 大当たり・ジャックポットでは花火を出す。 メッセージ * 「100円支払いました!」
Read the full description
* 「小当たり!200円獲得!」 * 「当たり!500円獲得!」 * 「大当たり!1000円獲得!」 * 「ジャックポット!5000円獲得!」 管理機能 * 権限がある人だけスロット看板を作れる。 * 管理者はコマンドで当選確率を変更できる。 * 設定ファイル(config.yml)で倍率・確率・音・メッセージを変更できる。 対応 * Paper 1.26.2 * Vault対応 * Java版とGeyser経由の統合版プレイヤーでも使えるようにする。
package eu.codexe.slotsignplugin;
import eu.codexe.slotsignplugin.commands.SlotSignCommand;
import eu.codexe.slotsignplugin.listeners.SignInteractListener;
import eu.codexe.slotsignplugin.listeners.SignPlaceListener;
import eu.codexe.slotsignplugin.managers.AnimationManager;
import eu.codexe.slotsignplugin.managers.EconomyManager;
import eu.codexe.slotsignplugin.managers.MessageManager;
import eu.codexe.slotsignplugin.managers.SlotMachineManager;
import eu.codexe.slotsignplugin.storage.StorageManager;
import eu.codexe.slotsignplugin.storage.YamlStorage;
import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
public final class SlotSignPlugin extends JavaPlugin {
private PluginSettings settings;
private MessageManager messageManager;
private StorageManager storageManager;
private EconomyManager economyManager;
private SlotMachineManager slotMachineManager;
private AnimationManager animationManager;
@Override
public void onEnable() {
saveDefaultConfig();
this.settings = new PluginSettings(this);
this.messageManager = new MessageManager(this);
this.storageManager = new YamlStorage(this);
this.economyManager = new EconomyManager(this);
this.slotMachineManager = new SlotMachineManager(this, settings, messageManager, storageManager, economyManager);
this.animationManager = new AnimationManager(this, settings);
if (!economyManager.setupVault()) {
getLogger().severe("Vault economy provider was not found.");
Bukkit.getPluginManager().disablePlugin(this);
return;
}
storageManager.load();
animationManager.start();
registerListeners();
registerCommands();
new Metrics(this, 26964);
getLogger().info("SlotSignPlugin has been enabled.");
}
@Override
public void onDisable() {
if (animationManager != null) {
animationManager.stop();
}
if (storageManager != null) {
storageManager.saveAll();
}
}