API Update

added a few events + a new exp source enum for the exp gain event
This commit is contained in:
ASangarin 2020-06-13 17:23:52 +02:00
parent b9b9a35471
commit 168d4a46b5
18 changed files with 139 additions and 24 deletions

View File

@ -0,0 +1,42 @@
package net.Indyuce.mmocore.api.event;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import net.Indyuce.mmocore.api.player.PlayerData;
public class MMOCommandEvent extends PlayerDataEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private boolean cancelled;
private final String command;
public MMOCommandEvent(PlayerData player, String command) {
super(player);
this.command = command;
}
public String getCommand() {
return command;
}
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
@Override
public boolean isCancelled() {
return cancelled;
}
@Override
public void setCancelled(boolean b) {
cancelled = b;
}
}

View File

@ -3,6 +3,7 @@ package net.Indyuce.mmocore.api.event;
import org.bukkit.event.Cancellable; import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import net.Indyuce.mmocore.api.experience.EXPSource;
import net.Indyuce.mmocore.api.experience.Profession; import net.Indyuce.mmocore.api.experience.Profession;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
@ -11,19 +12,21 @@ public class PlayerExperienceGainEvent extends PlayerDataEvent implements Cancel
// if null, this is main experience // if null, this is main experience
private final Profession profession; private final Profession profession;
private final EXPSource source;
private int experience; private int experience;
private boolean cancelled; private boolean cancelled;
public PlayerExperienceGainEvent(PlayerData player, int experience) { public PlayerExperienceGainEvent(PlayerData player, int experience, EXPSource source) {
this(player, null, experience); this(player, null, experience, source);
} }
public PlayerExperienceGainEvent(PlayerData player, Profession profession, int experience) { public PlayerExperienceGainEvent(PlayerData player, Profession profession, int experience, EXPSource source) {
super(player); super(player);
this.profession = profession; this.profession = profession;
this.experience = experience; this.experience = experience;
this.source = source;
} }
public int getExperience() { public int getExperience() {
@ -52,6 +55,10 @@ public class PlayerExperienceGainEvent extends PlayerDataEvent implements Cancel
return profession; return profession;
} }
public EXPSource getSource() {
return source;
}
@Override @Override
public HandlerList getHandlers() { public HandlerList getHandlers() {
return handlers; return handlers;

View File

@ -0,0 +1,9 @@
package net.Indyuce.mmocore.api.experience;
public enum EXPSource {
COMMAND,
VANILLA,
QUEST,
SOURCE,
OTHER;
}

View File

@ -2,6 +2,7 @@ package net.Indyuce.mmocore.api.experience.source.type;
import org.bukkit.Location; import org.bukkit.Location;
import net.Indyuce.mmocore.api.experience.EXPSource;
import net.Indyuce.mmocore.api.experience.Profession; import net.Indyuce.mmocore.api.experience.Profession;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.PlayerClass; import net.Indyuce.mmocore.api.player.profess.PlayerClass;
@ -48,6 +49,6 @@ public abstract class ExperienceSource<T> {
if (hasProfession()) if (hasProfession())
player.getCollectionSkills().giveExperience(profession, amount, location == null ? player.getPlayer().getLocation() : location); player.getCollectionSkills().giveExperience(profession, amount, location == null ? player.getPlayer().getLocation() : location);
else else
player.giveExperience(amount, location == null ? player.getPlayer().getLocation() : location); player.giveExperience(amount, location == null ? player.getPlayer().getLocation() : location, EXPSource.SOURCE);
} }
} }

View File

