Skip to content

Commit 62e47f3

Browse files
committed
Add support for Minecraft 1.21.3
1 parent 2de6573 commit 62e47f3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+723
-348
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,12 +178,12 @@
178178
<!-- GPL -->
179179
<groupId>org.spigotmc</groupId>
180180
<artifactId>spigot-api</artifactId>
181-
<version>1.21-R0.1-SNAPSHOT</version>
181+
<version>1.21.2-R0.1-SNAPSHOT</version>
182182
</dependency>
183183
<dependency>
184184
<groupId>io.papermc.paper</groupId>
185185
<artifactId>paper-api</artifactId>
186-
<version>1.21-R0.1-SNAPSHOT</version>
186+
<version>1.21.1-R0.1-SNAPSHOT</version>
187187
</dependency>
188188

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

src/main/java/com/laytonsmith/PureUtilities/ClassLoading/DynamicEnum.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,10 @@ public DynamicEnum(Abstracted abstracted, Concrete concrete) {
1515

1616
public abstract String name();
1717

18-
/**
19-
* Override me in API
20-
*
21-
* @return
22-
*/
2318
public Abstracted getAbstracted() {
2419
return abstracted;
2520
}
2621

27-
/**
28-
* Override me in Implementation if needed
29-
*
30-
* @return
31-
*/
3222
public Concrete getConcrete() {
3323
return concrete;
3424
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package com.laytonsmith.abstraction;
2+
3+
public class MCParticleData {
4+
5+
public static class DustTransition {
6+
MCColor from;
7+
MCColor to;
8+
9+
public DustTransition(MCColor from, MCColor to) {
10+
this.from = from;
11+
this.to = to;
12+
}
13+
14+
public MCColor from() {
15+
return this.from;
16+
}
17+
18+
public MCColor to() {
19+
return this.to;
20+
}
21+
}
22+
23+
public static class TargetColor {
24+
MCLocation location;
25+
MCColor color;
26+
27+
public TargetColor(MCLocation location, MCColor color) {
28+
this.location = location;
29+
this.color = color;
30+
}
31+
32+
public MCLocation location() {
33+
return this.location;
34+
}
35+
36+
public MCColor color() {
37+
return this.color;
38+
}
39+
}
40+
41+
public static class VibrationBlockDestination {
42+
MCLocation location;
43+
int arrivalTime;
44+
45+
public VibrationBlockDestination(MCLocation location, int arrivalTime) {
46+
this.location = location;
47+
this.arrivalTime = arrivalTime;
48+
}
49+
50+
public MCLocation location() {
51+
return this.location;
52+
}
53+
54+
public int arrivalTime() {
55+
return this.arrivalTime;
56+
}
57+
}
58+
59+
public static class VibrationEntityDestination {
60+
MCEntity entity;
61+
int arrivalTime;
62+
63+
public VibrationEntityDestination(MCEntity entity, int arrivalTime) {
64+
this.entity = entity;
65+
this.arrivalTime = arrivalTime;
66+
}
67+
68+
public MCEntity entity() {
69+
return this.entity;
70+
}
71+
72+
public int arrivalTime() {
73+
return this.arrivalTime;
74+
}
75+
}
76+
}

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

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1672,7 +1672,56 @@ public enum MCVanillaMaterial {
16721672
// 1.21 additions
16731673
MUSIC_DISC_CREATOR(MCVersion.MC1_21),
16741674
MUSIC_DISC_CREATOR_MUSIC_BOX(MCVersion.MC1_21),
1675-
MUSIC_DISC_PRECIPICE(MCVersion.MC1_21);
1675+
MUSIC_DISC_PRECIPICE(MCVersion.MC1_21),
1676+
1677+
// 1.21.2 additions
1678+
BLACK_BUNDLE(MCVersion.MC1_21_3),
1679+
BLUE_BUNDLE(MCVersion.MC1_21_3),
1680+
BROWN_BUNDLE(MCVersion.MC1_21_3),
1681+
CYAN_BUNDLE(MCVersion.MC1_21_3),
1682+
GRAY_BUNDLE(MCVersion.MC1_21_3),
1683+
GREEN_BUNDLE(MCVersion.MC1_21_3),
1684+
LIGHT_BLUE_BUNDLE(MCVersion.MC1_21_3),
1685+
LIGHT_GRAY_BUNDLE(MCVersion.MC1_21_3),
1686+
LIME_BUNDLE(MCVersion.MC1_21_3),
1687+
MAGENTA_BUNDLE(MCVersion.MC1_21_3),
1688+
ORANGE_BUNDLE(MCVersion.MC1_21_3),
1689+
PINK_BUNDLE(MCVersion.MC1_21_3),
1690+
PURPLE_BUNDLE(MCVersion.MC1_21_3),
1691+
RED_BUNDLE(MCVersion.MC1_21_3),
1692+
WHITE_BUNDLE(MCVersion.MC1_21_3),
1693+
YELLOW_BUNDLE(MCVersion.MC1_21_3),
1694+
BORDURE_INDENTED_BANNER_PATTERN(MCVersion.MC1_21_3),
1695+
FIELD_MASONED_BANNER_PATTERN(MCVersion.MC1_21_3),
1696+
1697+
// 1.21.2 experimental additions
1698+
CREAKING_HEART(MCVersion.MC1_21_3),
1699+
CREAKING_SPAWN_EGG(MCVersion.MC1_21_3),
1700+
PALE_HANGING_MOSS(MCVersion.MC1_21_3),
1701+
PALE_MOSS_BLOCK(MCVersion.MC1_21_3),
1702+
PALE_MOSS_CARPET(MCVersion.MC1_21_3),
1703+
PALE_OAK_BOAT(MCVersion.MC1_21_3),
1704+
PALE_OAK_BUTTON(MCVersion.MC1_21_3),
1705+
PALE_OAK_CHEST_BOAT(MCVersion.MC1_21_3),
1706+
PALE_OAK_DOOR(MCVersion.MC1_21_3),
1707+
PALE_OAK_FENCE(MCVersion.MC1_21_3),
1708+
PALE_OAK_FENCE_GATE(MCVersion.MC1_21_3),
1709+
PALE_OAK_HANGING_SIGN(MCVersion.MC1_21_3),
1710+
PALE_OAK_LEAVES(MCVersion.MC1_21_3),
1711+
PALE_OAK_LOG(MCVersion.MC1_21_3),
1712+
PALE_OAK_PLANKS(MCVersion.MC1_21_3),
1713+
PALE_OAK_PRESSURE_PLATE(MCVersion.MC1_21_3),
1714+
PALE_OAK_SAPLING(MCVersion.MC1_21_3),
1715+
PALE_OAK_SIGN(MCVersion.MC1_21_3),
1716+
PALE_OAK_SLAB(MCVersion.MC1_21_3),
1717+
PALE_OAK_STAIRS(MCVersion.MC1_21_3),
1718+
PALE_OAK_TRAPDOOR(MCVersion.MC1_21_3),
1719+
PALE_OAK_WALL_HANGING_SIGN(MCVersion.MC1_21_3),
1720+
PALE_OAK_WALL_SIGN(MCVersion.MC1_21_3),
1721+
PALE_OAK_WOOD(MCVersion.MC1_21_3),
1722+
POTTED_PALE_OAK_SAPLING(MCVersion.MC1_21_3),
1723+
STRIPPED_PALE_OAK_LOG(MCVersion.MC1_21_3),
1724+
STRIPPED_PALE_OAK_WOOD(MCVersion.MC1_21_3);
16761725

16771726
private final MCVersion since;
16781727
private final MCVersion until;

src/main/java/com/laytonsmith/abstraction/bukkit/BukkitConvertor.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@
8484
import com.laytonsmith.abstraction.enums.MCRecipeType;
8585
import com.laytonsmith.abstraction.enums.MCTone;
8686
import com.laytonsmith.abstraction.enums.MCVersion;
87-
import com.laytonsmith.abstraction.enums.bukkit.BukkitMCAttribute;
8887
import com.laytonsmith.abstraction.enums.bukkit.BukkitMCDyeColor;
8988
import com.laytonsmith.abstraction.enums.bukkit.BukkitMCEntityType;
9089
import com.laytonsmith.abstraction.enums.bukkit.BukkitMCEquipmentSlot;
@@ -105,6 +104,7 @@
105104
import org.bukkit.Material;
106105
import org.bukkit.NamespacedKey;
107106
import org.bukkit.World;
107+
import org.bukkit.attribute.Attribute;
108108
import org.bukkit.attribute.AttributeModifier;
109109
import org.bukkit.block.Banner;
110110
import org.bukkit.block.Beacon;
@@ -308,7 +308,7 @@ public MCAttributeModifier GetAttributeModifier(MCAttribute attr, UUID id, Strin
308308
AttributeModifier mod = new AttributeModifier(id, name, amt,
309309
BukkitMCAttributeModifier.Operation.getConvertor().getConcreteEnum(op),
310310
BukkitMCEquipmentSlot.getConvertor().getConcreteEnum(slot));
311-
return new BukkitMCAttributeModifier(BukkitMCAttribute.getConvertor().getConcreteEnum(attr), mod);
311+
return new BukkitMCAttributeModifier((Attribute) attr.getConcrete(), mod);
312312
}
313313

314314
@Override
@@ -325,7 +325,7 @@ public MCAttributeModifier GetAttributeModifier(MCAttribute attr, UUID id, Strin
325325
AttributeModifier mod = new AttributeModifier(id, name, amt,
326326
BukkitMCAttributeModifier.Operation.getConvertor().getConcreteEnum(op),
327327
EquipmentSlotGroup.getByName(slot.name()));
328-
return new BukkitMCAttributeModifier(BukkitMCAttribute.getConvertor().getConcreteEnum(attr), mod);
328+
return new BukkitMCAttributeModifier((Attribute) attr.getConcrete(), mod);
329329
}
330330

331331
@Override
@@ -334,7 +334,7 @@ public MCAttributeModifier GetAttributeModifier(MCAttribute attr, MCNamespacedKe
334334
AttributeModifier mod = new AttributeModifier((NamespacedKey) key.getHandle(), amt,
335335
BukkitMCAttributeModifier.Operation.getConvertor().getConcreteEnum(op),
336336
es == null ? EquipmentSlotGroup.ANY : es.getGroup());
337-
return new BukkitMCAttributeModifier(BukkitMCAttribute.getConvertor().getConcreteEnum(attr), mod);
337+
return new BukkitMCAttributeModifier((Attribute) attr.getConcrete(), mod);
338338
}
339339

340340
@Override
@@ -348,7 +348,7 @@ public MCAttributeModifier GetAttributeModifier(MCAttribute attr, MCNamespacedKe
348348
AttributeModifier mod = new AttributeModifier((NamespacedKey) key.getHandle(), amt,
349349
BukkitMCAttributeModifier.Operation.getConvertor().getConcreteEnum(op),
350350
EquipmentSlotGroup.getByName(slot.name()));
351-
return new BukkitMCAttributeModifier(BukkitMCAttribute.getConvertor().getConcreteEnum(attr), mod);
351+
return new BukkitMCAttributeModifier((Attribute) attr.getConcrete(), mod);
352352
}
353353

354354
@Override

src/main/java/com/laytonsmith/abstraction/bukkit/BukkitMCAttributeModifier.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public String getAttributeName() {
4444

4545
@Override
4646
public MCAttribute getAttribute() {
47-
return BukkitMCAttribute.getConvertor().getAbstractedEnum(a);
47+
return BukkitMCAttribute.valueOfConcrete(a);
4848
}
4949

5050
@Override

src/main/java/com/laytonsmith/abstraction/bukkit/BukkitMCItemMeta.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import java.util.Map.Entry;
2121
import java.util.Set;
2222

23-
import com.laytonsmith.abstraction.enums.bukkit.BukkitMCAttribute;
2423
import com.laytonsmith.abstraction.enums.bukkit.BukkitMCEnchantment;
2524
import com.laytonsmith.abstraction.enums.bukkit.BukkitMCItemFlag;
2625
import org.bukkit.Material;
@@ -238,8 +237,7 @@ public List<MCAttributeModifier> getAttributeModifiers() {
238237
public void setAttributeModifiers(List<MCAttributeModifier> modifiers) {
239238
Multimap<Attribute, AttributeModifier> map = LinkedHashMultimap.create();
240239
for(MCAttributeModifier m : modifiers) {
241-
map.put(BukkitMCAttribute.getConvertor().getConcreteEnum(m.getAttribute()),
242-
(AttributeModifier) m.getHandle());
240+
map.put((Attribute) m.getAttribute().getConcrete(), (AttributeModifier) m.getHandle());
243241
}
244242
im.setAttributeModifiers(map);
245243
}

src/main/java/com/laytonsmith/abstraction/bukkit/blocks/BukkitMCMaterial.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public static void build() {
5858
// These values will still be accepted on an MC server, but will be missing from cmdline.
5959
for(Material m : Material.values()) {
6060
if(!m.isLegacy() && !BUKKIT_MAP.containsKey(m)) {
61+
MSLog.GetLogger().w(MSLog.Tags.GENERAL, "Could not find MCMaterial for " + m.name(), Target.UNKNOWN);
6162
BukkitMCMaterial wrapper = new BukkitMCMaterial(null, m);
6263
BY_STRING.put(m.name(), wrapper);
6364
BUKKIT_MAP.put(m, wrapper);

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import com.laytonsmith.abstraction.enums.MCAttribute;
1818
import com.laytonsmith.abstraction.enums.MCPotionEffectType;
1919
import com.laytonsmith.abstraction.enums.MCVersion;
20-
import com.laytonsmith.abstraction.enums.bukkit.BukkitMCAttribute;
2120
import com.laytonsmith.abstraction.enums.bukkit.BukkitMCPotionEffectType;
2221
import com.laytonsmith.core.Static;
2322
import com.laytonsmith.core.constructs.Target;
@@ -415,7 +414,7 @@ public boolean isTameable() {
415414
}
416415

417416
private AttributeInstance getAttributeInstance(MCAttribute attr) {
418-
AttributeInstance instance = le.getAttribute(BukkitMCAttribute.getConvertor().getConcreteEnum(attr));
417+
AttributeInstance instance = le.getAttribute((Attribute) attr.getConcrete());
419418
if(instance == null) {
420419
throw new IllegalArgumentException("This attribute is not applicable to this entity type.");
421420
}
@@ -450,7 +449,7 @@ public void resetAttributeBase(MCAttribute attr) {
450449

451450
@Override
452451
public List<MCAttributeModifier> getAttributeModifiers(MCAttribute attr) {
453-
Attribute bukkitAttribute = BukkitMCAttribute.getConvertor().getConcreteEnum(attr);
452+
Attribute bukkitAttribute = (Attribute) attr.getConcrete();
454453
AttributeInstance instance = le.getAttribute(bukkitAttribute);
455454
if(instance == null) {
456455
throw new IllegalArgumentException("This attribute is not applicable to this entity type.");

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@
22

33
import com.laytonsmith.abstraction.entities.MCPainting;
44
import com.laytonsmith.abstraction.enums.MCArt;
5-
import com.laytonsmith.abstraction.enums.bukkit.BukkitMCArt;
5+
import org.bukkit.Art;
6+
import org.bukkit.NamespacedKey;
7+
import org.bukkit.Registry;
68
import org.bukkit.entity.Entity;
79
import org.bukkit.entity.Painting;
810

11+
import java.util.Locale;
12+
913
public class BukkitMCPainting extends BukkitMCHanging implements MCPainting {
1014

1115
Painting p;
@@ -17,7 +21,7 @@ public BukkitMCPainting(Entity painting) {
1721

1822
@Override
1923
public MCArt getArt() {
20-
return BukkitMCArt.getConvertor().getAbstractedEnum(p.getArt());
24+
return MCArt.valueOf(p.getArt().getKey().getKey().toUpperCase(Locale.ROOT));
2125
}
2226

2327
@Override
@@ -27,7 +31,11 @@ public boolean setArt(MCArt art) {
2731

2832
@Override
2933
public boolean setArt(MCArt art, boolean force) {
30-
return p.setArt(BukkitMCArt.getConvertor().getConcreteEnum(art), force);
34+
Art concreteArt = Registry.ART.get(NamespacedKey.minecraft(art.name().toLowerCase(Locale.ROOT)));
35+
if(concreteArt != null) {
36+
return p.setArt(concreteArt, force);
37+
}
38+
return false;
3139
}
3240

3341
}

0 commit comments

Comments
 (0)