Skip to content

Commit 97ea13b

Browse files
authored
CustomBlocks now update blocks on enable
1 parent 5c2bc9f commit 97ea13b

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

src/main/java/nekiplay/meteorplus/features/modules/world/customblocks/CustomBlocksModule.java

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,11 @@
1515
import meteordevelopment.orbit.EventHandler;
1616
import nekiplay.Main;
1717
import nekiplay.meteorplus.MeteorPlusAddon;
18-
import net.minecraft.block.Block;
19-
import net.minecraft.block.BlockState;
20-
import net.minecraft.block.Blocks;
18+
import net.minecraft.block.*;
2119
import net.minecraft.item.Item;
2220
import net.minecraft.util.math.BlockPos;
2321
import net.minecraft.world.Heightmap;
22+
import net.minecraft.world.chunk.Chunk;
2423
import net.minecraft.world.chunk.WorldChunk;
2524

2625
import java.io.*;
@@ -45,6 +44,10 @@ public void onActivate() {
4544

4645
createDefault();
4746
load();
47+
48+
for (Chunk chunk : Utils.chunks()) {
49+
updateChunkData(chunk);
50+
}
4851
}
4952

5053
public final Setting<Boolean> noSetIfAir = settingsGroup.add(new BoolSetting.Builder()
@@ -54,9 +57,7 @@ public void onActivate() {
5457
.build()
5558
);
5659

57-
@EventHandler
58-
private void onChunkData(ChunkDataEvent event) {
59-
WorldChunk chunk = event.chunk();
60+
private void updateChunkData(Chunk chunk) {
6061
String dimension = PlayerUtils.getDimension().name();
6162
for (int x = chunk.getPos().getStartX(); x <= chunk.getPos().getEndX(); x++) {
6263
for (int z = chunk.getPos().getStartZ(); z <= chunk.getPos().getEndZ(); z++) {
@@ -72,17 +73,20 @@ private void onChunkData(ChunkDataEvent event) {
7273
CustomBlockData customBlockData = allBlocks.get(new PosData(pos));
7374
if (customBlockData != null) {
7475
if (customBlockData.dimension.equals(dimension)) {
75-
Item item = Item.byRawId(customBlockData.block_id);
76-
Block block = Block.getBlockFromItem(item);
7776
if (isValidBlockForReplace(original)) {
78-
mc.world.setBlockState(pos, block.getDefaultState());
77+
setBlock(pos, customBlockData);
7978
}
8079
}
8180
}
8281
}
8382
}
8483
}
84+
}
8585

86+
@EventHandler
87+
private void onChunkData(ChunkDataEvent event) {
88+
WorldChunk chunk = event.chunk();
89+
updateChunkData(chunk);
8690
}
8791

8892
private boolean isValidBlockForReplace(Block block) {
@@ -95,17 +99,23 @@ private boolean isValidBlockForReplace(Block block) {
9599
return false;
96100
}
97101

102+
private void setBlock(BlockPos pos, CustomBlockData data) {
103+
Item item = Item.byRawId(data.block_id);
104+
Block block = Block.getBlockFromItem(item);
105+
BlockState state = block.getDefaultState();
106+
107+
mc.world.setBlockState(pos, state);
108+
}
109+
98110
@EventHandler
99111
private void onBlockUpdate(BlockUpdateEvent event) {
100112
String dimension = PlayerUtils.getDimension().name();
101113
CustomBlockData customBlockData = allBlocks.get(new PosData(event.pos));
102114
if (customBlockData != null) {
103115
if (customBlockData.dimension.equals(dimension)) {
104-
Item item = Item.byRawId(customBlockData.block_id);
105116
Block original = event.newState.getBlock();
106-
Block block = Block.getBlockFromItem(item);
107117
if (isValidBlockForReplace(original)) {
108-
mc.world.setBlockState(event.pos, block.getDefaultState());
118+
setBlock(event.pos, customBlockData);
109119
}
110120
}
111121
}

0 commit comments

Comments
 (0)