Update patches to latest 1.21.4 #1

Merged
Chaoscaot merged 242 commits from update/1.21.4 into main 2025-04-23 22:27:11 +02:00
513 changed files with 7083 additions and 3302 deletions
Showing only changes of commit f49d18df89 - Show all commits

View File

@ -605,6 +605,7 @@ public net.minecraft.world.level.block.entity.SculkSensorBlockEntity lastVibrati
public net.minecraft.world.level.block.entity.SculkShriekerBlockEntity warningLevel
public net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity openCount
public net.minecraft.world.level.block.entity.SignBlockEntity playerWhoMayEdit
public net.minecraft.world.level.block.entity.SkullBlockEntity customName
public net.minecraft.world.level.block.entity.SkullBlockEntity noteBlockSound
public net.minecraft.world.level.block.entity.SkullBlockEntity owner
public net.minecraft.world.level.block.entity.StructureBlockEntity author

View File

@ -1,5 +1,6 @@
package org.bukkit.block;
import net.kyori.adventure.text.Component;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.OfflinePlayer;
@ -168,4 +169,24 @@ public interface Skull extends TileState {
@Deprecated(since = "1.13", forRemoval = true)
@Contract("_ -> fail")
public void setSkullType(SkullType skullType);
/**
* Get the custom name of skull.
* <p>This name is set when placing a skull item that has a custom name.
* This name is only carried back to the item when broken for player heads
* (skeleton/creeper heads will not retain the name).</p>
*
* @return Custom name of skull
*/
public @Nullable Component customName();
/**
* Set the custom name of skull.
* <p>This name is set when placing a skull item that has a custom name.
* This name is only carried back to the item when broken for player heads
* (skeleton/creeper heads will not retain the name).</p>
*
* @param customName Custom name of skull
*/
public void customName(@Nullable Component customName);
}

View File

@ -2,6 +2,8 @@ package org.bukkit.craftbukkit.block;
import com.google.common.base.Preconditions;
import com.mojang.authlib.GameProfile;
import io.papermc.paper.adventure.PaperAdventure;
import net.kyori.adventure.text.Component;
import net.minecraft.Util;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
@ -216,4 +218,16 @@ public class CraftSkull extends CraftBlockEntityState<SkullBlockEntity> implemen
public CraftSkull copy(Location location) {
return new CraftSkull(this, location);
}
@Override
public @Nullable Component customName() {
SkullBlockEntity snapshot = getSnapshot();
return snapshot.customName == null ? null : PaperAdventure.asAdventure(snapshot.customName);
}
@Override
public void customName(@Nullable Component customName) {
SkullBlockEntity snapshot = getSnapshot();
snapshot.customName = customName == null ? null : PaperAdventure.asVanilla(customName);
}
}