mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 02:53:43 +01:00 
			
		
		
		
	Fixed possible NPE in our events, and BrewingStands now remember who last interacted with them, this allows for hoppers to be used with Alchemy Fixes #5004 Fixes #4958 Fixes #4641
This commit is contained in:
		@@ -1,5 +1,6 @@
 | 
			
		||||
package com.gmail.nossr50.events.skills;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.util.player.UserManager;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
@@ -7,19 +8,35 @@ import org.bukkit.event.HandlerList;
 | 
			
		||||
import org.bukkit.event.player.PlayerEvent;
 | 
			
		||||
import org.jetbrains.annotations.NotNull;
 | 
			
		||||
 | 
			
		||||
import static java.util.Objects.requireNonNull;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Generic event for mcMMO skill handling.
 | 
			
		||||
 */
 | 
			
		||||
public abstract class McMMOPlayerSkillEvent extends PlayerEvent {
 | 
			
		||||
    protected @NotNull PrimarySkillType skill;
 | 
			
		||||
    protected int skillLevel;
 | 
			
		||||
    protected McMMOPlayer mmoPlayer;
 | 
			
		||||
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "2.2.010")
 | 
			
		||||
    protected McMMOPlayerSkillEvent(@NotNull Player player, @NotNull PrimarySkillType skill) {
 | 
			
		||||
        super(player);
 | 
			
		||||
        McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
 | 
			
		||||
        requireNonNull(mmoPlayer, "Player not found in UserManager," +
 | 
			
		||||
                "contact the dev and tell them to use the constructor for" +
 | 
			
		||||
                " McMMOPlayerSkillEvent(McMMOPlayer, PrimarySkillType) instead");
 | 
			
		||||
        this.skill = skill;
 | 
			
		||||
        this.skillLevel = UserManager.getPlayer(player).getSkillLevel(skill);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected McMMOPlayerSkillEvent(@NotNull McMMOPlayer mmoPlayer, @NotNull PrimarySkillType primarySkillType) {
 | 
			
		||||
        super(mmoPlayer.getPlayer());
 | 
			
		||||
        requireNonNull(mmoPlayer, "mmoPlayer cannot be null");
 | 
			
		||||
        requireNonNull(primarySkillType, "primarySkillType cannot be null");
 | 
			
		||||
        this.skill = primarySkillType;
 | 
			
		||||
        this.skillLevel = mmoPlayer.getSkillLevel(primarySkillType);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return The skill involved in this event
 | 
			
		||||
     */
 | 
			
		||||
@@ -37,6 +54,15 @@ public abstract class McMMOPlayerSkillEvent extends PlayerEvent {
 | 
			
		||||
    /** Rest of file is required boilerplate for custom events **/
 | 
			
		||||
    private static final HandlerList handlers = new HandlerList();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns the {@link McMMOPlayer} associated with this event.
 | 
			
		||||
     *
 | 
			
		||||
     * @return The {@link McMMOPlayer} associated with this event.
 | 
			
		||||
     */
 | 
			
		||||
    public @NotNull McMMOPlayer getMcMMOPlayer() {
 | 
			
		||||
        return mmoPlayer;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public @NotNull HandlerList getHandlers() {
 | 
			
		||||
        return handlers;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +1,24 @@
 | 
			
		||||
package com.gmail.nossr50.events.skills.abilities;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.util.player.UserManager;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.event.Cancellable;
 | 
			
		||||
 | 
			
		||||
import java.util.Objects;
 | 
			
		||||
 | 
			
		||||
public class McMMOPlayerAbilityActivateEvent extends McMMOPlayerAbilityEvent implements Cancellable {
 | 
			
		||||
    private boolean cancelled;
 | 
			
		||||
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "2.2.010")
 | 
			
		||||
    public McMMOPlayerAbilityActivateEvent(Player player, PrimarySkillType skill) {
 | 
			
		||||
        super(player, skill);
 | 
			
		||||
        super(Objects.requireNonNull(UserManager.getPlayer(player)), skill);
 | 
			
		||||
        cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public McMMOPlayerAbilityActivateEvent(McMMOPlayer mmoPlayer, PrimarySkillType skill) {
 | 
			
		||||
        super(mmoPlayer, skill);
 | 
			
		||||
        cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,20 @@
 | 
			
		||||
package com.gmail.nossr50.events.skills.abilities;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.util.player.UserManager;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.jetbrains.annotations.NotNull;
 | 
			
		||||
 | 
			
		||||
import static java.util.Objects.requireNonNull;
 | 
			
		||||
 | 
			
		||||
public class McMMOPlayerAbilityDeactivateEvent extends McMMOPlayerAbilityEvent {
 | 
			
		||||
    public McMMOPlayerAbilityDeactivateEvent(Player player, PrimarySkillType skill) {
 | 
			
		||||
        super(player, skill);
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "2.2.010")
 | 
			
		||||
    public McMMOPlayerAbilityDeactivateEvent(@NotNull Player player, @NotNull PrimarySkillType skill) {
 | 
			
		||||
        this(requireNonNull(UserManager.getPlayer(player)), skill);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public McMMOPlayerAbilityDeactivateEvent(@NotNull McMMOPlayer mmoPlayer, @NotNull PrimarySkillType skill) {
 | 
			
		||||
        super(mmoPlayer, skill);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,16 +1,38 @@
 | 
			
		||||
package com.gmail.nossr50.events.skills.abilities;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
 | 
			
		||||
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.util.player.UserManager;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
 | 
			
		||||
import java.util.Objects;
 | 
			
		||||
 | 
			
		||||
public class McMMOPlayerAbilityEvent extends McMMOPlayerSkillEvent {
 | 
			
		||||
    private final SuperAbilityType ability;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Create a new McMMOPlayerAbilityEvent.
 | 
			
		||||
     *
 | 
			
		||||
     * @param player The player involved in this event
 | 
			
		||||
     * @param skill The skill involved in this event
 | 
			
		||||
     * @deprecated Use {@link #McMMOPlayerAbilityEvent(McMMOPlayer, PrimarySkillType)} instead
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "2.2.010")
 | 
			
		||||
    protected McMMOPlayerAbilityEvent(Player player, PrimarySkillType skill) {
 | 
			
		||||
        super(player, skill);
 | 
			
		||||
        super(Objects.requireNonNull(UserManager.getPlayer(player)), skill);
 | 
			
		||||
        ability = mcMMO.p.getSkillTools().getSuperAbility(skill);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Create a new McMMOPlayerAbilityEvent.
 | 
			
		||||
     * @param mmoPlayer The McMMOPlayer involved in this event
 | 
			
		||||
     * @param skill The skill involved in this event
 | 
			
		||||
     */
 | 
			
		||||
    protected McMMOPlayerAbilityEvent(McMMOPlayer mmoPlayer, PrimarySkillType skill) {
 | 
			
		||||
        super(mmoPlayer, skill);
 | 
			
		||||
        ability = mcMMO.p.getSkillTools().getSuperAbility(skill);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,24 +1,36 @@
 | 
			
		||||
package com.gmail.nossr50.events.skills.alchemy;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
 | 
			
		||||
import com.gmail.nossr50.util.player.UserManager;
 | 
			
		||||
import org.bukkit.block.Block;
 | 
			
		||||
import org.bukkit.block.BlockState;
 | 
			
		||||
import org.bukkit.block.BrewingStand;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.event.Cancellable;
 | 
			
		||||
import org.jetbrains.annotations.NotNull;
 | 
			
		||||
 | 
			
		||||
import static java.util.Objects.requireNonNull;
 | 
			
		||||
 | 
			
		||||
public class McMMOPlayerBrewEvent extends McMMOPlayerSkillEvent implements Cancellable {
 | 
			
		||||
    private final BlockState brewingStand;
 | 
			
		||||
 | 
			
		||||
    private boolean cancelled;
 | 
			
		||||
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "2.2.010")
 | 
			
		||||
    public McMMOPlayerBrewEvent(Player player, BlockState brewingStand) {
 | 
			
		||||
        super(player, PrimarySkillType.ALCHEMY);
 | 
			
		||||
        super(requireNonNull(UserManager.getPlayer(player)), PrimarySkillType.ALCHEMY);
 | 
			
		||||
        this.brewingStand = brewingStand;
 | 
			
		||||
        cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public McMMOPlayerBrewEvent(@NotNull McMMOPlayer mmoPlayer, @NotNull BlockState brewingStand) {
 | 
			
		||||
        super(mmoPlayer, PrimarySkillType.ALCHEMY);
 | 
			
		||||
        this.brewingStand = requireNonNull(brewingStand);
 | 
			
		||||
        cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean isCancelled() {
 | 
			
		||||
        return cancelled;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,17 +1,28 @@
 | 
			
		||||
package com.gmail.nossr50.events.skills.alchemy;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
 | 
			
		||||
import com.gmail.nossr50.util.player.UserManager;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.event.Cancellable;
 | 
			
		||||
 | 
			
		||||
import static java.util.Objects.requireNonNull;
 | 
			
		||||
 | 
			
		||||
public class McMMOPlayerCatalysisEvent extends McMMOPlayerSkillEvent implements Cancellable {
 | 
			
		||||
    private double speed;
 | 
			
		||||
 | 
			
		||||
    private boolean cancelled;
 | 
			
		||||
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "2.2.010")
 | 
			
		||||
    public McMMOPlayerCatalysisEvent(Player player, double speed) {
 | 
			
		||||
        super(player, PrimarySkillType.ALCHEMY);
 | 
			
		||||
        super(requireNonNull(UserManager.getPlayer(player)), PrimarySkillType.ALCHEMY);
 | 
			
		||||
        this.speed = speed;
 | 
			
		||||
        cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public McMMOPlayerCatalysisEvent(McMMOPlayer mmoPlayer, double speed) {
 | 
			
		||||
        super(mmoPlayer, PrimarySkillType.ALCHEMY);
 | 
			
		||||
        this.speed = speed;
 | 
			
		||||
        cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,23 @@
 | 
			
		||||
package com.gmail.nossr50.events.skills.fishing;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
 | 
			
		||||
import com.gmail.nossr50.util.player.UserManager;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.event.Cancellable;
 | 
			
		||||
 | 
			
		||||
public class McMMOPlayerFishingEvent extends McMMOPlayerSkillEvent implements Cancellable {
 | 
			
		||||
    private boolean cancelled;
 | 
			
		||||
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "2.2.010")
 | 
			
		||||
    protected McMMOPlayerFishingEvent(Player player) {
 | 
			
		||||
        super(player, PrimarySkillType.FISHING);
 | 
			
		||||
        super(UserManager.getPlayer(player), PrimarySkillType.FISHING);
 | 
			
		||||
        cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected McMMOPlayerFishingEvent(McMMOPlayer mmoPlayer) {
 | 
			
		||||
        super(mmoPlayer, PrimarySkillType.FISHING);
 | 
			
		||||
        cancelled = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,23 +1,34 @@
 | 
			
		||||
package com.gmail.nossr50.events.skills.fishing;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.util.player.UserManager;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.inventory.ItemStack;
 | 
			
		||||
import org.jetbrains.annotations.NotNull;
 | 
			
		||||
import org.jetbrains.annotations.Nullable;
 | 
			
		||||
 | 
			
		||||
import static java.util.Objects.requireNonNull;
 | 
			
		||||
 | 
			
		||||
public class McMMOPlayerFishingTreasureEvent extends McMMOPlayerFishingEvent {
 | 
			
		||||
    private ItemStack treasure;
 | 
			
		||||
    private int xp;
 | 
			
		||||
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "2.2.010")
 | 
			
		||||
    public McMMOPlayerFishingTreasureEvent(Player player, ItemStack treasure, int xp) {
 | 
			
		||||
        super(player);
 | 
			
		||||
        this(requireNonNull(UserManager.getPlayer(player)), treasure, xp);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public McMMOPlayerFishingTreasureEvent(@NotNull McMMOPlayer mmoPlayer, @Nullable ItemStack treasure, int xp) {
 | 
			
		||||
        super(mmoPlayer);
 | 
			
		||||
        this.treasure = treasure;
 | 
			
		||||
        this.xp = xp;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public ItemStack getTreasure() {
 | 
			
		||||
    public @Nullable ItemStack getTreasure() {
 | 
			
		||||
        return treasure;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setTreasure(ItemStack item) {
 | 
			
		||||
    public void setTreasure(@Nullable ItemStack item) {
 | 
			
		||||
        this.treasure = item;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,20 +1,32 @@
 | 
			
		||||
package com.gmail.nossr50.events.skills.fishing;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.util.player.UserManager;
 | 
			
		||||
import org.bukkit.enchantments.Enchantment;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.inventory.ItemStack;
 | 
			
		||||
import org.jetbrains.annotations.NotNull;
 | 
			
		||||
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
public class McMMOPlayerMagicHunterEvent extends McMMOPlayerFishingTreasureEvent {
 | 
			
		||||
    private final Map<Enchantment, Integer> enchants;
 | 
			
		||||
import static java.util.Objects.requireNonNull;
 | 
			
		||||
 | 
			
		||||
    public McMMOPlayerMagicHunterEvent(Player player, ItemStack treasure, int xp, Map<Enchantment, Integer> enchants) {
 | 
			
		||||
        super(player, treasure, xp);
 | 
			
		||||
        this.enchants = enchants;
 | 
			
		||||
public class McMMOPlayerMagicHunterEvent extends McMMOPlayerFishingTreasureEvent {
 | 
			
		||||
    private final Map<Enchantment, Integer> enchants = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "2.2.010")
 | 
			
		||||
    public McMMOPlayerMagicHunterEvent(@NotNull Player player, @NotNull ItemStack treasure, int xp, @NotNull Map<Enchantment, Integer> enchants) {
 | 
			
		||||
        this(requireNonNull(UserManager.getPlayer(player)), treasure, xp, enchants);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Map<Enchantment, Integer> getEnchantments() {
 | 
			
		||||
    public McMMOPlayerMagicHunterEvent(@NotNull McMMOPlayer mmoPlayer, @NotNull ItemStack treasure, int xp, @NotNull Map<Enchantment, Integer> enchants) {
 | 
			
		||||
        super(mmoPlayer, treasure, xp);
 | 
			
		||||
        requireNonNull(enchants, "enchants cannot be null");
 | 
			
		||||
        this.enchants.putAll(enchants);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public @NotNull Map<Enchantment, Integer> getEnchantments() {
 | 
			
		||||
        return enchants;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,16 @@
 | 
			
		||||
package com.gmail.nossr50.events.skills.secondaryabilities;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill;
 | 
			
		||||
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.util.player.UserManager;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.event.Cancellable;
 | 
			
		||||
import org.jetbrains.annotations.NotNull;
 | 
			
		||||
 | 
			
		||||
import static java.util.Objects.requireNonNull;
 | 
			
		||||
 | 
			
		||||
public class SubSkillEvent extends McMMOPlayerSkillEvent implements Cancellable {
 | 
			
		||||
    private SubSkillType subSkillType;
 | 
			
		||||
@@ -16,9 +21,20 @@ public class SubSkillEvent extends McMMOPlayerSkillEvent implements Cancellable
 | 
			
		||||
     * Only skills using the old system will fire this event
 | 
			
		||||
     * @param player target player
 | 
			
		||||
     * @param subSkillType target subskill
 | 
			
		||||
     * @deprecated Use {@link #SubSkillEvent(McMMOPlayer, SubSkillType)} instead
 | 
			
		||||
     */
 | 
			
		||||
    public SubSkillEvent(Player player, SubSkillType subSkillType) {
 | 
			
		||||
        super(player, mcMMO.p.getSkillTools().getPrimarySkillBySubSkill(subSkillType));
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "2.2.010")
 | 
			
		||||
    public SubSkillEvent(@NotNull Player player, @NotNull SubSkillType subSkillType) {
 | 
			
		||||
        this(requireNonNull(UserManager.getPlayer(player)), subSkillType);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Only skills using the old system will fire this event
 | 
			
		||||
     * @param mmoPlayer target player
 | 
			
		||||
     * @param subSkillType target subskill
 | 
			
		||||
     */
 | 
			
		||||
    public SubSkillEvent(@NotNull McMMOPlayer mmoPlayer, @NotNull SubSkillType subSkillType) {
 | 
			
		||||
        super(mmoPlayer, mcMMO.p.getSkillTools().getPrimarySkillBySubSkill(subSkillType));
 | 
			
		||||
        this.subSkillType = subSkillType;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -28,15 +44,30 @@ public class SubSkillEvent extends McMMOPlayerSkillEvent implements Cancellable
 | 
			
		||||
     * @param subSkillType target subskill
 | 
			
		||||
     * @param resultModifier a value multiplied against the final result of the dice roll, typically between 0-1.0
 | 
			
		||||
     */
 | 
			
		||||
    public SubSkillEvent(Player player, SubSkillType subSkillType, double resultModifier) {
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "2.2.010")
 | 
			
		||||
    public SubSkillEvent(@NotNull Player player, @NotNull SubSkillType subSkillType, double resultModifier) {
 | 
			
		||||
        this(requireNonNull(UserManager.getPlayer(player)), subSkillType, resultModifier);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Only skills using the old system will fire this event
 | 
			
		||||
     * @param player target player
 | 
			
		||||
     * @param subSkillType target subskill
 | 
			
		||||
     * @param resultModifier a value multiplied against the final result of the dice roll, typically between 0-1.0
 | 
			
		||||
     */
 | 
			
		||||
    public SubSkillEvent(@NotNull McMMOPlayer player, @NotNull SubSkillType subSkillType, double resultModifier) {
 | 
			
		||||
        super(player, mcMMO.p.getSkillTools().getPrimarySkillBySubSkill(subSkillType));
 | 
			
		||||
        this.subSkillType = subSkillType;
 | 
			
		||||
        this.subSkillType = requireNonNull(subSkillType, "subSkillType cannot be null");
 | 
			
		||||
        this.resultModifier = resultModifier;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public SubSkillEvent(Player player, AbstractSubSkill abstractSubSkill)
 | 
			
		||||
    {
 | 
			
		||||
        super(player, abstractSubSkill.getPrimarySkill());
 | 
			
		||||
    @Deprecated(forRemoval = true, since = "2.2.010")
 | 
			
		||||
    public SubSkillEvent(@NotNull Player player, @NotNull AbstractSubSkill abstractSubSkill) {
 | 
			
		||||
        this(requireNonNull(UserManager.getPlayer(player)), abstractSubSkill);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public SubSkillEvent(@NotNull McMMOPlayer mmoPlayer, @NotNull AbstractSubSkill abstractSubSkill) {
 | 
			
		||||
        super(mmoPlayer, abstractSubSkill.getPrimarySkill());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getResultModifier() {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user