mirror of
https://gitlab.com/phoenix-dvpmt/mmocore.git
synced 2025-02-02 11:21:22 +01:00
Debug for all the experience source.
Added VanillaExperience & Resource ExperienceSource and added inCombat for Playing Experience Source.
This commit is contained in:
parent
3579a5f520
commit
68b309ec61
11
pom.xml
11
pom.xml
@ -39,10 +39,21 @@
|
||||
</resources>
|
||||
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>2.3.1</version>
|
||||
<configuration>
|
||||
<outputDirectory>C:\Users\guill\Minecraft Server\Server\plugins</outputDirectory>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.1</version>
|
||||
|
||||
<configuration>
|
||||
<source>9</source>
|
||||
<target>9</target>
|
||||
|
@ -2,12 +2,14 @@ package net.Indyuce.mmocore.api.load;
|
||||
|
||||
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
|
||||
import net.Indyuce.mmocore.experience.source.*;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.*;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
|
||||
import net.Indyuce.mmocore.api.block.BlockType;
|
||||
import net.Indyuce.mmocore.api.block.SkullBlockType;
|
||||
import net.Indyuce.mmocore.api.block.VanillaBlockType;
|
||||
import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem;
|
||||
|
||||
import net.Indyuce.mmocore.loot.droptable.dropitem.DropTableDropItem;
|
||||
import net.Indyuce.mmocore.loot.droptable.dropitem.GoldDropItem;
|
||||
import net.Indyuce.mmocore.loot.droptable.dropitem.NoteDropItem;
|
||||
@ -119,9 +121,6 @@ public class DefaultMMOLoader extends MMOLoader {
|
||||
if (config.getKey().equals("resource"))
|
||||
return new ResourceExperienceSource(dispenser, config);
|
||||
|
||||
if (config.getKey().equals("vanillaexperience"))
|
||||
return new VanillaExperienceExperienceSource(dispenser, config);
|
||||
|
||||
if (config.getKey().equals("climb"))
|
||||
return new ClimbExperienceSource(dispenser, config);
|
||||
|
||||
|
@ -2,7 +2,7 @@ package net.Indyuce.mmocore.api.load;
|
||||
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
import net.Indyuce.mmocore.api.block.BlockType;
|
||||
import net.Indyuce.mmocore.loot.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem;
|
||||
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
|
||||
import net.Indyuce.mmocore.experience.source.type.ExperienceSource;
|
||||
|
@ -321,7 +321,7 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
giveExperience(total, source);
|
||||
}
|
||||
|
||||
public void setExperience(int value) {
|
||||
public void setExperience(double value) {
|
||||
experience = Math.max(0, value);
|
||||
refreshVanillaExp();
|
||||
}
|
||||
@ -517,7 +517,7 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
* @param value Experience to give the player
|
||||
* @param source How the player earned experience
|
||||
*/
|
||||
public void giveExperience(int value, EXPSource source) {
|
||||
public void giveExperience(double value, EXPSource source) {
|
||||
giveExperience(value, source, null, true);
|
||||
}
|
||||
|
||||
|
@ -17,13 +17,14 @@ import net.Indyuce.mmocore.skill.RegisteredSkill;
|
||||
import net.Indyuce.mmocore.manager.data.PlayerDataManager.DefaultPlayerData;
|
||||
|
||||
public class SavedClassInformation {
|
||||
private final int level, experience, skillPoints, attributePoints, attributeReallocationPoints;
|
||||
private final int level, skillPoints, attributePoints, attributeReallocationPoints;
|
||||
private final double experience;
|
||||
private final Map<String, Integer> attributes;
|
||||
private final Map<String, Integer> skills;
|
||||
|
||||
public SavedClassInformation(ConfigurationSection config) {
|
||||
level = config.getInt("level");
|
||||
experience = config.getInt("experience");
|
||||
experience = config.getDouble("experience");
|
||||
skillPoints = config.getInt("skill-points");
|
||||
attributePoints = config.getInt("attribute-points");
|
||||
attributeReallocationPoints = config.getInt("attribute-realloc-points");
|
||||
@ -38,7 +39,7 @@ public class SavedClassInformation {
|
||||
|
||||
public SavedClassInformation(JsonObject json) {
|
||||
level = json.get("level").getAsInt();
|
||||
experience = json.get("experience").getAsInt();
|
||||
experience = json.get("experience").getAsDouble();
|
||||
skillPoints = json.get("skill-points").getAsInt();
|
||||
attributePoints = json.get("attribute-points").getAsInt();
|
||||
attributeReallocationPoints = json.get("attribute-realloc-points").getAsInt();
|
||||
@ -63,11 +64,11 @@ public class SavedClassInformation {
|
||||
this(data.getLevel(), 0, data.getSkillPoints(), data.getAttributePoints(), data.getAttrReallocPoints());
|
||||
}
|
||||
|
||||
public SavedClassInformation(int level, int experience, int skillPoints, int attributePoints, int attributeReallocationPoints) {
|
||||
public SavedClassInformation(int level, double experience, int skillPoints, int attributePoints, int attributeReallocationPoints) {
|
||||
this(level, experience, skillPoints, attributePoints, attributeReallocationPoints, new HashMap<>(), new HashMap<>());
|
||||
}
|
||||
|
||||
private SavedClassInformation(int level, int experience, int skillPoints, int attributePoints, int attributeReallocationPoints,
|
||||
private SavedClassInformation(int level, double experience, int skillPoints, int attributePoints, int attributeReallocationPoints,
|
||||
Map<String, Integer> attributes, Map<String, Integer> skills) {
|
||||
this.level = level;
|
||||
this.experience = experience;
|
||||
@ -82,7 +83,7 @@ public class SavedClassInformation {
|
||||
return level;
|
||||
}
|
||||
|
||||
public int getExperience() {
|
||||
public double getExperience() {
|
||||
return experience;
|
||||
}
|
||||
|
||||
|
@ -3,8 +3,8 @@ package net.Indyuce.mmocore.comp.region;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import net.Indyuce.mmocore.loot.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.condition.ConditionInstance;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.ConditionInstance;
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
|
||||
public class RegionCondition extends Condition {
|
||||
|
@ -1,6 +1,6 @@
|
||||
package net.Indyuce.mmocore.comp.region;
|
||||
|
||||
import net.Indyuce.mmocore.loot.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.Condition;
|
||||
import net.Indyuce.mmocore.api.load.MMOLoader;
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
|
||||
|
@ -196,7 +196,7 @@ public class PlayerProfessions {
|
||||
this.exp.put(profession.getId(), exp - needed);
|
||||
this.level.put(profession.getId(), level + 1);
|
||||
check = true;
|
||||
playerData.giveExperience((int) profession.getExperience().calculate(level), null);
|
||||
playerData.giveExperience(profession.getExperience().calculate(level), null);
|
||||
}
|
||||
|
||||
if (check) {
|
||||
|
@ -17,7 +17,7 @@ public class ClassExperienceDispenser implements ExperienceDispenser {
|
||||
@Override
|
||||
public void giveExperience(PlayerData playerData, double experience, @Nullable Location hologramLocation, EXPSource source) {
|
||||
hologramLocation = !MMOCore.plugin.getConfig().getBoolean("display-main-class-exp-holograms") ? null
|
||||
: hologramLocation == null ? getPlayerLocation(playerData) : hologramLocation;
|
||||
: hologramLocation;
|
||||
playerData.giveExperience(experience, source, hologramLocation, true);
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,10 @@ import java.util.Random;
|
||||
|
||||
public class ExperienceItem {
|
||||
private final String id;
|
||||
|
||||
//A period of 0 means the item will only trigger one time.
|
||||
private final int period;
|
||||
private final int firstTrigger;
|
||||
private final double claimChance, failReduction;
|
||||
private final List<Trigger> triggers;
|
||||
|
||||
@ -23,6 +26,7 @@ public class ExperienceItem {
|
||||
* One item for an experience table
|
||||
*
|
||||
* @param period The experience item is claimed every X level ups
|
||||
* @param firstTrigger The experience item if claimed for the first time at X level ups.
|
||||
* @param claimChance Chance for that item to be claimed every X level ups
|
||||
* @param failReduction Between 0 and 1, by how much the fail chance is reduced
|
||||
* every time the item is not claimed when leveling up.
|
||||
@ -32,19 +36,22 @@ public class ExperienceItem {
|
||||
* where n is the amount of successive claiming fails
|
||||
* @param triggers Actions cast when the exp item is claimed
|
||||
*/
|
||||
public ExperienceItem(String id, int period, double claimChance, double failReduction, List<Trigger> triggers) {
|
||||
public ExperienceItem(String id, int period, int firstTrigger,double claimChance, double failReduction, List<Trigger> triggers) {
|
||||
this.id = id;
|
||||
this.period = period;
|
||||
this.claimChance = claimChance;
|
||||
this.failReduction = failReduction;
|
||||
this.triggers = triggers;
|
||||
this.firstTrigger=firstTrigger;
|
||||
}
|
||||
|
||||
public ExperienceItem(ConfigurationSection config) {
|
||||
Validate.notNull(config, "Config cannot be null");
|
||||
Validate.isTrue(config.contains("triggers"));
|
||||
id = config.getName();
|
||||
period = config.getInt("period", 1);
|
||||
|
||||
period = config.getInt("period", 0);
|
||||
firstTrigger=config.getInt("first-trigger",period);
|
||||
claimChance = config.getDouble("chance", 100) / 100;
|
||||
failReduction = config.getDouble("fail-reduction", 80) / 100;
|
||||
triggers = new ArrayList<>();
|
||||
@ -64,7 +71,7 @@ public class ExperienceItem {
|
||||
* account the randomness factor from the 'chance' parameter
|
||||
*/
|
||||
public boolean roll(int professionLevel, int timesCollected) {
|
||||
int claimsRequired = professionLevel - (timesCollected + 1) * period;
|
||||
int claimsRequired = professionLevel+1 - (firstTrigger-+timesCollected * period);
|
||||
if (claimsRequired < 1)
|
||||
return false;
|
||||
|
||||
|
@ -168,7 +168,7 @@ public class BrewPotionExperienceSource extends ExperienceSource<PotionMeta> {
|
||||
*/
|
||||
// exp += getTotal(mapEffectDurations());
|
||||
|
||||
getDispenser().giveExperience(PlayerData.get(player), (int) exp * multiplier, null, EXPSource.SOURCE);
|
||||
getDispenser().giveExperience(PlayerData.get(player), exp * multiplier, player.getLocation(), EXPSource.SOURCE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,58 @@
|
||||
package net.Indyuce.mmocore.experience.source;
|
||||
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
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.lang3.Validate;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class EatExperienceSource extends SpecificExperienceSource<ItemStack> {
|
||||
private final Material type;
|
||||
|
||||
/**
|
||||
* Gives xp when you eat a certain type of food. If not type is given it will give xp from all the food sources.
|
||||
* The amount of xp given is the xp per food regenerated.
|
||||
*/
|
||||
public EatExperienceSource(ExperienceDispenser dispenser, MMOLineConfig config) {
|
||||
super(dispenser, config);
|
||||
if(!config.contains("type"))
|
||||
type=null;
|
||||
else {
|
||||
Material material=Material.valueOf(config.getString("type").toUpperCase().replace("-","_"));
|
||||
Validate.isTrue(material!=null,"You must precise a valid material!");
|
||||
type=material;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ExperienceSourceManager<EatExperienceSource> newManager() {
|
||||
return new ExperienceSourceManager<EatExperienceSource>() {
|
||||
|
||||
@EventHandler
|
||||
public void a(FoodLevelChangeEvent e) {
|
||||
if (!(e.getEntity() instanceof Player) || e.getEntity().hasMetadata("NPC"))
|
||||
return;
|
||||
PlayerData playerData = PlayerData.get((OfflinePlayer) e.getEntity());
|
||||
for (EatExperienceSource source : getSources()) {
|
||||
if (source.matchesParameter(playerData, e.getItem()))
|
||||
source.giveExperience(playerData, e.getFoodLevel(), null);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean matchesParameter(PlayerData player, ItemStack obj) {
|
||||
if(type==null)
|
||||
return true;
|
||||
return type.equals(obj.getType());
|
||||
}
|
||||
|
||||
}
|
@ -60,7 +60,7 @@ public class EnchantItemExperienceSource extends ExperienceSource<Void> {
|
||||
double exp = 0;
|
||||
for (Entry<Enchantment, Integer> entry : applicableEnchants.entrySet())
|
||||
exp += MMOCore.plugin.enchantManager.getBaseExperience(entry.getKey()) * entry.getValue();
|
||||
getDispenser().giveExperience(player, (int) exp, event.getEnchantBlock().getLocation(), EXPSource.SOURCE);
|
||||
getDispenser().giveExperience(player, exp, event.getEnchantBlock().getLocation(), EXPSource.SOURCE);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -15,6 +15,7 @@ import org.bukkit.Location;
|
||||
import org.bukkit.entity.*;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
@ -47,14 +48,23 @@ public class ProjectileExperienceSource extends SpecificExperienceSource<Project
|
||||
HashMap<Projectile, Location> projectiles = new HashMap<>();
|
||||
|
||||
@EventHandler
|
||||
public void onHit(EntityDamageByEntityEvent e) {
|
||||
public void onHit(ProjectileHitEvent e) {
|
||||
if (e.getHitBlock() != null && projectiles.containsKey(e.getEntity()))
|
||||
projectiles.remove(e.getEntity());
|
||||
|
||||
if (e.getDamager() instanceof Projectile) {
|
||||
Projectile projectile = (Projectile) e.getDamager();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onDamage(EntityDamageByEntityEvent e) {
|
||||
|
||||
if (e.getEntity() instanceof Projectile) {
|
||||
Projectile projectile = (Projectile) e.getEntity();
|
||||
if(!projectiles.containsKey(projectile))
|
||||
return;
|
||||
if (projectile.getShooter() instanceof Player && !((Player) projectile.getShooter()).hasMetadata("NPC")) {
|
||||
Player player = (Player) projectile.getShooter();
|
||||
PlayerData playerData = PlayerData.get(player);
|
||||
double distance = projectiles.get(projectile).distance(e.getDamager().getLocation());
|
||||
double distance = projectiles.get(projectile).distance(e.getEntity().getLocation());
|
||||
for (ProjectileExperienceSource source : getSources()) {
|
||||
if (source.matchesParameter(playerData, projectile))
|
||||
source.giveExperience(playerData, e.getFinalDamage() * distance, null);
|
||||
@ -62,6 +72,7 @@ public class ProjectileExperienceSource extends SpecificExperienceSource<Project
|
||||
|
||||
|
||||
}
|
||||
projectiles.remove(projectile);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ public class RepairItemExperienceSource extends ExperienceSource<ItemStack> {
|
||||
*/
|
||||
double exp = MMOCore.plugin.smithingManager.getBaseExperience(item.getType())
|
||||
* Math.max(0, ((Damageable) old.getItemMeta()).getDamage() - ((Damageable) item.getItemMeta()).getDamage()) / 100;
|
||||
getDispenser().giveExperience(data, (int) exp, null, EXPSource.SOURCE);
|
||||
getDispenser().giveExperience(data, exp, data.getPlayer().getLocation(), EXPSource.SOURCE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,39 +0,0 @@
|
||||
package net.Indyuce.mmocore.experience.source;
|
||||
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
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.event.EventHandler;
|
||||
import org.bukkit.event.player.PlayerExpChangeEvent;
|
||||
|
||||
public class VanillaExperienceExperienceSource extends SpecificExperienceSource {
|
||||
|
||||
|
||||
public VanillaExperienceExperienceSource(ExperienceDispenser dispenser, MMOLineConfig config) {
|
||||
super(dispenser, config);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ExperienceSourceManager<VanillaExperienceExperienceSource> newManager() {
|
||||
return new ExperienceSourceManager<VanillaExperienceExperienceSource>() {
|
||||
@EventHandler
|
||||
public void onExp(PlayerExpChangeEvent e) {
|
||||
if(e.getPlayer().hasMetadata("NPC"))
|
||||
return;
|
||||
PlayerData playerData=PlayerData.get(e.getPlayer());
|
||||
for(VanillaExperienceExperienceSource source:getSources()) {
|
||||
if(source.matchesParameter(playerData,null))
|
||||
giveExperience(playerData,e.getAmount(),null);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean matchesParameter(PlayerData player, Object obj) {
|
||||
return true;
|
||||
}
|
||||
}
|
@ -11,7 +11,7 @@ import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
|
||||
import net.Indyuce.mmocore.experience.source.MineBlockExperienceSource;
|
||||
import net.Indyuce.mmocore.loot.LootBuilder;
|
||||
import net.Indyuce.mmocore.loot.condition.ConditionInstance;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.ConditionInstance;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
|
@ -16,7 +16,7 @@ public class RedirectVanillaExp implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void a(PlayerExpChangeEvent event) {
|
||||
int a = (int) (event.getAmount() * ratio);
|
||||
double a = (event.getAmount() * ratio);
|
||||
if (a > 0)
|
||||
PlayerData.get(event.getPlayer()).giveExperience(a, EXPSource.VANILLA);
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.Indyuce.mmocore.loot.condition;
|
||||
package net.Indyuce.mmocore.loot.chest.condition;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
@ -1,4 +1,4 @@
|
||||
package net.Indyuce.mmocore.loot.condition;
|
||||
package net.Indyuce.mmocore.loot.chest.condition;
|
||||
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.Indyuce.mmocore.loot.condition;
|
||||
package net.Indyuce.mmocore.loot.chest.condition;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
@ -1,4 +1,4 @@
|
||||
package net.Indyuce.mmocore.loot.condition;
|
||||
package net.Indyuce.mmocore.loot.chest.condition;
|
||||
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
import org.apache.commons.lang.Validate;
|
@ -1,4 +1,4 @@
|
||||
package net.Indyuce.mmocore.loot.condition;
|
||||
package net.Indyuce.mmocore.loot.chest.condition;
|
||||
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
@ -1,4 +1,4 @@
|
||||
package net.Indyuce.mmocore.loot.condition;
|
||||
package net.Indyuce.mmocore.loot.chest.condition;
|
||||
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
import org.bukkit.entity.Player;
|
@ -1,4 +1,4 @@
|
||||
package net.Indyuce.mmocore.loot.condition;
|
||||
package net.Indyuce.mmocore.loot.chest.condition;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
@ -5,8 +5,8 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import net.Indyuce.mmocore.loot.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.condition.ConditionInstance;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.ConditionInstance;
|
||||
import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
|
@ -3,7 +3,7 @@ package net.Indyuce.mmocore.loot.droptable.dropitem;
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.loot.droptable.DropTable;
|
||||
import net.Indyuce.mmocore.loot.condition.ConditionInstance;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.ConditionInstance;
|
||||
import net.Indyuce.mmocore.loot.LootBuilder;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import org.apache.commons.lang.Validate;
|
||||
|
@ -11,7 +11,7 @@ import org.bukkit.configuration.ConfigurationSection;
|
||||
import com.google.gson.JsonParseException;
|
||||
|
||||
import net.Indyuce.mmocore.api.block.BlockType;
|
||||
import net.Indyuce.mmocore.loot.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem;
|
||||
import net.Indyuce.mmocore.experience.source.type.ExperienceSource;
|
||||
import net.Indyuce.mmocore.api.load.DefaultMMOLoader;
|
||||
|
@ -7,8 +7,8 @@ import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock;
|
||||
import net.Indyuce.mmocore.api.block.BlockType;
|
||||
import net.Indyuce.mmocore.api.block.SkullBlockType;
|
||||
import net.Indyuce.mmocore.api.block.VanillaBlockType;
|
||||
import net.Indyuce.mmocore.loot.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.condition.ConditionInstance;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.ConditionInstance;
|
||||
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
import org.bukkit.Bukkit;
|
||||
|
@ -4,8 +4,8 @@ import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.api.player.stats.StatType;
|
||||
import net.Indyuce.mmocore.loot.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.condition.ConditionInstance;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.ConditionInstance;
|
||||
import net.Indyuce.mmocore.loot.droptable.dropitem.fishing.FishingDropItem;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
|
@ -58,8 +58,8 @@ public class BoosterManager {
|
||||
return d;
|
||||
}
|
||||
|
||||
public int calculateExp(Profession profession, double exp) {
|
||||
return (int) (exp * getMultiplier(profession));
|
||||
public double calculateExp(Profession profession, double exp) {
|
||||
return (exp * getMultiplier(profession));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2,8 +2,8 @@ package net.Indyuce.mmocore.waypoint;
|
||||
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.loot.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.condition.ConditionInstance;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.Condition;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.ConditionInstance;
|
||||
import net.Indyuce.mmocore.player.Unlockable;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.Bukkit;
|
||||
|
@ -8,7 +8,7 @@
|
||||
diamond-drop-table:
|
||||
items:
|
||||
- 'vanilla{type=DIAMOND} 1 1-3'
|
||||
# - 'mmoitem{type=material;id=RARE_DIAMOND} .1 1-3'
|
||||
# - 'mmoitem{type=material;id=RARE_DIAMOND;period=} .1 1-3'
|
||||
- 'droptable{id=other-drop-table} .1'
|
||||
|
||||
other-drop-table:
|
||||
|
Loading…
Reference in New Issue
Block a user