Spigot Plugin

DropperMinigame

Crea um plugin Minigame Completo di lobby e mappe di Dropper. In pratica il gameplay è: Lobby / voto mappe I player votano le mappe. La partita sceglie più livelli con difficoltà diverse, tipo easy/medium/hard. Caduta Parti da una piattaforma. Devi scegliere la traiettoria giusta mentre cadi. Se tocchi blocchi/ostacoli muori e riparti. Obiettivo Finire tutte le mappe il più velocemente possibile. Vince chi completa il percorso prima degli altri. Stile È molto basata su memoria delle mappe, riflessi, route ottimizzate e speedrun.

Read the full description

Una volta imparata la mappa, puoi fare traiettorie sempre più precise. È stata rilasciata nel Prototype Lobby il 25 luglio 2022 e poi spostata/uscita ufficialmente negli Arcade Games il 14 settembre 2023. Deve includere arena system, livelli, checkpoint/respawn, timer, classifiche, voto mappe e modalità party/solo. per le arene devono essere dinamiche, ovvero che viene configurata una mappa in un mondo, e quando un giocatore entra in una partita, viene creato un mondo temporaneo per quella partita. possibilmente usando SlimeWorldManager. Lingua italiana. il plugin deve avere gui, item hotbar anche nella main lobby, setup completo, comandi completi.

src/main/java/eu/codexe/dropperminigame/DropperPlugin.java
package eu.codexe.dropperminigame;

import eu.codexe.dropperminigame.commands.DropperCommand;
import eu.codexe.dropperminigame.commands.DSetupCommand;
import eu.codexe.dropperminigame.config.PluginConfig;
import eu.codexe.dropperminigame.config.Messages;
import eu.codexe.dropperminigame.gui.GuiManager;
import eu.codexe.dropperminigame.listeners.ChatListener;
import eu.codexe.dropperminigame.listeners.GameListener;
import eu.codexe.dropperminigame.listeners.GuiClickListener;
import eu.codexe.dropperminigame.listeners.HotbarListener;
import eu.codexe.dropperminigame.listeners.LobbyProtectionListener;
import eu.codexe.dropperminigame.listeners.PlayerJoinListener;
import eu.codexe.dropperminigame.listeners.PlayerQuitListener;
import eu.codexe.dropperminigame.listeners.SetupListener;
import eu.codexe.dropperminigame.managers.GameManager;
import eu.codexe.dropperminigame.managers.HotbarManager;
import eu.codexe.dropperminigame.managers.LobbyManager;
import eu.codexe.dropperminigame.managers.MapManager;
import eu.codexe.dropperminigame.managers.PartyManager;
import eu.codexe.dropperminigame.managers.ScoreboardManager;
import eu.codexe.dropperminigame.managers.SlimeManager;
import eu.codexe.dropperminigame.placeholders.DropperExpansion;
import eu.codexe.dropperminigame.storage.MySQLStorage;
import eu.codexe.dropperminigame.storage.SQLiteStorage;
import eu.codexe.dropperminigame.storage.StorageManager;
import eu.codexe.dropperminigame.storage.YamlStorage;
import eu.codexe.dropperminigame.utils.ColorUtil;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import org.bstats.bukkit.Metrics;

import java.util.logging.Level;

public class DropperPlugin extends JavaPlugin {

    private static DropperPlugin instance;

    private PluginConfig pluginConfig;
    private Messages messages;
    private StorageManager storageManager;
    private MapManager mapManager;
    private GameManager gameManager;
    private PartyManager partyManager;
    private LobbyManager lobbyManager;
    private HotbarManager hotbarManager;
    private ScoreboardManager scoreboardManager;
    private GuiManager guiManager;
    private SlimeManager slimeManager;

    @Override
    public void onEnable() {
        instance = this;

        saveDefaultConfig();
        saveResource("messages.yml", false);

        pluginConfig = new PluginConfig(this);
        messages = new Messages(this);