Skip to content

Commit

Permalink
Add showDeathScreen
Browse files Browse the repository at this point in the history
  • Loading branch information
Almighty-Satan committed Aug 17, 2024
1 parent 72d26cb commit a902514
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ public enum ConfigSetting implements SectionEntry {
PLAYER_CHEST_LIMIT(ConfigSettingSection.OTHER, "playerChestLimit", 2, "Wie viele Chests ein Team\nregistrieren darf.\nOff = 0, Unendlich = -1"),
PLAYER_FURNACE_LIMIT(ConfigSettingSection.OTHER, "playerFurnaceLimit", -1, "Wie viele Furnaces ein\nSpieler registrieren darf.\nOff = 0, Undendlich = -1"),
PLAYER_SPECTATE_AFTER_DEATH(ConfigSettingSection.DEATH, "playerSpectateAfterDeath", false, "Ob ein Spieler nach seinem Tod Spectator wird."),
PLAYER_SHOW_DEATH_SCREEN(ConfigSettingSection.DEATH, "showDeathScreen", false, "Ob ein Spieler seinen death screen sehen soll."),

// FINALE
PLAYER_SPECTATE_IN_FINALE(ConfigSettingSection.FINALE, "playerSpectateInFinale", true, "Ob die toten Spieler waehrend des Finales spectaten duerfen."),
Expand Down
11 changes: 7 additions & 4 deletions src/de/cuuky/varo/entity/player/stats/Stats.java
Original file line number Diff line number Diff line change
Expand Up @@ -626,12 +626,10 @@ public void setShowScoreboard(boolean showScoreboard) {
this.showScoreboard = showScoreboard;
}

public void setState(PlayerState state) {
public void setState(PlayerState state, boolean skipSpectator) {
if (EventUtils.callEvent(new PlayerStateChangeEvent(owner, state))) return;

this.state = state;
if (state == PlayerState.DEAD)
this.diedAt = new Date();

switch (state) {
case ALIVE:
Expand All @@ -641,14 +639,19 @@ public void setState(PlayerState state) {
this.diedAt = new Date();
break;
case SPECTATOR:
this.owner.setSpectacting();
if (!skipSpectator)
this.owner.setSpectacting();
break;
default:
throw new Error("Unknown playerstate");
}

new WinnerCheck();
}

public void setState(PlayerState state) {
this.setState(state, false);
}

public void setTimeUntilAddSession(Date timeUntilNewSession) {
this.timeUntilAddSession = timeUntilNewSession;
Expand Down
7 changes: 3 additions & 4 deletions src/de/cuuky/varo/listener/PlayerDeathListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ public void onPlayerDeath(PlayerDeathEvent event) {
if (!ConfigSetting.PLAYER_SPECTATE_AFTER_DEATH.getValueAsBoolean()) {
if (ConfigSetting.KICK_DELAY_AFTER_DEATH.isIntActivated()) {
Main.getLanguageManager().broadcastMessage(ConfigMessages.QUIT_KICK_IN_SECONDS, deadP).replace("%countdown%", String.valueOf(ConfigSetting.KICK_DELAY_AFTER_DEATH.getValueAsInt()));
deadP.getStats().setState(PlayerState.SPECTATOR);
deadP.setSpectacting();
deadP.getStats().setState(PlayerState.SPECTATOR, ConfigSetting.PLAYER_SHOW_DEATH_SCREEN.getValueAsBoolean());
deadP.update();
new BukkitRunnable() {
@Override
public void run() {
Expand All @@ -81,8 +81,7 @@ public void run() {
} else
kickDeadPlayer(deadP, killer);
} else {
deadP.setSpectacting();
deadP.getStats().setState(PlayerState.SPECTATOR);
deadP.getStats().setState(PlayerState.SPECTATOR, ConfigSetting.PLAYER_SHOW_DEATH_SCREEN.getValueAsBoolean());
deadP.update();
}
} else {
Expand Down
10 changes: 9 additions & 1 deletion src/de/cuuky/varo/listener/PlayerRespawnListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,24 @@
import org.bukkit.scheduler.BukkitRunnable;

import de.cuuky.varo.Main;
import de.cuuky.varo.configuration.configurations.config.ConfigSetting;
import de.cuuky.varo.entity.player.VaroPlayer;
import de.cuuky.varo.entity.player.stats.stat.PlayerState;

public class PlayerRespawnListener implements Listener {

@EventHandler
public void onPlayerRespawn(PlayerRespawnEvent event) {
VaroPlayer player = VaroPlayer.getPlayer(event.getPlayer());
if (ConfigSetting.PLAYER_SHOW_DEATH_SCREEN.getValueAsBoolean() && player.getStats().getState() == PlayerState.SPECTATOR) {
player.setSpectacting();
event.setRespawnLocation(event.getPlayer().getLocation());
}

new BukkitRunnable() {
@Override
public void run() {
VaroPlayer.getPlayer(event.getPlayer()).setNormalAttackSpeed();
player.setNormalAttackSpeed();
}
}.runTaskLater(Main.getInstance(), 20L);
}
Expand Down

0 comments on commit a902514

Please sign in to comment.