Skip to content

Commit 2bfe426

Browse files
committed
Update for MC 1.21.4
1 parent 07a433c commit 2bfe426

File tree

8 files changed

+28
-132
lines changed

8 files changed

+28
-132
lines changed

build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
plugins {
22
id 'java'
33
id 'maven-publish'
4-
id("io.papermc.paperweight.userdev") version "1.7.1" // the latest version can be found on the Gradle Plugin Portal
4+
id("io.papermc.paperweight.userdev") version "1.7.7" // the latest version can be found on the Gradle Plugin Portal
55
}
66

77
// The Minecraft version we're currently building for
8-
def minecraftVersion = '1.21.1'
8+
def minecraftVersion = '1.21.4'
99
// The Paper JavaDoc version to use
10-
def javaDocVersion = '1.21.1'
10+
def javaDocVersion = '1.21.4'
1111
// Where this builds on the server
12-
def serverLocation = '1-21-1'
12+
def serverLocation = '1-21-4'
1313
// Version of NMS-API
1414
def projectVersion = '1.7.2'
1515

src/main/java/com/shanebeestudios/nms/api/util/McUtils.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
import java.util.ArrayList;
5959
import java.util.Comparator;
6060
import java.util.List;
61+
import java.util.Optional;
6162
import java.util.function.Predicate;
6263
import java.util.stream.Collectors;
6364

@@ -207,7 +208,7 @@ public static LevelChunk getLevelChunk(Chunk chunk) {
207208
* @return Registry from key
208209
*/
209210
public static <T> Registry<T> getRegistry(ResourceKey<? extends Registry<? extends T>> registry) {
210-
return MinecraftServer.getServer().registryAccess().registryOrThrow(registry);
211+
return MinecraftServer.getServer().registryAccess().lookupOrThrow(registry);
211212
}
212213

213214
/**
@@ -240,7 +241,11 @@ public static Entity getNMSEntity(org.bukkit.entity.Entity bukkitEntity) {
240241
public static EntityType<?> getEntityType(org.bukkit.entity.EntityType bukkitType) {
241242
NamespacedKey key = bukkitType.getKey();
242243
ResourceLocation resourceLocation = McUtils.getResourceLocation(key);
243-
return BuiltInRegistries.ENTITY_TYPE.get(resourceLocation);
244+
Optional<Holder.Reference<EntityType<?>>> ref = BuiltInRegistries.ENTITY_TYPE.get(resourceLocation);
245+
if (ref.isEmpty()) {
246+
throw new IllegalArgumentException("Unknown entity type " + resourceLocation);
247+
}
248+
return ref.get().value();
244249
}
245250

246251
/**
@@ -290,7 +295,7 @@ public static <T> Holder.Reference<T> getHolderReference(Registry<T> registry, N
290295
ResourceLocation resourceLocation = McUtils.getResourceLocation(key);
291296
ResourceKey<T> resourceKey = ResourceKey.create(registry.key(), resourceLocation);
292297
try {
293-
return registry.getHolderOrThrow(resourceKey);
298+
return registry.getOrThrow(resourceKey);
294299
} catch (IllegalStateException ignore) {
295300
return null;
296301
}

src/main/java/com/shanebeestudios/nms/api/world/WorldApi.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public static void setBiome(@NotNull Location location, @NotNull NamespacedKey b
8686

8787
LevelChunk chunk = serverLevel.getChunkAt(new BlockPos(x, y, z));
8888
chunk.setBiome(x >> 2, y >> 2, z >> 2, biome);
89-
chunk.setUnsaved(true);
89+
chunk.markUnsaved();
9090
}
9191

9292
/**
@@ -136,7 +136,7 @@ public static void fillBiome(@NotNull Location location, @NotNull Location locat
136136
for (ChunkAccess chunkAccess : chunkAccessList) {
137137
chunkAccess.fillBiomesFromNoise(McUtils.getBiomeResolver(new MutableInt(0), chunkAccess, box, biome,
138138
biomeHolder -> replaceBiome == null || biomeHolder.is(replaceBiome)), level.getChunkSource().randomState().sampler());
139-
chunkAccess.setUnsaved(true);
139+
chunkAccess.markUnsaved();
140140
}
141141
level.getChunkSource().chunkMap.resendBiomesForChunks(chunkAccessList);
142142
}

src/main/java/com/shanebeestudios/nms/api/world/biome/BiomeDefinition.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,14 @@
44
import com.shanebeestudios.nms.api.util.ReflectionUtils;
55
import net.minecraft.core.Holder;
66
import net.minecraft.core.Registry;
7-
import net.minecraft.core.RegistryAccess;
87
import net.minecraft.core.registries.Registries;
98
import net.minecraft.resources.ResourceKey;
109
import net.minecraft.resources.ResourceLocation;
11-
import net.minecraft.server.dedicated.DedicatedServer;
1210
import net.minecraft.world.level.biome.Biome;
1311
import net.minecraft.world.level.biome.BiomeGenerationSettings;
1412
import net.minecraft.world.level.biome.BiomeSpecialEffects;
1513
import net.minecraft.world.level.biome.BiomeSpecialEffects.GrassColorModifier;
1614
import net.minecraft.world.level.biome.MobSpawnSettings;
17-
import org.bukkit.Bukkit;
1815
import org.bukkit.Color;
1916
import org.bukkit.NamespacedKey;
2017

@@ -120,19 +117,17 @@ public Biome registerAndReturn() {
120117
this.biomeBuilder.generationSettings((new BiomeGenerationSettings.PlainBuilder()).build());
121118
this.biomeBuilder.mobSpawnSettings((new MobSpawnSettings.Builder()).build());
122119
Biome biome = this.biomeBuilder.build();
123-
DedicatedServer minecraftServer = McUtils.getMinecraftServer(Bukkit.getServer());
124-
RegistryAccess.Frozen registryAccess = minecraftServer.registryAccess();
125-
Registry<Biome> biomeRegistry = registryAccess.registry(Registries.BIOME).orElseThrow();
120+
Registry<Biome> biomeRegistry = McUtils.getRegistry(Registries.BIOME);
126121
ReflectionUtils.setField("frozen", biomeRegistry, false);
127122
ReflectionUtils.setField("unregisteredIntrusiveHolders", biomeRegistry, new IdentityHashMap<>());
128123
Holder.Reference<Biome> holder = biomeRegistry.createIntrusiveHolder(biome);
129124
ResourceKey<Biome> resourceKey = ResourceKey.create(Registries.BIOME, this.key);
130-
Registry.register(biomeRegistry, resourceKey, (Biome)holder.value());
125+
Registry.register(biomeRegistry, resourceKey, (Biome) holder.value());
131126
biomeRegistry.freeze();
132127
return biome;
133128
}
134129

135-
public static enum GrassModifier {
130+
public enum GrassModifier {
136131
NONE(GrassColorModifier.NONE),
137132
DARK_FOREST(GrassColorModifier.DARK_FOREST),
138133
SWAMP(GrassColorModifier.SWAMP);

src/main/java/com/shanebeestudios/nms/api/world/entity/FakePlayer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public class FakePlayer {
4848
if (attachedEntity != null) serverPlayer.setId(attachedEntity.getId());
4949
this.fakeServerPlayer = serverPlayer;
5050
this.fakePlayerEntry = new Entry(this.fakeServerPlayer.getUUID(), this.fakeServerPlayer.getGameProfile(), true, 0,
51-
GameType.CREATIVE, this.fakeServerPlayer.getDisplayName(), null);
51+
GameType.CREATIVE, this.fakeServerPlayer.getDisplayName(), true, /*Is 0 what we want?*/ 0,null);
5252
this.id = serverPlayer.getId();
5353
this.attachedEntity = attachedEntity;
5454
}

