Skip to content

Commit bbf9d07

Browse files
committed
fixed stuck at booting issue
1 parent d123822 commit bbf9d07

3 files changed

Lines changed: 9 additions & 8 deletions

File tree

src/main/java/com/andrei1058/bedwars/proxy/arenasign/DynamicArenaSign.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ protected static synchronized void assignArena(@NotNull DynamicArenaSign sign) {
9797
Thread.sleep(800);
9898
} catch (InterruptedException e) {
9999
e.printStackTrace();
100+
sign.setStatus(SignStatus.NO_DATA);
101+
return;
100102
}
101103
List<CachedArena> arenas = ArenaManager.getSorted(ArenaManager.getArenas()).stream().filter(p -> p.getArenaGroup().equals(sign.getGroup()))
102104
.filter(p -> p.getStatus() == ArenaStatus.WAITING || p.getStatus() == ArenaStatus.STARTING).collect(Collectors.toList());

src/main/java/com/andrei1058/bedwars/proxy/arenasign/SignListener.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ public void onStatusChange(ArenaCacheUpdateEvent e) {
3232
if (as == null) continue;
3333
if (as.getAssignedArena() == null) continue;
3434
if (ca.equals(as.getAssignedArena())) {
35-
if (e.getArena().getStatus() == ArenaStatus.PLAYING || e.getArena().getStatus() == ArenaStatus.RESTARTING) {
36-
as.setStatus(DynamicArenaSign.SignStatus.NO_DATA);
35+
if (e.getArena().getStatus() == ArenaStatus.PLAYING || e.getArena().getStatus() == ArenaStatus.RESTARTING || e.getArena().getStatus() == ArenaStatus.UNKNOWN) {
3736
DynamicArenaSign.assignArena((DynamicArenaSign) as);
3837
}
3938
as.refresh();
@@ -46,8 +45,7 @@ public void onStatusChange(ArenaCacheUpdateEvent e) {
4645
if (as.getAssignedArena() == null) continue;
4746
if (ca.equals(as.getAssignedArena())) {
4847
if (e.getArena().getStatus() == ArenaStatus.PLAYING && !SignManager.get().getConfig().getBoolean(ConfigPath.SIGNS_SETTINGS_STATIC_SHOW_PLAYING)
49-
|| e.getArena().getStatus() == ArenaStatus.RESTARTING) {
50-
as.setStatus(DynamicArenaSign.SignStatus.NO_DATA);
48+
|| e.getArena().getStatus() == ArenaStatus.RESTARTING || e.getArena().getStatus() == ArenaStatus.UNKNOWN) {
5149
StaticArenaSign.assignArena((StaticArenaSign) as);
5250
}
5351
as.refresh();
@@ -91,10 +89,9 @@ public void onRemove(ArenaCacheRemoveEvent e) {
9189
}
9290
}
9391
for (ArenaSign as : toRemove) {
94-
as.setStatus(ArenaSign.SignStatus.NO_DATA);
9592
if (as instanceof DynamicArenaSign) {
9693
DynamicArenaSign.assignArena((DynamicArenaSign) as);
97-
} else {
94+
} else if (as instanceof StaticArenaSign){
9895
StaticArenaSign.assignArena((StaticArenaSign) as);
9996
}
10097
}

src/main/java/com/andrei1058/bedwars/proxy/socketmanager/TimeOutTask.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@ public void run() {
2121
if (ca.getStatus() != ArenaStatus.RESTARTING && ca.getStatus() != ArenaStatus.UNKNOWN){
2222
ca.setStatus(ArenaStatus.UNKNOWN);
2323
Bukkit.getPluginManager().callEvent(new ArenaCacheUpdateEvent(ca));
24-
} else if (ca.getStatus() == ArenaStatus.RESTARTING){
24+
} else if (ca.getStatus() == ArenaStatus.RESTARTING || ca.getStatus() == ArenaStatus.UNKNOWN){
2525
if (ca.getLastUpdate()+5000 < time){
26-
ca.setStatus(ArenaStatus.UNKNOWN);
26+
if (ca.getStatus() != ArenaStatus.UNKNOWN) {
27+
ca.setStatus(ArenaStatus.UNKNOWN);
28+
}
2729
toRemove.add(ca);
2830
}
2931
}

0 commit comments

Comments
 (0)