mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-26 07:06:45 +01:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
629d882831
@ -7,6 +7,23 @@ Key:
|
|||||||
! Change
|
! Change
|
||||||
- Removal
|
- Removal
|
||||||
|
|
||||||
|
Version 2.1.30
|
||||||
|
Fixed double drops behaving oddly
|
||||||
|
Double_Drop config table has been renamed to Bonus_Drops, this is to jankily auto-update everyones config
|
||||||
|
DoubleDrop config tables now must contain all things that can possibly be doubled, such as the Ore block, the ore itself, etc.
|
||||||
|
Added the following items to the Bonus_Drops tables for Mining: Coal, Diamond, Emerald, Glowstone_Dust, Iron_Ingot, Lapis_Lazuli, Nether_Quartz, Redstone, Cobblestone
|
||||||
|
Added the following items to the Bonus_Drops tables for Herbalism: Beetroot, Carrot, Cocoa_Beans, Melon_Slice, Potatoe
|
||||||
|
Added the following items to the Bonus_Drops tables for Woodcutting: Birch_Wood, Spruce_Wood, Jungle_Wood, Dark_Oak_Wood, Oak_Wood, Acacia_Wood
|
||||||
|
|
||||||
|
NOTE: You don't need to update your configs for this one unless you had custom entries in the Double_Drop tables, the renaming of the key will auto-insert default values and give everyone correct defaults
|
||||||
|
NOTE: I'm gonna have to blame Bukkit on this one, several API methods I used are actually unfinished and kind of janky. So I hacked something together to make them work.
|
||||||
|
|
||||||
|
Version 2.1.29
|
||||||
|
Fixed a bug where double drops and triple drops were not activating
|
||||||
|
|
||||||
|
Version 2.1.28
|
||||||
|
Fixed a bug where Archery could not gain XP
|
||||||
|
|
||||||
Version 2.1.27
|
Version 2.1.27
|
||||||
Fixed an exploit that allowed players to duplicate torches, and rails
|
Fixed an exploit that allowed players to duplicate torches, and rails
|
||||||
|
|
||||||
|
2
pom.xml
2
pom.xml
@ -2,7 +2,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
||||||
<artifactId>mcMMO</artifactId>
|
<artifactId>mcMMO</artifactId>
|
||||||
<version>2.1.27</version>
|
<version>2.1.30</version>
|
||||||
<name>mcMMO</name>
|
<name>mcMMO</name>
|
||||||
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
||||||
<scm>
|
<scm>
|
||||||
|
@ -463,18 +463,18 @@ public class Config extends AutoUpdateConfigLoader {
|
|||||||
/*
|
/*
|
||||||
* SKILL SETTINGS
|
* SKILL SETTINGS
|
||||||
*/
|
*/
|
||||||
public boolean getDoubleDropsEnabled(PrimarySkillType skill, Material material) { return config.getBoolean("Double_Drops." + StringUtils.getCapitalized(skill.toString()) + "." + StringUtils.getPrettyItemString(material).replace(" ", "_")); }
|
public boolean getDoubleDropsEnabled(PrimarySkillType skill, Material material) { return config.getBoolean("Bonus_Drops." + StringUtils.getCapitalized(skill.toString()) + "." + StringUtils.getPrettyItemString(material).replace(" ", "_")); }
|
||||||
|
|
||||||
public boolean getDoubleDropsDisabled(PrimarySkillType skill) {
|
public boolean getDoubleDropsDisabled(PrimarySkillType skill) {
|
||||||
String skillName = StringUtils.getCapitalized(skill.toString());
|
String skillName = StringUtils.getCapitalized(skill.toString());
|
||||||
ConfigurationSection section = config.getConfigurationSection("Double_Drops." + skillName);
|
ConfigurationSection section = config.getConfigurationSection("Bonus_Drops." + skillName);
|
||||||
if (section == null)
|
if (section == null)
|
||||||
return false;
|
return false;
|
||||||
Set<String> keys = section.getKeys(false);
|
Set<String> keys = section.getKeys(false);
|
||||||
boolean disabled = true;
|
boolean disabled = true;
|
||||||
|
|
||||||
for (String key : keys) {
|
for (String key : keys) {
|
||||||
if (config.getBoolean("Double_Drops." + skillName + "." + key)) {
|
if (config.getBoolean("Bonus_Drops." + skillName + "." + key)) {
|
||||||
disabled = false;
|
disabled = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -540,7 +540,7 @@ public class Config extends AutoUpdateConfigLoader {
|
|||||||
public double getTamingCOTWRange() { return config.getDouble("Skills.Taming.Call_Of_The_Wild.Range", 40.0D); }
|
public double getTamingCOTWRange() { return config.getDouble("Skills.Taming.Call_Of_The_Wild.Range", 40.0D); }
|
||||||
|
|
||||||
/* Woodcutting */
|
/* Woodcutting */
|
||||||
public boolean getWoodcuttingDoubleDropsEnabled(BlockData material) { return config.getBoolean("Double_Drops.Woodcutting." + StringUtils.getFriendlyConfigBlockDataString(material)); }
|
public boolean getWoodcuttingDoubleDropsEnabled(BlockData material) { return config.getBoolean("Bonus_Drops.Woodcutting." + StringUtils.getFriendlyConfigBlockDataString(material)); }
|
||||||
public boolean getTreeFellerSoundsEnabled() { return config.getBoolean("Skills.Woodcutting.Tree_Feller_Sounds", true); }
|
public boolean getTreeFellerSoundsEnabled() { return config.getBoolean("Skills.Woodcutting.Tree_Feller_Sounds", true); }
|
||||||
public int getWoodcuttingGate() { return config.getInt("Skills.Woodcutting.Ability_Activation_Level_Gate", 10); }
|
public int getWoodcuttingGate() { return config.getInt("Skills.Woodcutting.Ability_Activation_Level_Gate", 10); }
|
||||||
|
|
||||||
|
@ -62,33 +62,65 @@ public class BlockListener implements Listener {
|
|||||||
{
|
{
|
||||||
ItemStack is = new ItemStack(item.getItemStack());
|
ItemStack is = new ItemStack(item.getItemStack());
|
||||||
|
|
||||||
if(!event.getBlock().getDrops().contains(is))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if(is.getAmount() <= 0)
|
if(is.getAmount() <= 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if(event.getBlock().getState().getMetadata(mcMMO.doubleDropKey).size() > 0)
|
if(!Config.getInstance().getDoubleDropsEnabled(PrimarySkillType.MINING, is.getType())
|
||||||
{
|
&& !Config.getInstance().getDoubleDropsEnabled(PrimarySkillType.HERBALISM, is.getType())
|
||||||
//Extra Protection
|
&& !Config.getInstance().getDoubleDropsEnabled(PrimarySkillType.WOODCUTTING, is.getType()))
|
||||||
if(event.getBlock().getState() instanceof Container)
|
continue;
|
||||||
return;
|
|
||||||
|
|
||||||
event.getBlock().getState().removeMetadata(mcMMO.doubleDropKey, plugin);
|
if(event.getBlock().getState().getMetadata(mcMMO.doubleDrops).size() > 0)
|
||||||
|
{
|
||||||
|
event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is);
|
||||||
|
event.getBlock().getState().removeMetadata(mcMMO.doubleDrops, plugin);
|
||||||
|
}
|
||||||
|
else if(event.getBlock().getState().getMetadata(mcMMO.tripleDrops).size() > 0)
|
||||||
|
{
|
||||||
|
event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is);
|
||||||
|
event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is);
|
||||||
|
event.getBlock().getState().removeMetadata(mcMMO.tripleDrops, plugin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
|
public void onBlockDropItemEvent(BlockDropItemEvent event)
|
||||||
|
{
|
||||||
|
for(Item item : event.getItems())
|
||||||
|
{
|
||||||
|
ItemStack is = new ItemStack(item.getItemStack());
|
||||||
|
|
||||||
|
if(event.getBlock().getMetadata(mcMMO.doubleDrops).size() > 0)
|
||||||
|
{
|
||||||
|
List<MetadataValue> metadataValue = event.getBlock().getMetadata(mcMMO.doubleDrops);
|
||||||
|
|
||||||
|
BonusDrops bonusDrops = (BonusDrops) metadataValue.get(0);
|
||||||
|
Collection<ItemStack> potentialDrops = (Collection<ItemStack>) bonusDrops.value();
|
||||||
|
|
||||||
|
if(potentialDrops.contains(is))
|
||||||
|
{
|
||||||
event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is);
|
event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if(event.getBlock().getState().getMetadata(mcMMO.tripleDropKey).size() > 0)
|
event.getBlock().removeMetadata(mcMMO.doubleDrops, plugin);
|
||||||
{
|
} else {
|
||||||
//Extra Protection
|
if(event.getBlock().getMetadata(mcMMO.tripleDrops).size() > 0) {
|
||||||
if(event.getBlock().getState() instanceof Container)
|
List<MetadataValue> metadataValue = event.getBlock().getMetadata(mcMMO.tripleDrops);
|
||||||
return;
|
|
||||||
event.getBlock().getState().removeMetadata(mcMMO.tripleDropKey, plugin);
|
BonusDrops bonusDrops = (BonusDrops) metadataValue.get(0);
|
||||||
|
Collection<ItemStack> potentialDrops = (Collection<ItemStack>) bonusDrops.value();
|
||||||
|
|
||||||
|
if (potentialDrops.contains(is)) {
|
||||||
event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is);
|
event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is);
|
||||||
event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is);
|
event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
event.getBlock().removeMetadata(mcMMO.tripleDrops, plugin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Monitor BlockPistonExtend events.
|
* Monitor BlockPistonExtend events.
|
||||||
|
@ -25,8 +25,6 @@ import com.gmail.nossr50.util.player.UserManager;
|
|||||||
import com.gmail.nossr50.util.skills.CombatUtils;
|
import com.gmail.nossr50.util.skills.CombatUtils;
|
||||||
import com.gmail.nossr50.worldguard.WorldGuardManager;
|
import com.gmail.nossr50.worldguard.WorldGuardManager;
|
||||||
import com.gmail.nossr50.worldguard.WorldGuardUtils;
|
import com.gmail.nossr50.worldguard.WorldGuardUtils;
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
|
@ -110,12 +110,12 @@ public class mcMMO extends JavaPlugin {
|
|||||||
public final static String infiniteArrowKey = "mcMMO: Infinite Arrow";
|
public final static String infiniteArrowKey = "mcMMO: Infinite Arrow";
|
||||||
public final static String bowForceKey = "mcMMO: Bow Force";
|
public final static String bowForceKey = "mcMMO: Bow Force";
|
||||||
public final static String arrowDistanceKey = "mcMMO: Arrow Distance";
|
public final static String arrowDistanceKey = "mcMMO: Arrow Distance";
|
||||||
|
public final static String doubleDrops = "mcMMO: Double Drops";
|
||||||
|
public final static String tripleDrops = "mcMMO: Triple Drops";
|
||||||
//public final static String customDamageKey = "mcMMO: Custom Damage";
|
//public final static String customDamageKey = "mcMMO: Custom Damage";
|
||||||
public final static String disarmedItemKey = "mcMMO: Disarmed Item";
|
public final static String disarmedItemKey = "mcMMO: Disarmed Item";
|
||||||
public final static String playerDataKey = "mcMMO: Player Data";
|
public final static String playerDataKey = "mcMMO: Player Data";
|
||||||
public final static String greenThumbDataKey = "mcMMO: Green Thumb";
|
public final static String greenThumbDataKey = "mcMMO: Green Thumb";
|
||||||
public final static String doubleDropKey = "mcMMO: Double Drop";
|
|
||||||
public final static String tripleDropKey = "mcMMO: Triple Drop";
|
|
||||||
public final static String databaseCommandKey = "mcMMO: Processing Database Command";
|
public final static String databaseCommandKey = "mcMMO: Processing Database Command";
|
||||||
public final static String bredMetadataKey = "mcMMO: Bred Animal";
|
public final static String bredMetadataKey = "mcMMO: Bred Animal";
|
||||||
|
|
||||||
|
@ -9,8 +9,6 @@ import com.gmail.nossr50.util.skills.CombatUtils;
|
|||||||
import com.gmail.nossr50.util.skills.ParticleEffectUtils;
|
import com.gmail.nossr50.util.skills.ParticleEffectUtils;
|
||||||
import com.gmail.nossr50.util.sounds.SoundManager;
|
import com.gmail.nossr50.util.sounds.SoundManager;
|
||||||
import com.gmail.nossr50.util.sounds.SoundType;
|
import com.gmail.nossr50.util.sounds.SoundType;
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
@ -67,7 +67,7 @@ public class Herbalism {
|
|||||||
dropAmount++;
|
dropAmount++;
|
||||||
|
|
||||||
if(herbalismManager.checkDoubleDrop(target.getState()))
|
if(herbalismManager.checkDoubleDrop(target.getState()))
|
||||||
BlockUtils.markBlocksForBonusDrops(target.getState(), triple);
|
BlockUtils.markDropsAsBonus(target.getState(), triple);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (BlockFace blockFace : new BlockFace[] { BlockFace.UP, BlockFace.NORTH, BlockFace.SOUTH, BlockFace.EAST ,BlockFace.WEST})
|
for (BlockFace blockFace : new BlockFace[] { BlockFace.UP, BlockFace.NORTH, BlockFace.SOUTH, BlockFace.EAST ,BlockFace.WEST})
|
||||||
@ -110,7 +110,7 @@ public class Herbalism {
|
|||||||
dropAmount++;
|
dropAmount++;
|
||||||
|
|
||||||
if(herbalismManager.checkDoubleDrop(relativeBlock.getState()))
|
if(herbalismManager.checkDoubleDrop(relativeBlock.getState()))
|
||||||
BlockUtils.markBlocksForBonusDrops(relativeBlock.getState(), triple);
|
BlockUtils.markDropsAsBonus(relativeBlock.getState(), triple);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -142,7 +142,7 @@ public class Herbalism {
|
|||||||
amount += 1;
|
amount += 1;
|
||||||
|
|
||||||
if(herbalismManager.checkDoubleDrop(relativeUpBlock.getState()))
|
if(herbalismManager.checkDoubleDrop(relativeUpBlock.getState()))
|
||||||
BlockUtils.markBlocksForBonusDrops(relativeUpBlock.getState(), triple);
|
BlockUtils.markDropsAsBonus(relativeUpBlock.getState(), triple);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@ public class HerbalismManager extends SkillManager {
|
|||||||
|
|
||||||
if (Permissions.isSubSkillEnabled(player, SubSkillType.HERBALISM_DOUBLE_DROPS) && customBlock.isDoubleDropEnabled()) {
|
if (Permissions.isSubSkillEnabled(player, SubSkillType.HERBALISM_DOUBLE_DROPS) && customBlock.isDoubleDropEnabled()) {
|
||||||
if(checkDoubleDrop(blockState))
|
if(checkDoubleDrop(blockState))
|
||||||
BlockUtils.markBlocksForBonusDrops(blockState, greenTerra);
|
BlockUtils.markDropsAsBonus(blockState, greenTerra);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -165,7 +165,7 @@ public class HerbalismManager extends SkillManager {
|
|||||||
} else {
|
} else {
|
||||||
/* MARK SINGLE BLOCK CROP FOR DOUBLE DROP */
|
/* MARK SINGLE BLOCK CROP FOR DOUBLE DROP */
|
||||||
if(checkDoubleDrop(blockState))
|
if(checkDoubleDrop(blockState))
|
||||||
BlockUtils.markBlocksForBonusDrops(blockState, greenTerra);
|
BlockUtils.markDropsAsBonus(blockState, greenTerra);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Permissions.greenThumbPlant(player, material)) {
|
if (Permissions.greenThumbPlant(player, material)) {
|
||||||
|
@ -91,7 +91,7 @@ public class MiningManager extends SkillManager {
|
|||||||
|
|
||||||
//TODO: Make this readable
|
//TODO: Make this readable
|
||||||
if (RandomChanceUtil.checkRandomChanceExecutionSuccess(getPlayer(), SubSkillType.MINING_DOUBLE_DROPS, true)) {
|
if (RandomChanceUtil.checkRandomChanceExecutionSuccess(getPlayer(), SubSkillType.MINING_DOUBLE_DROPS, true)) {
|
||||||
BlockUtils.markBlocksForBonusDrops(blockState, mcMMOPlayer.getAbilityMode(skill.getAbility()));
|
BlockUtils.markDropsAsBonus(blockState, mcMMOPlayer.getAbilityMode(skill.getAbility()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,12 +26,12 @@ public final class BlockUtils {
|
|||||||
* @param blockState target blockstate
|
* @param blockState target blockstate
|
||||||
* @param triple marks the block to give triple drops
|
* @param triple marks the block to give triple drops
|
||||||
*/
|
*/
|
||||||
public static void markBlocksForBonusDrops(BlockState blockState, boolean triple)
|
public static void markDropsAsBonus(BlockState blockState, boolean triple)
|
||||||
{
|
{
|
||||||
if(triple)
|
if(triple)
|
||||||
blockState.setMetadata(mcMMO.tripleDropKey, mcMMO.metadataValue);
|
blockState.setMetadata(mcMMO.tripleDrops, mcMMO.metadataValue);
|
||||||
else
|
else
|
||||||
blockState.setMetadata(mcMMO.doubleDropKey, mcMMO.metadataValue);
|
blockState.setMetadata(mcMMO.doubleDrops, mcMMO.metadataValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -240,7 +240,37 @@ public final class CombatUtils {
|
|||||||
* @param event The event to run the combat checks on.
|
* @param event The event to run the combat checks on.
|
||||||
*/
|
*/
|
||||||
public static void processCombatAttack(EntityDamageByEntityEvent event, Entity attacker, LivingEntity target) {
|
public static void processCombatAttack(EntityDamageByEntityEvent event, Entity attacker, LivingEntity target) {
|
||||||
EntityType entityType = attacker.getType();
|
Entity damager = event.getDamager();
|
||||||
|
EntityType entityType = damager.getType();
|
||||||
|
|
||||||
|
if (target instanceof Player) {
|
||||||
|
if (Misc.isNPCEntity(target)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = (Player) target;
|
||||||
|
if (!UserManager.hasPlayerDataKey(player)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||||
|
AcrobaticsManager acrobaticsManager = mcMMOPlayer.getAcrobaticsManager();
|
||||||
|
|
||||||
|
if (acrobaticsManager.canDodge(target)) {
|
||||||
|
event.setDamage(acrobaticsManager.dodgeCheck(event.getDamage()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ItemUtils.isSword(player.getInventory().getItemInMainHand())) {
|
||||||
|
if (!PrimarySkillType.SWORDS.shouldProcess(target)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
SwordsManager swordsManager = mcMMOPlayer.getSwordsManager();
|
||||||
|
|
||||||
|
if (swordsManager.canUseCounterAttack(damager)) {
|
||||||
|
swordsManager.counterAttackChecks((LivingEntity) damager, event.getDamage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (attacker instanceof Player && entityType == EntityType.PLAYER) {
|
if (attacker instanceof Player && entityType == EntityType.PLAYER) {
|
||||||
Player player = (Player) attacker;
|
Player player = (Player) attacker;
|
||||||
@ -297,7 +327,7 @@ public final class CombatUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
else if (entityType == EntityType.WOLF) {
|
else if (entityType == EntityType.WOLF) {
|
||||||
Wolf wolf = (Wolf) attacker;
|
Wolf wolf = (Wolf) damager;
|
||||||
AnimalTamer tamer = wolf.getOwner();
|
AnimalTamer tamer = wolf.getOwner();
|
||||||
|
|
||||||
if (tamer != null && tamer instanceof Player && PrimarySkillType.TAMING.shouldProcess(target)) {
|
if (tamer != null && tamer instanceof Player && PrimarySkillType.TAMING.shouldProcess(target)) {
|
||||||
@ -309,7 +339,7 @@ public final class CombatUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (entityType == EntityType.ARROW) {
|
else if (entityType == EntityType.ARROW) {
|
||||||
Arrow arrow = (Arrow) attacker;
|
Arrow arrow = (Arrow) damager;
|
||||||
ProjectileSource projectileSource = arrow.getShooter();
|
ProjectileSource projectileSource = arrow.getShooter();
|
||||||
|
|
||||||
if (projectileSource != null && projectileSource instanceof Player && PrimarySkillType.ARCHERY.shouldProcess(target)) {
|
if (projectileSource != null && projectileSource instanceof Player && PrimarySkillType.ARCHERY.shouldProcess(target)) {
|
||||||
@ -326,35 +356,6 @@ public final class CombatUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (target instanceof Player) {
|
|
||||||
if (Misc.isNPCEntity(target)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player) target;
|
|
||||||
if (!UserManager.hasPlayerDataKey(player)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
|
||||||
AcrobaticsManager acrobaticsManager = mcMMOPlayer.getAcrobaticsManager();
|
|
||||||
|
|
||||||
if (acrobaticsManager.canDodge(target)) {
|
|
||||||
event.setDamage(acrobaticsManager.dodgeCheck(event.getDamage()));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ItemUtils.isSword(player.getInventory().getItemInMainHand())) {
|
|
||||||
if (!PrimarySkillType.SWORDS.shouldProcess(target)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
SwordsManager swordsManager = mcMMOPlayer.getSwordsManager();
|
|
||||||
|
|
||||||
if (swordsManager.canUseCounterAttack(attacker)) {
|
|
||||||
swordsManager.counterAttackChecks((LivingEntity) attacker, event.getDamage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getLimitBreakDamage(Player player, SubSkillType subSkillType) {
|
public static int getLimitBreakDamage(Player player, SubSkillType subSkillType) {
|
||||||
|
@ -426,17 +426,22 @@ Skills:
|
|||||||
#
|
#
|
||||||
# Settings for Double Drops
|
# Settings for Double Drops
|
||||||
###
|
###
|
||||||
Double_Drops:
|
Bonus_Drops:
|
||||||
Herbalism:
|
Herbalism:
|
||||||
Beetroots: true
|
Beetroots: true
|
||||||
|
Beetroot: true
|
||||||
Brown_Mushroom: true
|
Brown_Mushroom: true
|
||||||
Cactus: true
|
Cactus: true
|
||||||
Carrots: true
|
Carrots: true
|
||||||
|
Carrot: true
|
||||||
Cocoa: true
|
Cocoa: true
|
||||||
|
Cocoa_Beans: true
|
||||||
Wheat: true
|
Wheat: true
|
||||||
Melon: true
|
Melon: true
|
||||||
|
Melon_Slice: true
|
||||||
Nether_Wart: true
|
Nether_Wart: true
|
||||||
Potatoes: true
|
Potatoes: true
|
||||||
|
Potatoe: true
|
||||||
Pumpkin: true
|
Pumpkin: true
|
||||||
Red_Mushroom: true
|
Red_Mushroom: true
|
||||||
Sugar_Cane: true
|
Sugar_Cane: true
|
||||||
@ -461,26 +466,41 @@ Double_Drops:
|
|||||||
Diorite: true
|
Diorite: true
|
||||||
Granite: true
|
Granite: true
|
||||||
Coal_Ore: true
|
Coal_Ore: true
|
||||||
|
Coal: true
|
||||||
Diamond_Ore: true
|
Diamond_Ore: true
|
||||||
|
Diamond: true
|
||||||
Emerald_Ore: true
|
Emerald_Ore: true
|
||||||
|
Emerald: true
|
||||||
End_Stone: true
|
End_Stone: true
|
||||||
Glowstone: true
|
Glowstone: true
|
||||||
|
Glowstone_Dust: true
|
||||||
Gold_Ore: true
|
Gold_Ore: true
|
||||||
Iron_Ore: true
|
Iron_Ore: true
|
||||||
|
Iron_Ingot: true
|
||||||
Lapis_Ore: true
|
Lapis_Ore: true
|
||||||
|
Lapis_Lazuli: true
|
||||||
Mossy_Cobblestone: true
|
Mossy_Cobblestone: true
|
||||||
Netherrack: true
|
Netherrack: true
|
||||||
Obsidian: true
|
Obsidian: true
|
||||||
Nether_Quartz_Ore: true
|
Nether_Quartz_Ore: true
|
||||||
|
Nether_Quartz: true
|
||||||
Redstone_Ore: true
|
Redstone_Ore: true
|
||||||
|
Redstone: true
|
||||||
Sandstone: true
|
Sandstone: true
|
||||||
Stone: true
|
Stone: true
|
||||||
|
Cobblestone: true
|
||||||
Woodcutting:
|
Woodcutting:
|
||||||
|
Acacia_Wood: true
|
||||||
Acacia_Log: true
|
Acacia_Log: true
|
||||||
|
Birch_Wood: true
|
||||||
Birch_Log: true
|
Birch_Log: true
|
||||||
|
Dark_Oak_Wood: true
|
||||||
Dark_Oak_Log: true
|
Dark_Oak_Log: true
|
||||||
|
Oak_Wood: true
|
||||||
Oak_Log: true
|
Oak_Log: true
|
||||||
|
Jungle_Wood: true
|
||||||
Jungle_Log: true
|
Jungle_Log: true
|
||||||
|
Spruce_Wood: true
|
||||||
Spruce_Log: true
|
Spruce_Log: true
|
||||||
|
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user