src/main/java/com/shanebeestudios/nms/api/world/item/ItemApi.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,11 @@
66
import net.minecraft.resources.ResourceLocation;
77
import net.minecraft.world.item.Item;
88
import net.minecraft.world.item.ItemStack;
9-
import net.minecraft.world.item.TieredItem;
109
import org.bukkit.Material;
1110
import org.bukkit.NamespacedKey;
1211
import org.bukkit.craftbukkit.inventory.CraftItemStack;
1312
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
1413
import org.jetbrains.annotations.NotNull;
15-
import org.jetbrains.annotations.Nullable;
1614

1715
/**
1816
* Api methods pertaining to an {@link org.bukkit.inventory.ItemStack}
@@ -91,18 +89,6 @@ public static Item getItem(@NotNull Material bukkitMaterial) {
9189
return CraftMagicNumbers.getItem(bukkitMaterial);
9290
}
9391

94-
/**
95-
* Get the {@link McTier Tier} from a Tiered Item
96-
*
97-
* @param item Tiered Item to get Tier from
98-
* @return Tier of Item
99-
*/
100-
@Nullable
101-
public static McTier getTier(@NotNull Item item) {
102-
if (item instanceof TieredItem tieredItem) return McTier.wrap(tieredItem);
103-
return null;
104-
}
105-
10692
/**
10793
* Get a wrapped ItemStack for easy to use methods
10894
*

src/main/java/com/shanebeestudios/nms/api/world/item/McItem.java

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.shanebeestudios.nms.api.world.item;
22

33
import net.minecraft.core.component.DataComponents;
4+
import net.minecraft.tags.DamageTypeTags;
45
import net.minecraft.world.item.Item;
5-
import net.minecraft.world.item.TieredItem;
6-
import org.jetbrains.annotations.Nullable;
6+
import net.minecraft.world.item.component.DamageResistant;
77

88
/**
99
* Wrapper for Minecraft Item
@@ -37,33 +37,28 @@ public Item getItem() {
3737
return this.item;
3838
}
3939

40-
/**
41-
* Get the {@link McTier Tier} from a Tiered Item
42-
*
43-
* @return Tier of Item
44-
*/
45-
@Nullable
46-
public McTier getTier() {
47-
if (this.item instanceof TieredItem tieredItem) return McTier.wrap(tieredItem);
48-
return null;
49-
}
50-
5140
/**
5241
* Check if this item is fire-resistant
5342
*
5443
* @return True if fire-resistant else false
5544
*/
5645
public boolean isFireResistant() {
57-
return this.item.components().has(DataComponents.FIRE_RESISTANT);
46+
if (this.item.components().has(DataComponents.DAMAGE_RESISTANT)) {
47+
DamageResistant data = this.item.components().get(DataComponents.DAMAGE_RESISTANT);
48+
return data != null && data.types() == DamageTypeTags.IS_FIRE;
49+
}
50+
return false;
5851
}
5952

6053
/**
6154
* Check if Item is complex
6255
*
6356
* @return True if complex else false
57+
* @deprecated No longer a thing in MC
6458
*/
59+
@Deprecated(since = "1.21.4")
6560
public boolean isComplex() {
66-
return this.item.isComplex();
61+
return false;
6762
}
6863

6964
}

src/main/java/com/shanebeestudios/nms/api/world/item/McTier.java

Lines changed: 0 additions & 85 deletions
This file was deleted.

0 commit comments

Comments
 (0)