@ -29,6 +29,7 @@ import net.Indyuce.mmocore.api.event.PlayerCastSkillEvent;
import net.Indyuce.mmocore.api.event.PlayerExperienceGainEvent; import net.Indyuce.mmocore.api.event.PlayerExperienceGainEvent;
import net.Indyuce.mmocore.api.event.PlayerLevelUpEvent; import net.Indyuce.mmocore.api.event.PlayerLevelUpEvent;
import net.Indyuce.mmocore.api.event.PlayerRegenResourceEvent; import net.Indyuce.mmocore.api.event.PlayerRegenResourceEvent;
import net.Indyuce.mmocore.api.experience.EXPSource;
import net.Indyuce.mmocore.api.experience.PlayerProfessions; import net.Indyuce.mmocore.api.experience.PlayerProfessions;
import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute; import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute;
import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes; import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes;
@ -245,11 +246,11 @@ public class PlayerData extends OfflinePlayerData {
getStats().updateStats(); getStats().updateStats();
} }
public void giveLevels(int value) { public void giveLevels(int value, EXPSource source) {
int total = 0; int total = 0;
while (value-- > 0) while (value-- > 0)
total += getProfess().getExpCurve().getExperience(getLevel() + value + 1); total += getProfess().getExpCurve().getExperience(getLevel() + value + 1);
giveExperience(total); giveExperience(total, source);
} }
public void setExperience(int value) { public void setExperience(int value) {
@ -422,11 +423,11 @@ public class PlayerData extends OfflinePlayerData {
return getProfess().getMaxLevel() > 0 && getLevel() >= getProfess().getMaxLevel(); return getProfess().getMaxLevel() > 0 && getLevel() >= getProfess().getMaxLevel();
} }
public void giveExperience(int value) { public void giveExperience(int value, EXPSource source) {
giveExperience(value, null); giveExperience(value, null, source);
} }
public void giveExperience(int value, Location loc) { public void giveExperience(int value, Location loc, EXPSource source) {
if (hasReachedMaxLevel()) { if (hasReachedMaxLevel()) {
setExperience(0); setExperience(0);
return; return;
@ -441,7 +442,7 @@ public class PlayerData extends OfflinePlayerData {
value = MMOCore.plugin.boosterManager.calculateExp(null, value); value = MMOCore.plugin.boosterManager.calculateExp(null, value);
value *= 1 + getStats().getStat(StatType.ADDITIONAL_EXPERIENCE) / 100; value *= 1 + getStats().getStat(StatType.ADDITIONAL_EXPERIENCE) / 100;
PlayerExperienceGainEvent event = new PlayerExperienceGainEvent(this, value); PlayerExperienceGainEvent event = new PlayerExperienceGainEvent(this, value, source);
Bukkit.getPluginManager().callEvent(event); Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled()) if (event.isCancelled())
return; return;

View File

@ -3,6 +3,7 @@ package net.Indyuce.mmocore.api.quest.trigger;
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.experience.EXPSource;
import net.Indyuce.mmocore.api.experience.ExperienceInfo; import net.Indyuce.mmocore.api.experience.ExperienceInfo;
import net.Indyuce.mmocore.api.experience.Profession; import net.Indyuce.mmocore.api.experience.Profession;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
@ -29,7 +30,7 @@ public class ExperienceTrigger extends Trigger {
@Override @Override
public void apply(PlayerData player) { public void apply(PlayerData player) {
if (profession == null) if (profession == null)
player.giveExperience(amount.calculateInt()); player.giveExperience(amount.calculateInt(), EXPSource.QUEST);
else else
player.getCollectionSkills().giveExperience(profession, amount.calculateInt()); player.getCollectionSkills().giveExperience(profession, amount.calculateInt());
} }

View File

@ -1,11 +1,13 @@
package net.Indyuce.mmocore.command; package net.Indyuce.mmocore.command;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.manager.InventoryManager;
@ -24,7 +26,10 @@ public class AttributesCommand extends BukkitCommand {
return true; return true;
} }
InventoryManager.ATTRIBUTE_VIEW.newInventory(PlayerData.get((Player) sender)).open(); PlayerData data = PlayerData.get((Player) sender);
MMOCommandEvent event = new MMOCommandEvent(data, "attributes");
Bukkit.getServer().getPluginManager().callEvent(event);
if(!event.isCancelled()) InventoryManager.ATTRIBUTE_VIEW.newInventory(data).open();
return true; return true;
} }
} }

View File

@ -7,6 +7,7 @@ import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.manager.InventoryManager;
@ -30,6 +31,9 @@ public class ClassCommand extends BukkitCommand {
} }
PlayerData data = PlayerData.get(player); PlayerData data = PlayerData.get(player);
MMOCommandEvent event = new MMOCommandEvent(data, "class");
Bukkit.getServer().getPluginManager().callEvent(event);
if(event.isCancelled()) return true;
if (data.getProfess().getSubclasses().stream().filter(sub -> sub.getLevel() <= data.getLevel()).count() > 0) if (data.getProfess().getSubclasses().stream().filter(sub -> sub.getLevel() <= data.getLevel()).count() > 0)
InventoryManager.SUBCLASS_SELECT.newInventory(data).open(); InventoryManager.SUBCLASS_SELECT.newInventory(data).open();
else else

