Deprecate progress as item, see #2240

This commit is contained in:
PikaMug 2024-07-04 06:44:55 -04:00
parent dfe788c0ad
commit 82804e700d
3 changed files with 14 additions and 13 deletions

View File

@ -1601,10 +1601,10 @@ public class BukkitQuester implements Quester {
final BukkitObjective objective = (BukkitObjective) obj; final BukkitObjective objective = (BukkitObjective) obj;
String message = "- " + BukkitLang.BukkitFormatToken.convertString(quester.getPlayer(), String message = "- " + BukkitLang.BukkitFormatToken.convertString(quester.getPlayer(),
objective.getMessage()); objective.getMessage());
if (objective.getProgressAsItem() != null && objective.getGoalAsItem() != null) { if (objective.getGoalAsItem() != null) {
final ItemStack progress = objective.getProgressAsItem(); final int progress = objective.getProgress();
final ItemStack goal = objective.getGoalAsItem(); final ItemStack goal = objective.getGoalAsItem();
if (!settings.canShowCompletedObjs() && progress.getAmount() >= goal.getAmount()) { if (!settings.canShowCompletedObjs() && progress >= goal.getAmount()) {
continue; continue;
} }
if (localeManager != null && settings.canTranslateNames() && !goal.hasItemMeta() if (localeManager != null && settings.canTranslateNames() && !goal.hasItemMeta()
@ -3310,8 +3310,6 @@ public class BukkitQuester implements Quester {
} }
final Player p = getPlayer(); final Player p = getPlayer();
final ObjectiveType type = objective.getType(); final ObjectiveType type = objective.getType();
final ItemStack increment = objective.getGoalObject() instanceof ItemStack ? (ItemStack) objective.getProgressObject()
: new ItemStack(Material.AIR, objective.getProgress());
final ItemStack goal = objective.getGoalObject() instanceof ItemStack ? (ItemStack) objective.getGoalObject() final ItemStack goal = objective.getGoalObject() instanceof ItemStack ? (ItemStack) objective.getGoalObject()
: new ItemStack(Material.AIR, objective.getGoal()); : new ItemStack(Material.AIR, objective.getGoal());
if (!getCurrentStage(quest).getObjectiveOverrides().isEmpty()) { if (!getCurrentStage(quest).getObjectiveOverrides().isEmpty()) {
@ -3327,23 +3325,23 @@ public class BukkitQuester implements Quester {
final String message = formatCompletedObjectiveMessage("break", goal.getAmount()); final String message = formatCompletedObjectiveMessage("break", goal.getAmount());
if (plugin.getConfigSettings().canTranslateNames() && !goal.hasItemMeta() if (plugin.getConfigSettings().canTranslateNames() && !goal.hasItemMeta()
&& !goal.getItemMeta().hasDisplayName()) { && !goal.getItemMeta().hasDisplayName()) {
if (!plugin.getLocaleManager().sendMessage(p, message, increment.getType(), increment.getDurability(), if (!plugin.getLocaleManager().sendMessage(p, message, goal.getType(), goal.getDurability(),
null)) { null)) {
sendMessage(message.replace("<item>", BukkitItemUtil.getName(increment))); sendMessage(message.replace("<item>", BukkitItemUtil.getName(goal)));
} }
} else { } else {
sendMessage(message.replace("<item>", BukkitItemUtil.getName(increment))); sendMessage(message.replace("<item>", BukkitItemUtil.getName(goal)));
} }
} else if (type.equals(ObjectiveType.DAMAGE_BLOCK)) { } else if (type.equals(ObjectiveType.DAMAGE_BLOCK)) {
final String message = formatCompletedObjectiveMessage("damage", goal.getAmount()); final String message = formatCompletedObjectiveMessage("damage", goal.getAmount());
if (plugin.getConfigSettings().canTranslateNames() && !goal.hasItemMeta() if (plugin.getConfigSettings().canTranslateNames() && !goal.hasItemMeta()
&& !goal.getItemMeta().hasDisplayName()) { && !goal.getItemMeta().hasDisplayName()) {
if (!plugin.getLocaleManager().sendMessage(p, message, increment.getType(), increment.getDurability(), if (!plugin.getLocaleManager().sendMessage(p, message, goal.getType(), goal.getDurability(),
null)) { null)) {
sendMessage(message.replace("<item>", BukkitItemUtil.getName(increment))); sendMessage(message.replace("<item>", BukkitItemUtil.getName(goal)));
} }
} else { } else {
sendMessage(message.replace("<item>", BukkitItemUtil.getName(increment))); sendMessage(message.replace("<item>", BukkitItemUtil.getName(goal)));
} }
} else if (type.equals(ObjectiveType.PLACE_BLOCK)) { } else if (type.equals(ObjectiveType.PLACE_BLOCK)) {
final String message = formatCompletedObjectiveMessage("place", goal.getAmount()); final String message = formatCompletedObjectiveMessage("place", goal.getAmount());

View File

@ -85,7 +85,10 @@ public class BukkitObjective implements Objective {
public @NotNull Object getGoalObject() { public @NotNull Object getGoalObject() {
return goalObj; return goalObj;
} }
/**
* @deprecated Paper 1.21 builds do not allow ItemStack with 0 amount
*/
public @Nullable ItemStack getProgressAsItem() { public @Nullable ItemStack getProgressAsItem() {
return progressObj instanceof ItemStack ? (ItemStack) progressObj : null; return progressObj instanceof ItemStack ? (ItemStack) progressObj : null;
} }

View File

@ -169,7 +169,7 @@ public class BukkitInventoryUtil {
public static int getEmptySlots(final Player player) { public static int getEmptySlots(final Player player) {
final ItemStack[] contents = player.getInventory().getContents(); final ItemStack[] contents = player.getInventory().getContents();
int i = 0; int i = 0;
for (ItemStack item : contents) for (final ItemStack item : contents)
if (item != null && item.getType() != Material.AIR) { if (item != null && item.getType() != Material.AIR) {
i++; i++;
} }