mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-03 18:43:43 +01:00 
			
		
		
		
	Add Explosive Shot definition
This commit is contained in:
		@@ -22,6 +22,7 @@ public enum SubSkillType {
 | 
			
		||||
    ARCHERY_DAZE,
 | 
			
		||||
    ARCHERY_SKILL_SHOT(20),
 | 
			
		||||
    ARCHERY_ARCHERY_LIMIT_BREAK(10),
 | 
			
		||||
    ARCHERY_EXPLOSIVE_SHOT(1),
 | 
			
		||||
 | 
			
		||||
    /* Axes */
 | 
			
		||||
    AXES_ARMOR_IMPACT(20),
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,12 @@ import org.bukkit.block.BlockState;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
 | 
			
		||||
public enum SuperAbilityType {
 | 
			
		||||
    EXPLOSIVE_SHOT("Archery.Skills.ExplosiveShot.On",
 | 
			
		||||
            "Archery.Skills.ExplosiveShot.Off",
 | 
			
		||||
            "Archery.Skills.ExplosiveShot.Other.On",
 | 
			
		||||
            "Archery.Skills.ExplosiveShot.Refresh",
 | 
			
		||||
            "Archery.Skills.ExplosiveShot.Other.Off",
 | 
			
		||||
            "Archery.SubSkill.ExplosiveShot.Name"),
 | 
			
		||||
    BERSERK(
 | 
			
		||||
            "Unarmed.Skills.Berserk.On",
 | 
			
		||||
            "Unarmed.Skills.Berserk.Off",
 | 
			
		||||
@@ -190,6 +196,7 @@ public enum SuperAbilityType {
 | 
			
		||||
    public boolean getPermissions(Player player) {
 | 
			
		||||
        return switch (this) {
 | 
			
		||||
            case BERSERK -> Permissions.berserk(player);
 | 
			
		||||
            case EXPLOSIVE_SHOT -> Permissions.explosiveShot(player);
 | 
			
		||||
            case BLAST_MINING -> Permissions.remoteDetonation(player);
 | 
			
		||||
            case GIGA_DRILL_BREAKER -> Permissions.gigaDrillBreaker(player);
 | 
			
		||||
            case GREEN_TERRA -> Permissions.greenTerra(player);
 | 
			
		||||
@@ -211,25 +218,15 @@ public enum SuperAbilityType {
 | 
			
		||||
     * @return true if the block is affected by this ability, false otherwise
 | 
			
		||||
     */
 | 
			
		||||
    public boolean blockCheck(BlockState blockState) {
 | 
			
		||||
        switch (this) {
 | 
			
		||||
            case BERSERK:
 | 
			
		||||
                return (BlockUtils.affectedByGigaDrillBreaker(blockState) || blockState.getType() == Material.SNOW || mcMMO.getMaterialMapStore().isGlass(blockState.getType()));
 | 
			
		||||
 | 
			
		||||
            case GIGA_DRILL_BREAKER:
 | 
			
		||||
                return BlockUtils.affectedByGigaDrillBreaker(blockState);
 | 
			
		||||
 | 
			
		||||
            case GREEN_TERRA:
 | 
			
		||||
                return BlockUtils.canMakeMossy(blockState);
 | 
			
		||||
 | 
			
		||||
            case SUPER_BREAKER:
 | 
			
		||||
                return BlockUtils.affectedBySuperBreaker(blockState);
 | 
			
		||||
 | 
			
		||||
            case TREE_FELLER:
 | 
			
		||||
                return BlockUtils.hasWoodcuttingXP(blockState);
 | 
			
		||||
 | 
			
		||||
            default:
 | 
			
		||||
                return false;
 | 
			
		||||
        }
 | 
			
		||||
        return switch (this) {
 | 
			
		||||
            case BERSERK ->
 | 
			
		||||
                    (BlockUtils.affectedByGigaDrillBreaker(blockState) || blockState.getType() == Material.SNOW || mcMMO.getMaterialMapStore().isGlass(blockState.getType()));
 | 
			
		||||
            case GIGA_DRILL_BREAKER -> BlockUtils.affectedByGigaDrillBreaker(blockState);
 | 
			
		||||
            case GREEN_TERRA -> BlockUtils.canMakeMossy(blockState);
 | 
			
		||||
            case SUPER_BREAKER -> BlockUtils.affectedBySuperBreaker(blockState);
 | 
			
		||||
            case TREE_FELLER -> BlockUtils.hasWoodcuttingXP(blockState);
 | 
			
		||||
            default -> false;
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,8 @@ public enum ToolType {
 | 
			
		||||
    PICKAXE("Mining.Ability.Lower", "Mining.Ability.Ready"),
 | 
			
		||||
    SHOVEL("Excavation.Ability.Lower", "Excavation.Ability.Ready"),
 | 
			
		||||
    SWORD("Swords.Ability.Lower", "Swords.Ability.Ready"),
 | 
			
		||||
    CROSSBOWS("Crossbows.Ability.Lower", "Crossbows.Ability.Ready"),
 | 
			
		||||
    CROSSBOW("Crossbows.Ability.Lower", "Crossbows.Ability.Ready"),
 | 
			
		||||
    BOW("Archery.Ability.Lower", "Archery.Ability.Ready"),
 | 
			
		||||
    TRIDENTS("Tridents.Ability.Lower", "Tridents.Ability.Ready");
 | 
			
		||||
 | 
			
		||||
    private final String lowerTool;
 | 
			
		||||
@@ -40,7 +41,7 @@ public enum ToolType {
 | 
			
		||||
        switch (this) {
 | 
			
		||||
            case AXE:
 | 
			
		||||
                return ItemUtils.isAxe(itemStack);
 | 
			
		||||
            case CROSSBOWS:
 | 
			
		||||
            case CROSSBOW:
 | 
			
		||||
                return ItemUtils.isCrossbow(itemStack);
 | 
			
		||||
            case TRIDENTS:
 | 
			
		||||
                return ItemUtils.isTrident(itemStack);
 | 
			
		||||
 
 | 
			
		||||
@@ -180,6 +180,7 @@ public final class Permissions {
 | 
			
		||||
    public static boolean concoctions(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.alchemy.concoctions"); }
 | 
			
		||||
 | 
			
		||||
    /* ARCHERY */
 | 
			
		||||
    public static boolean explosiveShot(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.archery.explosiveshot"); }
 | 
			
		||||
    public static boolean arrowRetrieval(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.archery.trackarrows"); }
 | 
			
		||||
    public static boolean daze(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.archery.daze"); }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -182,6 +182,11 @@ Archery.SubSkill.ArcheryLimitBreak.Description=Breaking your limits. Increased d
 | 
			
		||||
Archery.SubSkill.ArcheryLimitBreak.Stat=Limit Break Max DMG
 | 
			
		||||
Archery.Listener=Archery:
 | 
			
		||||
Archery.SkillName=ARCHERY
 | 
			
		||||
Archery.Skills.ExplosiveShot.Off=
 | 
			
		||||
Archery.Skills.ExplosiveShot.On=&a**EXPLOSIVE SHOT ACTIVATED**
 | 
			
		||||
Archery.Skills.ExplosiveShot.Other.Off=Explosive Shot&a has worn off for &e{0}
 | 
			
		||||
Archery.Skills.ExplosiveShot.Other.On=&a{0}&2 has used &cExplosive Shot!
 | 
			
		||||
Archery.Skills.ExplosiveShot.Refresh=&aYour &Explosive Shot &ability is refreshed!
 | 
			
		||||
#AXES
 | 
			
		||||
Axes.Ability.Bonus.0=Axe Mastery
 | 
			
		||||
Axes.Ability.Bonus.1=Bonus {0} damage
 | 
			
		||||
 
 | 
			
		||||
@@ -290,10 +290,13 @@ permissions:
 | 
			
		||||
    mcmmo.ability.archery.all:
 | 
			
		||||
        description: Allows access to all Archery abilities
 | 
			
		||||
        children:
 | 
			
		||||
            mcmmo.ability.archery.explosiveshot: true
 | 
			
		||||
            mcmmo.ability.archery.skillshot: true
 | 
			
		||||
            mcmmo.ability.archery.daze: true
 | 
			
		||||
            mcmmo.ability.archery.arrowretrieval: true
 | 
			
		||||
            mcmmo.ability.archery.archerylimitbreak: true
 | 
			
		||||
    mcmmo.ability.archery.explosiveshot:
 | 
			
		||||
        description: Allows access to the Explosive Shot super ability for Archery
 | 
			
		||||
    mcmmo.ability.archery.archerylimitbreak:
 | 
			
		||||
        description: Adds damage to bows
 | 
			
		||||
    mcmmo.ability.archery.skillshot:
 | 
			
		||||
 
 | 
			
		||||
@@ -31,6 +31,11 @@ Alchemy:
 | 
			
		||||
            Rank_7: 900
 | 
			
		||||
            Rank_8: 1000
 | 
			
		||||
Archery:
 | 
			
		||||
    ExplosiveShot:
 | 
			
		||||
        Standard:
 | 
			
		||||
            Rank_1: 5
 | 
			
		||||
        RetroMode:
 | 
			
		||||
            Rank_1: 50
 | 
			
		||||
    ArcheryLimitBreak:
 | 
			
		||||
        Standard:
 | 
			
		||||
            Rank_1: 10
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user