HeldenHearts
Erstelle ein Minecraft Paper 1.21.11 Plugin namens HeldenHearts. Herzen-System: Über der Hotbar sollen genau 3 hellblaue Herzen wie auf dem beigefügten Bild angezeigt werden. Die normalen Minecraft-Herzen bleiben unverändert sichtbar. Die Anzeige soll optisch möglichst exakt wie auf dem Bild aussehen. /helden hearts give <spieler> <anzahl> gibt dem Spieler die angegebene Anzahl Herzen. /helden hearts give all <anzahl> gibt allen Spielern die angegebene Anzahl Herzen. /helden hearts check <spieler> zeigt, wie viele Herzen der Spieler besitzt.
Read the full description
/helden hearts check all zeigt eine Liste aller Spieler und wie viele Herzen jeder besitzt. Die Anzahl der Herzen muss gespeichert werden und nach einem Serverneustart erhalten bleiben. Kopfgeld-System: Oberhalb der Herzen soll ein schwarzes Feld mit ? angezeigt werden, solange kein Kopfgeld aktiv ist. /helden kopfgeld reroll startet eine neue Kopfgeld-Zuweisung. Jeder Spieler bekommt genau einen anderen Spieler als Kopfgeldziel. Die Kopfgelder müssen gegenseitig als Paare funktionieren: Wenn Spieler A Spieler B als Ziel bekommt, muss Spieler B automatisch Spieler A als Ziel bekommen. Beispiel: Wenn Rynex mein Kopfgeldziel ist, muss ich gleichzeitig Rynex' Kopfgeldziel sein. Kein Spieler darf sich selbst als Ziel bekommen. Oberhalb der Herzen wird nach dem Reroll das Minecraft-Skin-Kopf-Icon des jeweiligen Kopfgeldziels angezeigt, nicht mehr das ?. Jeder Spieler soll dabei seinen eigenen Ziel-Spielerkopf sehen. /helden kopfgeld end beendet/pausiert die aktuelle Kopfgeld-Runde und setzt die Anzeige wieder auf ?. Die Kopfgeld-Ziele müssen gespeichert werden. Wichtig: Paper 1.21.11, vollständiges funktionierendes Plugin, keine Platzhalter und keine Mockup-Funktionen. Gib das fertige Projekt so aus, dass es direkt zu einer .jar gebaut werden kann.
package eu.codexe.heldenhearts;
import eu.codexe.heldenhearts.commands.HeldenCommand;
import eu.codexe.heldenhearts.hud.HudManager;
import eu.codexe.heldenhearts.listeners.PlayerListener;
import eu.codexe.heldenhearts.storage.SQLiteStorage;
import eu.codexe.heldenhearts.storage.StorageManager;
import org.bukkit.command.PluginCommand;
import org.bukkit.plugin.java.JavaPlugin;
public final class HeldenHeartsPlugin extends JavaPlugin {
private StorageManager storage;
private HudManager hudManager;
@Override
public void onEnable() {
saveDefaultConfig();
storage = new SQLiteStorage(this);
storage.initialize();
hudManager = new HudManager(this, storage);
hudManager.start();
getServer().getPluginManager().registerEvents(
new PlayerListener(this, storage, hudManager),
this
);
PluginCommand command = getCommand("helden");
if (command != null) {
HeldenCommand heldenCommand = new HeldenCommand(this, storage, hudManager);
command.setExecutor(heldenCommand);
command.setTabCompleter(heldenCommand);
}
getLogger().info("HeldenHearts wurde aktiviert.");
}
@Override
public void onDisable() {
if (hudManager != null) {
hudManager.stop();
}
if (storage != null) {
storage.close();
}
getLogger().info("HeldenHearts wurde deaktiviert.");
}
public StorageManager getStorage() {
return storage;
}
public HudManager getHudManager() {
return hudManager;
}
}