Skip to content

Commit dc28dc2

Browse files
committed
Changes from review
1 parent 851af6c commit dc28dc2

36 files changed

+209
-535
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,5 @@ world/
4040
/datapack-tests/mojang-data
4141
/mojang-data/1.20.4
4242
/mojang-data/1.21.1
43+
44+
.DS_Store

blocks/src/main/java/net/minestom/vanilla/blocks/behavior/CandleCakeRule.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,15 @@
2424
*/
2525
public class CandleCakeRule implements BlockHandler {
2626
private final Block block;
27-
private static final Map<Block, Block> CAKE_CANDLE = new HashMap<>();
28-
29-
static {
30-
// Reverse the map from CandlePlacementRule
31-
for (Map.Entry<Block, Block> entry : CandlePlacementRule.getCANDLE_CAKE().entrySet()) {
32-
CAKE_CANDLE.put(entry.getValue(), entry.getKey());
33-
}
34-
}
27+
private static final Map<Block, Block> CAKE_VARIANTS = CandlePlacementRule.getCakeVariants()
28+
.entrySet()
29+
.stream()
30+
.collect(java.util.stream.Collectors.toMap(
31+
Map.Entry::getValue,
32+
Map.Entry::getKey,
33+
(a, b) -> b,
34+
java.util.LinkedHashMap::new
35+
));
3536

3637
public CandleCakeRule(Block block) {
3738
this.block = block;
@@ -62,7 +63,7 @@ public boolean onInteract(Interaction interaction) {
6263
.withProperty("bites", "1")
6364
);
6465

65-
Block candle = CAKE_CANDLE.get(block);
66+
Block candle = CAKE_VARIANTS.get(block);
6667
if (candle != null) {
6768
DroppedItemFactory.maybeDrop(
6869
interaction.getInstance(),

blocks/src/main/java/net/minestom/vanilla/blocks/behavior/CopperOxidationRule.java

Lines changed: 29 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -26,37 +26,35 @@
2626
*/
2727
public class CopperOxidationRule implements BlockHandler {
2828
private final Block block;
29-
public static final Map<Block, Block> oxidationStages = new HashMap<>();
30-
31-
static {
32-
oxidationStages.put(Block.COPPER_BLOCK, Block.EXPOSED_COPPER);
33-
oxidationStages.put(Block.EXPOSED_COPPER, Block.WEATHERED_COPPER);
34-
oxidationStages.put(Block.WEATHERED_COPPER, Block.OXIDIZED_COPPER);
35-
36-
oxidationStages.put(Block.CUT_COPPER, Block.EXPOSED_CUT_COPPER);
37-
oxidationStages.put(Block.EXPOSED_CUT_COPPER, Block.WEATHERED_CUT_COPPER);
38-
oxidationStages.put(Block.WEATHERED_CUT_COPPER, Block.OXIDIZED_CUT_COPPER);
39-
40-
oxidationStages.put(Block.CUT_COPPER_STAIRS, Block.EXPOSED_CUT_COPPER_STAIRS);
41-
oxidationStages.put(Block.EXPOSED_CUT_COPPER_STAIRS, Block.WEATHERED_CUT_COPPER_STAIRS);
42-
oxidationStages.put(Block.WEATHERED_CUT_COPPER_STAIRS, Block.OXIDIZED_CUT_COPPER_STAIRS);
43-
44-
oxidationStages.put(Block.CUT_COPPER_SLAB, Block.EXPOSED_CUT_COPPER_SLAB);
45-
oxidationStages.put(Block.EXPOSED_CUT_COPPER_SLAB, Block.WEATHERED_CUT_COPPER_SLAB);
46-
oxidationStages.put(Block.WEATHERED_CUT_COPPER_SLAB, Block.OXIDIZED_CUT_COPPER_SLAB);
47-
48-
oxidationStages.put(Block.CHISELED_COPPER, Block.EXPOSED_CHISELED_COPPER);
49-
oxidationStages.put(Block.EXPOSED_CHISELED_COPPER, Block.WEATHERED_CHISELED_COPPER);
50-
oxidationStages.put(Block.WEATHERED_CHISELED_COPPER, Block.OXIDIZED_CHISELED_COPPER);
51-
52-
oxidationStages.put(Block.COPPER_GRATE, Block.EXPOSED_COPPER_GRATE);
53-
oxidationStages.put(Block.EXPOSED_COPPER_GRATE, Block.WEATHERED_COPPER_GRATE);
54-
oxidationStages.put(Block.WEATHERED_COPPER_GRATE, Block.OXIDIZED_COPPER_GRATE);
55-
56-
oxidationStages.put(Block.COPPER_BULB, Block.EXPOSED_COPPER_BULB);
57-
oxidationStages.put(Block.EXPOSED_COPPER_BULB, Block.WEATHERED_COPPER_BULB);
58-
oxidationStages.put(Block.WEATHERED_COPPER_BULB, Block.OXIDIZED_COPPER_BULB);
59-
}
29+
public static final Map<Block, Block> oxidationStages = Map.copyOf(new HashMap<>() {{
30+
put(Block.COPPER_BLOCK, Block.EXPOSED_COPPER);
31+
put(Block.EXPOSED_COPPER, Block.WEATHERED_COPPER);
32+
put(Block.WEATHERED_COPPER, Block.OXIDIZED_COPPER);
33+
34+
put(Block.CUT_COPPER, Block.EXPOSED_CUT_COPPER);
35+
put(Block.EXPOSED_CUT_COPPER, Block.WEATHERED_CUT_COPPER);
36+
put(Block.WEATHERED_CUT_COPPER, Block.OXIDIZED_CUT_COPPER);
37+
38+
put(Block.CUT_COPPER_STAIRS, Block.EXPOSED_CUT_COPPER_STAIRS);
39+
put(Block.EXPOSED_CUT_COPPER_STAIRS, Block.WEATHERED_CUT_COPPER_STAIRS);
40+
put(Block.WEATHERED_CUT_COPPER_STAIRS, Block.OXIDIZED_CUT_COPPER_STAIRS);
41+
42+
put(Block.CUT_COPPER_SLAB, Block.EXPOSED_CUT_COPPER_SLAB);
43+
put(Block.EXPOSED_CUT_COPPER_SLAB, Block.WEATHERED_CUT_COPPER_SLAB);
44+
put(Block.WEATHERED_CUT_COPPER_SLAB, Block.OXIDIZED_CUT_COPPER_SLAB);
45+
46+
put(Block.CHISELED_COPPER, Block.EXPOSED_CHISELED_COPPER);
47+
put(Block.EXPOSED_CHISELED_COPPER, Block.WEATHERED_CHISELED_COPPER);
48+
put(Block.WEATHERED_CHISELED_COPPER, Block.OXIDIZED_CHISELED_COPPER);
49+
50+
put(Block.COPPER_GRATE, Block.EXPOSED_COPPER_GRATE);
51+
put(Block.EXPOSED_COPPER_GRATE, Block.WEATHERED_COPPER_GRATE);
52+
put(Block.WEATHERED_COPPER_GRATE, Block.OXIDIZED_COPPER_GRATE);
53+
54+
put(Block.COPPER_BULB, Block.EXPOSED_COPPER_BULB);
55+
put(Block.EXPOSED_COPPER_BULB, Block.WEATHERED_COPPER_BULB);
56+
put(Block.WEATHERED_COPPER_BULB, Block.OXIDIZED_COPPER_BULB);
57+
}});
6058

6159
public CopperOxidationRule(Block block) {
6260
this.block = block;

blocks/src/main/java/net/minestom/vanilla/blocks/group/VanillaBlockBehaviour.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
import net.minestom.server.inventory.InventoryType;
66
import net.minestom.vanilla.blocks.behavior.*;
77
import net.minestom.vanilla.blocks.group.behaviour.BehaviourGroup;
8-
import net.minestom.vanilla.blocks.group.block.BlockGroup;
98

109
import java.util.function.Function;
10+
import net.minestom.vanilla.blocks.group.block.BlockGroup;
1111

1212
/**
1313
* This file contains code ported from Kotlin to Java, adapted from the Blocks and Stuff project.

blocks/src/main/java/net/minestom/vanilla/blocks/group/block/TagBlockGroup.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import net.kyori.adventure.key.Key;
44
import net.minestom.server.instance.block.Block;
5-
import net.minestom.vanilla.common.tag.BlockTags;
65

76
import java.util.Collection;
7+
import net.minestom.vanilla.common.utils.TagHelper;
88

99
/**
1010
*
@@ -30,6 +30,6 @@ public TagBlockGroup(Key key) {
3030

3131
@Override
3232
public Collection<Block> allMatching() {
33-
return BlockTags.getInstance().getTaggedWith(key.asString());
33+
return TagHelper.getInstance().getTaggedWith(key.asString());
3434
}
3535
}

blocks/src/main/java/net/minestom/vanilla/blocks/placement/BambooPlantPlacementRule.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package net.minestom.vanilla.blocks.placement;
22

3+
import net.kyori.adventure.key.Key;
34
import net.minestom.server.instance.Instance;
45
import net.minestom.server.instance.block.Block;
56
import net.minestom.server.instance.block.rule.BlockPlacementRule;
7+
import net.minestom.server.registry.Registry;
68
import net.minestom.vanilla.common.item.DroppedItemFactory;
7-
import net.minestom.vanilla.common.tag.BlockTags;
9+
import net.minestom.vanilla.common.utils.TagHelper;
10+
import net.minestom.vanilla.tag.Tags.Blocks;
811
import org.jetbrains.annotations.NotNull;
912

1013
import java.util.Set;
@@ -23,8 +26,11 @@ public class BambooPlantPlacementRule extends BlockPlacementRule {
2326

2427
public BambooPlantPlacementRule(Block block) {
2528
super(block);
26-
this.plantableOn = BlockTags.getInstance().getTaggedWith("minecraft:bamboo_plantable_on");
27-
this.bamboo = BlockTags.getInstance().getTaggedWith("vri:bamboo");
29+
this.plantableOn = TagHelper.getInstance().getTaggedWith("minecraft:bamboo_plantable_on");
30+
this.bamboo = Set.of(
31+
Block.BAMBOO,
32+
Block.BAMBOO_SAPLING
33+
);
2834
}
2935

3036
@Override

blocks/src/main/java/net/minestom/vanilla/blocks/placement/BigDripleafPlacementRule.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
import net.minestom.server.instance.block.rule.BlockPlacementRule;
66
import net.minestom.server.utils.Direction;
77
import net.minestom.vanilla.common.item.DroppedItemFactory;
8-
import net.minestom.vanilla.common.tag.BlockTags;
98
import net.minestom.vanilla.common.utils.DirectionUtils;
109
import net.minestom.vanilla.common.utils.FluidUtils;
10+
import net.minestom.vanilla.common.utils.TagHelper;
1111
import org.jetbrains.annotations.NotNull;
1212

1313
import java.util.Set;
@@ -25,7 +25,7 @@ public class BigDripleafPlacementRule extends BlockPlacementRule {
2525

2626
public BigDripleafPlacementRule(Block block) {
2727
super(block);
28-
this.plantableOn = BlockTags.getInstance().getTaggedWith("minecraft:big_dripleaf_placeable");
28+
this.plantableOn = TagHelper.getInstance().getTaggedWith("minecraft:big_dripleaf_placeable");
2929
}
3030

3131
@Override

blocks/src/main/java/net/minestom/vanilla/blocks/placement/CactusPlacementRule.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import net.minestom.server.instance.block.rule.BlockPlacementRule;
66
import net.minestom.server.utils.Direction;
77
import net.minestom.vanilla.common.item.DroppedItemFactory;
8-
import net.minestom.vanilla.common.tag.BlockTags;
8+
import net.minestom.vanilla.common.utils.TagHelper;
99
import org.jetbrains.annotations.NotNull;
1010

1111
import java.util.Set;
@@ -23,7 +23,7 @@ public class CactusPlacementRule extends BlockPlacementRule {
2323

2424
public CactusPlacementRule(Block block) {
2525
super(block);
26-
this.plantableOn = BlockTags.getInstance().getTaggedWith("minecraft:sand");
26+
this.plantableOn = TagHelper.getInstance().getTaggedWith("minecraft:sand");
2727
}
2828

2929
@Override

blocks/src/main/java/net/minestom/vanilla/blocks/placement/CandlePlacementRule.java

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,30 +19,29 @@
1919
* Ported from Kotlin to Java and adapted for use in this project with modifications.
2020
*/
2121
public class CandlePlacementRule extends BlockPlacementRule {
22-
private static final Map<Block, Block> CANDLE_CAKE = new HashMap<>();
2322

24-
static {
25-
CANDLE_CAKE.put(Block.CANDLE, Block.CANDLE_CAKE);
26-
CANDLE_CAKE.put(Block.WHITE_CANDLE, Block.WHITE_CANDLE_CAKE);
27-
CANDLE_CAKE.put(Block.ORANGE_CANDLE, Block.ORANGE_CANDLE_CAKE);
28-
CANDLE_CAKE.put(Block.MAGENTA_CANDLE, Block.MAGENTA_CANDLE_CAKE);
29-
CANDLE_CAKE.put(Block.LIGHT_BLUE_CANDLE, Block.LIGHT_BLUE_CANDLE_CAKE);
30-
CANDLE_CAKE.put(Block.YELLOW_CANDLE, Block.YELLOW_CANDLE_CAKE);
31-
CANDLE_CAKE.put(Block.LIME_CANDLE, Block.LIME_CANDLE_CAKE);
32-
CANDLE_CAKE.put(Block.PINK_CANDLE, Block.PINK_CANDLE_CAKE);
33-
CANDLE_CAKE.put(Block.GRAY_CANDLE, Block.GRAY_CANDLE_CAKE);
34-
CANDLE_CAKE.put(Block.LIGHT_GRAY_CANDLE, Block.LIGHT_GRAY_CANDLE_CAKE);
35-
CANDLE_CAKE.put(Block.CYAN_CANDLE, Block.CYAN_CANDLE_CAKE);
36-
CANDLE_CAKE.put(Block.PURPLE_CANDLE, Block.PURPLE_CANDLE_CAKE);
37-
CANDLE_CAKE.put(Block.BLUE_CANDLE, Block.BLUE_CANDLE_CAKE);
38-
CANDLE_CAKE.put(Block.BROWN_CANDLE, Block.BROWN_CANDLE_CAKE);
39-
CANDLE_CAKE.put(Block.GREEN_CANDLE, Block.GREEN_CANDLE_CAKE);
40-
CANDLE_CAKE.put(Block.RED_CANDLE, Block.RED_CANDLE_CAKE);
41-
CANDLE_CAKE.put(Block.BLACK_CANDLE, Block.BLACK_CANDLE_CAKE);
42-
}
23+
private static final Map<Block, Block> CAKE_VARIANTS = Map.copyOf(Map.ofEntries(
24+
Map.entry(Block.CANDLE, Block.CANDLE_CAKE),
25+
Map.entry(Block.WHITE_CANDLE, Block.WHITE_CANDLE_CAKE),
26+
Map.entry(Block.ORANGE_CANDLE, Block.ORANGE_CANDLE_CAKE),
27+
Map.entry(Block.MAGENTA_CANDLE, Block.MAGENTA_CANDLE_CAKE),
28+
Map.entry(Block.LIGHT_BLUE_CANDLE, Block.LIGHT_BLUE_CANDLE_CAKE),
29+
Map.entry(Block.YELLOW_CANDLE, Block.YELLOW_CANDLE_CAKE),
30+
Map.entry(Block.LIME_CANDLE, Block.LIME_CANDLE_CAKE),
31+
Map.entry(Block.PINK_CANDLE, Block.PINK_CANDLE_CAKE),
32+
Map.entry(Block.GRAY_CANDLE, Block.GRAY_CANDLE_CAKE),
33+
Map.entry(Block.LIGHT_GRAY_CANDLE, Block.LIGHT_GRAY_CANDLE_CAKE),
34+
Map.entry(Block.CYAN_CANDLE, Block.CYAN_CANDLE_CAKE),
35+
Map.entry(Block.PURPLE_CANDLE, Block.PURPLE_CANDLE_CAKE),
36+
Map.entry(Block.BLUE_CANDLE, Block.BLUE_CANDLE_CAKE),
37+
Map.entry(Block.BROWN_CANDLE, Block.BROWN_CANDLE_CAKE),
38+
Map.entry(Block.GREEN_CANDLE, Block.GREEN_CANDLE_CAKE),
39+
Map.entry(Block.RED_CANDLE, Block.RED_CANDLE_CAKE),
40+
Map.entry(Block.BLACK_CANDLE, Block.BLACK_CANDLE_CAKE)
41+
));
4342

44-
public static Map<Block, Block> getCANDLE_CAKE() {
45-
return CANDLE_CAKE;
43+
public static Map<Block, Block> getCakeVariants() {
44+
return CAKE_VARIANTS;
4645
}
4746

4847
public CandlePlacementRule(Block block) {
@@ -56,7 +55,7 @@ public Block blockPlace(PlacementState placementState) {
5655

5756
// Handle placing candle on cake
5857
if (blockBelow.compare(Block.CAKE, Block.Comparator.ID)) {
59-
Block candleCake = CANDLE_CAKE.get(block);
58+
Block candleCake = CAKE_VARIANTS.get(block);
6059
if (candleCake == null) {
6160
return null;
6261
}

blocks/src/main/java/net/minestom/vanilla/blocks/placement/TorchPlacementRule.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,13 @@
44
import net.minestom.server.instance.block.Block;
55
import net.minestom.server.instance.block.BlockFace;
66
import net.minestom.server.instance.block.rule.BlockPlacementRule;
7-
import net.minestom.server.registry.Registry;
87
import net.minestom.server.registry.RegistryTag;
98
import net.minestom.vanilla.common.item.DroppedItemFactory;
10-
import net.minestom.vanilla.common.tag.BlockTags;
9+
import net.minestom.vanilla.common.utils.BlockUtil;
1110
import org.jetbrains.annotations.NotNull;
1211

1312
import java.util.ArrayList;
1413
import java.util.Locale;
15-
import java.util.Set;
1614

1715
/**
1816
* This file contains code ported from Kotlin to Java, adapted from the Blocks and Stuff project.
@@ -24,15 +22,11 @@
2422
*/
2523
public class TorchPlacementRule extends BlockPlacementRule {
2624

27-
private final Registry<Block> tagManager = Block.staticRegistry();
28-
29-
private final Set<Block> glassPanes = BlockTags.getInstance().getTaggedWith("vri:glass_panes");
30-
3125
private final RegistryTag<Block> nonFullButPlaceable = RegistryTag.direct(
3226
new ArrayList<>() {{
3327
addAll(Block.values().stream().filter(it -> it.name().endsWith("_fence")).toList());
3428
addAll(Block.values().stream().filter(it -> it.name().endsWith("_wall")).toList());
35-
addAll(glassPanes);
29+
addAll(BlockUtil.getGlassPanes());
3630
}}
3731
);
3832

0 commit comments

Comments
 (0)