View File

@ -2,6 +2,7 @@ package net.Indyuce.mmocore.command;
import java.util.UUID; import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.command.defaults.BukkitCommand;
@ -9,6 +10,7 @@ import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.OfflinePlayerData; import net.Indyuce.mmocore.api.player.OfflinePlayerData;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.social.FriendRequest; import net.Indyuce.mmocore.api.player.social.FriendRequest;
@ -30,6 +32,11 @@ public class FriendsCommand extends BukkitCommand {
return true; return true;
} }
PlayerData data = PlayerData.get((Player) sender);
MMOCommandEvent event = new MMOCommandEvent(data, "friends");
Bukkit.getServer().getPluginManager().callEvent(event);
if(event.isCancelled()) return true;
if (args.length > 1) { if (args.length > 1) {
UUID uuid; UUID uuid;
try { try {
@ -59,7 +66,7 @@ public class FriendsCommand extends BukkitCommand {
return true; return true;
} }
InventoryManager.FRIEND_LIST.newInventory(PlayerData.get((Player) sender)).open(); InventoryManager.FRIEND_LIST.newInventory(data).open();
return true; return true;
} }
} }

View File

@ -2,6 +2,7 @@ package net.Indyuce.mmocore.command;
import java.util.UUID; import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -10,6 +11,7 @@ import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.social.Request; import net.Indyuce.mmocore.api.player.social.Request;
import net.Indyuce.mmocore.api.player.social.guilds.GuildInvite; import net.Indyuce.mmocore.api.player.social.guilds.GuildInvite;
@ -31,6 +33,11 @@ public class GuildCommand extends BukkitCommand {
return true; return true;
} }
PlayerData data = PlayerData.get((OfflinePlayer) sender);
MMOCommandEvent event = new MMOCommandEvent(data, "guild");
Bukkit.getServer().getPluginManager().callEvent(event);
if(event.isCancelled()) return true;
if (args.length > 1) { if (args.length > 1) {
UUID uuid; UUID uuid;
try { try {
@ -60,7 +67,6 @@ public class GuildCommand extends BukkitCommand {
return true; return true;
} }
PlayerData data = PlayerData.get((OfflinePlayer) sender);
if (data.inGuild()) if (data.inGuild())
InventoryManager.GUILD_VIEW.newInventory(data).open(); InventoryManager.GUILD_VIEW.newInventory(data).open();
else else

View File

@ -2,6 +2,7 @@ package net.Indyuce.mmocore.command;
import java.util.UUID; import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -10,6 +11,7 @@ import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.social.PartyInvite; import net.Indyuce.mmocore.api.player.social.PartyInvite;
import net.Indyuce.mmocore.api.player.social.Request; import net.Indyuce.mmocore.api.player.social.Request;
@ -31,6 +33,11 @@ public class PartyCommand extends BukkitCommand {
return true; return true;
} }
PlayerData data = PlayerData.get((OfflinePlayer) sender);
MMOCommandEvent event = new MMOCommandEvent(data, "party");
Bukkit.getServer().getPluginManager().callEvent(event);
if(event.isCancelled()) return true;
if (args.length > 1) { if (args.length > 1) {
UUID uuid; UUID uuid;
try { try {
@ -60,7 +67,6 @@ public class PartyCommand extends BukkitCommand {
return true; return true;
} }
PlayerData data = PlayerData.get((OfflinePlayer) sender);
if (data.hasParty()) if (data.hasParty())
InventoryManager.PARTY_VIEW.newInventory(data).open(); InventoryManager.PARTY_VIEW.newInventory(data).open();
else else

View File

@ -1,11 +1,13 @@
package net.Indyuce.mmocore.command; package net.Indyuce.mmocore.command;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.manager.InventoryManager;
@ -23,8 +25,11 @@ public class PlayerStatsCommand extends BukkitCommand {
sender.sendMessage(ChatColor.RED + "This command is for players only."); sender.sendMessage(ChatColor.RED + "This command is for players only.");
return true; return true;
} }
InventoryManager.PLAYER_STATS.newInventory(PlayerData.get((Player) sender)).open(); PlayerData data = PlayerData.get((Player) sender);
MMOCommandEvent event = new MMOCommandEvent(data, "profile");
Bukkit.getServer().getPluginManager().callEvent(event);
if(!event.isCancelled()) InventoryManager.PLAYER_STATS.newInventory(data).open();
return true; return true;
} }
} }

