mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-24 22:26:46 +01:00
More work on skill API impl/migration
This commit is contained in:
parent
9b9ffbb982
commit
21ac44ee61
@ -1,7 +1,7 @@
|
|||||||
package com.gmail.nossr50.commands.skills;
|
package com.gmail.nossr50.commands.skills;
|
||||||
|
|
||||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||||
import com.gmail.nossr50.skills.crossbows.CrossbowManager;
|
import com.gmail.nossr50.skills.crossbows.CrossbowsManager;
|
||||||
import com.gmail.nossr50.util.text.TextComponentFactory;
|
import com.gmail.nossr50.util.text.TextComponentFactory;
|
||||||
import com.neetgames.mcmmo.player.OnlineMMOPlayer;
|
import com.neetgames.mcmmo.player.OnlineMMOPlayer;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@ -29,10 +29,10 @@ public class CrossbowsCommand extends SkillCommand {
|
|||||||
protected @NotNull List<String> statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) {
|
protected @NotNull List<String> statsDisplay(@NotNull OnlineMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||||
List<String> messages = new ArrayList<>();
|
List<String> messages = new ArrayList<>();
|
||||||
|
|
||||||
CrossbowManager crossbowManager = ((McMMOPlayer) (mmoPlayer)).getCrossbowManager();
|
CrossbowsManager crossbowsManager = ((McMMOPlayer) (mmoPlayer)).getCrossbowManager();
|
||||||
|
|
||||||
if(canUseSubskill(mmoPlayer, SubSkillType.CROSSBOWS_SUPER_SHOTGUN)) {
|
if(canUseSubskill(mmoPlayer, SubSkillType.CROSSBOWS_SUPER_SHOTGUN)) {
|
||||||
String additionalArrowCount = String.valueOf(crossbowManager.getSuperShotgunAdditionalArrowCount());
|
String additionalArrowCount = String.valueOf(crossbowsManager.getSuperShotgunAdditionalArrowCount());
|
||||||
messages.add(getStatMessage(SubSkillType.CROSSBOWS_SUPER_SHOTGUN, additionalArrowCount));
|
messages.add(getStatMessage(SubSkillType.CROSSBOWS_SUPER_SHOTGUN, additionalArrowCount));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@ import com.gmail.nossr50.chat.author.PlayerAuthor;
|
|||||||
import com.gmail.nossr50.config.ChatConfig;
|
import com.gmail.nossr50.config.ChatConfig;
|
||||||
import com.gmail.nossr50.config.WorldBlacklist;
|
import com.gmail.nossr50.config.WorldBlacklist;
|
||||||
import com.gmail.nossr50.datatypes.chat.ChatChannel;
|
import com.gmail.nossr50.datatypes.chat.ChatChannel;
|
||||||
|
import com.gmail.nossr50.datatypes.skills.CoreRootSkill;
|
||||||
|
import com.gmail.nossr50.datatypes.skills.CoreSkills;
|
||||||
import com.neetgames.mcmmo.party.Party;
|
import com.neetgames.mcmmo.party.Party;
|
||||||
import com.gmail.nossr50.datatypes.party.PartyTeleportRecord;
|
import com.gmail.nossr50.datatypes.party.PartyTeleportRecord;
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
@ -15,7 +17,7 @@ import com.gmail.nossr50.skills.acrobatics.AcrobaticsManager;
|
|||||||
import com.gmail.nossr50.skills.alchemy.AlchemyManager;
|
import com.gmail.nossr50.skills.alchemy.AlchemyManager;
|
||||||
import com.gmail.nossr50.skills.archery.ArcheryManager;
|
import com.gmail.nossr50.skills.archery.ArcheryManager;
|
||||||
import com.gmail.nossr50.skills.axes.AxesManager;
|
import com.gmail.nossr50.skills.axes.AxesManager;
|
||||||
import com.gmail.nossr50.skills.crossbows.CrossbowManager;
|
import com.gmail.nossr50.skills.crossbows.CrossbowsManager;
|
||||||
import com.gmail.nossr50.skills.excavation.ExcavationManager;
|
import com.gmail.nossr50.skills.excavation.ExcavationManager;
|
||||||
import com.gmail.nossr50.skills.fishing.FishingManager;
|
import com.gmail.nossr50.skills.fishing.FishingManager;
|
||||||
import com.gmail.nossr50.skills.herbalism.HerbalismManager;
|
import com.gmail.nossr50.skills.herbalism.HerbalismManager;
|
||||||
@ -25,7 +27,7 @@ import com.gmail.nossr50.skills.salvage.SalvageManager;
|
|||||||
import com.gmail.nossr50.skills.smelting.SmeltingManager;
|
import com.gmail.nossr50.skills.smelting.SmeltingManager;
|
||||||
import com.gmail.nossr50.skills.swords.SwordsManager;
|
import com.gmail.nossr50.skills.swords.SwordsManager;
|
||||||
import com.gmail.nossr50.skills.taming.TamingManager;
|
import com.gmail.nossr50.skills.taming.TamingManager;
|
||||||
import com.gmail.nossr50.skills.tridents.TridentManager;
|
import com.gmail.nossr50.skills.tridents.TridentsManager;
|
||||||
import com.gmail.nossr50.skills.unarmed.UnarmedManager;
|
import com.gmail.nossr50.skills.unarmed.UnarmedManager;
|
||||||
import com.gmail.nossr50.skills.woodcutting.WoodcuttingManager;
|
import com.gmail.nossr50.skills.woodcutting.WoodcuttingManager;
|
||||||
import com.gmail.nossr50.util.Misc;
|
import com.gmail.nossr50.util.Misc;
|
||||||
@ -54,10 +56,9 @@ public class McMMOPlayer extends PlayerProfile implements OnlineMMOPlayer, Ident
|
|||||||
private final @NotNull Identity identity;
|
private final @NotNull Identity identity;
|
||||||
private @Nullable Party playerPartyRef;
|
private @Nullable Party playerPartyRef;
|
||||||
|
|
||||||
|
|
||||||
//Used in our chat systems for chat messages
|
//Used in our chat systems for chat messages
|
||||||
private final @NotNull PlayerAuthor playerAuthor;
|
private final @NotNull PlayerAuthor playerAuthor;
|
||||||
private final @NotNull Map<PrimarySkillType, SkillManager> skillManagers = new HashMap<>();
|
private final @NotNull Map<RootSkill, SkillManager> skillManagers = new HashMap<>();
|
||||||
private final @NotNull MMOExperienceBarManager experienceBarManager;
|
private final @NotNull MMOExperienceBarManager experienceBarManager;
|
||||||
|
|
||||||
private @Nullable PartyTeleportRecord ptpRecord;
|
private @Nullable PartyTeleportRecord ptpRecord;
|
||||||
@ -141,8 +142,8 @@ public class McMMOPlayer extends PlayerProfile implements OnlineMMOPlayer, Ident
|
|||||||
* If in the future someone wants to remove this, don't forget to also remove what is in the PrimarySkillType enum. - bm01
|
* If in the future someone wants to remove this, don't forget to also remove what is in the PrimarySkillType enum. - bm01
|
||||||
*/
|
*/
|
||||||
try {
|
try {
|
||||||
for (PrimarySkillType primarySkillType : PrimarySkillType.values()) {
|
for (CoreRootSkill coreRootSkill : CoreSkills.getCoreRootSkills()) {
|
||||||
skillManagers.put(primarySkillType, primarySkillType.getManagerClass().getConstructor(McMMOPlayer.class).newInstance(this));
|
skillManagers.put(coreRootSkill, coreRootSkill.getSkillManagerClass().getConstructor(McMMOPlayer.class).newInstance(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
@ -311,19 +312,19 @@ public class McMMOPlayer extends PlayerProfile implements OnlineMMOPlayer, Ident
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Grab the {@link TridentManager} for this player
|
* Grab the {@link TridentsManager} for this player
|
||||||
* @return this player's trident manager
|
* @return this player's trident manager
|
||||||
*/
|
*/
|
||||||
public @NotNull TridentManager getTridentManager() {
|
public @NotNull TridentsManager getTridentManager() {
|
||||||
return (TridentManager) skillManagers.get(PrimarySkillType.TRIDENTS);
|
return (TridentsManager) skillManagers.get(PrimarySkillType.TRIDENTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Grab the {@link CrossbowManager} for this player
|
* Grab the {@link CrossbowsManager} for this player
|
||||||
* @return this player's crossbow manager
|
* @return this player's crossbow manager
|
||||||
*/
|
*/
|
||||||
public @NotNull CrossbowManager getCrossbowManager() {
|
public @NotNull CrossbowsManager getCrossbowManager() {
|
||||||
return (CrossbowManager) skillManagers.get(PrimarySkillType.CROSSBOWS);
|
return (CrossbowsManager) skillManagers.get(PrimarySkillType.CROSSBOWS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -79,7 +79,7 @@ public class PersistentPlayerData implements MMOPlayerData {
|
|||||||
|
|
||||||
//Core skills
|
//Core skills
|
||||||
//TODO: Don't store values for disabled skills
|
//TODO: Don't store values for disabled skills
|
||||||
for(RootSkill rootSkill : CoreSkills.getCoreSkills()) {
|
for(RootSkill rootSkill : CoreSkills.getCoreRootSkills()) {
|
||||||
skillLevelValues.put(rootSkill, AdvancedConfig.getInstance().getStartingLevel());
|
skillLevelValues.put(rootSkill, AdvancedConfig.getInstance().getStartingLevel());
|
||||||
skillExperienceValues.put(rootSkill, 0F);
|
skillExperienceValues.put(rootSkill, 0F);
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,58 @@
|
|||||||
package com.gmail.nossr50.datatypes.skills;
|
package com.gmail.nossr50.datatypes.skills;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.config.Config;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.skills.SkillManager;
|
||||||
|
import com.gmail.nossr50.util.Permissions;
|
||||||
import com.gmail.nossr50.util.text.StringUtils;
|
import com.gmail.nossr50.util.text.StringUtils;
|
||||||
import com.neetgames.mcmmo.skill.RootSkillImpl;
|
import com.neetgames.mcmmo.player.MMOPlayer;
|
||||||
|
import com.neetgames.mcmmo.skill.AbstractRootSkill;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.Tameable;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
class CoreRootSkill extends RootSkillImpl {
|
public class CoreRootSkill extends AbstractRootSkill {
|
||||||
public CoreRootSkill(@NotNull String skillName) {
|
|
||||||
|
@NotNull private final Class<? extends SkillManager> skillManagerClass;
|
||||||
|
|
||||||
|
public CoreRootSkill(@NotNull String skillName, @NotNull Class<? extends SkillManager> clazz) {
|
||||||
super(mcMMO.p.getName(), StringUtils.getCapitalized(skillName), "mcmmo.skills." + skillName.toLowerCase(Locale.ENGLISH));
|
super(mcMMO.p.getName(), StringUtils.getCapitalized(skillName), "mcmmo.skills." + skillName.toLowerCase(Locale.ENGLISH));
|
||||||
|
this.skillManagerClass = clazz;
|
||||||
|
}
|
||||||
|
|
||||||
|
public @NotNull Class<? extends SkillManager> getSkillManagerClass() {
|
||||||
|
return skillManagerClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPVPPermitted() {
|
||||||
|
return Config.getInstance().getPVPEnabled(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPVEPermitted() {
|
||||||
|
return Config.getInstance().getPVEEnabled(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAffectedByHardcoreModeStatLoss() {
|
||||||
|
return Config.getInstance().getHardcoreStatLossEnabled(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getHardcoreVampirismEnabled() {
|
||||||
|
return Config.getInstance().getHardcoreVampirismEnabled(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isRootSkillPermitted(@NotNull MMOPlayer mmoPlayer) {
|
||||||
|
return Permissions.skillEnabled(mmoPlayer, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isOffensiveActionAllowed(@NotNull Object victim) {
|
||||||
|
return (victim instanceof Player || (victim instanceof Tameable && ((Tameable) victim).isTamed())) ? isPVPPermitted() : isPVEPermitted();;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.gmail.nossr50.datatypes.skills;
|
||||||
|
|
||||||
|
import com.neetgames.mcmmo.skill.RootSkill;
|
||||||
|
import com.neetgames.mcmmo.skill.SkillImpl;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
public class CoreSkill extends SkillImpl {
|
||||||
|
|
||||||
|
//TODO: Change to passing SkillIdentity
|
||||||
|
public CoreSkill(@NotNull String pluginName, @NotNull String skillName, @Nullable String permission, @NotNull RootSkill parentSkill) {
|
||||||
|
super(pluginName, skillName, permission, parentSkill);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,8 +1,26 @@
|
|||||||
package com.gmail.nossr50.datatypes.skills;
|
package com.gmail.nossr50.datatypes.skills;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.skills.acrobatics.AcrobaticsManager;
|
||||||
|
import com.gmail.nossr50.skills.alchemy.AlchemyManager;
|
||||||
|
import com.gmail.nossr50.skills.archery.ArcheryManager;
|
||||||
|
import com.gmail.nossr50.skills.axes.AxesManager;
|
||||||
|
import com.gmail.nossr50.skills.crossbows.CrossbowsManager;
|
||||||
|
import com.gmail.nossr50.skills.excavation.ExcavationManager;
|
||||||
|
import com.gmail.nossr50.skills.fishing.FishingManager;
|
||||||
|
import com.gmail.nossr50.skills.herbalism.HerbalismManager;
|
||||||
|
import com.gmail.nossr50.skills.mining.MiningManager;
|
||||||
|
import com.gmail.nossr50.skills.repair.RepairManager;
|
||||||
|
import com.gmail.nossr50.skills.salvage.SalvageManager;
|
||||||
|
import com.gmail.nossr50.skills.smelting.SmeltingManager;
|
||||||
|
import com.gmail.nossr50.skills.swords.SwordsManager;
|
||||||
|
import com.gmail.nossr50.skills.taming.TamingManager;
|
||||||
|
import com.gmail.nossr50.skills.tridents.TridentsManager;
|
||||||
|
import com.gmail.nossr50.skills.unarmed.UnarmedManager;
|
||||||
|
import com.gmail.nossr50.skills.woodcutting.WoodcuttingManager;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.neetgames.mcmmo.skill.RootSkill;
|
import com.neetgames.mcmmo.skill.RootSkill;
|
||||||
import com.neetgames.mcmmo.skill.SkillIdentity;
|
import com.neetgames.mcmmo.skill.SkillIdentity;
|
||||||
|
import com.neetgames.mcmmo.skill.SuperSkill;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -13,18 +31,26 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
public class CoreSkills {
|
public class CoreSkills {
|
||||||
|
|
||||||
private static final @NotNull ImmutableSet<RootSkill> CORE_ROOT_SKILLS;
|
private static final @NotNull ImmutableSet<CoreRootSkill> CORE_ROOT_SKILLS;
|
||||||
private static final @NotNull ImmutableSet<RootSkill> CORE_CHILD_SKILLS;
|
private static final @NotNull ImmutableSet<CoreRootSkill> CORE_CHILD_SKILLS; //Could make this a marker interface
|
||||||
private static final @NotNull ImmutableSet<RootSkill> CORE_NON_CHILD_SKILLS;
|
private static final @NotNull ImmutableSet<CoreRootSkill> CORE_NON_CHILD_SKILLS;
|
||||||
|
private static final @NotNull ImmutableSet<CoreSkill> CORE_SUB_SKILLS;
|
||||||
|
private static final @NotNull ImmutableSet<SuperSkill> CORE_SUPER_SKILLS;
|
||||||
|
|
||||||
|
//TODO: Use annotations instead
|
||||||
public static final @NotNull CoreRootSkill ACROBATICS, ALCHEMY, ARCHERY, AXES, EXCAVATION,
|
public static final @NotNull CoreRootSkill ACROBATICS, ALCHEMY, ARCHERY, AXES, EXCAVATION,
|
||||||
FISHING, HERBALISM, MINING, REPAIR, SALVAGE, SMELTING, SWORDS, TAMING, UNARMED,
|
FISHING, HERBALISM, MINING, REPAIR, SALVAGE, SMELTING, SWORDS, TAMING, UNARMED,
|
||||||
WOODCUTTING, TRIDENTS, CROSSBOWS;
|
WOODCUTTING, TRIDENTS, CROSSBOWS;
|
||||||
|
|
||||||
|
//TODO: Needed?
|
||||||
public static final @NotNull SkillIdentity ACROBATICS_ID, ALCHEMY_ID, ARCHERY_ID, AXES_ID, EXCAVATION_ID,
|
public static final @NotNull SkillIdentity ACROBATICS_ID, ALCHEMY_ID, ARCHERY_ID, AXES_ID, EXCAVATION_ID,
|
||||||
FISHING_ID, HERBALISM_ID, MINING_ID, REPAIR_ID, SALVAGE_ID, SMELTING_ID, SWORDS_ID, TAMING_ID, UNARMED_ID,
|
FISHING_ID, HERBALISM_ID, MINING_ID, REPAIR_ID, SALVAGE_ID, SMELTING_ID, SWORDS_ID, TAMING_ID, UNARMED_ID,
|
||||||
WOODCUTTING_ID, TRIDENTS_ID, CROSSBOWS_ID;
|
WOODCUTTING_ID, TRIDENTS_ID, CROSSBOWS_ID;
|
||||||
|
|
||||||
|
public static final @NotNull SuperSkill SKULL_SPLITTER, GIGA_DRILL_BREAKER, GREEN_TERRA, SUPER_BREAKER,
|
||||||
|
BLAST_MINING, SERRATED_STRIKES, CALL_OF_THE_WILD, BERSERK, TREE_FELLER, TRIDENTS_SUPER, SUPER_SHOT_GUN;
|
||||||
|
|
||||||
|
public static final CoreSkill ROLL;
|
||||||
|
|
||||||
private static @NotNull
|
private static @NotNull
|
||||||
final HackySkillMappings hackySkillMappings = new HackySkillMappings();
|
final HackySkillMappings hackySkillMappings = new HackySkillMappings();
|
||||||
@ -32,56 +58,58 @@ public class CoreSkills {
|
|||||||
static {
|
static {
|
||||||
HashSet<CoreRootSkill> rootSkillSet = new HashSet<>();
|
HashSet<CoreRootSkill> rootSkillSet = new HashSet<>();
|
||||||
HashSet<CoreRootSkill> childSkillSet = new HashSet<>();
|
HashSet<CoreRootSkill> childSkillSet = new HashSet<>();
|
||||||
|
HashSet<CoreSkill> subSkillSet = new HashSet<>();
|
||||||
|
HashSet<SuperSkill> superSkillSet = new HashSet<>();
|
||||||
|
|
||||||
ACROBATICS = new CoreRootSkill("acrobatics");
|
ACROBATICS = new CoreRootSkill("acrobatics", AcrobaticsManager.class);
|
||||||
ACROBATICS_ID = ACROBATICS.getSkillIdentity();
|
ACROBATICS_ID = ACROBATICS.getSkillIdentity();
|
||||||
|
|
||||||
ALCHEMY = new CoreRootSkill("alchemy");
|
ALCHEMY = new CoreRootSkill("alchemy", AlchemyManager.class);
|
||||||
ALCHEMY_ID = ALCHEMY.getSkillIdentity();
|
ALCHEMY_ID = ALCHEMY.getSkillIdentity();
|
||||||
|
|
||||||
ARCHERY = new CoreRootSkill("archery");
|
ARCHERY = new CoreRootSkill("archery", ArcheryManager.class);
|
||||||
ARCHERY_ID = ARCHERY.getSkillIdentity();
|
ARCHERY_ID = ARCHERY.getSkillIdentity();
|
||||||
|
|
||||||
AXES = new CoreRootSkill("axes");
|
AXES = new CoreRootSkill("axes", AxesManager.class);
|
||||||
AXES_ID = AXES.getSkillIdentity();
|
AXES_ID = AXES.getSkillIdentity();
|
||||||
|
|
||||||
EXCAVATION = new CoreRootSkill("excavation");
|
EXCAVATION = new CoreRootSkill("excavation", ExcavationManager.class);
|
||||||
EXCAVATION_ID = EXCAVATION.getSkillIdentity();
|
EXCAVATION_ID = EXCAVATION.getSkillIdentity();
|
||||||
|
|
||||||
FISHING = new CoreRootSkill("fishing");
|
FISHING = new CoreRootSkill("fishing", FishingManager.class);
|
||||||
FISHING_ID = FISHING.getSkillIdentity();
|
FISHING_ID = FISHING.getSkillIdentity();
|
||||||
|
|
||||||
HERBALISM = new CoreRootSkill("herbalism");
|
HERBALISM = new CoreRootSkill("herbalism", HerbalismManager.class);
|
||||||
HERBALISM_ID = HERBALISM.getSkillIdentity();
|
HERBALISM_ID = HERBALISM.getSkillIdentity();
|
||||||
|
|
||||||
MINING = new CoreRootSkill("mining");
|
MINING = new CoreRootSkill("mining", MiningManager.class);
|
||||||
MINING_ID = MINING.getSkillIdentity();
|
MINING_ID = MINING.getSkillIdentity();
|
||||||
|
|
||||||
REPAIR = new CoreRootSkill("repair");
|
REPAIR = new CoreRootSkill("repair", RepairManager.class);
|
||||||
REPAIR_ID = REPAIR.getSkillIdentity();
|
REPAIR_ID = REPAIR.getSkillIdentity();
|
||||||
|
|
||||||
SALVAGE = new CoreRootSkill("salvage");
|
SALVAGE = new CoreRootSkill("salvage", SalvageManager.class);
|
||||||
SALVAGE_ID = SALVAGE.getSkillIdentity();
|
SALVAGE_ID = SALVAGE.getSkillIdentity();
|
||||||
|
|
||||||
SMELTING = new CoreRootSkill("smelting");
|
SMELTING = new CoreRootSkill("smelting", SmeltingManager.class);
|
||||||
SMELTING_ID = SMELTING.getSkillIdentity();
|
SMELTING_ID = SMELTING.getSkillIdentity();
|
||||||
|
|
||||||
SWORDS = new CoreRootSkill("swords");
|
SWORDS = new CoreRootSkill("swords", SwordsManager.class);
|
||||||
SWORDS_ID = SWORDS.getSkillIdentity();
|
SWORDS_ID = SWORDS.getSkillIdentity();
|
||||||
|
|
||||||
TAMING = new CoreRootSkill("taming");
|
TAMING = new CoreRootSkill("taming", TamingManager.class);
|
||||||
TAMING_ID = TAMING.getSkillIdentity();
|
TAMING_ID = TAMING.getSkillIdentity();
|
||||||
|
|
||||||
UNARMED = new CoreRootSkill("unarmed");
|
UNARMED = new CoreRootSkill("unarmed", UnarmedManager.class);
|
||||||
UNARMED_ID = UNARMED.getSkillIdentity();
|
UNARMED_ID = UNARMED.getSkillIdentity();
|
||||||
|
|
||||||
WOODCUTTING = new CoreRootSkill("woodcutting");
|
WOODCUTTING = new CoreRootSkill("woodcutting", WoodcuttingManager.class);
|
||||||
WOODCUTTING_ID = WOODCUTTING.getSkillIdentity();
|
WOODCUTTING_ID = WOODCUTTING.getSkillIdentity();
|
||||||
|
|
||||||
TRIDENTS = new CoreRootSkill("tridents");
|
TRIDENTS = new CoreRootSkill("tridents", TridentsManager.class);
|
||||||
TRIDENTS_ID = TRIDENTS.getSkillIdentity();
|
TRIDENTS_ID = TRIDENTS.getSkillIdentity();
|
||||||
|
|
||||||
CROSSBOWS = new CoreRootSkill("crossbows");
|
CROSSBOWS = new CoreRootSkill("crossbows", CrossbowsManager.class);
|
||||||
CROSSBOWS_ID = CROSSBOWS.getSkillIdentity();
|
CROSSBOWS_ID = CROSSBOWS.getSkillIdentity();
|
||||||
|
|
||||||
//Child skills (soon to be removed)
|
//Child skills (soon to be removed)
|
||||||
@ -109,6 +137,22 @@ public class CoreSkills {
|
|||||||
CORE_ROOT_SKILLS = ImmutableSet.copyOf(rootSkillSet);
|
CORE_ROOT_SKILLS = ImmutableSet.copyOf(rootSkillSet);
|
||||||
CORE_CHILD_SKILLS = ImmutableSet.copyOf(childSkillSet);
|
CORE_CHILD_SKILLS = ImmutableSet.copyOf(childSkillSet);
|
||||||
CORE_NON_CHILD_SKILLS = ImmutableSet.copyOf(generateNonChildSkillSet());
|
CORE_NON_CHILD_SKILLS = ImmutableSet.copyOf(generateNonChildSkillSet());
|
||||||
|
CORE_SUB_SKILLS = ImmutableSet.copyOf(subSkillSet);
|
||||||
|
CORE_SUPER_SKILLS = ImmutableSet.copyOf(superSkillSet);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Define managers
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a set of built in {@link RootSkill}s for mcMMO
|
||||||
|
* No guarantees for whether or not the skills are registered or active or inactive
|
||||||
|
*
|
||||||
|
* @return a set of all root skills built into mcMMO
|
||||||
|
*/
|
||||||
|
public static @NotNull Set<CoreRootSkill> getCoreRootSkills() {
|
||||||
|
return CORE_ROOT_SKILLS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -117,8 +161,8 @@ public class CoreSkills {
|
|||||||
*
|
*
|
||||||
* @return a set of all root skills built into mcMMO
|
* @return a set of all root skills built into mcMMO
|
||||||
*/
|
*/
|
||||||
public static @NotNull Set<RootSkill> getCoreSkills() {
|
public static @NotNull Set<CoreSkill> getCoreSkills() {
|
||||||
return CORE_ROOT_SKILLS;
|
return CORE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -129,7 +173,7 @@ public class CoreSkills {
|
|||||||
* @deprecated child skills will be removed in an upcoming update
|
* @deprecated child skills will be removed in an upcoming update
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static @NotNull Set<RootSkill> getChildSkills() {
|
public static @NotNull Set<CoreRootSkill> getChildSkills() {
|
||||||
return CORE_CHILD_SKILLS;
|
return CORE_CHILD_SKILLS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,17 +205,17 @@ public class CoreSkills {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
private static @NotNull Set<RootSkill> generateNonChildSkillSet() {
|
private static @NotNull Set<CoreRootSkill> generateNonChildSkillSet() {
|
||||||
return getCoreSkills().stream().filter((x) -> !isChildSkill(x)).collect(Collectors.toSet());
|
return getCoreRootSkills().stream().filter((x) -> !isChildSkill(x)).collect(Collectors.toSet());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static @NotNull Set<RootSkill> getNonChildSkills() {
|
public static @NotNull Set<CoreRootSkill> getNonChildSkills() {
|
||||||
return CORE_NON_CHILD_SKILLS;
|
return CORE_NON_CHILD_SKILLS;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static class HackySkillMappings {
|
protected static class HackySkillMappings {
|
||||||
@NotNull Map<PrimarySkillType, RootSkill> primaryToRootMap = new HashMap<>();
|
@NotNull Map<PrimarySkillType, CoreRootSkill> primaryToRootMap = new HashMap<>();
|
||||||
@NotNull Map<RootSkill, PrimarySkillType> rootToPrimaryMap = new HashMap<>();
|
@NotNull Map<CoreRootSkill, PrimarySkillType> rootToPrimaryMap = new HashMap<>();
|
||||||
boolean init = false;
|
boolean init = false;
|
||||||
|
|
||||||
protected void initMappings() {
|
protected void initMappings() {
|
||||||
|
@ -9,7 +9,7 @@ import com.gmail.nossr50.skills.acrobatics.AcrobaticsManager;
|
|||||||
import com.gmail.nossr50.skills.alchemy.AlchemyManager;
|
import com.gmail.nossr50.skills.alchemy.AlchemyManager;
|
||||||
import com.gmail.nossr50.skills.archery.ArcheryManager;
|
import com.gmail.nossr50.skills.archery.ArcheryManager;
|
||||||
import com.gmail.nossr50.skills.axes.AxesManager;
|
import com.gmail.nossr50.skills.axes.AxesManager;
|
||||||
import com.gmail.nossr50.skills.crossbows.CrossbowManager;
|
import com.gmail.nossr50.skills.crossbows.CrossbowsManager;
|
||||||
import com.gmail.nossr50.skills.excavation.ExcavationManager;
|
import com.gmail.nossr50.skills.excavation.ExcavationManager;
|
||||||
import com.gmail.nossr50.skills.fishing.FishingManager;
|
import com.gmail.nossr50.skills.fishing.FishingManager;
|
||||||
import com.gmail.nossr50.skills.herbalism.HerbalismManager;
|
import com.gmail.nossr50.skills.herbalism.HerbalismManager;
|
||||||
@ -19,7 +19,7 @@ import com.gmail.nossr50.skills.salvage.SalvageManager;
|
|||||||
import com.gmail.nossr50.skills.smelting.SmeltingManager;
|
import com.gmail.nossr50.skills.smelting.SmeltingManager;
|
||||||
import com.gmail.nossr50.skills.swords.SwordsManager;
|
import com.gmail.nossr50.skills.swords.SwordsManager;
|
||||||
import com.gmail.nossr50.skills.taming.TamingManager;
|
import com.gmail.nossr50.skills.taming.TamingManager;
|
||||||
import com.gmail.nossr50.skills.tridents.TridentManager;
|
import com.gmail.nossr50.skills.tridents.TridentsManager;
|
||||||
import com.gmail.nossr50.skills.unarmed.UnarmedManager;
|
import com.gmail.nossr50.skills.unarmed.UnarmedManager;
|
||||||
import com.gmail.nossr50.skills.woodcutting.WoodcuttingManager;
|
import com.gmail.nossr50.skills.woodcutting.WoodcuttingManager;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
@ -67,8 +67,8 @@ public enum PrimarySkillType {
|
|||||||
ImmutableList.of(SubSkillType.UNARMED_BERSERK, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK, SubSkillType.UNARMED_BLOCK_CRACKER, SubSkillType.UNARMED_ARROW_DEFLECT, SubSkillType.UNARMED_DISARM, SubSkillType.UNARMED_STEEL_ARM_STYLE, SubSkillType.UNARMED_IRON_GRIP)),
|
ImmutableList.of(SubSkillType.UNARMED_BERSERK, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK, SubSkillType.UNARMED_BLOCK_CRACKER, SubSkillType.UNARMED_ARROW_DEFLECT, SubSkillType.UNARMED_DISARM, SubSkillType.UNARMED_STEEL_ARM_STYLE, SubSkillType.UNARMED_IRON_GRIP)),
|
||||||
WOODCUTTING(WoodcuttingManager.class, Color.OLIVE, SuperAbilityType.TREE_FELLER,
|
WOODCUTTING(WoodcuttingManager.class, Color.OLIVE, SuperAbilityType.TREE_FELLER,
|
||||||
ImmutableList.of(SubSkillType.WOODCUTTING_LEAF_BLOWER, SubSkillType.WOODCUTTING_TREE_FELLER, SubSkillType.WOODCUTTING_HARVEST_LUMBER, SubSkillType.WOODCUTTING_KNOCK_ON_WOOD)),
|
ImmutableList.of(SubSkillType.WOODCUTTING_LEAF_BLOWER, SubSkillType.WOODCUTTING_TREE_FELLER, SubSkillType.WOODCUTTING_HARVEST_LUMBER, SubSkillType.WOODCUTTING_KNOCK_ON_WOOD)),
|
||||||
TRIDENTS(TridentManager.class, Color.TEAL, ImmutableList.of(SubSkillType.TRIDENTS_MULTI_TASKING, SubSkillType.TRIDENTS_TRIDENTS_LIMIT_BREAK)),
|
TRIDENTS(TridentsManager.class, Color.TEAL, ImmutableList.of(SubSkillType.TRIDENTS_MULTI_TASKING, SubSkillType.TRIDENTS_TRIDENTS_LIMIT_BREAK)),
|
||||||
CROSSBOWS(CrossbowManager.class, Color.ORANGE, ImmutableList.of(SubSkillType.CROSSBOWS_SUPER_SHOTGUN, SubSkillType.CROSSBOWS_CROSSBOWS_LIMIT_BREAK));
|
CROSSBOWS(CrossbowsManager.class, Color.ORANGE, ImmutableList.of(SubSkillType.CROSSBOWS_SUPER_SHOTGUN, SubSkillType.CROSSBOWS_CROSSBOWS_LIMIT_BREAK));
|
||||||
|
|
||||||
private final Class<? extends SkillManager> managerClass;
|
private final Class<? extends SkillManager> managerClass;
|
||||||
private final Color skillColor;
|
private final Color skillColor;
|
||||||
|
@ -25,7 +25,8 @@ public class SkillRegisterImpl implements SkillRegister {
|
|||||||
private final @NotNull Set<SuperSkill> superSkills;
|
private final @NotNull Set<SuperSkill> superSkills;
|
||||||
private final @NotNull Set<RankedSkill> rankedSkills;
|
private final @NotNull Set<RankedSkill> rankedSkills;
|
||||||
private final @NotNull Set<RootSkill> rootSkills; //Can include not-official root skills
|
private final @NotNull Set<RootSkill> rootSkills; //Can include not-official root skills
|
||||||
private final @NotNull Set<RootSkill> coreRootSkills; //Only includes official root skills
|
private final @NotNull Set<CoreRootSkill> coreRootSkills; //Only includes official root skills
|
||||||
|
private final @NotNull Set<CoreSkill> coreSkills; //Only includes official core skills
|
||||||
|
|
||||||
public SkillRegisterImpl() {
|
public SkillRegisterImpl() {
|
||||||
skillNameMap = new HashMap<>();
|
skillNameMap = new HashMap<>();
|
||||||
@ -34,11 +35,21 @@ public class SkillRegisterImpl implements SkillRegister {
|
|||||||
superSkills = new HashSet<>();
|
superSkills = new HashSet<>();
|
||||||
rankedSkills = new HashSet<>();
|
rankedSkills = new HashSet<>();
|
||||||
coreRootSkills = new HashSet<>();
|
coreRootSkills = new HashSet<>();
|
||||||
|
coreSkills = new HashSet<>();
|
||||||
|
|
||||||
//TODO: allow config to turn off certain core skills
|
//TODO: allow config to turn off certain core skills
|
||||||
registerCoreSkills();
|
registerCoreSkills();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void registerCoreSkills() {
|
||||||
|
for(CoreRootSkill coreRootSkill : CoreSkills.getCoreRootSkills()) {
|
||||||
|
mcMMO.p.getLogger().info("Registering core skill: " + coreRootSkill.getRawSkillName());
|
||||||
|
registerSkill(coreRootSkill);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(CoreSkill coreSkill : CoreSkills.)
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @Nullable Skill getSkill(@NotNull String fullyQualifiedName) {
|
public @Nullable Skill getSkill(@NotNull String fullyQualifiedName) {
|
||||||
return skillNameMap.get(fullyQualifiedName);
|
return skillNameMap.get(fullyQualifiedName);
|
||||||
@ -96,12 +107,24 @@ public class SkillRegisterImpl implements SkillRegister {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void removeCollectionCache(@NotNull Skill skill) {
|
private void removeCollectionCache(@NotNull Skill skill) {
|
||||||
//Add to collections for cached lookups
|
//Remove from register cache(s)
|
||||||
|
if(skill instanceof CoreRootSkill) {
|
||||||
|
coreRootSkills.remove(skill);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(skill instanceof CoreSkill) {
|
||||||
|
coreSkills.remove(skill);
|
||||||
|
}
|
||||||
|
|
||||||
if(skill instanceof RootSkill) {
|
if(skill instanceof RootSkill) {
|
||||||
rootSkills.remove(skill);
|
rootSkills.remove(skill);
|
||||||
} else if (skill instanceof SuperSkill) {
|
}
|
||||||
|
|
||||||
|
if (skill instanceof SuperSkill) {
|
||||||
superSkills.remove(skill);
|
superSkills.remove(skill);
|
||||||
} else if(skill instanceof RankedSkill) {
|
}
|
||||||
|
|
||||||
|
if(skill instanceof RankedSkill) {
|
||||||
rankedSkills.remove( skill);
|
rankedSkills.remove( skill);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -117,15 +140,23 @@ public class SkillRegisterImpl implements SkillRegister {
|
|||||||
|
|
||||||
private void addCollectionCache(@NotNull Skill skill) {
|
private void addCollectionCache(@NotNull Skill skill) {
|
||||||
//Add to various collections for cached lookups
|
//Add to various collections for cached lookups
|
||||||
|
if(skill instanceof CoreSkill) {
|
||||||
|
coreSkills.add((CoreSkill) skill);
|
||||||
|
}
|
||||||
|
|
||||||
if(skill instanceof CoreRootSkill) {
|
if(skill instanceof CoreRootSkill) {
|
||||||
coreRootSkills.add((CoreRootSkill) skill);
|
coreRootSkills.add((CoreRootSkill) skill);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(skill instanceof RootSkill) {
|
if(skill instanceof RootSkill) {
|
||||||
rootSkills.add((RootSkill) skill);
|
rootSkills.add((RootSkill) skill);
|
||||||
} else if (skill instanceof SuperSkill) {
|
}
|
||||||
|
|
||||||
|
if (skill instanceof SuperSkill) {
|
||||||
superSkills.add((SuperSkill) skill);
|
superSkills.add((SuperSkill) skill);
|
||||||
} else if(skill instanceof RankedSkill) {
|
}
|
||||||
|
|
||||||
|
if(skill instanceof RankedSkill) {
|
||||||
rankedSkills.add((RankedSkill) skill);
|
rankedSkills.add((RankedSkill) skill);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -144,15 +175,8 @@ public class SkillRegisterImpl implements SkillRegister {
|
|||||||
postRemovalSkillRegisterProcessing(skill);
|
postRemovalSkillRegisterProcessing(skill);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerCoreSkills() {
|
|
||||||
for(RootSkill rootSkill : CoreSkills.getCoreSkills()) {
|
|
||||||
mcMMO.p.getLogger().info("Registering core skill: "+rootSkill.getSkillName());
|
|
||||||
registerSkill(rootSkill);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull Set<RootSkill> getCoreRootSkills() {
|
public @NotNull Set<CoreRootSkill> getCoreRootSkills() {
|
||||||
return coreRootSkills;
|
return coreRootSkills;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,8 +196,8 @@ public class SkillRegisterImpl implements SkillRegister {
|
|||||||
public @Nullable RootSkill matchRootSkill(@NotNull String skillName) {
|
public @Nullable RootSkill matchRootSkill(@NotNull String skillName) {
|
||||||
for (RootSkill rootSkill : rootSkills) {
|
for (RootSkill rootSkill : rootSkills) {
|
||||||
if (rootSkill.getSkillIdentity().getFullyQualifiedName().equalsIgnoreCase(skillName)
|
if (rootSkill.getSkillIdentity().getFullyQualifiedName().equalsIgnoreCase(skillName)
|
||||||
|| skillName.equalsIgnoreCase(LocaleLoader.getString(StringUtils.getCapitalized(rootSkill.getSkillName()) + ".SkillName"))
|
|| skillName.equalsIgnoreCase(LocaleLoader.getString(StringUtils.getCapitalized(rootSkill.getRawSkillName()) + ".SkillName"))
|
||||||
|| rootSkill.getSkillName().equalsIgnoreCase(skillName)) {
|
|| rootSkill.getRawSkillName().equalsIgnoreCase(skillName)) {
|
||||||
return rootSkill;
|
return rootSkill;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,8 +18,8 @@ import org.bukkit.event.entity.ProjectileLaunchEvent;
|
|||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class CrossbowManager extends SkillManager {
|
public class CrossbowsManager extends SkillManager {
|
||||||
public CrossbowManager(OnlineMMOPlayer mmoPlayer) {
|
public CrossbowsManager(OnlineMMOPlayer mmoPlayer) {
|
||||||
super(mmoPlayer, PrimarySkillType.CROSSBOWS);
|
super(mmoPlayer, PrimarySkillType.CROSSBOWS);
|
||||||
}
|
}
|
||||||
private static final int SPREAD_VALUE = 12;
|
private static final int SPREAD_VALUE = 12;
|
@ -4,8 +4,8 @@ import com.neetgames.mcmmo.player.OnlineMMOPlayer;
|
|||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
import com.gmail.nossr50.skills.SkillManager;
|
import com.gmail.nossr50.skills.SkillManager;
|
||||||
|
|
||||||
public class TridentManager extends SkillManager {
|
public class TridentsManager extends SkillManager {
|
||||||
public TridentManager(OnlineMMOPlayer mmoPlayer) {
|
public TridentsManager(OnlineMMOPlayer mmoPlayer) {
|
||||||
super(mmoPlayer, PrimarySkillType.TRIDENTS);
|
super(mmoPlayer, PrimarySkillType.TRIDENTS);
|
||||||
}
|
}
|
||||||
|
|
@ -182,7 +182,7 @@ public class MMOExperienceBarManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void setBarStateDefaults(@NotNull Map<RootSkill, SkillBossBarState> barStateHashMap) {
|
public static void setBarStateDefaults(@NotNull Map<RootSkill, SkillBossBarState> barStateHashMap) {
|
||||||
for(RootSkill rootSkill : CoreSkills.getCoreSkills()) {
|
for(RootSkill rootSkill : CoreSkills.getCoreRootSkills()) {
|
||||||
|
|
||||||
if(CoreSkills.isChildSkill(rootSkill)) {
|
if(CoreSkills.isChildSkill(rootSkill)) {
|
||||||
barStateHashMap.put(rootSkill, SkillBossBarState.DISABLED);
|
barStateHashMap.put(rootSkill, SkillBossBarState.DISABLED);
|
||||||
|
@ -14,10 +14,10 @@ import com.gmail.nossr50.runnables.skills.AwardCombatXpTask;
|
|||||||
import com.gmail.nossr50.skills.acrobatics.AcrobaticsManager;
|
import com.gmail.nossr50.skills.acrobatics.AcrobaticsManager;
|
||||||
import com.gmail.nossr50.skills.archery.ArcheryManager;
|
import com.gmail.nossr50.skills.archery.ArcheryManager;
|
||||||
import com.gmail.nossr50.skills.axes.AxesManager;
|
import com.gmail.nossr50.skills.axes.AxesManager;
|
||||||
import com.gmail.nossr50.skills.crossbows.CrossbowManager;
|
import com.gmail.nossr50.skills.crossbows.CrossbowsManager;
|
||||||
import com.gmail.nossr50.skills.swords.SwordsManager;
|
import com.gmail.nossr50.skills.swords.SwordsManager;
|
||||||
import com.gmail.nossr50.skills.taming.TamingManager;
|
import com.gmail.nossr50.skills.taming.TamingManager;
|
||||||
import com.gmail.nossr50.skills.tridents.TridentManager;
|
import com.gmail.nossr50.skills.tridents.TridentsManager;
|
||||||
import com.gmail.nossr50.skills.unarmed.UnarmedManager;
|
import com.gmail.nossr50.skills.unarmed.UnarmedManager;
|
||||||
import com.gmail.nossr50.util.*;
|
import com.gmail.nossr50.util.*;
|
||||||
import com.gmail.nossr50.util.compat.layers.persistentdata.AbstractPersistentDataLayer;
|
import com.gmail.nossr50.util.compat.layers.persistentdata.AbstractPersistentDataLayer;
|
||||||
@ -131,7 +131,7 @@ public final class CombatUtils {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
TridentManager tridentManager = ((McMMOPlayer) (mmoPlayer)).getTridentManager();
|
TridentsManager tridentsManager = ((McMMOPlayer) (mmoPlayer)).getTridentManager();
|
||||||
// double initialDamage = entityDamageByEntityEvent.getDamage();
|
// double initialDamage = entityDamageByEntityEvent.getDamage();
|
||||||
// double finalDamage = initialDamage;
|
// double finalDamage = initialDamage;
|
||||||
|
|
||||||
@ -340,7 +340,7 @@ public final class CombatUtils {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
CrossbowManager crossbowManager = ((McMMOPlayer) (mmoPlayer)).getCrossbowManager();
|
CrossbowsManager crossbowsManager = ((McMMOPlayer) (mmoPlayer)).getCrossbowManager();
|
||||||
|
|
||||||
double finalDamage = event.getDamage();
|
double finalDamage = event.getDamage();
|
||||||
|
|
||||||
@ -361,7 +361,7 @@ public final class CombatUtils {
|
|||||||
finalDamage+=getLimitBreakDamage(mmoPlayer, target, SubSkillType.CROSSBOWS_CROSSBOWS_LIMIT_BREAK);
|
finalDamage+=getLimitBreakDamage(mmoPlayer, target, SubSkillType.CROSSBOWS_CROSSBOWS_LIMIT_BREAK);
|
||||||
}
|
}
|
||||||
|
|
||||||
double distanceMultiplier = crossbowManager.distanceXpBonusMultiplier(target, arrow);
|
double distanceMultiplier = crossbowsManager.distanceXpBonusMultiplier(target, arrow);
|
||||||
applyScaledModifiers(initialDamage, finalDamage, event);
|
applyScaledModifiers(initialDamage, finalDamage, event);
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user