-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Description
Expected behavior
Being able to create a GameProfile object with either the id or the name and therefore the following code working:
meta.setOwningPlayer(Bukkit.getOfflinePlayer(NOTCH_UUID)); // meta is a SkullMeta object,See authlib v4.0.43:
public GameProfile(final UUID id, final String name) {
this.properties = new PropertyMap();
if (id == null && StringUtils.isBlank((CharSequence)name)) {
throw new IllegalArgumentException("Name and ID cannot both be blank");
}
this.id = id;
this.name = name;
}Observed/Actual behavior
Being forced to provide both the id AND the name:
See authlib 5.0.47:
public GameProfile(final UUID id, final String name) {
this.properties = new PropertyMap();
this.id = Objects.requireNonNull(id, "Profile ID must not be null");
this.name = Objects.requireNonNull(name, "Profile name must not be null");
}Also, there is no method to create an OfflinePlayer where you specify both the id and name, so setOwningPlayer will fail when providing it with an OfflinePlayer.
Steps/models to reproduce
Code that triggered this issue:
private void initSkullMeta(@NonNull ItemStack playerHeadItemStack, @NonNull Head head) {
final var headSkullMeta = Optional.ofNullable((SkullMeta) playerHeadItemStack.getItemMeta());
headSkullMeta.ifPresentOrElse(meta -> {
meta.setOwningPlayer(Bukkit.getOfflinePlayer(NOTCH_UUID)); // <- exception thrown here
// set other meta fields. Not relevant to this bug
playerHeadItemStack.setItemMeta(meta);
}, () -> {
log.warn("Couldn't find player skull meta.");
});
}Plugin and Datapack List
Plugins
HeadsPluginAPI
HeadsInventory
HeadSweeper
Nothing else was added.
Paper version
PaperMC 1.20.2 (build 240)
Sidenote:
Also occurs in PurpurMC 1.20.2 (build 2074 and 2078)
Other
Issue found by a user of HeadsPluginAPI on a PurpurMC server. I'm tracking the issue in CC007/HeadsPluginAPI#31
It was also reported the issue to PurpurMC: PurpurMC/Purpur#1445, but after reproducing the issue in PaperMC, I was asked to make an issue here.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status

