Restore exp requirement check, fixes #1997

This commit is contained in:
PikaMug 2022-08-11 17:17:46 -04:00
parent 7e194579d2
commit 0df7b37529
2 changed files with 7 additions and 2 deletions

View File

@ -128,6 +128,8 @@ public interface IQuester extends Comparable<IQuester> {
boolean canAcceptOffer(final IQuest quest, final boolean giveReason); boolean canAcceptOffer(final IQuest quest, final boolean giveReason);
boolean isOnTime(final IQuest quest, final boolean giveReason);
void takeQuest(final IQuest quest, final boolean ignoreRequirements); void takeQuest(final IQuest quest, final boolean ignoreRequirements);
boolean abandonQuest(final IQuest quest, final String message); boolean abandonQuest(final IQuest quest, final String message);

View File

@ -631,7 +631,7 @@ public class Quest implements IQuest {
/** /**
* Check that a quester has met all Requirements to accept this quest<p> * Check that a quester has met all Requirements to accept this quest<p>
* *
* Item, permission and custom Requirements are only checked for online players * Item, experience, permission and custom Requirements are only checked for online players
* *
* @param quester The quester to check * @param quester The quester to check
* @return true if all Requirements have been met * @return true if all Requirements have been met
@ -643,7 +643,7 @@ public class Quest implements IQuest {
/** /**
* Check that a player has met all Requirements to accept this quest<p> * Check that a player has met all Requirements to accept this quest<p>
* *
* Item, permission and custom Requirements are only checked for online players * Item, experience, permission and custom Requirements are only checked for online players
* *
* @param player The player to check * @param player The player to check
* @return true if all Requirements have been met * @return true if all Requirements have been met
@ -686,6 +686,9 @@ public class Quest implements IQuest {
} }
if (player.isOnline()) { if (player.isOnline()) {
final Player p = (Player)player; final Player p = (Player)player;
if (p.getTotalExperience() < requirements.getExp()) {
return false;
}
final Inventory fakeInv = Bukkit.createInventory(null, InventoryType.PLAYER); final Inventory fakeInv = Bukkit.createInventory(null, InventoryType.PLAYER);
fakeInv.setContents(p.getInventory().getContents().clone()); fakeInv.setContents(p.getInventory().getContents().clone());
for (final ItemStack is : requirements.getItems()) { for (final ItemStack is : requirements.getItems()) {