hopefully fixed an issue with Heroes

This commit is contained in:
Indyuce 2021-08-09 18:28:04 +02:00
parent fdc264b07c
commit ed1c58aae5
5 changed files with 27 additions and 19 deletions

View File

@ -53,6 +53,7 @@ public class Consumable extends UseItem {
/** /**
* @deprecated Use {@link Consumable#useOnPlayer()} * @deprecated Use {@link Consumable#useOnPlayer()}
*/ */
@Deprecated
public boolean useWithoutItem() { public boolean useWithoutItem() {
return useOnPlayer() == ConsumableConsumeResult.CONSUME; return useOnPlayer() == ConsumableConsumeResult.CONSUME;
} }

View File

@ -47,7 +47,7 @@ public class HeroesHook implements RPGHandler, Listener, DamageHandler {
@Override @Override
public void refreshStats(PlayerData data) { public void refreshStats(PlayerData data) {
Hero hero = ((HeroesPlayer) data.getRPG()).hero; Hero hero = Heroes.getInstance().getCharacterManager().getHero(data.getPlayer());
hero.removeMaxMana("MMOItems"); hero.removeMaxMana("MMOItems");
hero.addMaxMana("MMOItems", (int) data.getStats().getStat(ItemStats.MAX_MANA)); hero.addMaxMana("MMOItems", (int) data.getStats().getStat(ItemStats.MAX_MANA));
} }
@ -76,41 +76,43 @@ public class HeroesHook implements RPGHandler, Listener, DamageHandler {
} }
public static class HeroesPlayer extends RPGPlayer { public static class HeroesPlayer extends RPGPlayer {
private final Hero hero;
public HeroesPlayer(PlayerData playerData) { public HeroesPlayer(PlayerData playerData) {
super(playerData); super(playerData);
hero = Heroes.getInstance().getCharacterManager().getHero(getPlayer());
} }
@Override @Override
public int getLevel() { public int getLevel() {
Hero hero = Heroes.getInstance().getCharacterManager().getHero(getPlayer());
return hero.getHeroLevel(); return hero.getHeroLevel();
} }
@Override @Override
public String getClassName() { public String getClassName() {
Hero hero = Heroes.getInstance().getCharacterManager().getHero(getPlayer());
return hero.getHeroClass().getName(); return hero.getHeroClass().getName();
} }
@Override @Override
public double getMana() { public double getMana() {
Hero hero = Heroes.getInstance().getCharacterManager().getHero(getPlayer());
return hero.getMana(); return hero.getMana();
} }
@Override @Override
public double getStamina() { public double getStamina() {
Hero hero = Heroes.getInstance().getCharacterManager().getHero(getPlayer());
return hero.getStamina(); return hero.getStamina();
} }
@Override @Override
public void setMana(double value) { public void setMana(double value) {
Hero hero = Heroes.getInstance().getCharacterManager().getHero(getPlayer());
hero.setMana((int) value); hero.setMana((int) value);
} }
@Override @Override
public void setStamina(double value) { public void setStamina(double value) {
Hero hero = Heroes.getInstance().getCharacterManager().getHero(getPlayer());
hero.setStamina((int) value); hero.setStamina((int) value);
} }
} }

View File

@ -14,7 +14,7 @@ public class RacesAndClassesHook implements RPGHandler, Listener {
@Override @Override
public void refreshStats(PlayerData data) { public void refreshStats(PlayerData data) {
RaCPlayer info = ((RacePlayer) data.getRPG()).info; RaCPlayer info = RaCPlayerManager.get().getPlayer(data.getUniqueId());
info.getManaManager().removeMaxManaBonus("MMOItems"); info.getManaManager().removeMaxManaBonus("MMOItems");
info.getManaManager().addMaxManaBonus("MMOItems", data.getStats().getStat(ItemStats.MAX_MANA)); info.getManaManager().addMaxManaBonus("MMOItems", data.getStats().getStat(ItemStats.MAX_MANA));
} }
@ -39,41 +39,43 @@ public class RacesAndClassesHook implements RPGHandler, Listener {
} }
public static class RacePlayer extends RPGPlayer { public static class RacePlayer extends RPGPlayer {
private final RaCPlayer info;
public RacePlayer(PlayerData playerData) { public RacePlayer(PlayerData playerData) {
super(playerData); super(playerData);
info = RaCPlayerManager.get().getPlayer(playerData.getUniqueId());
} }
@Override @Override
public int getLevel() { public int getLevel() {
RaCPlayer info = RaCPlayerManager.get().getPlayer(getPlayer().getUniqueId());
return info.getCurrentLevel(); return info.getCurrentLevel();
} }
@Override @Override
public String getClassName() { public String getClassName() {
RaCPlayer info = RaCPlayerManager.get().getPlayer(getPlayer().getUniqueId());
return info.getclass().getDisplayName(); return info.getclass().getDisplayName();
} }
@Override @Override
public double getMana() { public double getMana() {
RaCPlayer info = RaCPlayerManager.get().getPlayer(getPlayer().getUniqueId());
return info.getCurrentMana(); return info.getCurrentMana();
} }
@Override @Override
public double getStamina() { public double getStamina() {
RaCPlayer info = RaCPlayerManager.get().getPlayer(getPlayer().getUniqueId());
return info.getPlayer().getFoodLevel(); return info.getPlayer().getFoodLevel();
} }
@Override @Override
public void setMana(double value) { public void setMana(double value) {
RaCPlayer info = RaCPlayerManager.get().getPlayer(getPlayer().getUniqueId());
info.getManaManager().fillMana(value - info.getManaManager().getCurrentMana()); info.getManaManager().fillMana(value - info.getManaManager().getCurrentMana());
} }
@Override @Override
public void setStamina(double value) { public void setStamina(double value) {
RaCPlayer info = RaCPlayerManager.get().getPlayer(getPlayer().getUniqueId());
info.getPlayer().setFoodLevel((int) value); info.getPlayer().setFoodLevel((int) value);
} }
} }

View File

@ -61,12 +61,8 @@ public class SkillAPIHook implements RPGHandler, Listener, DamageHandler {
} }
public static class SkillAPIPlayer extends RPGPlayer { public static class SkillAPIPlayer extends RPGPlayer {
/*private final PlayerData rpgdata;*/
public SkillAPIPlayer(net.Indyuce.mmoitems.api.player.PlayerData playerData) { public SkillAPIPlayer(net.Indyuce.mmoitems.api.player.PlayerData playerData) {
super(playerData); super(playerData);
/*rpgdata = SkillAPI.getPlayerData(playerData.getPlayer());*/
} }
@Override @Override

View File

@ -292,6 +292,10 @@ public class ItemUse implements Listener {
event.getForce()); event.getForce());
} }
/**
* Consumables which can be eaten using the
* vanilla eating animation are handled here.
*/
@EventHandler @EventHandler
public void handleVanillaEatenConsumables(PlayerItemConsumeEvent event) { public void handleVanillaEatenConsumables(PlayerItemConsumeEvent event) {
NBTItem item = MythicLib.plugin.getVersion().getWrapper().getNBTItem(event.getItem()); NBTItem item = MythicLib.plugin.getVersion().getWrapper().getNBTItem(event.getItem());
@ -305,10 +309,6 @@ public class ItemUse implements Listener {
return; return;
} }
/**
* Consumables which can be eaten using the
* vanilla eating animation are handled here.
*/
if (useItem instanceof Consumable) { if (useItem instanceof Consumable) {
if (!useItem.getPlayerData().isOnCooldown(useItem.getMMOItem().getId())) { if (!useItem.getPlayerData().isOnCooldown(useItem.getMMOItem().getId())) {
@ -319,11 +319,18 @@ public class ItemUse implements Listener {
return; return;
} }
if (!((Consumable) useItem).useWithoutItem()) { Consumable.ConsumableConsumeResult result = ((Consumable) useItem).useOnPlayer();
// No effects are applied and not consumed
if (result == Consumable.ConsumableConsumeResult.CANCEL) {
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
// Item is not consumed but its effects are applied anyways
if (result == Consumable.ConsumableConsumeResult.NOT_CONSUME)
event.setCancelled(true);
useItem.getPlayerData().applyItemCooldown(useItem.getMMOItem().getId(), useItem.getNBTItem().getStat("ITEM_COOLDOWN")); useItem.getPlayerData().applyItemCooldown(useItem.getMMOItem().getId(), useItem.getNBTItem().getStat("ITEM_COOLDOWN"));
useItem.executeCommands(); useItem.executeCommands();
} }