added start, stop and getScore methods to Event

This commit is contained in:
2025-11-30 18:07:15 +01:00
parent f7430c8fc8
commit 212f84b6de
2 changed files with 48 additions and 2 deletions

View File

@@ -2,9 +2,43 @@ package eu.mhsl.craftattack.spawn.event.appliances.deathrun;
import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.event.appliances.eventController.Event; import eu.mhsl.craftattack.spawn.event.appliances.eventController.Event;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.title.Title;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
@Appliance.Flags(autoload = false) @Appliance.Flags(autoload = false)
public class Deathrun extends Appliance implements Event { public class Deathrun extends Appliance implements Event {
@Override
public void initialize(@NotNull JavaPlugin plugin) {
World world = Bukkit.getWorlds().getFirst();
world.getWorldBorder().setCenter(world.getSpawnLocation());
world.getWorldBorder().setSize(20);
}
@Override
public void start() {
Title title = Title.title(Component.text("Start"), Component.text("Erreiche die höchste x-Koordinate!"));
Bukkit.getOnlinePlayers().forEach(player -> player.showTitle(title));
World world = Bukkit.getWorlds().getFirst();
world.getWorldBorder().setSize(world.getWorldBorder().getMaxSize());
}
@Override
public int getScore(Player p) {
return (int) Math.ceil(p.getLocation().subtract(Bukkit.getWorlds().getFirst().getSpawnLocation()).x());
}
@Override
public void stop() {
Title title = Title.title(Component.text("Ende!"), Component.empty());
Bukkit.getOnlinePlayers().forEach(player -> player.showTitle(title));
}
@Override @Override
public String displayName() { public String displayName() {
return "Deathrun"; return "Deathrun";

View File

@@ -1,6 +1,18 @@
package eu.mhsl.craftattack.spawn.event.appliances.eventController; package eu.mhsl.craftattack.spawn.event.appliances.eventController;
public interface Event { import org.bukkit.Bukkit;
String displayName(); import org.bukkit.entity.Player;
import org.bukkit.scoreboard.Scoreboard;
public interface Event {
Scoreboard scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
String displayName();
void start();
void stop();
int getScore(Player p);
public default void updateSidebar() {
}
} }