View File

@ -1,10 +1,12 @@
package net.Indyuce.mmocore.command; package net.Indyuce.mmocore.command;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.manager.InventoryManager;
@ -18,8 +20,12 @@ public class QuestsCommand extends BukkitCommand {
@Override @Override
public boolean execute(CommandSender sender, String label, String[] args) { public boolean execute(CommandSender sender, String label, String[] args) {
if (sender instanceof Player) if (sender instanceof Player) {
InventoryManager.QUEST_LIST.newInventory(PlayerData.get((Player) sender)).open(); PlayerData data = PlayerData.get((Player) sender);
MMOCommandEvent event = new MMOCommandEvent(data, "quests");
Bukkit.getServer().getPluginManager().callEvent(event);
if(!event.isCancelled()) InventoryManager.QUEST_LIST.newInventory(data).open();
}
return true; return true;
} }
} }

View File

@ -1,11 +1,13 @@
package net.Indyuce.mmocore.command; package net.Indyuce.mmocore.command;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.manager.InventoryManager;
@ -21,6 +23,10 @@ public class SkillsCommand extends BukkitCommand {
public boolean execute(CommandSender sender, String label, String[] args) { public boolean execute(CommandSender sender, String label, String[] args) {
if (sender instanceof Player) { if (sender instanceof Player) {
PlayerData data = PlayerData.get((Player) sender); PlayerData data = PlayerData.get((Player) sender);
MMOCommandEvent event = new MMOCommandEvent(data, "skills");
Bukkit.getServer().getPluginManager().callEvent(event);
if(event.isCancelled()) return true;
if (data.getProfess().getSkills().size() < 1) { if (data.getProfess().getSkills().size() < 1) {
MMOCore.plugin.configManager.getSimpleMessage("no-class-skill").send((Player) sender); MMOCore.plugin.configManager.getSimpleMessage("no-class-skill").send((Player) sender);
return true; return true;

View File

@ -1,10 +1,12 @@
package net.Indyuce.mmocore.command; package net.Indyuce.mmocore.command;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.manager.InventoryManager;
@ -18,8 +20,12 @@ public class WaypointsCommand extends BukkitCommand {
@Override @Override
public boolean execute(CommandSender sender, String label, String[] args) { public boolean execute(CommandSender sender, String label, String[] args) {
if (sender instanceof Player && sender.hasPermission("mmocore.waypoints")) if (sender instanceof Player && sender.hasPermission("mmocore.waypoints")) {
InventoryManager.WAYPOINTS.newInventory(PlayerData.get((Player) sender)).open(); PlayerData data = PlayerData.get((Player) sender);
MMOCommandEvent event = new MMOCommandEvent(data, "waypoints");
Bukkit.getServer().getPluginManager().callEvent(event);
if(!event.isCancelled()) InventoryManager.WAYPOINTS.newInventory(data).open();
}
return true; return true;
} }
} }

View File

@ -9,6 +9,7 @@ import org.bukkit.entity.Player;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.experience.Profession; import net.Indyuce.mmocore.api.experience.Profession;
import net.Indyuce.mmocore.api.experience.EXPSource;
import net.Indyuce.mmocore.api.experience.PlayerProfessions; import net.Indyuce.mmocore.api.experience.PlayerProfessions;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.command.api.CommandEnd; import net.Indyuce.mmocore.command.api.CommandEnd;
@ -20,7 +21,7 @@ public class ExperienceCommandMap extends CommandMap {
super(parent, "exp"); super(parent, "exp");
addFloor(new ActionCommandMap(this, "set", (data, value) -> data.setExperience(value), (professions, profession, value) -> professions.setExperience(profession, value))); addFloor(new ActionCommandMap(this, "set", (data, value) -> data.setExperience(value), (professions, profession, value) -> professions.setExperience(profession, value)));
addFloor(new ActionCommandMap(this, "give", (data, value) -> data.giveExperience(value, data.getPlayer().getLocation()), (professions, profession, value) -> professions.giveExperience(profession, value, professions.getPlayerData().getPlayer().getLocation()))); addFloor(new ActionCommandMap(this, "give", (data, value) -> data.giveExperience(value, data.getPlayer().getLocation(), EXPSource.COMMAND), (professions, profession, value) -> professions.giveExperience(profession, value, professions.getPlayerData().getPlayer().getLocation())));
} }
public class ActionCommandMap extends CommandEnd { public class ActionCommandMap extends CommandEnd {

View File

@ -9,6 +9,7 @@ import org.bukkit.entity.Player;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.experience.Profession; import net.Indyuce.mmocore.api.experience.Profession;
import net.Indyuce.mmocore.api.experience.EXPSource;
import net.Indyuce.mmocore.api.experience.PlayerProfessions; import net.Indyuce.mmocore.api.experience.PlayerProfessions;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.command.api.CommandEnd; import net.Indyuce.mmocore.command.api.CommandEnd;
@ -20,7 +21,7 @@ public class LevelCommandMap extends CommandMap {
super(parent, "level"); super(parent, "level");
addFloor(new ActionCommandMap(this, "set", (data, value) -> data.setLevel(value), (professions, profession, value) -> professions.setLevel(profession, value))); addFloor(new ActionCommandMap(this, "set", (data, value) -> data.setLevel(value), (professions, profession, value) -> professions.setLevel(profession, value)));
addFloor(new ActionCommandMap(this, "give", (data, value) -> data.giveLevels(value), (professions, profession, value) -> professions.giveLevels(profession, value))); addFloor(new ActionCommandMap(this, "give", (data, value) -> data.giveLevels(value, EXPSource.COMMAND), (professions, profession, value) -> professions.giveLevels(profession, value)));
} }
public class ActionCommandMap extends CommandEnd { public class ActionCommandMap extends CommandEnd {

View File

@ -4,6 +4,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerExpChangeEvent; import org.bukkit.event.player.PlayerExpChangeEvent;
import net.Indyuce.mmocore.api.experience.EXPSource;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
public class RedirectVanillaExp implements Listener { public class RedirectVanillaExp implements Listener {
@ -17,6 +18,6 @@ public class RedirectVanillaExp implements Listener {
public void a(PlayerExpChangeEvent event) { public void a(PlayerExpChangeEvent event) {
int a = (int) (event.getAmount() * ratio); int a = (int) (event.getAmount() * ratio);
if (a > 0) if (a > 0)
PlayerData.get(event.getPlayer()).giveExperience(a); PlayerData.get(event.getPlayer()).giveExperience(a, EXPSource.VANILLA);
} }
} }