Skip to content

Commit 68d5dc5

Browse files
committed
fix: Initialize waystones instantly in WaystonesAPI place methods
1 parent 7bd4bd6 commit 68d5dc5

File tree

1 file changed

+34
-5
lines changed

1 file changed

+34
-5
lines changed

common/src/main/java/net/blay09/mods/waystones/InternalMethodsImpl.java

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import net.blay09.mods.waystones.api.trait.IAttunementItem;
99
import net.blay09.mods.waystones.block.ModBlocks;
1010
import net.blay09.mods.waystones.block.WaystoneBlock;
11+
import net.blay09.mods.waystones.block.WaystoneBlockBase;
12+
import net.blay09.mods.waystones.block.entity.WaystoneBlockEntityBase;
1113
import net.blay09.mods.waystones.config.WaystonesConfig;
1214
import net.blay09.mods.waystones.core.*;
1315
import net.blay09.mods.waystones.requirement.RequirementModifierParser;
@@ -131,8 +133,19 @@ public ItemStack createBoundScroll(Waystone waystone) {
131133
@Override
132134
public Optional<Waystone> placeWaystone(ServerLevel level, BlockPos pos, WaystoneStyle style) {
133135
Block block = BuiltInRegistries.BLOCK.getValue(style.getBlockRegistryName());
134-
level.setBlock(pos, block.defaultBlockState().setValue(WaystoneBlock.HALF, DoubleBlockHalf.LOWER), 3);
135-
level.setBlock(pos.above(), block.defaultBlockState().setValue(WaystoneBlock.HALF, DoubleBlockHalf.UPPER), 3);
136+
level.setBlock(pos, block.defaultBlockState()
137+
.setValue(WaystoneBlock.HALF, DoubleBlockHalf.LOWER)
138+
.setValue(WaystoneBlockBase.ORIGIN, WaystoneOrigin.PLAYER), 3);
139+
level.setBlock(pos.above(), block.defaultBlockState()
140+
.setValue(WaystoneBlock.HALF, DoubleBlockHalf.UPPER)
141+
.setValue(WaystoneBlockBase.ORIGIN, WaystoneOrigin.PLAYER), 3);
142+
if (level.getBlockEntity(pos) instanceof WaystoneBlockEntityBase waystoneBlockEntity) {
143+
waystoneBlockEntity.initializeWaystone(level, null, WaystoneOrigin.PLAYER);
144+
if (level.getBlockEntity(pos.above()) instanceof WaystoneBlockEntityBase waystoneBlockEntityAbove) {
145+
waystoneBlockEntityAbove.initializeFromBase(waystoneBlockEntity);
146+
}
147+
return Optional.of(waystoneBlockEntity.getWaystone());
148+
}
136149
return getWaystoneAt(level, pos);
137150
}
138151

@@ -143,14 +156,30 @@ public Optional<Waystone> placeSharestone(ServerLevel level, BlockPos pos, DyeCo
143156
return Optional.empty();
144157
}
145158

146-
level.setBlock(pos, sharestone.defaultBlockState().setValue(WaystoneBlock.HALF, DoubleBlockHalf.LOWER), 3);
147-
level.setBlock(pos.above(), sharestone.defaultBlockState().setValue(WaystoneBlock.HALF, DoubleBlockHalf.UPPER), 3);
159+
level.setBlock(pos, sharestone.defaultBlockState()
160+
.setValue(WaystoneBlock.HALF, DoubleBlockHalf.LOWER)
161+
.setValue(WaystoneBlockBase.ORIGIN, WaystoneOrigin.PLAYER), 3);
162+
level.setBlock(pos.above(), sharestone.defaultBlockState()
163+
.setValue(WaystoneBlock.HALF, DoubleBlockHalf.UPPER)
164+
.setValue(WaystoneBlockBase.ORIGIN, WaystoneOrigin.PLAYER), 3);
165+
if (level.getBlockEntity(pos) instanceof WaystoneBlockEntityBase waystoneBlockEntity) {
166+
waystoneBlockEntity.initializeWaystone(level, null, WaystoneOrigin.PLAYER);
167+
if (level.getBlockEntity(pos.above()) instanceof WaystoneBlockEntityBase waystoneBlockEntityAbove) {
168+
waystoneBlockEntityAbove.initializeFromBase(waystoneBlockEntity);
169+
}
170+
return Optional.of(waystoneBlockEntity.getWaystone());
171+
}
148172
return getWaystoneAt(level, pos);
149173
}
150174

151175
@Override
152176
public Optional<Waystone> placeWarpPlate(ServerLevel level, BlockPos pos) {
153-
level.setBlock(pos, ModBlocks.warpPlate.defaultBlockState(), 3);
177+
level.setBlock(pos, ModBlocks.warpPlate.defaultBlockState()
178+
.setValue(WaystoneBlockBase.ORIGIN, WaystoneOrigin.PLAYER), 3);
179+
if (level.getBlockEntity(pos) instanceof WaystoneBlockEntityBase waystoneBlockEntity) {
180+
waystoneBlockEntity.initializeWaystone(level, null, WaystoneOrigin.PLAYER);
181+
return Optional.of(waystoneBlockEntity.getWaystone());
182+
}
154183
return getWaystoneAt(level, pos);
155184
}
156185

0 commit comments

Comments
 (0)