a little safer

This commit is contained in:
Hexugory 2024-05-14 21:32:58 -05:00
parent a55627f272
commit 9df4bcf87d
2 changed files with 28 additions and 21 deletions

View File

@ -75,10 +75,13 @@ public class HardcoreRedeploy implements ModInitializer {
GeckoLib.initialize(); GeckoLib.initialize();
ServerPlayNetworking.registerGlobalReceiver(REQUEST_REVIVE, (server, player, handler, buf, responseSender) -> { ServerPlayNetworking.registerGlobalReceiver(REQUEST_REVIVE, (server, player, handler, buf, responseSender) -> {
ServerPlayerEntity spectator = server.getPlayerManager().getPlayer(buf.readUuid()); UUID uuid = buf.readUuid();
BlockPos blockPos = buf.readBlockPos();
server.execute(() -> {
ServerPlayerEntity spectator = server.getPlayerManager().getPlayer(uuid);
if (spectator == null) return; if (spectator == null) return;
BlockPos blockPos = buf.readBlockPos();
BlockState invokingBlock = player.getWorld().getBlockState(blockPos); BlockState invokingBlock = player.getWorld().getBlockState(blockPos);
if (invokingBlock.getBlock() instanceof BuyStation && player.getPos().isInRange(blockPos.toCenterPos(), 5)) { if (invokingBlock.getBlock() instanceof BuyStation && player.getPos().isInRange(blockPos.toCenterPos(), 5)) {
@ -90,18 +93,18 @@ public class HardcoreRedeploy implements ModInitializer {
Vec3d fireworkPos = blockPos.toCenterPos(); Vec3d fireworkPos = blockPos.toCenterPos();
BlockState blockState = player.getWorld().getBlockState(blockPos); BlockState blockState = player.getWorld().getBlockState(blockPos);
Direction offset = blockState.get(HorizontalFacingBlock.FACING).rotateYClockwise(); Direction offset = blockState.get(HorizontalFacingBlock.FACING).rotateYClockwise();
if (blockState.get(BUY_STATION_PART) == BuyStation.BuyStationPart.AUX) offset = offset.getOpposite(); if (blockState.get(BUY_STATION_PART) == BuyStation.BuyStationPart.AUX)
offset = offset.getOpposite();
FireworkRocketEntity fireworkRocketEntity = new FireworkRocketEntity(player.getWorld(), fireworkPos.x + offset.getOffsetX() / 2., fireworkPos.y, fireworkPos.z + offset.getOffsetZ() / 2., firework); FireworkRocketEntity fireworkRocketEntity = new FireworkRocketEntity(player.getWorld(), fireworkPos.x + offset.getOffsetX() / 2., fireworkPos.y, fireworkPos.z + offset.getOffsetZ() / 2., firework);
player.getWorld().spawnEntity(fireworkRocketEntity); player.getWorld().spawnEntity(fireworkRocketEntity);
if (!isCreative) player.setExperienceLevel(player.experienceLevel - cost); if (!isCreative) player.setExperienceLevel(player.experienceLevel - cost);
((TimerAccess) server).hardcoreredeploy_redeployInTicks(spectator, player, 60L); ((TimerAccess) server).hardcoreredeploy_redeployInTicks(spectator, player, 60L);
server.execute(() -> {
PacketByteBuf buf1 = PacketByteBufs.create(); PacketByteBuf buf1 = PacketByteBufs.create();
ServerPlayNetworking.send(spectator, SEND_REVIVE, buf1); ServerPlayNetworking.send(spectator, SEND_REVIVE, buf1);
});
} }
}); });
});
ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> { ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> {
syncConfig(server, handler.getPlayer()); syncConfig(server, handler.getPlayer());

View File

@ -23,10 +23,14 @@ public class HardcoreRedeployClient implements ClientModInitializer {
BlockEntityRendererFactories.register(HardcoreRedeploy.BUY_STATION_ENTITY, BuyStationRenderer::new); BlockEntityRendererFactories.register(HardcoreRedeploy.BUY_STATION_ENTITY, BuyStationRenderer::new);
ClientPlayNetworking.registerGlobalReceiver(HardcoreRedeploy.SEND_REVIVES_UPDATE, (client, handler, buf, responseSender) -> { ClientPlayNetworking.registerGlobalReceiver(HardcoreRedeploy.SEND_REVIVES_UPDATE, (client, handler, buf, responseSender) -> {
reviveMap.put(buf.readUuid(), buf.readInt()); UUID uuid = buf.readUuid();
int revives = buf.readInt();
client.execute(() -> {
reviveMap.put(uuid, revives);
HardcoreRedeploy.LOGGER.info("Synced player revives"); HardcoreRedeploy.LOGGER.info("Synced player revives");
}); });
});
ClientPlayNetworking.registerGlobalReceiver(HardcoreRedeploy.SEND_REVIVE, (client, handler, buf, responseSender) -> { ClientPlayNetworking.registerGlobalReceiver(HardcoreRedeploy.SEND_REVIVE, (client, handler, buf, responseSender) -> {
client.execute(() -> { client.execute(() -> {