a little safer
This commit is contained in:
parent
a55627f272
commit
9df4bcf87d
@ -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());
|
||||||
|
@ -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(() -> {
|
||||||
|
Loading…
Reference in New Issue
Block a user