Skip to content

Commit

Permalink
Add message for sleepwalking
Browse files Browse the repository at this point in the history
  • Loading branch information
Alan19 committed Jan 1, 2020
1 parent 5935201 commit 948f713
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 11 deletions.
31 changes: 21 additions & 10 deletions src/main/java/com/alan199921/astral/events/TravelingHandlers.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import com.alan199921.astral.tags.AstralTags;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.*;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.PlayerEntity;
Expand All @@ -22,6 +23,7 @@
import net.minecraft.util.DamageSource;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextComponentUtils;
import net.minecraft.world.World;
import net.minecraft.world.dimension.DimensionType;
import net.minecraft.world.server.ServerWorld;
Expand Down Expand Up @@ -154,17 +156,9 @@ private static void handleAstralEffectEnd(Effect potionEffect, LivingEntity enti
resetPlayerStats(playerEntity, physicalBodyEntity);
physicalBodyEntity.onKillCommand();
}
//If body is not found, teleport player to their spawn location (bed or world spawn)
else {
DimensionType playerSpawnDimension = serverPlayerEntity.getSpawnDimension();
if (serverPlayerEntity.getBedPosition().isPresent()) {
BlockPos bedPos = serverPlayerEntity.getBedPosition().get();
TeleportationTools.changeDim(serverPlayerEntity, bedPos, playerSpawnDimension);
}
else {
BlockPos serverSpawn = serverPlayerEntity.getServerWorld().getSpawnPoint();
TeleportationTools.changeDim(serverPlayerEntity, serverSpawn, playerSpawnDimension);
}
resetPlayerStats(playerEntity);
teleportPlayerToSpawn(serverPlayerEntity);
}
});
}
Expand All @@ -174,6 +168,23 @@ private static void handleAstralEffectEnd(Effect potionEffect, LivingEntity enti
}
}

private static void teleportPlayerToSpawn(ServerPlayerEntity serverPlayerEntity) {
DimensionType playerSpawnDimension = serverPlayerEntity.getSpawnDimension();
//Teleport to bed
if (serverPlayerEntity.getBedPosition().isPresent()) {
BlockPos bedPos = serverPlayerEntity.getBedPosition().get();
TeleportationTools.changeDim(serverPlayerEntity, bedPos, playerSpawnDimension);
serverPlayerEntity.sendMessage(TextComponentUtils.toTextComponent(() -> I18n.format("astral.chat_message.sleepwalking")));
}
//Teleport to spawn
else {
BlockPos serverSpawn = serverPlayerEntity.getServerWorld().getSpawnPoint();
TeleportationTools.changeDim(serverPlayerEntity, serverSpawn, playerSpawnDimension);
serverPlayerEntity.sendMessage(TextComponentUtils.toTextComponent(() -> I18n.format("astral.chat_message.sleepwalking.spawn")));
}
resetPlayerStats(serverPlayerEntity);
}

private static void transferInventoryToPlayer(PlayerEntity playerEntity, ServerWorld serverWorld, PhysicalBodyEntity physicalBodyEntity) {
if (!playerEntity.getEntityWorld().isRemote()) {
IntStream.range(0, physicalBodyEntity.getMainInventory().getSlots()).forEach(i -> {
Expand Down
4 changes: 3 additions & 1 deletion src/main/resources/assets/astral/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,5 +58,7 @@
"astral.advancement.craft_introspection_medicine.name": "Compartmentalization",
"astral.advancement.craft_introspection_medicine.desc": "Craft Introspection Medicine",
"astral.advancement.inner_realm.name": "Withdrawal",
"astral.advancement.inner_realm.desc": "Enter the Inner Realm"
"astral.advancement.inner_realm.desc": "Enter the Inner Realm",
"astral.chat_message.sleepwalking.bed": "You find yourself in your bed as you wake up...",
"astral.chat_message.sleepwalking.spawn": "You find yourself in a familiar place as you wake up..."
}

0 comments on commit 948f713

Please sign in to comment.