master-big-events #11
@@ -19,10 +19,10 @@ public class EventOpenSessionCommand extends ApplianceCommand<Event> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) throws Exception {
|
protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) throws Exception {
|
||||||
if(args.length == 1) {
|
if(args.length == 0) {
|
||||||
this.getAppliance().openEvent(Event.EventType.SMALL);
|
this.getAppliance().openEvent(Event.EventType.SMALL);
|
||||||
} else {
|
} else {
|
||||||
this.getAppliance().openEvent(Event.EventType.valueOf(args[1]));
|
this.getAppliance().openEvent(Event.EventType.valueOf(args[0]));
|
||||||
}
|
}
|
||||||
sender.sendMessage(Component.text("Event-Server gestartet!", NamedTextColor.GREEN));
|
sender.sendMessage(Component.text("Event-Server gestartet!", NamedTextColor.GREEN));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ public class Deathrun extends Appliance implements Event, Scorable {
|
|||||||
public void stop() {
|
public void stop() {
|
||||||
this.getScoreboardBuilder().stopAutomaticUpdates();
|
this.getScoreboardBuilder().stopAutomaticUpdates();
|
||||||
Title title = Title.title(Component.text("Ende!"), Component.empty());
|
Title title = Title.title(Component.text("Ende!"), Component.empty());
|
||||||
this.pvpTask.cancel();
|
if(this.pvpTask != null) this.pvpTask.cancel();
|
||||||
this.pvpDisabled = true;
|
this.pvpDisabled = true;
|
||||||
Bukkit.getOnlinePlayers().forEach(player -> {
|
Bukkit.getOnlinePlayers().forEach(player -> {
|
||||||
player.showTitle(title);
|
player.showTitle(title);
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
|
||||||
|
|
||||||
public class DeathrunPlayerDamageListener extends ApplianceListener<Deathrun> {
|
public class DeathrunPlayerDamageListener extends ApplianceListener<Deathrun> {
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@@ -23,9 +22,4 @@ public class DeathrunPlayerDamageListener extends ApplianceListener<Deathrun> {
|
|||||||
if(!(event.getEntity() instanceof Player)) return;
|
if(!(event.getEntity() instanceof Player)) return;
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onHunger(FoodLevelChangeEvent event) {
|
|
||||||
if(!this.getAppliance().isBeforeStart()) event.setCancelled(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.GameRule;
|
import org.bukkit.GameRule;
|
||||||
import org.bukkit.Statistic;
|
import org.bukkit.Statistic;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -81,14 +82,18 @@ public class EventController extends Appliance {
|
|||||||
this.selectedEvent = null;
|
this.selectedEvent = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasLoadedEvent() {
|
||||||
|
return this.selectedEvent != null;
|
||||||
|
}
|
||||||
|
|
||||||
public void scheduleStart(long durationMinutes) {
|
public void scheduleStart(long durationMinutes) {
|
||||||
if(this.selectedEvent == null) throw new ApplianceCommand.Error("There is no event selected!");
|
if(!this.hasLoadedEvent()) throw new ApplianceCommand.Error("There is no event selected!");
|
||||||
this.durationMinutes = durationMinutes;
|
this.durationMinutes = durationMinutes;
|
||||||
this.countdown.start();
|
this.countdown.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void cancelStart() {
|
public void cancelStart() {
|
||||||
this.countdown.cancel();
|
if(this.countdown.isRunning()) this.countdown.cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Component format(Countdown.AnnouncementData data) {
|
private Component format(Countdown.AnnouncementData data) {
|
||||||
@@ -154,7 +159,10 @@ public class EventController extends Appliance {
|
|||||||
|
|
||||||
Bukkit.getScheduler().runTaskLater(
|
Bukkit.getScheduler().runTaskLater(
|
||||||
Main.instance(),
|
Main.instance(),
|
||||||
() -> Bukkit.getOnlinePlayers().forEach(player -> PluginMessage.connect(player, "craftattack")),
|
() -> {
|
||||||
|
Bukkit.getOnlinePlayers().forEach(player -> PluginMessage.connect(player, "craftattack"));
|
||||||
|
this.unloadEvent();
|
||||||
|
},
|
||||||
Ticks.TICKS_PER_SECOND * 7
|
Ticks.TICKS_PER_SECOND * 7
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -181,6 +189,13 @@ public class EventController extends Appliance {
|
|||||||
return String.format("%02d:%02d:%02d", seconds / 3600, (seconds / 60) % 60, seconds % 60);
|
return String.format("%02d:%02d:%02d", seconds / 3600, (seconds / 60) % 60, seconds % 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected @NotNull List<Listener> listeners() {
|
||||||
|
return List.of(
|
||||||
|
new EventPlayerLoginListener()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected @NotNull List<ApplianceCommand<?>> commands() {
|
protected @NotNull List<ApplianceCommand<?>> commands() {
|
||||||
return List.of(
|
return List.of(
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package eu.mhsl.craftattack.spawn.event.appliances.eventController;
|
||||||
|
|
||||||
|
import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
|
||||||
|
public class EventPlayerLoginListener extends ApplianceListener<EventController> {
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||||
|
if(event.getPlayer().isOp()) return;
|
||||||
|
if(this.getAppliance().hasLoadedEvent()) return;
|
||||||
|
event.getPlayer().kick(Component.text("Es ist kein Event geladen."));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -53,9 +53,6 @@ public class EventScoreboardBuilder {
|
|||||||
objective.numberFormat(NumberFormat.blank());
|
objective.numberFormat(NumberFormat.blank());
|
||||||
|
|
||||||
UUID uuid = p.getUniqueId();
|
UUID uuid = p.getUniqueId();
|
||||||
scoreList.removeIf(e -> e.playerUuid().equals(uuid));
|
|
||||||
scoreList.add(new EventScoreEntry(uuid, p.getName(), this.scorable.getScore(p)));
|
|
||||||
|
|
||||||
scoreList.sort(this.scoreComparator);
|
scoreList.sort(this.scoreComparator);
|
||||||
|
|
||||||
int size = scoreList.size();
|
int size = scoreList.size();
|
||||||
@@ -140,8 +137,19 @@ public class EventScoreboardBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateScore(Player p) {
|
private void updateScore(Player p) {
|
||||||
this.playerScores.removeIf(entry -> entry.playerUuid().equals(p.getUniqueId()));
|
EventScoreEntry previousEntry = this.playerScores.stream()
|
||||||
this.playerScores.add(new EventScoreEntry(p.getUniqueId(), p.getName(), this.scorable.getScore(p)));
|
.filter(entry -> entry.playerUuid().equals(p.getUniqueId()))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
if(previousEntry == null) {
|
||||||
|
this.playerScores.add(new EventScoreEntry(p.getUniqueId(), p.getName(), this.scorable.getScore(p)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int currentScore = this.scorable.getScore(p);
|
||||||
|
if(previousEntry.score() < currentScore) {
|
||||||
|
this.playerScores.removeIf(entry -> entry.playerUuid().equals(p.getUniqueId()));
|
||||||
|
this.playerScores.add(new EventScoreEntry(p.getUniqueId(), p.getName(), currentScore));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateScoreboards() {
|
public void updateScoreboards() {
|
||||||
|
|||||||
Reference in New Issue
Block a user