RaC support

This commit is contained in:
Jules 2019-09-28 17:09:52 +02:00
parent 42b9cbd205
commit 4466118c4c
4 changed files with 96 additions and 2 deletions

BIN
lib/RacesAndClasses.jar Normal file

Binary file not shown.

View File

@ -187,6 +187,13 @@
<scope>system</scope> <scope>system</scope>
<systemPath>${basedir}/lib/MythicMobs.jar</systemPath> <systemPath>${basedir}/lib/MythicMobs.jar</systemPath>
</dependency> </dependency>
<dependency>
<groupId>de.tobiyas</groupId>
<artifactId>RacesAndClasses</artifactId>
<version>1.2.6</version>
<scope>system</scope>
<systemPath>${basedir}/lib/RacesAndClasses.jar</systemPath>
</dependency>
<dependency> <dependency>
<groupId>ru.endlesscode</groupId> <groupId>ru.endlesscode</groupId>
<artifactId>rpginventory</artifactId> <artifactId>rpginventory</artifactId>

View File

@ -17,13 +17,14 @@ public interface RPGHandler {
HEROES("Heroes", HeroesHook.class), HEROES("Heroes", HeroesHook.class),
SKILLAPI("SkillAPI", SkillAPIHook.class), SKILLAPI("SkillAPI", SkillAPIHook.class),
RPGPLAYERLEVELING("RPGPlayerLeveling", RPGPlayerLevelingHook.class), RPGPLAYERLEVELING("RPGPlayerLeveling", RPGPlayerLevelingHook.class),
RACESANDCLASSES("RacesAndClasses", RacesAndClassesHook.class),
BATTLELEVELS("BattleLevels", BattleLevelsHook.class), BATTLELEVELS("BattleLevels", BattleLevelsHook.class),
MCMMO("mcMMO", McMMOHook.class), MCMMO("mcMMO", McMMOHook.class),
MCRPG("McRPG", McRPGHook.class), MCRPG("McRPG", McRPGHook.class),
SKILLS("Skills", SkillsHook.class); SKILLS("Skills", SkillsHook.class);
private Class<? extends RPGHandler> pluginClass; private final Class<? extends RPGHandler> pluginClass;
private String name; private final String name;
private PluginEnum(String name, Class<? extends RPGHandler> pluginClass) { private PluginEnum(String name, Class<? extends RPGHandler> pluginClass) {
this.pluginClass = pluginClass; this.pluginClass = pluginClass;

View File

@ -0,0 +1,86 @@
package net.Indyuce.mmoitems.comp.rpg;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import de.tobiyas.racesandclasses.eventprocessing.events.leveling.LevelDownEvent;
import de.tobiyas.racesandclasses.eventprocessing.events.leveling.LevelUpEvent;
import de.tobiyas.racesandclasses.playermanagement.player.RaCPlayer;
import de.tobiyas.racesandclasses.playermanagement.player.RaCPlayerManager;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.player.PlayerData;
import net.Indyuce.mmoitems.api.player.RPGPlayer;
import net.Indyuce.mmoitems.stat.type.ItemStat;
public class RacesAndClassesHook implements RPGHandler, Listener {
public RacesAndClassesHook() {
Bukkit.getPluginManager().registerEvents(this, MMOItems.plugin);
}
@Override
public void refreshStats(PlayerData data) {
RaCPlayer info = ((RacePlayer) data.getRPG()).info;
info.getManaManager().removeMaxManaBonus("MMOItems");
info.getManaManager().addMaxManaBonus("MMOItems", data.getStats().getStat(ItemStat.MAX_MANA));
}
@Override
public RPGPlayer getInfo(PlayerData data) {
return new RacePlayer(data);
}
/*
* update the player's inventory whenever he levels up since it could change its
* current stat requirements
*/
@EventHandler
public void a(LevelUpEvent event) {
PlayerData.get(event.getPlayer()).scheduleDelayedInventoryUpdate();
}
@EventHandler
public void b(LevelDownEvent event) {
PlayerData.get(event.getPlayer()).scheduleDelayedInventoryUpdate();
}
public class RacePlayer extends RPGPlayer {
private final RaCPlayer info;
public RacePlayer(PlayerData playerData) {
super(playerData);
info = RaCPlayerManager.get().getPlayer(playerData.getUniqueId());
}
@Override
public int getLevel() {
return info.getCurrentLevel();
}
@Override
public String getClassName() {
return info.getclass().getDisplayName();
}
@Override
public double getMana() {
return info.getCurrentMana();
}
@Override
public double getStamina() {
return info.getPlayer().getFoodLevel();
}
@Override
public void setMana(double value) {
info.getManaManager().fillMana(value - info.getManaManager().getCurrentMana());
}
@Override
public void setStamina(double value) {
info.getPlayer().setFoodLevel((int) value);
}
}
}