mirror of
https://github.com/Minestom/Minestom.git
synced 2025-02-14 11:21:23 +01:00
Print exceptions properly during server tick
This commit is contained in:
parent
22aa9d01ed
commit
924fac562b
@ -53,6 +53,7 @@ public final class UpdateManager {
|
|||||||
final EntityManager entityManager = MinecraftServer.getEntityManager();
|
final EntityManager entityManager = MinecraftServer.getEntityManager();
|
||||||
|
|
||||||
updateExecutionService.scheduleAtFixedRate(() -> {
|
updateExecutionService.scheduleAtFixedRate(() -> {
|
||||||
|
try {
|
||||||
if (stopRequested) {
|
if (stopRequested) {
|
||||||
updateExecutionService.shutdown();
|
updateExecutionService.shutdown();
|
||||||
return;
|
return;
|
||||||
@ -79,6 +80,9 @@ public final class UpdateManager {
|
|||||||
// Tick end callbacks
|
// Tick end callbacks
|
||||||
doTickCallback(tickEndCallbacks, tickTime / 1000000L);
|
doTickCallback(tickEndCallbacks, tickTime / 1000000L);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}, 0, MinecraftServer.TICK_MS, TimeUnit.MILLISECONDS);
|
}, 0, MinecraftServer.TICK_MS, TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,12 +10,12 @@ import net.minestom.server.instance.Instance;
|
|||||||
import net.minestom.server.network.ConnectionManager;
|
import net.minestom.server.network.ConnectionManager;
|
||||||
import net.minestom.server.network.packet.server.play.KeepAlivePacket;
|
import net.minestom.server.network.packet.server.play.KeepAlivePacket;
|
||||||
import net.minestom.server.network.player.PlayerConnection;
|
import net.minestom.server.network.player.PlayerConnection;
|
||||||
|
import net.minestom.server.utils.async.AsyncUtils;
|
||||||
import net.minestom.server.utils.validate.Check;
|
import net.minestom.server.utils.validate.Check;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public final class EntityManager {
|
public final class EntityManager {
|
||||||
@ -90,7 +90,7 @@ public final class EntityManager {
|
|||||||
playerInitialization.accept(player);
|
playerInitialization.accept(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
CompletableFuture.runAsync(() -> {
|
AsyncUtils.runAsync(() -> {
|
||||||
// Call pre login event
|
// Call pre login event
|
||||||
AsyncPlayerPreLoginEvent asyncPlayerPreLoginEvent = new AsyncPlayerPreLoginEvent(player, player.getUsername(), player.getUuid());
|
AsyncPlayerPreLoginEvent asyncPlayerPreLoginEvent = new AsyncPlayerPreLoginEvent(player, player.getUsername(), player.getUuid());
|
||||||
player.callEvent(AsyncPlayerPreLoginEvent.class, asyncPlayerPreLoginEvent);
|
player.callEvent(AsyncPlayerPreLoginEvent.class, asyncPlayerPreLoginEvent);
|
||||||
|
@ -9,13 +9,13 @@ import net.minestom.server.extras.mojangAuth.MojangCrypt;
|
|||||||
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
||||||
import net.minestom.server.network.player.NettyPlayerConnection;
|
import net.minestom.server.network.player.NettyPlayerConnection;
|
||||||
import net.minestom.server.network.player.PlayerConnection;
|
import net.minestom.server.network.player.PlayerConnection;
|
||||||
|
import net.minestom.server.utils.async.AsyncUtils;
|
||||||
import net.minestom.server.utils.binary.BinaryReader;
|
import net.minestom.server.utils.binary.BinaryReader;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import javax.crypto.SecretKey;
|
import javax.crypto.SecretKey;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
|
|
||||||
public class EncryptionResponsePacket implements ClientPreplayPacket {
|
public class EncryptionResponsePacket implements ClientPreplayPacket {
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ public class EncryptionResponsePacket implements ClientPreplayPacket {
|
|||||||
}
|
}
|
||||||
final NettyPlayerConnection nettyConnection = (NettyPlayerConnection) connection;
|
final NettyPlayerConnection nettyConnection = (NettyPlayerConnection) connection;
|
||||||
|
|
||||||
CompletableFuture.runAsync(() -> {
|
AsyncUtils.runAsync(() -> {
|
||||||
try {
|
try {
|
||||||
final String loginUsername = nettyConnection.getLoginUsername();
|
final String loginUsername = nettyConnection.getLoginUsername();
|
||||||
if (!Arrays.equals(nettyConnection.getNonce(), getNonce())) {
|
if (!Arrays.equals(nettyConnection.getNonce(), getNonce())) {
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
package net.minestom.server.utils.async;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
public final class AsyncUtils {
|
||||||
|
|
||||||
|
public static void runAsync(@NotNull Runnable runnable) {
|
||||||
|
CompletableFuture.runAsync(() -> {
|
||||||
|
try {
|
||||||
|
runnable.run();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user