Add new minecraft suicide event
This commit is contained in:
parent
36d3f7a076
commit
3b6e62a3d1
3 changed files with 50 additions and 3 deletions
|
@ -36,6 +36,6 @@ public class MC13DTL extends JavaPlugin {
|
|||
scheduler.runTask(this, () -> {
|
||||
board = new TeamScoreBoard();
|
||||
});
|
||||
scheduler.runTaskTimer(this, new EventRunner(), 0, 100);
|
||||
scheduler.runTaskTimer(this, new EventRunner(), 0, 200);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package gent.zeus.mc13dtl.events;
|
||||
|
||||
import gent.zeus.mc13dtl.events.catalog.SuicideEvent;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.World;
|
||||
|
@ -39,8 +40,9 @@ public class EventRunner implements Runnable {
|
|||
Team team = teams.get(i);
|
||||
Difficulty difficulty = difficulties.get(i);
|
||||
switch ((int) day) {
|
||||
case 0 -> new TestEvent(team, difficulty, getDayScore());
|
||||
case 1 -> new TestEvent2(team, difficulty, getDayScore());
|
||||
case 0 -> new SuicideEvent(team, difficulty, getDayScore());
|
||||
case 1 -> new TestEvent(team, difficulty, getDayScore());
|
||||
case 2 -> new TestEvent2(team, difficulty, getDayScore());
|
||||
}
|
||||
}
|
||||
world.getPersistentDataContainer().set(eventKey, PersistentDataType.LONG, day);
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
package gent.zeus.mc13dtl.events.catalog;
|
||||
|
||||
import gent.zeus.mc13dtl.MC13DTL;
|
||||
import gent.zeus.mc13dtl.events.Difficulty;
|
||||
import gent.zeus.mc13dtl.events.Event;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.scoreboard.Team;
|
||||
|
||||
|
||||
public class SuicideEvent extends Event {
|
||||
// Time left for team member to commit suicide in seconds.
|
||||
private long timeLeft;
|
||||
|
||||
public SuicideEvent(Team team, Difficulty difficulty, int scoreOnSuccess) {
|
||||
super(team, difficulty, scoreOnSuccess);
|
||||
|
||||
timeLeft = ((Difficulty.IMPOSSIBLE.ordinal() + 1) - difficulty.ordinal()) * 10;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
timeLeft--;
|
||||
if (timeLeft <= 0) {
|
||||
eventFailed();
|
||||
} else {
|
||||
MC13DTL.board.sendMessageToTeam(this.team, Component.text(timeLeft + " seconds left."));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getMessage() {
|
||||
return "A team member has to die within " + timeLeft + " seconds.";
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler
|
||||
public void onPlayerDeath(PlayerDeathEvent event) {
|
||||
if (MC13DTL.board.getPlayers(team).contains(event.getPlayer())) {
|
||||
eventSuccess();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue