Skip to content

Commit 68a2dd8

Browse files
committed
feat: go to snapshot, changed the default of bungee.serverRestart, added bungee.rejoin-players-after-game
1 parent 67d9f00 commit 68a2dd8

File tree

4 files changed

+47
-4
lines changed

4 files changed

+47
-4
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version=0.2.42.2
1+
version=0.2.43-SNAPSHOT
22

33
org.gradle.caching=true
44
org.gradle.parallel=true

plugin/src/main/java/org/screamingsandals/bedwars/config/Configurator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,12 @@ public void createFiles() {
175175
checkOrSetConfig(modify, "change-allowed-commands-to-blacklist", false);
176176

177177
checkOrSetConfig(modify, "bungee.enabled", false);
178-
checkOrSetConfig(modify, "bungee.serverRestart", true);
178+
checkOrSetConfig(modify, "bungee.serverRestart", false);
179179
checkOrSetConfig(modify, "bungee.serverStop", false);
180180
checkOrSetConfig(modify, "bungee.server", "hub");
181181
checkOrSetConfig(modify, "bungee.auto-game-connect", false);
182182
checkOrSetConfig(modify, "bungee.kick-when-proxy-too-slow", true);
183+
checkOrSetConfig(modify, "bungee.rejoin-players-after-game", false);
183184
checkOrSetConfig(modify, "bungee.random-game-selection.enabled", config.getBoolean("bungee.select-random-game", true));
184185
checkOrSetConfig(modify, "bungee.random-game-selection.preselect-games", false);
185186
checkOrSetConfig(modify, "bungee.motd.enabled", false);

plugin/src/main/java/org/screamingsandals/bedwars/game/Game.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2479,7 +2479,7 @@ && getOriginalOrInheritedSpawnerHologramsCountdown()
24792479
String message = i18nc("game_end", customPrefix);
24802480
for (GamePlayer player : (List<GamePlayer>) ((ArrayList<GamePlayer>) players).clone()) {
24812481
player.player.sendMessage(message);
2482-
player.changeGame(null);
2482+
player.changeGame(null, true);
24832483

24842484
if (Main.getConfigurator().config.getBoolean("rewards.enabled")) {
24852485
final Player pl = player.player;

plugin/src/main/java/org/screamingsandals/bedwars/game/GamePlayer.java

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,25 @@
1919

2020
package org.screamingsandals.bedwars.game;
2121

22+
import org.bukkit.Bukkit;
2223
import org.bukkit.GameMode;
2324
import org.bukkit.Location;
2425
import org.bukkit.entity.Player;
2526
import org.bukkit.inventory.ItemStack;
2627
import org.bukkit.inventory.PlayerInventory;
2728
import org.bukkit.potion.PotionEffect;
29+
import org.bukkit.scheduler.BukkitRunnable;
2830
import org.bukkit.scoreboard.Scoreboard;
2931
import org.screamingsandals.bedwars.Main;
32+
import org.screamingsandals.bedwars.commands.BaseCommand;
3033
import org.screamingsandals.bedwars.utils.BungeeUtils;
3134
import org.screamingsandals.bedwars.lib.nms.entity.PlayerUtils;
3235

3336
import java.util.ArrayList;
3437
import java.util.List;
3538

39+
import static org.screamingsandals.bedwars.commands.BaseCommand.ADMIN_PERMISSION;
40+
3641
public class GamePlayer {
3742
public final Player player;
3843
private Game game = null;
@@ -51,13 +56,50 @@ public GamePlayer(Player player) {
5156
}
5257

5358
public void changeGame(Game game) {
59+
changeGame(game, false);
60+
}
61+
62+
public void changeGame(Game game, boolean gameEndLeave) {
5463
if (this.game != null && game == null) {
5564
this.game.internalLeavePlayer(this);
5665
this.game = null;
5766
this.isSpectator = false;
5867
this.clean();
5968
if (Game.isBungeeEnabled()) {
60-
BungeeUtils.movePlayerToBungeeServer(player, Main.isDisabling());
69+
if (gameEndLeave
70+
&& !Main.isDisabling()
71+
&& Main.getConfigurator().config.getBoolean("bungee.rejoin-players-after-game")
72+
&& !Main.getConfigurator().config.getBoolean("bungee.serverRestart")
73+
&& !Main.getConfigurator().config.getBoolean("bungee.serverStop")) {
74+
new BukkitRunnable() {
75+
public void run() {
76+
try {
77+
Game game = null;
78+
if (Main.getConfigurator().config.getBoolean("bungee.random-game-selection.enabled")) {
79+
if (Main.getInstance().isPreSelectGames()) {
80+
game = Main.getInstance().getSelectedGame();
81+
}
82+
if (game == null) {
83+
game = (Game) Main.getInstance().getRandomWaitingGameForBungeeMode();
84+
}
85+
} else {
86+
game = (Game) Main.getInstance().getFirstWaitingGame();
87+
}
88+
if (game == null) {
89+
game = (Game) Main.getInstance().getFirstRunningGame();
90+
}
91+
92+
game.joinToGame(player);
93+
} catch (NullPointerException ignored) {
94+
if (!BaseCommand.hasPermission(player, ADMIN_PERMISSION, false)) {
95+
BungeeUtils.movePlayerToBungeeServer(player, false);
96+
}
97+
}
98+
}
99+
}.runTaskLater(Main.getInstance(), 1L);
100+
} else {
101+
BungeeUtils.movePlayerToBungeeServer(player, Main.isDisabling());
102+
}
61103
} else {
62104
this.restoreInv();
63105
}

0 commit comments

Comments
 (0)