mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-22 21:26:46 +01:00
Introducing Block Cracker
This commit is contained in:
parent
7d826a0cdb
commit
9bd33ab3df
@ -31,6 +31,7 @@ Version 1.4.00-dev
|
|||||||
+ Added the "wait" music disc to the default fishing treasures
|
+ Added the "wait" music disc to the default fishing treasures
|
||||||
+ Added "Chinese (Taiwan)" localization files (zh_TW)
|
+ Added "Chinese (Taiwan)" localization files (zh_TW)
|
||||||
+ Added '/hardcore' and '/vampirism' commands for toggling these modes on or off.
|
+ Added '/hardcore' and '/vampirism' commands for toggling these modes on or off.
|
||||||
|
+ Added Block Cracker to Unarmed's Berserk, turn smooth brick into cracked smooth brick
|
||||||
= Fixed bug where splash potions could raise a player's unarmed level
|
= Fixed bug where splash potions could raise a player's unarmed level
|
||||||
= Fixed bug where fired arrows could raise skill levels other than Archery
|
= Fixed bug where fired arrows could raise skill levels other than Archery
|
||||||
= Fixed /ptp telporting the target to the player, rather than the other way around.
|
= Fixed /ptp telporting the target to the player, rather than the other way around.
|
||||||
|
@ -256,6 +256,9 @@ public class Config extends ConfigLoader {
|
|||||||
public int getSmeltingXPLapis() { return config.getInt("Experience.Smelting.Lapis", 40); }
|
public int getSmeltingXPLapis() { return config.getInt("Experience.Smelting.Lapis", 40); }
|
||||||
public int getSmeltingXPEmerald() { return config.getInt("Experience.Smelting.Emerald", 100); }
|
public int getSmeltingXPEmerald() { return config.getInt("Experience.Smelting.Emerald", 100); }
|
||||||
|
|
||||||
|
/* Unarmed */
|
||||||
|
public boolean getUnarmedBlockCrackerSmoothbrickToCracked() { return config.getBoolean("Skills.Unarmed.Block_Cracker.SmoothBrick_To_CrackedBrick", true); }
|
||||||
|
|
||||||
/* Taming */
|
/* Taming */
|
||||||
public int getTamingXPWolf() { return config.getInt("Experience.Taming.Animal_Taming.Wolf", 250); }
|
public int getTamingXPWolf() { return config.getInt("Experience.Taming.Animal_Taming.Wolf", 250); }
|
||||||
public int getTamingXPOcelot() { return config.getInt("Experience.Taming.Animal_Taming.Ocelot", 500); }
|
public int getTamingXPOcelot() { return config.getInt("Experience.Taming.Animal_Taming.Ocelot", 500); }
|
||||||
|
@ -35,6 +35,7 @@ import com.gmail.nossr50.skills.mining.MiningManager;
|
|||||||
import com.gmail.nossr50.skills.repair.Repair;
|
import com.gmail.nossr50.skills.repair.Repair;
|
||||||
import com.gmail.nossr50.skills.repair.Salvage;
|
import com.gmail.nossr50.skills.repair.Salvage;
|
||||||
import com.gmail.nossr50.skills.smelting.SmeltingManager;
|
import com.gmail.nossr50.skills.smelting.SmeltingManager;
|
||||||
|
import com.gmail.nossr50.skills.unarmed.Unarmed;
|
||||||
import com.gmail.nossr50.skills.utilities.AbilityType;
|
import com.gmail.nossr50.skills.utilities.AbilityType;
|
||||||
import com.gmail.nossr50.skills.utilities.SkillTools;
|
import com.gmail.nossr50.skills.utilities.SkillTools;
|
||||||
import com.gmail.nossr50.skills.utilities.SkillType;
|
import com.gmail.nossr50.skills.utilities.SkillType;
|
||||||
@ -286,7 +287,7 @@ public class BlockListener implements Listener {
|
|||||||
else if (profile.getToolPreparationMode(ToolType.SHOVEL) && ItemChecks.isShovel(heldItem) && BlockChecks.canBeGigaDrillBroken(block) && Permissions.gigaDrillBreaker(player)) {
|
else if (profile.getToolPreparationMode(ToolType.SHOVEL) && ItemChecks.isShovel(heldItem) && BlockChecks.canBeGigaDrillBroken(block) && Permissions.gigaDrillBreaker(player)) {
|
||||||
SkillTools.abilityCheck(player, SkillType.EXCAVATION);
|
SkillTools.abilityCheck(player, SkillType.EXCAVATION);
|
||||||
}
|
}
|
||||||
else if (profile.getToolPreparationMode(ToolType.FISTS) && heldItem.getType() == Material.AIR && (BlockChecks.canBeGigaDrillBroken(block) || block.getType() == Material.SNOW) && Permissions.berserk(player)) {
|
else if (profile.getToolPreparationMode(ToolType.FISTS) && heldItem.getType() == Material.AIR && (BlockChecks.canBeGigaDrillBroken(block) || block.getType() == Material.SNOW || (block.getType() == Material.SMOOTH_BRICK && block.getData() == 0x0)) && Permissions.berserk(player)) {
|
||||||
SkillTools.abilityCheck(player, SkillType.UNARMED);
|
SkillTools.abilityCheck(player, SkillType.UNARMED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -344,16 +345,21 @@ public class BlockListener implements Listener {
|
|||||||
Excavation.gigaDrillBreaker(mcMMOPlayer, block);
|
Excavation.gigaDrillBreaker(mcMMOPlayer, block);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (profile.getAbilityMode(AbilityType.BERSERK) && SkillTools.triggerCheck(player, block, AbilityType.BERSERK)) {
|
else if (profile.getAbilityMode(AbilityType.BERSERK)) {
|
||||||
|
if (SkillTools.triggerCheck(player, block, AbilityType.BERSERK)) {
|
||||||
if (heldItem.getType() == Material.AIR) {
|
if (heldItem.getType() == Material.AIR) {
|
||||||
FakePlayerAnimationEvent armswing = new FakePlayerAnimationEvent(player);
|
FakePlayerAnimationEvent armswing = new FakePlayerAnimationEvent(player);
|
||||||
plugin.getServer().getPluginManager().callEvent(armswing);
|
plugin.getServer().getPluginManager().callEvent(armswing);
|
||||||
|
|
||||||
event.setInstaBreak(true);
|
event.setInstaBreak(true);
|
||||||
}
|
|
||||||
|
|
||||||
player.playSound(block.getLocation(), Sound.ITEM_PICKUP, Misc.POP_VOLUME, Misc.POP_PITCH);
|
player.playSound(block.getLocation(), Sound.ITEM_PICKUP, Misc.POP_VOLUME, Misc.POP_PITCH);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
// Another perm check for the cracked blocks activation
|
||||||
|
else if (BlockChecks.canBeCracked(block) && player.hasPermission("mcmmo.ability.unarmed.blockcracker")) {
|
||||||
|
Unarmed.blockCracker(player, block);
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (profile.getAbilityMode(AbilityType.SUPER_BREAKER) && SkillTools.triggerCheck(player, block, AbilityType.SUPER_BREAKER)) {
|
else if (profile.getAbilityMode(AbilityType.SUPER_BREAKER) && SkillTools.triggerCheck(player, block, AbilityType.SUPER_BREAKER)) {
|
||||||
MiningManager miningManager = new MiningManager(mcMMOPlayer);
|
MiningManager miningManager = new MiningManager(mcMMOPlayer);
|
||||||
|
|
||||||
|
@ -1,7 +1,12 @@
|
|||||||
package com.gmail.nossr50.skills.unarmed;
|
package com.gmail.nossr50.skills.unarmed;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.gmail.nossr50.config.AdvancedConfig;
|
import com.gmail.nossr50.config.AdvancedConfig;
|
||||||
import com.gmail.nossr50.config.Config;
|
import com.gmail.nossr50.config.Config;
|
||||||
|
import com.gmail.nossr50.util.Misc;
|
||||||
|
|
||||||
public class Unarmed {
|
public class Unarmed {
|
||||||
public static int ironArmMaxBonusDamage = AdvancedConfig.getInstance().getIronArmMaxBonus();
|
public static int ironArmMaxBonusDamage = AdvancedConfig.getInstance().getIronArmMaxBonus();
|
||||||
@ -16,8 +21,27 @@ public class Unarmed {
|
|||||||
public static double ironGripMaxChance = AdvancedConfig.getInstance().getIronGripChanceMax();
|
public static double ironGripMaxChance = AdvancedConfig.getInstance().getIronGripChanceMax();
|
||||||
public static int ironGripMaxBonusLevel = AdvancedConfig.getInstance().getIronGripMaxBonusLevel();
|
public static int ironGripMaxBonusLevel = AdvancedConfig.getInstance().getIronGripMaxBonusLevel();
|
||||||
|
|
||||||
|
public static boolean blockCrackerSmoothBrick = Config.getInstance().getUnarmedBlockCrackerSmoothbrickToCracked();
|
||||||
|
|
||||||
public static boolean pvpEnabled = Config.getInstance().getUnarmedPVP();
|
public static boolean pvpEnabled = Config.getInstance().getUnarmedPVP();
|
||||||
public static boolean pveEnabled = Config.getInstance().getUnarmedPVE();
|
public static boolean pveEnabled = Config.getInstance().getUnarmedPVE();
|
||||||
|
|
||||||
public static double berserkDamageModifier = 1.5;
|
public static double berserkDamageModifier = 1.5;
|
||||||
|
|
||||||
|
public static void blockCracker(Player player, Block block) {
|
||||||
|
if (Misc.blockBreakSimulate(block, player, false)) {
|
||||||
|
Material type = block.getType();
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case SMOOTH_BRICK:
|
||||||
|
if (blockCrackerSmoothBrick && block.getData() == 0x0) {
|
||||||
|
block.setData((byte) 0x2);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -350,4 +350,16 @@ public final class BlockChecks {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean canBeCracked(Block block) {
|
||||||
|
switch(block.getType()) {
|
||||||
|
case SMOOTH_BRICK:
|
||||||
|
if (block.getData() == 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -171,6 +171,8 @@ Skills:
|
|||||||
Enabled_For_PVP: true
|
Enabled_For_PVP: true
|
||||||
Enabled_For_PVE: true
|
Enabled_For_PVE: true
|
||||||
Level_Cap: 0
|
Level_Cap: 0
|
||||||
|
Block_Cracker:
|
||||||
|
SmoothBrick_To_CrackedBrick: true
|
||||||
Woodcutting:
|
Woodcutting:
|
||||||
Level_Cap: 0
|
Level_Cap: 0
|
||||||
Requires_Axe: true
|
Requires_Axe: true
|
||||||
|
@ -462,12 +462,15 @@ permissions:
|
|||||||
description: Allows access to all Unarmed abilities
|
description: Allows access to all Unarmed abilities
|
||||||
children:
|
children:
|
||||||
mcmmo.ability.unarmed.berserk: true
|
mcmmo.ability.unarmed.berserk: true
|
||||||
|
mcmmo.ability.unarmed.blockcracker: true
|
||||||
mcmmo.ability.unarmed.bonusdamage: true
|
mcmmo.ability.unarmed.bonusdamage: true
|
||||||
mcmmo.ability.unarmed.deflect: true
|
mcmmo.ability.unarmed.deflect: true
|
||||||
mcmmo.ability.unarmed.disarm: true
|
mcmmo.ability.unarmed.disarm: true
|
||||||
mcmmo.ability.unarmed.irongrip: true
|
mcmmo.ability.unarmed.irongrip: true
|
||||||
mcmmo.ability.unarmed.berserk:
|
mcmmo.ability.unarmed.berserk:
|
||||||
description: Allows access to the Berserker ability
|
description: Allows access to the Berserker ability
|
||||||
|
mcmmo.ability.unarmed.blockcracker:
|
||||||
|
description: Allows access to the Block Cracker ability
|
||||||
mcmmo.ability.unarmed.bonusdamage:
|
mcmmo.ability.unarmed.bonusdamage:
|
||||||
description: Allows bonus damage from Unarmed
|
description: Allows bonus damage from Unarmed
|
||||||
mcmmo.ability.unarmed.deflect:
|
mcmmo.ability.unarmed.deflect:
|
||||||
|
Loading…
Reference in New Issue
Block a user