Skip to content

Commit f2b77ca

Browse files
committed
Add support for Minecraft 1.20.4
1 parent 62a04f0 commit f2b77ca

File tree

16 files changed

+205
-120
lines changed

16 files changed

+205
-120
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@
175175
<!-- GPL -->
176176
<groupId>org.spigotmc</groupId>
177177
<artifactId>spigot-api</artifactId>
178-
<version>1.20.2-R0.1-SNAPSHOT</version>
178+
<version>1.20.4-R0.1-SNAPSHOT</version>
179179
</dependency>
180180

181181
<!-- Used for storing and retreiving Constructs in a storage transparent medium: JSONs -->

src/main/java/com/laytonsmith/abstraction/blocks/MCMaterial.java

Lines changed: 74 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,8 @@ public enum MCVanillaMaterial {
258258
CHISELED_SANDSTONE,
259259
CUT_SANDSTONE,
260260
COBWEB,
261-
GRASS,
261+
GRASS(MCVersion.MC1_0, MCVersion.MC1_20_2),
262+
SHORT_GRASS(MCVersion.MC1_20_X), // changed from GRASS
262263
FERN,
263264
DEAD_BUSH,
264265
SEAGRASS,
@@ -1390,6 +1391,7 @@ public enum MCVanillaMaterial {
13901391
SPYGLASS(MCVersion.MC1_17),
13911392
TINTED_GLASS(MCVersion.MC1_17),
13921393
TUFF(MCVersion.MC1_17),
1394+
GRASS_PATH(MCVersion.MC1_9, MCVersion.MC1_16_X),
13931395
DIRT_PATH(MCVersion.MC1_17), // changed from GRASS_PATH
13941396
WATER_CAULDRON(MCVersion.MC1_17),
13951397
LAVA_CAULDRON(MCVersion.MC1_17),
@@ -1579,20 +1581,87 @@ public enum MCVanillaMaterial {
15791581
SHEAF_POTTERY_SHERD(MCVersion.MC1_20),
15801582
SHELTER_POTTERY_SHERD(MCVersion.MC1_20),
15811583
SKULL_POTTERY_SHERD(MCVersion.MC1_20),
1582-
SNORT_POTTERY_SHERD(MCVersion.MC1_20);
1584+
SNORT_POTTERY_SHERD(MCVersion.MC1_20),
1585+
1586+
// 1.20.3 experimental additions for 1.21
1587+
CRAFTER(MCVersion.MC1_20_X),
1588+
CHISELED_COPPER(MCVersion.MC1_20_X),
1589+
EXPOSED_CHISELED_COPPER(MCVersion.MC1_20_X),
1590+
WEATHERED_CHISELED_COPPER(MCVersion.MC1_20_X),
1591+
OXIDIZED_CHISELED_COPPER(MCVersion.MC1_20_X),
1592+
WAXED_CHISELED_COPPER(MCVersion.MC1_20_X),
1593+
WAXED_EXPOSED_CHISELED_COPPER(MCVersion.MC1_20_X),
1594+
WAXED_WEATHERED_CHISELED_COPPER(MCVersion.MC1_20_X),
1595+
WAXED_OXIDIZED_CHISELED_COPPER(MCVersion.MC1_20_X),
1596+
COPPER_BULB(MCVersion.MC1_20_X),
1597+
EXPOSED_COPPER_BULB(MCVersion.MC1_20_X),
1598+
WEATHERED_COPPER_BULB(MCVersion.MC1_20_X),
1599+
OXIDIZED_COPPER_BULB(MCVersion.MC1_20_X),
1600+
WAXED_COPPER_BULB(MCVersion.MC1_20_X),
1601+
WAXED_EXPOSED_COPPER_BULB(MCVersion.MC1_20_X),
1602+
WAXED_WEATHERED_COPPER_BULB(MCVersion.MC1_20_X),
1603+
WAXED_OXIDIZED_COPPER_BULB(MCVersion.MC1_20_X),
1604+
COPPER_DOOR(MCVersion.MC1_20_X),
1605+
EXPOSED_COPPER_DOOR(MCVersion.MC1_20_X),
1606+
WEATHERED_COPPER_DOOR(MCVersion.MC1_20_X),
1607+
OXIDIZED_COPPER_DOOR(MCVersion.MC1_20_X),
1608+
WAXED_COPPER_DOOR(MCVersion.MC1_20_X),
1609+
WAXED_EXPOSED_COPPER_DOOR(MCVersion.MC1_20_X),
1610+
WAXED_WEATHERED_COPPER_DOOR(MCVersion.MC1_20_X),
1611+
WAXED_OXIDIZED_COPPER_DOOR(MCVersion.MC1_20_X),
1612+
COPPER_GRATE(MCVersion.MC1_20_X),
1613+
EXPOSED_COPPER_GRATE(MCVersion.MC1_20_X),
1614+
WEATHERED_COPPER_GRATE(MCVersion.MC1_20_X),
1615+
OXIDIZED_COPPER_GRATE(MCVersion.MC1_20_X),
1616+
WAXED_COPPER_GRATE(MCVersion.MC1_20_X),
1617+
WAXED_EXPOSED_COPPER_GRATE(MCVersion.MC1_20_X),
1618+
WAXED_WEATHERED_COPPER_GRATE(MCVersion.MC1_20_X),
1619+
WAXED_OXIDIZED_COPPER_GRATE(MCVersion.MC1_20_X),
1620+
COPPER_TRAPDOOR(MCVersion.MC1_20_X),
1621+
EXPOSED_COPPER_TRAPDOOR(MCVersion.MC1_20_X),
1622+
WEATHERED_COPPER_TRAPDOOR(MCVersion.MC1_20_X),
1623+
OXIDIZED_COPPER_TRAPDOOR(MCVersion.MC1_20_X),
1624+
WAXED_COPPER_TRAPDOOR(MCVersion.MC1_20_X),
1625+
WAXED_EXPOSED_COPPER_TRAPDOOR(MCVersion.MC1_20_X),
1626+
WAXED_WEATHERED_COPPER_TRAPDOOR(MCVersion.MC1_20_X),
1627+
WAXED_OXIDIZED_COPPER_TRAPDOOR(MCVersion.MC1_20_X),
1628+
BREEZE_SPAWN_EGG(MCVersion.MC1_20_X),
1629+
TRIAL_SPAWNER(MCVersion.MC1_20_X),
1630+
TRIAL_KEY(MCVersion.MC1_20_X),
1631+
TUFF_BRICKS(MCVersion.MC1_20_X),
1632+
TUFF_BRICK_SLAB(MCVersion.MC1_20_X),
1633+
TUFF_BRICK_STAIRS(MCVersion.MC1_20_X),
1634+
TUFF_BRICK_WALL(MCVersion.MC1_20_X),
1635+
TUFF_SLAB(MCVersion.MC1_20_X),
1636+
TUFF_STAIRS(MCVersion.MC1_20_X),
1637+
TUFF_WALL(MCVersion.MC1_20_X),
1638+
CHISELED_TUFF(MCVersion.MC1_20_X),
1639+
POLISHED_TUFF(MCVersion.MC1_20_X),
1640+
CHISELED_TUFF_BRICKS(MCVersion.MC1_20_X),
1641+
POLISHED_TUFF_SLAB(MCVersion.MC1_20_X),
1642+
POLISHED_TUFF_STAIRS(MCVersion.MC1_20_X),
1643+
POLISHED_TUFF_WALL(MCVersion.MC1_20_X);
15831644

15841645
private final MCVersion since;
1646+
private final MCVersion until;
15851647

15861648
MCVanillaMaterial() {
15871649
this.since = MCVersion.MC1_0;
1650+
this.until = MCVersion.FUTURE;
1651+
}
1652+
1653+
MCVanillaMaterial(MCVersion since) {
1654+
this.since = since;
1655+
this.until = MCVersion.FUTURE;
15881656
}
15891657

1590-
MCVanillaMaterial(MCVersion ver) {
1591-
this.since = ver;
1658+
MCVanillaMaterial(MCVersion since, MCVersion until) {
1659+
this.since = since;
1660+
this.until = until;
15921661
}
15931662

15941663
public boolean existsIn(MCVersion version) {
1595-
return version.gte(since);
1664+
return version.gte(since) && version.lte(until);
15961665
}
15971666
}
15981667
}

src/main/java/com/laytonsmith/abstraction/bukkit/entities/BukkitMCPlayer.java

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -406,25 +406,28 @@ public MCEntity getSpectatorTarget() {
406406

407407
@Override
408408
public void setTempOp(Boolean value) throws ClassNotFoundException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
409-
// Get some version specific strings
409+
// Get some version specific mappings
410410
String nms = "net.minecraft.server";
411411
String playersPackage = nms + ".players";
412412
String ops = "p";
413-
String getPlayerList = "ac";
413+
String getPlayerList = "ae";
414414
MCVersion mcversion = Static.getServer().getMinecraftVersion();
415-
if(mcversion.lt(MCVersion.MC1_20_2)) {
416-
ops = "o";
417-
if(mcversion.equals(MCVersion.MC1_19_3)) {
418-
getPlayerList = "ab";
419-
} else if(mcversion.lt(MCVersion.MC1_19_1)) {
420-
ops = "n";
421-
if(mcversion.lt(MCVersion.MC1_18)) {
422-
getPlayerList = "getPlayerList";
423-
if(mcversion.lt(MCVersion.MC1_17)) {
424-
String version = ((BukkitMCServer) Static.getServer()).getCraftBukkitPackage().split("\\.")[3];
425-
nms = "net.minecraft.server." + version;
426-
playersPackage = nms;
427-
ops = "operators";
415+
if(mcversion.lt(MCVersion.MC1_20_X)) {
416+
getPlayerList = "ac";
417+
if(mcversion.lt(MCVersion.MC1_20_2)) {
418+
ops = "o";
419+
if(mcversion.equals(MCVersion.MC1_19_3)) {
420+
getPlayerList = "ab";
421+
} else if(mcversion.lt(MCVersion.MC1_19_1)) {
422+
ops = "n";
423+
if(mcversion.lt(MCVersion.MC1_18)) {
424+
getPlayerList = "getPlayerList";
425+
if(mcversion.lt(MCVersion.MC1_17)) {
426+
String version = ((BukkitMCServer) Static.getServer()).getCraftBukkitPackage().split("\\.")[3];
427+
nms = "net.minecraft.server." + version;
428+
playersPackage = nms;
429+
ops = "operators";
430+
}
428431
}
429432
}
430433
}

src/main/java/com/laytonsmith/abstraction/enums/MCEntityEffect.java

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,14 @@
66
public enum MCEntityEffect {
77
ARROW_PARTICLES,
88
RABBIT_JUMP,
9-
DEATH,
9+
DEATH, // deprecated for EGG_BREAK, SNOWBALL_BREAK, ENTITY_DEATH
10+
EGG_BREAK,
11+
SNOWBALL_BREAK,
12+
ENTITY_DEATH,
1013
HURT,
11-
SHEEP_EAT,
14+
SHEEP_EAT, // deprecated for SHEEP_EAT_GRASS, TNT_MINECART_IGNITE
15+
SHEEP_EAT_GRASS,
16+
TNT_MINECART_IGNITE,
1217
WOLF_HEARTS,
1318
WOLF_SHAKE,
1419
WOLF_SMOKE,
@@ -45,5 +50,21 @@ public enum MCEntityEffect {
4550
BREAK_EQUIPMENT_HELMET,
4651
BREAK_EQUIPMENT_CHESTPLATE,
4752
BREAK_EQUIPMENT_LEGGINGS,
48-
BREAK_EQUIPMENT_BOOTS
53+
BREAK_EQUIPMENT_BOOTS,
54+
RESET_SPAWNER_MINECART_DELAY,
55+
FANG_ATTACK,
56+
HOGLIN_ATTACK,
57+
RAVAGER_ATTACK,
58+
WARDEN_ATTACK,
59+
ZOGLIN_ATTACK,
60+
HONEY_BLOCK_SLIDE_PARTICLES,
61+
HONEY_BLOCK_FALL_PARTICLES,
62+
SWAP_HAND_ITEMS,
63+
WOLF_SHAKE_STOP,
64+
GOAT_LOWER_HEAD,
65+
GOAT_RAISE_HEAD,
66+
SPAWN_DEATH_SMOKE,
67+
WARDEN_TENDRIL_SHAKE,
68+
WARDEN_SONIC_ATTACK,
69+
SNIFFER_DIG,
4970
}

src/main/java/com/laytonsmith/abstraction/enums/MCEntityType.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ public enum MCVanillaEntityType {
131131
BLAZE,
132132
BLOCK_DISPLAY(true, false, MCVersion.MC1_19_X),
133133
BOAT,
134+
BREEZE(true, false, MCVersion.MC1_20_X),
134135
CAMEL(true, false, MCVersion.MC1_19_3),
135136
CAT(true, false, MCVersion.MC1_14),
136137
CAVE_SPIDER,
@@ -235,6 +236,7 @@ public enum MCVanillaEntityType {
235236
VINDICATOR,
236237
WANDERING_TRADER(true, false, MCVersion.MC1_14),
237238
WARDEN(true, false, MCVersion.MC1_19),
239+
WIND_CHARGE(true, true, MCVersion.MC1_20_X),
238240
WITCH,
239241
WITHER,
240242
WITHER_SKELETON,

src/main/java/com/laytonsmith/abstraction/enums/MCGameRule.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,15 @@ public enum MCGameRule {
3838
LAVASOURCECONVERSION("lavaSourceConversion"),
3939
LOGADMINCOMMANDS("logAdminCommands"),
4040
MAXCOMMANDCHAINLENGTH("maxCommandChainLength", CInt.class),
41+
MAXCOMMANDFORKCOUNT("maxCommandForkCount", CInt.class),
4142
MAXENTITYCRAMMING("maxEntityCramming", CInt.class),
4243
MOBEXPLOSIONDROPDECAY("mobExplosionDropDecay"),
4344
MOBGRIEFING("mobGriefing"),
4445
NATURALREGENERATION("naturalRegeneration"),
46+
PLAYERSNETHERPORTALCREATIVEDELAY("playersNetherPortalCreativeDelay", CInt.class),
47+
PLAYERSNETHERPORTALDEFAULTDELAY("playersNetherPortalDefaultDelay", CInt.class),
4548
PLAYERSSLEEPINGPERCENTAGE("playersSleepingPercentage", CInt.class),
49+
PROJECTILESCANBREAKBLOCKS("projectilesCanBreakBlocks"),
4650
RANDOMTICKSPEED("randomTickSpeed", CInt.class),
4751
REDUCEDDEBUGINFO("reducedDebugInfo"),
4852
SENDCOMMANDFEEDBACK("sendCommandFeedback"),

src/main/java/com/laytonsmith/abstraction/enums/MCInventoryType.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ public enum MCInventoryType {
3131
CARTOGRAPHY(false),
3232
GRINDSTONE(false),
3333
STONECUTTER(false),
34-
CHISELED_BOOKSHELF(false);
34+
CHISELED_BOOKSHELF(false),
35+
CRAFTER(false);
3536

3637
// Whether or not this inventory type can be created and used virtually
3738
private final boolean canVirtualize;

src/main/java/com/laytonsmith/abstraction/enums/MCParticle.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,12 @@ public enum MCVanillaParticle {
184184
LANDING_CHERRY_LEAVES(MCVersion.MC1_19_X, MCVersion.MC1_19_X),
185185
CHERRY_LEAVES(MCVersion.MC1_20),
186186
EGG_CRACK(MCVersion.MC1_20),
187+
DUST_PLUME(MCVersion.MC1_20_X),
188+
WHITE_SMOKE(MCVersion.MC1_20_X),
189+
GUST(MCVersion.MC1_20_X),
190+
GUST_EMITTER(MCVersion.MC1_20_X),
191+
GUST_DUST(MCVersion.MC1_20_X),
192+
TRIAL_SPAWNER_DETECTION(MCVersion.MC1_20_X),
187193
UNKNOWN(MCVersion.NEVER);
188194

189195
private final MCVersion since;

src/main/java/com/laytonsmith/abstraction/enums/MCResourcePackStatus.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
public enum MCResourcePackStatus {
77
ACCEPTED,
88
DECLINED,
9+
DISCARDED,
10+
DOWNLOADED,
911
FAILED_DOWNLOAD,
12+
FAILED_RELOAD,
13+
INVALID_URL,
1014
SUCCESSFULLY_LOADED
1115
}

src/main/java/com/laytonsmith/abstraction/enums/MCSound.java

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1581,6 +1581,62 @@ public enum MCVanillaSound {
15811581
BLOCK_WET_SPONGE_PLACE(MCVersion.MC1_20_2),
15821582
BLOCK_WET_SPONGE_STEP(MCVersion.MC1_20_2),
15831583

1584+
// 1.20.3 additions
1585+
BLOCK_COPPER_BULB_BREAK(MCVersion.MC1_20_X),
1586+
BLOCK_COPPER_BULB_FALL(MCVersion.MC1_20_X),
1587+
BLOCK_COPPER_BULB_HIT(MCVersion.MC1_20_X),
1588+
BLOCK_COPPER_BULB_PLACE(MCVersion.MC1_20_X),
1589+
BLOCK_COPPER_BULB_STEP(MCVersion.MC1_20_X),
1590+
BLOCK_COPPER_BULB_TURN_OFF(MCVersion.MC1_20_X),
1591+
BLOCK_COPPER_BULB_TURN_ON(MCVersion.MC1_20_X),
1592+
BLOCK_COPPER_DOOR_CLOSE(MCVersion.MC1_20_X),
1593+
BLOCK_COPPER_DOOR_OPEN(MCVersion.MC1_20_X),
1594+
BLOCK_COPPER_GRATE_BREAK(MCVersion.MC1_20_X),
1595+
BLOCK_COPPER_GRATE_FALL(MCVersion.MC1_20_X),
1596+
BLOCK_COPPER_GRATE_HIT(MCVersion.MC1_20_X),
1597+
BLOCK_COPPER_GRATE_PLACE(MCVersion.MC1_20_X),
1598+
BLOCK_COPPER_GRATE_STEP(MCVersion.MC1_20_X),
1599+
BLOCK_COPPER_TRAPDOOR_CLOSE(MCVersion.MC1_20_X),
1600+
BLOCK_COPPER_TRAPDOOR_OPEN(MCVersion.MC1_20_X),
1601+
BLOCK_CRAFTER_CRAFT(MCVersion.MC1_20_X),
1602+
BLOCK_CRAFTER_FAIL(MCVersion.MC1_20_X),
1603+
BLOCK_DECORATED_POT_INSERT(MCVersion.MC1_20_X),
1604+
BLOCK_DECORATED_POT_INSERT_FAIL(MCVersion.MC1_20_X),
1605+
BLOCK_HANGING_SIGN_WAXED_INTERACT_FAIL(MCVersion.MC1_20_X),
1606+
BLOCK_POLISHED_TUFF_BREAK(MCVersion.MC1_20_X),
1607+
BLOCK_POLISHED_TUFF_FALL(MCVersion.MC1_20_X),
1608+
BLOCK_POLISHED_TUFF_HIT(MCVersion.MC1_20_X),
1609+
BLOCK_POLISHED_TUFF_PLACE(MCVersion.MC1_20_X),
1610+
BLOCK_POLISHED_TUFF_STEP(MCVersion.MC1_20_X),
1611+
BLOCK_TRIAL_SPAWNER_AMBIENT(MCVersion.MC1_20_X),
1612+
BLOCK_TRIAL_SPAWNER_BREAK(MCVersion.MC1_20_X),
1613+
BLOCK_TRIAL_SPAWNER_CLOSE_SHUTTER(MCVersion.MC1_20_X),
1614+
BLOCK_TRIAL_SPAWNER_DETECT_PLAYER(MCVersion.MC1_20_X),
1615+
BLOCK_TRIAL_SPAWNER_EJECT_ITEM(MCVersion.MC1_20_X),
1616+
BLOCK_TRIAL_SPAWNER_FALL(MCVersion.MC1_20_X),
1617+
BLOCK_TRIAL_SPAWNER_HIT(MCVersion.MC1_20_X),
1618+
BLOCK_TRIAL_SPAWNER_OPEN_SHUTTER(MCVersion.MC1_20_X),
1619+
BLOCK_TRIAL_SPAWNER_PLACE(MCVersion.MC1_20_X),
1620+
BLOCK_TRIAL_SPAWNER_SPAWN_MOB(MCVersion.MC1_20_X),
1621+
BLOCK_TRIAL_SPAWNER_STEP(MCVersion.MC1_20_X),
1622+
BLOCK_TUFF_BRICKS_BREAK(MCVersion.MC1_20_X),
1623+
BLOCK_TUFF_BRICKS_FALL(MCVersion.MC1_20_X),
1624+
BLOCK_TUFF_BRICKS_HIT(MCVersion.MC1_20_X),
1625+
BLOCK_TUFF_BRICKS_PLACE(MCVersion.MC1_20_X),
1626+
BLOCK_TUFF_BRICKS_STEP(MCVersion.MC1_20_X),
1627+
ENTITY_BREEZE_DEATH(MCVersion.MC1_20_X),
1628+
ENTITY_BREEZE_HURT(MCVersion.MC1_20_X),
1629+
ENTITY_BREEZE_IDLE_AIR(MCVersion.MC1_20_X),
1630+
ENTITY_BREEZE_IDLE_GROUND(MCVersion.MC1_20_X),
1631+
ENTITY_BREEZE_INHALE(MCVersion.MC1_20_X),
1632+
ENTITY_BREEZE_JUMP(MCVersion.MC1_20_X),
1633+
ENTITY_BREEZE_LAND(MCVersion.MC1_20_X),
1634+
ENTITY_BREEZE_SHOOT(MCVersion.MC1_20_X),
1635+
ENTITY_BREEZE_SLIDE(MCVersion.MC1_20_X),
1636+
ENTITY_GENERIC_WIND_BURST(MCVersion.MC1_20_X),
1637+
ENTITY_PARROT_IMITATE_BREEZE(MCVersion.MC1_20_X),
1638+
ENTITY_PLAYER_TELEPORT(MCVersion.MC1_20_X),
1639+
15841640
UNKNOWN(MCVersion.NEVER);
15851641

15861642
private final MCVersion since;

0 commit comments

Comments
 (0)