Skip to content

Commit

Permalink
Only ignore 0 dmg if specific plugins are detected
Browse files Browse the repository at this point in the history
  • Loading branch information
nossr50 committed Oct 5, 2020
1 parent a6586e0 commit 0767e62
Show file tree
Hide file tree
Showing 10 changed files with 26 additions and 19 deletions.
Expand Up @@ -21,7 +21,6 @@
import com.google.common.collect.ImmutableList;
import net.kyori.adventure.text.Component;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
Expand Down
Expand Up @@ -23,7 +23,6 @@
import com.gmail.nossr50.util.sounds.SoundManager;
import com.gmail.nossr50.util.sounds.SoundType;
import net.kyori.adventure.text.TextComponent;
import net.md_5.bungee.api.chat.ComponentBuilder;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.SoundCategory;
Expand Down
Expand Up @@ -2,7 +2,6 @@

import com.gmail.nossr50.datatypes.skills.interfaces.Skill;
import net.kyori.adventure.text.TextComponent;
import net.md_5.bungee.api.chat.ComponentBuilder;
import org.bukkit.entity.Player;

public interface SubSkill extends Skill {
Expand Down
13 changes: 5 additions & 8 deletions src/main/java/com/gmail/nossr50/listeners/EntityListener.java
Expand Up @@ -5,6 +5,7 @@
import com.gmail.nossr50.config.WorldBlacklist;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.datatypes.skills.subskills.interfaces.InteractType;
import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
Expand Down Expand Up @@ -328,12 +329,6 @@ public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
if (event.getEntity() instanceof ArmorStand) {
return;
}

if (event.getDamager().hasMetadata(mcMMO.funfettiMetadataKey))
{
event.setCancelled(true);
return;
}

if (Misc.isNPCEntityExcludingVillagers(defender) || !defender.isValid() || !(defender instanceof LivingEntity)) {
return;
Expand Down Expand Up @@ -420,8 +415,10 @@ else if (attacker instanceof TNTPrimed && defender instanceof Player) {
* Surprising this kind of thing
*
*/
if(event.getDamage() <= 0 && !CombatUtils.isDamageLikelyFromNormalCombat(event.getCause())) {
return;
if(mcMMO.isProjectKorraEnabled()) {
if(event.getFinalDamage() == 0) {
return;
}
}

CombatUtils.processCombatAttack(event, attacker, target);
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/com/gmail/nossr50/mcMMO.java
Expand Up @@ -102,6 +102,7 @@ public class mcMMO extends JavaPlugin {

/* Plugin Checks */
private static boolean healthBarPluginEnabled;
private static boolean projectKorraEnabled;

// API checks
private static boolean serverAPIOutdated = false;
Expand Down Expand Up @@ -159,6 +160,7 @@ public void onEnable() {

PluginManager pluginManager = getServer().getPluginManager();
healthBarPluginEnabled = pluginManager.getPlugin("HealthBar") != null;
projectKorraEnabled = pluginManager.getPlugin("ProjectKorra") != null;

upgradeManager = new UpgradeManager();

Expand All @@ -182,6 +184,10 @@ public void onEnable() {
checkModConfigs();
}

if(projectKorraEnabled) {
getLogger().info("ProjectKorra was detected, this can cause some issues with weakness potions and combat skills for mcMMO");
}

if (healthBarPluginEnabled) {
getLogger().info("HealthBar plugin found, mcMMO's healthbars are automatically disabled.");
}
Expand Down Expand Up @@ -689,4 +695,8 @@ public static SmeltingTracker getSmeltingTracker() {
public static BukkitAudiences getAudiences() {
return audiences;
}

public static boolean isProjectKorraEnabled() {
return projectKorraEnabled;
}
}
Expand Up @@ -35,7 +35,7 @@ public boolean canActivateAbility() {
return mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && Permissions.berserk(getPlayer());
}

public boolean canUseIronArm() {
public boolean canUseSteelArm() {
if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.UNARMED_STEEL_ARM_STYLE))
return false;

Expand Down
1 change: 0 additions & 1 deletion src/main/java/com/gmail/nossr50/util/EventUtils.java
@@ -1,6 +1,5 @@
package com.gmail.nossr50.util;

import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.experience.XPGainSource;
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/com/gmail/nossr50/util/McMMOMessageType.java
@@ -1,10 +1,11 @@
package com.gmail.nossr50.util;

import java.util.function.BiConsumer;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.audience.MessageType;
import net.kyori.adventure.text.Component;

import java.util.function.BiConsumer;

public enum McMMOMessageType {
ACTION_BAR(Audience::sendActionBar),
SYSTEM((audience, message) -> audience.sendMessage(message, MessageType.SYSTEM));
Expand Down
Expand Up @@ -11,7 +11,6 @@
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.skills.RankUtils;
import java.util.concurrent.atomic.AtomicReference;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.audience.MessageType;
import net.kyori.adventure.text.Component;
Expand All @@ -22,12 +21,11 @@
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextColor;
import net.kyori.adventure.text.format.TextDecoration;
import net.md_5.bungee.api.ChatMessageType;
import org.bukkit.entity.Player;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.atomic.AtomicReference;

/**
* This class handles many of the JSON components that mcMMO makes and uses
Expand Down
9 changes: 7 additions & 2 deletions src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java
Expand Up @@ -32,6 +32,7 @@
import org.bukkit.event.entity.EntityDamageEvent.DamageModifier;
import org.bukkit.inventory.ItemStack;
import org.bukkit.metadata.MetadataValue;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.projectiles.ProjectileSource;

import java.util.EnumMap;
Expand All @@ -54,6 +55,11 @@ public static boolean isDamageLikelyFromNormalCombat(DamageCause damageCause) {
}
}

public static boolean hasWeakenedDamage(LivingEntity livingEntity) {
return livingEntity.hasPotionEffect(PotionEffectType.WEAKNESS);
}


private static void processSwordCombat(LivingEntity target, Player player, EntityDamageByEntityEvent event) {
if (event.getCause() == DamageCause.THORNS) {
return;
Expand Down Expand Up @@ -198,8 +204,7 @@ private static void processUnarmedCombat(LivingEntity target, Player player, Ent
mcMMOPlayer.checkAbilityActivation(PrimarySkillType.UNARMED);
}

//Only execute bonuses if the player is not spamming
if (unarmedManager.canUseIronArm()) {
if (unarmedManager.canUseSteelArm()) {
finalDamage+=(unarmedManager.calculateSteelArmStyleDamage() * mcMMOPlayer.getAttackStrength());
}

Expand Down

0 comments on commit 0767e62

Please sign in to comment.