mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-30 04:02:50 +01:00
d8847bc1f3
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: fde5602a PR-927: Add PlayerRecipeBookSettingsChangeEvent 949ff217 PR-930: Add methods to get/set evoker fang attack delay f6f7c79d SPIGOT-7514, PR-929: Add "Enchantment Roll" API to enchant items according to Minecraft mechanics d40e22da PR-712: Add API to get full result of crafting items CraftBukkit Changes: c8feb0629 PR-1291: Improve precondition message in Entity#playEffect 482c56a00 PR-1285: Add PlayerRecipeBookSettingsChangeEvent cdf798800 PR-1290: Add methods to get/set evoker fang attack delay 2c1b5f78f SPIGOT-7514, PR-1289: Add "Enchantment Roll" API to enchant items according to Minecraft mechanics 6aa644ae9 PR-992: Add API to get full result of crafting items ffb1319bc PR-1287: Fix scoreboards not updating in Player#setStatistic
54 lines
3.1 KiB
Diff
54 lines
3.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Sat, 10 Dec 2022 17:52:38 -0800
|
|
Subject: [PATCH] Deprecate and replace methods with old StructureType
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index 1cad49d031580a7d5a2c8085ce44a0b0b4a5383f..770bfdc6ce75e85e2ec94f62e2545e1bc47244ef 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -1918,6 +1918,11 @@ public final class CraftServer implements Server {
|
|
|
|
ServerLevel worldServer = ((CraftWorld) world).getHandle();
|
|
Location structureLocation = world.locateNearestStructure(location, structureType, radius, findUnexplored);
|
|
+ // Paper start - don't throw NPE
|
|
+ if (structureLocation == null) {
|
|
+ throw new IllegalStateException("Could not find a structure for " + structureType);
|
|
+ }
|
|
+ // Paper end
|
|
BlockPos structurePosition = CraftLocation.toBlockPosition(structureLocation);
|
|
|
|
// Create map with trackPlayer = true, unlimitedTracking = true
|
|
@@ -1928,6 +1933,31 @@ public final class CraftServer implements Server {
|
|
|
|
return CraftItemStack.asBukkitCopy(stack);
|
|
}
|
|
+ // Paper start - copied from above (uses un-deprecated StructureType type)
|
|
+ @Override
|
|
+ public ItemStack createExplorerMap(World world, Location location, org.bukkit.generator.structure.StructureType structureType, org.bukkit.map.MapCursor.Type mapIcon, int radius, boolean findUnexplored) {
|
|
+ Preconditions.checkArgument(world != null, "World cannot be null");
|
|
+ Preconditions.checkArgument(location != null, "Location cannot be null");
|
|
+ Preconditions.checkArgument(structureType != null, "StructureType cannot be null");
|
|
+ Preconditions.checkArgument(mapIcon != null, "mapIcon cannot be null");
|
|
+
|
|
+ ServerLevel worldServer = ((CraftWorld) world).getHandle();
|
|
+ final org.bukkit.util.StructureSearchResult structureSearchResult = world.locateNearestStructure(location, structureType, radius, findUnexplored);
|
|
+ if (structureSearchResult == null) {
|
|
+ return null;
|
|
+ }
|
|
+ Location structureLocation = structureSearchResult.getLocation();
|
|
+ BlockPos structurePosition = new BlockPos(structureLocation.getBlockX(), structureLocation.getBlockY(), structureLocation.getBlockZ());
|
|
+
|
|
+ // Create map with showIcons = true, unlimitedTracking = true
|
|
+ net.minecraft.world.item.ItemStack stack = MapItem.create(worldServer, structurePosition.getX(), structurePosition.getZ(), MapView.Scale.NORMAL.getValue(), true, true);
|
|
+ MapItem.renderBiomePreviewMap(worldServer, stack);
|
|
+ // "+" map ID taken from VillagerTrades$TreasureMapForEmeralds
|
|
+ MapItem.getSavedData(stack, worldServer).addTargetDecoration(stack, structurePosition, "+", MapDecoration.Type.byIcon(mapIcon.getValue()));
|
|
+
|
|
+ return CraftItemStack.asBukkitCopy(stack);
|
|
+ }
|
|
+ // Paper end
|
|
|
|
@Override
|
|
public void shutdown() {
|