diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java index 1e960f4a..ea5845ac 100644 --- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java +++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java @@ -1115,8 +1115,8 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc */ public void bindPassiveSkill(int slot, @NotNull PassiveSkill skill) { Validate.notNull(skill, "Skill cannot be null"); - final int maxBound = getProfess().getMaxBoundActiveSkills(); - if (slot > 0 && boundPassiveSkills.size() >= maxBound) { + final int maxBound = getProfess().getMaxBoundPassiveSkills(); + if (slot >= 0 && boundPassiveSkills.size() >= maxBound) { final @NotNull PassiveSkill current = boundPassiveSkills.set(slot, skill); if (current != null) current.unregister(mmoData); @@ -1151,7 +1151,7 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc */ public void bindActiveSkill(int slot, ClassSkill skill) { Validate.notNull(skill, "Skill cannot be null"); - if (slot > 0 && boundSkills.size() >= getProfess().getMaxBoundActiveSkills()) + if (slot >= 0 && boundSkills.size() >= getProfess().getMaxBoundActiveSkills()) boundSkills.set(slot, skill); else boundSkills.add(skill); diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java index 6acbd3b4..bf0710bb 100644 --- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java +++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java @@ -173,9 +173,6 @@ public class PlayerQuests implements Closable { bossbar.removeAll(); Bukkit.removeBossBar(bossbarNamespacedKey); } - - // Close current objective progress - closeCurrentQuest(); } public boolean checkCooldownAvailability(Quest quest) { diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java index 3db0e437..f1fd656b 100644 --- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java +++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java @@ -36,7 +36,7 @@ public class GuildCommand extends RegisteredCommand { Bukkit.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) return true; - if (args.length > 1) { + if (args.length >= 1) { final @Nullable GuildInvite invite; if (args.length > 1) diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java index 9ad28f5c..963910d8 100644 --- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java +++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java @@ -171,7 +171,7 @@ public class PlayerProfessions { public void giveExperience(Profession profession, double value, EXPSource source, @Nullable Location hologramLocation, boolean splitExp) { Validate.isTrue(playerData.isOnline(), "Cannot give experience to offline player"); if (value <= 0) { - exp.put(profession.getId(), Math.max(0, exp.get(profession.getId() + value))); + exp.put(profession.getId(), Math.max(0, exp.get(profession.getId()) + value)); return; } diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java index 0ce3b5af..cb045022 100644 --- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java +++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java @@ -6,6 +6,7 @@ import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; import org.apache.commons.lang.Validate; +import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerMoveEvent; @@ -68,7 +69,7 @@ public class MoveExperienceSource extends SpecificExperienceSource { FLY((p) -> p.isFlying() || p.isGliding()), SWIM((p) -> p.getLocation().getBlock().isLiquid()), SPRINT(Player::isSprinting), - WALK((p) -> !p.isSneaking() && !p.isSprinting() && !p.isFlying() && !p.getLocation().getBlock().isLiquid()); + WALK((p) -> !p.isSneaking() && !p.isSprinting() &&((Entity)p).isOnGround()&& !p.isFlying() && !p.getLocation().getBlock().isLiquid()); private final Function matching;