diff --git a/src/main/java/us/minecraftchest2/hdm_mod/block/custom/Window.java b/src/main/java/us/minecraftchest2/hdm_mod/block/custom/Window.java index 13b77b3..3274282 100644 --- a/src/main/java/us/minecraftchest2/hdm_mod/block/custom/Window.java +++ b/src/main/java/us/minecraftchest2/hdm_mod/block/custom/Window.java @@ -104,35 +104,56 @@ public class Window extends HorizontalBlock { Hand handIn, BlockRayTraceResult hit ) { - if (!worldIn.isRemote() && !player.isCrouching()) { - MinecraftServer server = worldIn.getServer(); - if (server == null) return ActionResultType.PASS; + // Only process on the server side, avoid duplicating logic on client + if (worldIn.isRemote()) return super.onBlockActivated(state, worldIn, pos, player, handIn, hit); + // Do nothing if the player is crouching (commonly used for alternative interactions) + if (player.isCrouching()) return super.onBlockActivated(state, worldIn, pos, player, handIn, hit); - boolean goingToCustom = worldIn.getDimensionKey() != ModDimensions.World1; + // Get the server instance safely + if (worldIn.getServer() == null) return super.onBlockActivated(state, worldIn, pos, player, handIn, hit); + MinecraftServer server = worldIn.getServer(); - ServerWorld targetWorld = (worldIn.getDimensionKey() == ModDimensions.World1) - ? server.getWorld(World.OVERWORLD) - : server.getWorld(ModDimensions.World1); + // Check if in custom dimension; if so, teleport to Overworld + if (worldIn.getDimensionKey() == ModDimensions.World1) { + ServerWorld overWorld = server.getWorld(World.OVERWORLD); + if (overWorld != null) { + player.changeDimension(overWorld, new SimpleTeleporter(pos, false)); + } + } - if (worldIn.getDimensionKey() == ModDimensions.World1) { - ServerWorld overWorld = server.getWorld(World.OVERWORLD); - if (overWorld != null) { - player.changeDimension(overWorld, new SimpleTeleporter(pos, false)); - } - } + // Set up for teleportation based on current dimension + ServerWorld targetWorld; + boolean goingToCustom = worldIn.getDimensionKey() != ModDimensions.World1; - if (targetWorld != null) { - SimpleTeleporter teleporter = new SimpleTeleporter(pos, goingToCustom); - player.changeDimension(targetWorld, teleporter); - } + if (goingToCustom) { + // Teleporting from Overworld to custom dimension + targetWorld = server.getWorld(ModDimensions.World1); + } else { + // From custom dimension, teleport to Overworld + ServerWorld world1 = server.getWorld(ModDimensions.World1); + if (world1 != null) { + player.changeDimension(world1, new SimpleTeleporter(pos, true)); + } + targetWorld = server.getWorld(World.OVERWORLD); + } - System.out.println("[DEBUG] Portal activated on server!"); - player.sendMessage(new StringTextComponent("Teleport logic running!"), player.getUniqueID()); - player.sendMessage(new StringTextComponent("Teleport attempted!"), player.getUniqueID()); - return ActionResultType.SUCCESS; + // Attempt teleport if a valid world was found + if (targetWorld != null) { + SimpleTeleporter teleporter = new SimpleTeleporter(pos, goingToCustom); + player.changeDimension(targetWorld, teleporter); - } - return super.onBlockActivated(state, worldIn, pos, player, handIn, hit); + // Notify the player about the result + if (teleporter.wasSuccessful()) { + player.sendMessage(new StringTextComponent("Teleportation successful!"), player.getUniqueID()); + } else { + player.sendMessage(new StringTextComponent("Teleportation failed: no safe location found."), player.getUniqueID()); + } + + return ActionResultType.SUCCESS; + } + + // Fall back to default processing if teleportation did not occur + return super.onBlockActivated(state, worldIn, pos, player, handIn, hit); } /** diff --git a/src/main/resources/assets/hdm_mod/blockstates/window.json b/src/main/resources/assets/hdm_mod/blockstates/window.json deleted file mode 100644 index 5bd80c6..0000000 --- a/src/main/resources/assets/hdm_mod/blockstates/window.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "main": {"model": "hdm_mod:block/window" } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hdm_mod/models/block/window.json b/src/main/resources/assets/hdm_mod/models/block/window.json index 43306a9..54c9c09 100644 --- a/src/main/resources/assets/hdm_mod/models/block/window.json +++ b/src/main/resources/assets/hdm_mod/models/block/window.json @@ -1,6 +1,151 @@ { - "parent": "block/cube_all", - "textures" : { - "all": "hdm_mod:block/grey" - } + "credit": "Made with Blockbench", + "textures": { + "1": "hdm_mod:block/brown", + "2": "hdm_mod:block/grey", + "particle": "hdm_mod:block/red" + }, + "elements": [ + { + "from": [5, 11, 5], + "to": [6, 13, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 6], "texture": "#2"}, + "east": {"uv": [0, 0, 1, 6], "texture": "#2"}, + "south": {"uv": [0, 0, 1, 6], "texture": "#2"}, + "west": {"uv": [0, 0, 1, 6], "texture": "#2"}, + "up": {"uv": [0, 0, 1, 6], "texture": "#2"}, + "down": {"uv": [0, 0, 1, 6], "texture": "#2"} + } + }, + { + "from": [4, 0, 4], + "to": [12, 1, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, + "faces": { + "north": {"uv": [0, 0, 8, 8], "texture": "#1"}, + "east": {"uv": [0, 0, 8, 8], "texture": "#1"}, + "south": {"uv": [0, 0, 8, 8], "texture": "#1"}, + "west": {"uv": [0, 0, 8, 8], "texture": "#1"}, + "up": {"uv": [0, 0, 8, 8], "texture": "#1"}, + "down": {"uv": [0, 0, 8, 8], "texture": "#1"} + } + }, + { + "from": [5, 1, 5], + "to": [11, 2, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, + "faces": { + "north": {"uv": [0, 0, 6, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 6, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 6, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 6, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 6, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 6, 1], "texture": "#1"} + } + }, + { + "from": [6, 2, 6], + "to": [10, 10, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, + "faces": { + "north": {"uv": [0, 0, 4, 8], "texture": "#1"}, + "east": {"uv": [0, 0, 4, 8], "texture": "#1"}, + "south": {"uv": [0, 0, 4, 8], "texture": "#1"}, + "west": {"uv": [0, 0, 4, 8], "texture": "#1"}, + "up": {"uv": [0, 0, 4, 8], "texture": "#1"}, + "down": {"uv": [0, 0, 4, 8], "texture": "#1"} + } + }, + { + "from": [5, 10, 4], + "to": [11, 11, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, + "faces": { + "north": {"uv": [0, 0, 6, 8], "texture": "#2"}, + "east": {"uv": [0, 0, 6, 8], "texture": "#2"}, + "south": {"uv": [0, 0, 6, 8], "texture": "#2"}, + "west": {"uv": [0, 0, 6, 8], "texture": "#2"}, + "up": {"uv": [0, 0, 6, 8], "texture": "#2"}, + "down": {"uv": [0, 0, 6, 8], "texture": "#2"} + } + }, + { + "from": [5, 11, 4], + "to": [11, 12, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, + "faces": { + "north": {"uv": [0, 0, 6, 1], "texture": "#2"}, + "east": {"uv": [0, 0, 6, 1], "texture": "#2"}, + "south": {"uv": [0, 0, 6, 1], "texture": "#2"}, + "west": {"uv": [0, 0, 6, 1], "texture": "#2"}, + "up": {"uv": [0, 0, 6, 1], "texture": "#2"}, + "down": {"uv": [0, 0, 6, 1], "texture": "#2"} + } + }, + { + "from": [5, 11, 11], + "to": [11, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, + "faces": { + "north": {"uv": [0, 0, 6, 1], "texture": "#2"}, + "east": {"uv": [0, 0, 6, 1], "texture": "#2"}, + "south": {"uv": [0, 0, 6, 1], "texture": "#2"}, + "west": {"uv": [0, 0, 6, 1], "texture": "#2"}, + "up": {"uv": [0, 0, 6, 1], "texture": "#2"}, + "down": {"uv": [0, 0, 6, 1], "texture": "#2"} + } + }, + { + "from": [10, 11, 5], + "to": [11, 13, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, + "faces": { + "north": {"uv": [0, 0, 1, 6], "texture": "#2"}, + "east": {"uv": [0, 0, 1, 6], "texture": "#2"}, + "south": {"uv": [0, 0, 1, 6], "texture": "#2"}, + "west": {"uv": [0, 0, 1, 6], "texture": "#2"}, + "up": {"uv": [0, 0, 1, 6], "texture": "#2"}, + "down": {"uv": [0, 0, 1, 6], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, -180, 0], + "scale": [0.5, 0.69, 0.5] + }, + "thirdperson_lefthand": { + "rotation": [0, -180, 0], + "scale": [0.5, 0.69, 0.5] + }, + "firstperson_righthand": { + "translation": [0, 4, 2.5], + "scale": [0.5, 0.5, 0.5] + }, + "firstperson_lefthand": { + "translation": [0, 4, 2.5], + "scale": [0.5, 0.5, 0.5] + }, + "ground": { + "translation": [0, 2.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [55, -125, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14, 0] + } + }, + "groups": [ + { + "name": "VoxelShapes", + "origin": [8, 8, 8], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/hdm_mod/models/block/window1.json b/src/main/resources/assets/hdm_mod/models/block/window1.json deleted file mode 100644 index 54c9c09..0000000 --- a/src/main/resources/assets/hdm_mod/models/block/window1.json +++ /dev/null @@ -1,151 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "1": "hdm_mod:block/brown", - "2": "hdm_mod:block/grey", - "particle": "hdm_mod:block/red" - }, - "elements": [ - { - "from": [5, 11, 5], - "to": [6, 13, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, - "faces": { - "north": {"uv": [0, 0, 1, 6], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 6], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 6], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 6], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 6], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 6], "texture": "#2"} - } - }, - { - "from": [4, 0, 4], - "to": [12, 1, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, - "faces": { - "north": {"uv": [0, 0, 8, 8], "texture": "#1"}, - "east": {"uv": [0, 0, 8, 8], "texture": "#1"}, - "south": {"uv": [0, 0, 8, 8], "texture": "#1"}, - "west": {"uv": [0, 0, 8, 8], "texture": "#1"}, - "up": {"uv": [0, 0, 8, 8], "texture": "#1"}, - "down": {"uv": [0, 0, 8, 8], "texture": "#1"} - } - }, - { - "from": [5, 1, 5], - "to": [11, 2, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, - "faces": { - "north": {"uv": [0, 0, 6, 1], "texture": "#1"}, - "east": {"uv": [0, 0, 6, 1], "texture": "#1"}, - "south": {"uv": [0, 0, 6, 1], "texture": "#1"}, - "west": {"uv": [0, 0, 6, 1], "texture": "#1"}, - "up": {"uv": [0, 0, 6, 1], "texture": "#1"}, - "down": {"uv": [0, 0, 6, 1], "texture": "#1"} - } - }, - { - "from": [6, 2, 6], - "to": [10, 10, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, - "faces": { - "north": {"uv": [0, 0, 4, 8], "texture": "#1"}, - "east": {"uv": [0, 0, 4, 8], "texture": "#1"}, - "south": {"uv": [0, 0, 4, 8], "texture": "#1"}, - "west": {"uv": [0, 0, 4, 8], "texture": "#1"}, - "up": {"uv": [0, 0, 4, 8], "texture": "#1"}, - "down": {"uv": [0, 0, 4, 8], "texture": "#1"} - } - }, - { - "from": [5, 10, 4], - "to": [11, 11, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, - "faces": { - "north": {"uv": [0, 0, 6, 8], "texture": "#2"}, - "east": {"uv": [0, 0, 6, 8], "texture": "#2"}, - "south": {"uv": [0, 0, 6, 8], "texture": "#2"}, - "west": {"uv": [0, 0, 6, 8], "texture": "#2"}, - "up": {"uv": [0, 0, 6, 8], "texture": "#2"}, - "down": {"uv": [0, 0, 6, 8], "texture": "#2"} - } - }, - { - "from": [5, 11, 4], - "to": [11, 12, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, - "faces": { - "north": {"uv": [0, 0, 6, 1], "texture": "#2"}, - "east": {"uv": [0, 0, 6, 1], "texture": "#2"}, - "south": {"uv": [0, 0, 6, 1], "texture": "#2"}, - "west": {"uv": [0, 0, 6, 1], "texture": "#2"}, - "up": {"uv": [0, 0, 6, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 6, 1], "texture": "#2"} - } - }, - { - "from": [5, 11, 11], - "to": [11, 14, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, - "faces": { - "north": {"uv": [0, 0, 6, 1], "texture": "#2"}, - "east": {"uv": [0, 0, 6, 1], "texture": "#2"}, - "south": {"uv": [0, 0, 6, 1], "texture": "#2"}, - "west": {"uv": [0, 0, 6, 1], "texture": "#2"}, - "up": {"uv": [0, 0, 6, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 6, 1], "texture": "#2"} - } - }, - { - "from": [10, 11, 5], - "to": [11, 13, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.3125, 8]}, - "faces": { - "north": {"uv": [0, 0, 1, 6], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 6], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 6], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 6], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 6], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 6], "texture": "#2"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [0, -180, 0], - "scale": [0.5, 0.69, 0.5] - }, - "thirdperson_lefthand": { - "rotation": [0, -180, 0], - "scale": [0.5, 0.69, 0.5] - }, - "firstperson_righthand": { - "translation": [0, 4, 2.5], - "scale": [0.5, 0.5, 0.5] - }, - "firstperson_lefthand": { - "translation": [0, 4, 2.5], - "scale": [0.5, 0.5, 0.5] - }, - "ground": { - "translation": [0, 2.25, 0], - "scale": [0.75, 0.75, 0.75] - }, - "gui": { - "rotation": [55, -125, 0], - "scale": [0.75, 0.75, 0.75] - }, - "head": { - "translation": [0, 14, 0] - } - }, - "groups": [ - { - "name": "VoxelShapes", - "origin": [8, 8, 8], - "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/hdm_mod/models/item/window.json b/src/main/resources/assets/hdm_mod/models/item/window.json deleted file mode 100644 index 97f1558..0000000 --- a/src/main/resources/assets/hdm_mod/models/item/window.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "hdm_mod:block/window" -} \ No newline at end of file diff --git a/src/main/resources/data/hdm_mod/dimension_type/world1.json b/src/main/resources/data/hdm_mod/dimension_type/world1.json deleted file mode 100644 index 460751b..0000000 --- a/src/main/resources/data/hdm_mod/dimension_type/world1.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "logical_height": 256, - "infiniburn": "minecraft:infiniburn_overworld", - "effects": "minecraft:overworld", - "ambient_light": 0, - "bed_works": true, - "respawn_anchor_works": false, - "has_raids": true, - "ultrawarm": false, - "natural": true, - "coordinate_scale": 1, - "piglin_safe": false, - "has_skylight": true, - "has_ceiling": false -} \ No newline at end of file