Skip to content

Commit 2bd426b

Browse files
committed
Update Materials.java with 1.21 tags and materials
1 parent 27f0095 commit 2bd426b

File tree

1 file changed

+77
-48
lines changed
  • worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util

1 file changed

+77
-48
lines changed

worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java

Lines changed: 77 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
import com.google.common.collect.BiMap;
2323
import com.google.common.collect.HashBiMap;
2424
import com.sk89q.worldguard.protection.flags.Flags;
25+
import org.bukkit.Bukkit;
2526
import org.bukkit.Material;
27+
import org.bukkit.NamespacedKey;
2628
import org.bukkit.Tag;
2729
import org.bukkit.entity.EntityType;
2830
import org.bukkit.potion.PotionEffect;
@@ -80,6 +82,10 @@ private static void putMaterialTag(Tag<Material> tag, Integer value) {
8082
ENTITY_ITEMS.put(EntityType.ARMOR_STAND, Material.ARMOR_STAND);
8183
ENTITY_ITEMS.put(EntityType.END_CRYSTAL, Material.END_CRYSTAL);
8284

85+
// preset some tags to a default value, override some of them:
86+
putMaterialTag(Tag.DOORS, MODIFIED_ON_RIGHT);
87+
putMaterialTag(Tag.TRAPDOORS, MODIFIED_ON_RIGHT);
88+
8389
MATERIAL_FLAGS.put(Material.AIR, 0);
8490
MATERIAL_FLAGS.put(Material.STONE, 0);
8591
MATERIAL_FLAGS.put(Material.GRASS_BLOCK, 0);
@@ -150,12 +156,6 @@ private static void putMaterialTag(Tag<Material> tag, Integer value) {
150156
MATERIAL_FLAGS.put(Material.CAKE, MODIFIED_ON_RIGHT);
151157
MATERIAL_FLAGS.put(Material.REPEATER, MODIFIED_ON_RIGHT);
152158
// MATERIAL_FLAGS.put(Material.STAINED_GLASS, 0);
153-
MATERIAL_FLAGS.put(Material.ACACIA_TRAPDOOR, MODIFIED_ON_RIGHT);
154-
MATERIAL_FLAGS.put(Material.BIRCH_TRAPDOOR, MODIFIED_ON_RIGHT);
155-
MATERIAL_FLAGS.put(Material.DARK_OAK_TRAPDOOR, MODIFIED_ON_RIGHT);
156-
MATERIAL_FLAGS.put(Material.JUNGLE_TRAPDOOR, MODIFIED_ON_RIGHT);
157-
MATERIAL_FLAGS.put(Material.OAK_TRAPDOOR, MODIFIED_ON_RIGHT);
158-
MATERIAL_FLAGS.put(Material.SPRUCE_TRAPDOOR, MODIFIED_ON_RIGHT);
159159
MATERIAL_FLAGS.put(Material.INFESTED_STONE, 0);
160160
MATERIAL_FLAGS.put(Material.INFESTED_STONE_BRICKS, 0);
161161
MATERIAL_FLAGS.put(Material.INFESTED_MOSSY_STONE_BRICKS, 0);
@@ -227,11 +227,6 @@ private static void putMaterialTag(Tag<Material> tag, Integer value) {
227227
MATERIAL_FLAGS.put(Material.IRON_TRAPDOOR, 0);
228228
MATERIAL_FLAGS.put(Material.RED_SANDSTONE, 0);
229229
MATERIAL_FLAGS.put(Material.RED_SANDSTONE_STAIRS, 0);
230-
MATERIAL_FLAGS.put(Material.SPRUCE_DOOR, MODIFIED_ON_RIGHT);
231-
MATERIAL_FLAGS.put(Material.BIRCH_DOOR, MODIFIED_ON_RIGHT);
232-
MATERIAL_FLAGS.put(Material.JUNGLE_DOOR, MODIFIED_ON_RIGHT);
233-
MATERIAL_FLAGS.put(Material.ACACIA_DOOR, MODIFIED_ON_RIGHT);
234-
MATERIAL_FLAGS.put(Material.DARK_OAK_DOOR, MODIFIED_ON_RIGHT);
235230

236231
MATERIAL_FLAGS.put(Material.DIRT_PATH, 0);
237232
MATERIAL_FLAGS.put(Material.CHORUS_PLANT, 0);
@@ -247,7 +242,7 @@ private static void putMaterialTag(Tag<Material> tag, Integer value) {
247242
MATERIAL_FLAGS.put(Material.PURPUR_SLAB, 0);
248243
MATERIAL_FLAGS.put(Material.STRUCTURE_BLOCK, MODIFIED_ON_LEFT | MODIFIED_ON_RIGHT);
249244
MATERIAL_FLAGS.put(Material.REPEATING_COMMAND_BLOCK, MODIFIED_ON_RIGHT);
250-
MATERIAL_FLAGS.put(Material.CHAIN_COMMAND_BLOCK , MODIFIED_ON_RIGHT);
245+
MATERIAL_FLAGS.put(Material.CHAIN_COMMAND_BLOCK, MODIFIED_ON_RIGHT);
251246

252247
MATERIAL_FLAGS.put(Material.MAGMA_BLOCK, 0);
253248
MATERIAL_FLAGS.put(Material.NETHER_WART_BLOCK, 0);
@@ -677,7 +672,6 @@ private static void putMaterialTag(Tag<Material> tag, Integer value) {
677672
MATERIAL_FLAGS.put(Material.CRIMSON_FUNGUS, 0);
678673
MATERIAL_FLAGS.put(Material.CRIMSON_NYLIUM, 0);
679674
MATERIAL_FLAGS.put(Material.CRIMSON_ROOTS, 0);
680-
MATERIAL_FLAGS.put(Material.CRIMSON_TRAPDOOR, MODIFIED_ON_RIGHT);
681675
MATERIAL_FLAGS.put(Material.CRYING_OBSIDIAN, 0);
682676
MATERIAL_FLAGS.put(Material.GILDED_BLACKSTONE, 0);
683677
MATERIAL_FLAGS.put(Material.LODESTONE, 0);
@@ -718,7 +712,6 @@ private static void putMaterialTag(Tag<Material> tag, Integer value) {
718712
MATERIAL_FLAGS.put(Material.WARPED_FUNGUS_ON_A_STICK, 0);
719713
MATERIAL_FLAGS.put(Material.WARPED_NYLIUM, 0);
720714
MATERIAL_FLAGS.put(Material.WARPED_ROOTS, 0);
721-
MATERIAL_FLAGS.put(Material.WARPED_TRAPDOOR, MODIFIED_ON_RIGHT);
722715
MATERIAL_FLAGS.put(Material.WARPED_WART_BLOCK, 0);
723716
MATERIAL_FLAGS.put(Material.WEEPING_VINES, 0);
724717
MATERIAL_FLAGS.put(Material.WEEPING_VINES_PLANT, 0);
@@ -843,9 +836,46 @@ private static void putMaterialTag(Tag<Material> tag, Integer value) {
843836
MATERIAL_FLAGS.put(Material.ARMADILLO_SCUTE, 0);
844837
MATERIAL_FLAGS.put(Material.WOLF_ARMOR, 0);
845838

846-
// Generated via tag
847-
putMaterialTag(Tag.WOODEN_DOORS, MODIFIED_ON_RIGHT);
848-
putMaterialTag(Tag.WOODEN_TRAPDOORS, MODIFIED_ON_RIGHT);
839+
// 1.21
840+
MATERIAL_FLAGS.put(Material.CHISELED_TUFF, 0);
841+
MATERIAL_FLAGS.put(Material.POLISHED_TUFF, 0);
842+
MATERIAL_FLAGS.put(Material.TUFF_BRICKS, 0);
843+
MATERIAL_FLAGS.put(Material.CHISELED_TUFF_BRICKS, 0);
844+
MATERIAL_FLAGS.put(Material.HEAVY_CORE, 0);
845+
MATERIAL_FLAGS.put(Material.CHISELED_COPPER, 0);
846+
MATERIAL_FLAGS.put(Material.EXPOSED_CHISELED_COPPER, 0);
847+
MATERIAL_FLAGS.put(Material.WEATHERED_CHISELED_COPPER, 0);
848+
MATERIAL_FLAGS.put(Material.OXIDIZED_CHISELED_COPPER, 0);
849+
MATERIAL_FLAGS.put(Material.WAXED_CHISELED_COPPER, 0);
850+
MATERIAL_FLAGS.put(Material.WAXED_EXPOSED_CHISELED_COPPER, 0);
851+
MATERIAL_FLAGS.put(Material.WAXED_WEATHERED_CHISELED_COPPER, 0);
852+
MATERIAL_FLAGS.put(Material.WAXED_OXIDIZED_CHISELED_COPPER, 0);
853+
MATERIAL_FLAGS.put(Material.CRAFTER, 0);
854+
MATERIAL_FLAGS.put(Material.FLOW_BANNER_PATTERN, 0);
855+
MATERIAL_FLAGS.put(Material.GUSTER_BANNER_PATTERN, 0);
856+
MATERIAL_FLAGS.put(Material.COPPER_GRATE, 0);
857+
MATERIAL_FLAGS.put(Material.WEATHERED_COPPER_GRATE, 0);
858+
MATERIAL_FLAGS.put(Material.EXPOSED_COPPER_GRATE, 0);
859+
MATERIAL_FLAGS.put(Material.OXIDIZED_COPPER_GRATE, 0);
860+
MATERIAL_FLAGS.put(Material.WAXED_COPPER_GRATE, 0);
861+
MATERIAL_FLAGS.put(Material.WAXED_WEATHERED_COPPER_GRATE, 0);
862+
MATERIAL_FLAGS.put(Material.WAXED_EXPOSED_COPPER_GRATE, 0);
863+
MATERIAL_FLAGS.put(Material.WAXED_OXIDIZED_COPPER_GRATE, 0);
864+
MATERIAL_FLAGS.put(Material.COPPER_BULB, 0);
865+
MATERIAL_FLAGS.put(Material.WEATHERED_COPPER_BULB, 0);
866+
MATERIAL_FLAGS.put(Material.EXPOSED_COPPER_BULB, 0);
867+
MATERIAL_FLAGS.put(Material.OXIDIZED_COPPER_BULB, 0);
868+
MATERIAL_FLAGS.put(Material.WAXED_COPPER_BULB, 0);
869+
MATERIAL_FLAGS.put(Material.WAXED_WEATHERED_COPPER_BULB, 0);
870+
MATERIAL_FLAGS.put(Material.WAXED_EXPOSED_COPPER_BULB, 0);
871+
MATERIAL_FLAGS.put(Material.WAXED_OXIDIZED_COPPER_BULB, 0);
872+
MATERIAL_FLAGS.put(Material.TRIAL_SPAWNER, 0);
873+
MATERIAL_FLAGS.put(Material.TRIAL_KEY, 0);
874+
MATERIAL_FLAGS.put(Material.OMINOUS_TRIAL_KEY, 0);
875+
MATERIAL_FLAGS.put(Material.VAULT, 0);
876+
MATERIAL_FLAGS.put(Material.OMINOUS_BOTTLE, 0);
877+
MATERIAL_FLAGS.put(Material.BREEZE_ROD, 0);
878+
849879
putMaterialTag(Tag.SHULKER_BOXES, MODIFIED_ON_RIGHT);
850880
putMaterialTag(Tag.ITEMS_BOATS, 0);
851881
putMaterialTag(Tag.BANNERS, 0);
@@ -902,22 +932,25 @@ private static void putMaterialTag(Tag<Material> tag, Integer value) {
902932
if (isSpawnEgg(material)) {
903933
MATERIAL_FLAGS.put(material, 0);
904934
}
935+
if (material.name().startsWith("MUSIC_DISC_")) {
936+
MATERIAL_FLAGS.put(material, 0);
937+
}
905938
if (!MATERIAL_FLAGS.containsKey(material)) {
906939
logger.fine("Missing material definition for " + (material.isBlock() ? "block " : "item ") + material.name());
907940
}
908941
}
909942

910943
// DAMAGE_EFFECTS.add(PotionEffectType.SPEED);
911944
DAMAGE_EFFECTS.add(PotionEffectType.SLOWNESS);
912-
// DAMAGE_EFFECTS.add(PotionEffectType.FAST_DIGGING);
945+
// DAMAGE_EFFECTS.add(PotionEffectType.HASTE);
913946
DAMAGE_EFFECTS.add(PotionEffectType.MINING_FATIGUE);
914-
// DAMAGE_EFFECTS.add(PotionEffectType.INCREASE_DAMAGE);
915-
// DAMAGE_EFFECTS.add(PotionEffectType.HEAL);
947+
// DAMAGE_EFFECTS.add(PotionEffectType.STRENGTH);
948+
// DAMAGE_EFFECTS.add(PotionEffectType.INSTANT_HEALTH);
916949
DAMAGE_EFFECTS.add(PotionEffectType.INSTANT_DAMAGE);
917-
// DAMAGE_EFFECTS.add(PotionEffectType.JUMP);
950+
// DAMAGE_EFFECTS.add(PotionEffectType.JUMP_BOOST);
918951
DAMAGE_EFFECTS.add(PotionEffectType.NAUSEA);
919952
// DAMAGE_EFFECTS.add(PotionEffectType.REGENERATION);
920-
// DAMAGE_EFFECTS.add(PotionEffectType.DAMAGE_RESISTANCE);
953+
// DAMAGE_EFFECTS.add(PotionEffectType.RESISTANCE);
921954
// DAMAGE_EFFECTS.add(PotionEffectType.FIRE_RESISTANCE);
922955
// DAMAGE_EFFECTS.add(PotionEffectType.WATER_BREATHING);
923956
// DAMAGE_EFFECTS.add(PotionEffectType.INVISIBILITY);
@@ -940,6 +973,11 @@ private static void putMaterialTag(Tag<Material> tag, Integer value) {
940973
DAMAGE_EFFECTS.add(PotionEffectType.BAD_OMEN);
941974
// DAMAGE_EFFECTS.add(PotionEffectType.HERO_OF_THE_VILLAGE);
942975
DAMAGE_EFFECTS.add(PotionEffectType.DARKNESS);
976+
DAMAGE_EFFECTS.add(PotionEffectType.TRIAL_OMEN);
977+
DAMAGE_EFFECTS.add(PotionEffectType.WIND_CHARGED);
978+
DAMAGE_EFFECTS.add(PotionEffectType.WEAVING);
979+
DAMAGE_EFFECTS.add(PotionEffectType.OOZING);
980+
DAMAGE_EFFECTS.add(PotionEffectType.INFESTED);
943981
}
944982

945983
private Materials() {
@@ -1139,10 +1177,11 @@ public static EntityType getEntitySpawnEgg(Material material) {
11391177
case ALLAY_SPAWN_EGG -> EntityType.ALLAY;
11401178
case ARMADILLO_SPAWN_EGG -> EntityType.ARMADILLO;
11411179
case AXOLOTL_SPAWN_EGG -> EntityType.AXOLOTL;
1142-
case SPIDER_SPAWN_EGG -> EntityType.SPIDER;
11431180
case BAT_SPAWN_EGG -> EntityType.BAT;
11441181
case BEE_SPAWN_EGG -> EntityType.BEE;
11451182
case BLAZE_SPAWN_EGG -> EntityType.BLAZE;
1183+
case BOGGED_SPAWN_EGG -> EntityType.BOGGED;
1184+
case BREEZE_SPAWN_EGG -> EntityType.BREEZE;
11461185
case CAT_SPAWN_EGG -> EntityType.CAT;
11471186
case CAMEL_SPAWN_EGG -> EntityType.CAMEL;
11481187
case CAVE_SPIDER_SPAWN_EGG -> EntityType.CAVE_SPIDER;
@@ -1192,6 +1231,7 @@ public static EntityType getEntitySpawnEgg(Material material) {
11921231
case SLIME_SPAWN_EGG -> EntityType.SLIME;
11931232
case SNIFFER_SPAWN_EGG -> EntityType.SNIFFER;
11941233
case SNOW_GOLEM_SPAWN_EGG -> EntityType.SNOW_GOLEM;
1234+
case SPIDER_SPAWN_EGG -> EntityType.SPIDER;
11951235
case SQUID_SPAWN_EGG -> EntityType.SQUID;
11961236
case STRAY_SPAWN_EGG -> EntityType.STRAY;
11971237
case STRIDER_SPAWN_EGG -> EntityType.STRIDER;
@@ -1366,15 +1406,13 @@ public static boolean hasDamageEffect(Collection<PotionEffect> effects) {
13661406
* @return true if equippable armor
13671407
*/
13681408
public static boolean isArmor(Material type) {
1409+
if (Tag.ITEMS_HEAD_ARMOR.isTagged(type) || Tag.ITEMS_CHEST_ARMOR.isTagged(type) ||
1410+
Tag.ITEMS_LEG_ARMOR.isTagged(type) || Tag.ITEMS_FOOT_ARMOR.isTagged(type) ||
1411+
Tag.ITEMS_SKULLS.isTagged(type)) {
1412+
return true;
1413+
}
13691414
return switch (type) {
1370-
case LEATHER_HELMET, LEATHER_CHESTPLATE, LEATHER_LEGGINGS, LEATHER_BOOTS,
1371-
CHAINMAIL_HELMET, CHAINMAIL_CHESTPLATE, CHAINMAIL_LEGGINGS, CHAINMAIL_BOOTS,
1372-
IRON_HELMET, IRON_CHESTPLATE, IRON_LEGGINGS, IRON_BOOTS,
1373-
DIAMOND_HELMET, DIAMOND_CHESTPLATE, DIAMOND_LEGGINGS, DIAMOND_BOOTS,
1374-
GOLDEN_HELMET, GOLDEN_CHESTPLATE, GOLDEN_LEGGINGS, GOLDEN_BOOTS,
1375-
NETHERITE_HELMET, NETHERITE_CHESTPLATE, NETHERITE_LEGGINGS, NETHERITE_BOOTS,
1376-
TURTLE_HELMET, ELYTRA ->
1377-
true;
1415+
case CARVED_PUMPKIN, ELYTRA -> true;
13781416
default -> false;
13791417
};
13801418
}
@@ -1465,27 +1503,18 @@ public static boolean isToolApplicable(Material toolMaterial, Material targetMat
14651503
public static boolean isFire(Material type) {
14661504
return type == Material.FIRE || type == Material.SOUL_FIRE;
14671505
}
1468-
1506+
14691507
public static boolean isWaxedCopper(Material type) {
1470-
return switch (type) {
1471-
case WAXED_COPPER_BLOCK, WAXED_EXPOSED_COPPER, WAXED_WEATHERED_COPPER, WAXED_OXIDIZED_COPPER,
1472-
WAXED_CUT_COPPER, WAXED_EXPOSED_CUT_COPPER, WAXED_WEATHERED_CUT_COPPER,
1473-
WAXED_OXIDIZED_CUT_COPPER, WAXED_CUT_COPPER_STAIRS, WAXED_EXPOSED_CUT_COPPER_STAIRS,
1474-
WAXED_WEATHERED_CUT_COPPER_STAIRS, WAXED_OXIDIZED_CUT_COPPER_STAIRS, WAXED_CUT_COPPER_SLAB,
1475-
WAXED_EXPOSED_CUT_COPPER_SLAB, WAXED_WEATHERED_CUT_COPPER_SLAB, WAXED_OXIDIZED_CUT_COPPER_SLAB ->
1476-
true;
1477-
default -> false;
1478-
};
1508+
// copied from the MaterialTags class in Paper
1509+
return type.name().startsWith("WAXED_") && type.name().contains("COPPER");
14791510
}
1480-
1511+
14811512
public static boolean isUnwaxedCopper(Material type) {
1513+
// copied from the MaterialTags class in Paper
14821514
return switch (type) {
1483-
case COPPER_BLOCK, EXPOSED_COPPER, WEATHERED_COPPER, OXIDIZED_COPPER, CUT_COPPER,
1484-
EXPOSED_CUT_COPPER, WEATHERED_CUT_COPPER, OXIDIZED_CUT_COPPER, CUT_COPPER_STAIRS,
1485-
EXPOSED_CUT_COPPER_STAIRS, WEATHERED_CUT_COPPER_STAIRS, OXIDIZED_CUT_COPPER_STAIRS,
1486-
CUT_COPPER_SLAB, EXPOSED_CUT_COPPER_SLAB, WEATHERED_CUT_COPPER_SLAB, OXIDIZED_CUT_COPPER_SLAB ->
1487-
true;
1488-
default -> false;
1515+
case COPPER_BLOCK, CHISELED_COPPER, COPPER_DOOR, COPPER_TRAPDOOR, COPPER_GRATE, COPPER_BULB -> true;
1516+
default -> type.name().startsWith("EXPOSED_") || type.name().startsWith("WEATHERED_") ||
1517+
type.name().startsWith("OXIDIZED_") || type.name().startsWith("CUT_COPPER");
14891518
};
14901519
}
14911520

0 commit comments

Comments
 (0)