added start, stop and getScore methods to Event
This commit is contained in:
@@ -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";
|
||||||
|
|||||||
@@ -1,6 +1,18 @@
|
|||||||
package eu.mhsl.craftattack.spawn.event.appliances.eventController;
|
package eu.mhsl.craftattack.spawn.event.appliances.eventController;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scoreboard.Scoreboard;
|
||||||
|
|
||||||
public interface Event {
|
public interface Event {
|
||||||
|
Scoreboard scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
|
||||||
|
|
||||||
String displayName();
|
String displayName();
|
||||||
|
void start();
|
||||||
|
void stop();
|
||||||
|
int getScore(Player p);
|
||||||
|
|
||||||
|
public default void updateSidebar() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user