From 444e1532f2f43d103d0bfde2dd41cf6433ffca57 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Thu, 9 Jun 2022 22:39:11 -0700 Subject: [PATCH] 2.1.214 --- Changelog.txt | 10 +++++++ pom.xml | 2 +- .../events/fake/FakePlayerAnimationEvent.java | 28 +++++++++---------- .../nossr50/listeners/PlayerListener.java | 7 ++--- .../com/gmail/nossr50/util/EventUtils.java | 19 +++++++------ .../util/scoreboards/ScoreboardWrapper.java | 2 +- .../nossr50/util/skills/CombatUtils.java | 2 +- 7 files changed, 40 insertions(+), 30 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index eb6674753..1227eb850 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,13 @@ +Version 2.1.214 + Temporarily removed FakePlayerAnimationEvent (see notes) + + NOTES: + Spigot updated PlayerAnimationEvent with an API break between versions 1.18 and 1.19, as a temporary fix for mcMMO to be able to support both of these + Minecraft versions I have temporarily removed FakePlayerAnimationEvent. I am working on a fix to dynamically use the correct API depending on the version of MC + as many people will likely be stuck on 1.18 for a while. + FakePlayerAnimationEvent existed to circumvent false positives on anti-cheat plugins such as NoCheat, however + I am unsure if it is still needed and removing it may have no ill effects.. however I cannot be certain. + Anti-cheat plugin authors should be informed to update if you run into false positives with mcMMO after this update so they can make the appropriate changes. Version 2.1.213 Updated various mechanics to recognize and understand the new blocks Added 'Packed_Mud' to mining xp diff --git a/pom.xml b/pom.xml index e2ecfc1cf..bdbb9333c 100755 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.1.213 + 2.1.214 mcMMO https://github.com/mcMMO-Dev/mcMMO diff --git a/src/main/java/com/gmail/nossr50/events/fake/FakePlayerAnimationEvent.java b/src/main/java/com/gmail/nossr50/events/fake/FakePlayerAnimationEvent.java index 3f7a8cfec..e4eb1ec88 100644 --- a/src/main/java/com/gmail/nossr50/events/fake/FakePlayerAnimationEvent.java +++ b/src/main/java/com/gmail/nossr50/events/fake/FakePlayerAnimationEvent.java @@ -1,14 +1,14 @@ -package com.gmail.nossr50.events.fake; - -import org.bukkit.entity.Player; -import org.bukkit.event.player.PlayerAnimationEvent; -import org.bukkit.event.player.PlayerAnimationType; - -/** - * Called when handling extra drops to avoid issues with NoCheat. - */ -public class FakePlayerAnimationEvent extends PlayerAnimationEvent implements FakeEvent { - public FakePlayerAnimationEvent(Player player, PlayerAnimationType playerAnimationType) { - super(player, playerAnimationType); - } -} +//package com.gmail.nossr50.events.fake; +// +//import org.bukkit.entity.Player; +//import org.bukkit.event.player.PlayerAnimationEvent; +//import org.bukkit.event.player.PlayerAnimationType; +// +///** +// * Called when handling extra drops to avoid issues with NoCheat. +// */ +//public class FakePlayerAnimationEvent extends PlayerAnimationEvent implements FakeEvent { +// public FakePlayerAnimationEvent(Player player, PlayerAnimationType playerAnimationType) { +// super(player, playerAnimationType); +// } +//} diff --git a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java index c28a91ef5..9ebc19ad4 100644 --- a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java @@ -8,7 +8,6 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.subskills.taming.CallOfTheWildType; import com.gmail.nossr50.events.McMMOReplaceVanillaTreasureEvent; -import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.party.ShareHandler; @@ -841,7 +840,7 @@ public class PlayerListener implements Listener { HerbalismManager herbalismManager = mcMMOPlayer.getHerbalismManager(); - FakePlayerAnimationEvent fakeSwing = new FakePlayerAnimationEvent(event.getPlayer(), PlayerAnimationType.ARM_SWING); //PlayerAnimationEvent compat + // FakePlayerAnimationEvent fakeSwing = new FakePlayerAnimationEvent(event.getPlayer(), PlayerAnimationType.ARM_SWING); //PlayerAnimationEvent compat if(!event.isCancelled() || event.useInteractedBlock() != Event.Result.DENY) { //TODO: Is this code to set false from bone meal even needed? I'll have to double check later. if (heldItem.getType() == Material.BONE_MEAL) { @@ -860,7 +859,7 @@ public class PlayerListener implements Listener { if (herbalismManager.canGreenThumbBlock(blockState)) { //call event for Green Thumb Block if(!EventUtils.callSubSkillBlockEvent(player, SubSkillType.HERBALISM_GREEN_THUMB, block).isCancelled()) { - Bukkit.getPluginManager().callEvent(fakeSwing); + // Bukkit.getPluginManager().callEvent(fakeSwing); player.getInventory().getItemInMainHand().setAmount(heldItem.getAmount() - 1); player.updateInventory(); if (herbalismManager.processGreenThumbBlocks(blockState) && EventUtils.simulateBlockBreak(block, player, false)) { @@ -871,7 +870,7 @@ public class PlayerListener implements Listener { /* SHROOM THUMB CHECK */ else if (herbalismManager.canUseShroomThumb(blockState)) { if(!EventUtils.callSubSkillBlockEvent(player, SubSkillType.HERBALISM_SHROOM_THUMB, block).isCancelled()) { - Bukkit.getPluginManager().callEvent(fakeSwing); + // Bukkit.getPluginManager().callEvent(fakeSwing); event.setCancelled(true); if (herbalismManager.processShroomThumb(blockState) && EventUtils.simulateBlockBreak(block, player, false)) { diff --git a/src/main/java/com/gmail/nossr50/util/EventUtils.java b/src/main/java/com/gmail/nossr50/util/EventUtils.java index 7ccfa1856..c92b1f10d 100644 --- a/src/main/java/com/gmail/nossr50/util/EventUtils.java +++ b/src/main/java/com/gmail/nossr50/util/EventUtils.java @@ -44,6 +44,7 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.player.PlayerAnimationEvent; import org.bukkit.event.player.PlayerAnimationType; import org.bukkit.event.player.PlayerFishEvent; import org.bukkit.inventory.ItemStack; @@ -225,12 +226,12 @@ public final class EventUtils { return event; } - public static FakePlayerAnimationEvent callFakeArmSwingEvent(Player player) { - FakePlayerAnimationEvent event = new FakePlayerAnimationEvent(player, PlayerAnimationType.ARM_SWING); - mcMMO.p.getServer().getPluginManager().callEvent(event); - - return event; - } +// public static Event callFakeArmSwingEvent(@NotNull Player player) { +// PlayerAnimationEvent event = new FakePlayerAnimationEvent(player, PlayerAnimationType.ARM_SWING); +// mcMMO.p.getServer().getPluginManager().callEvent(event); +// +// return event; +// } public static boolean tryLevelChangeEvent(Player player, PrimarySkillType skill, int levelsChanged, float xpRemoved, boolean isLevelUp, XPGainReason xpGainReason) { McMMOPlayerLevelChangeEvent event = isLevelUp ? new McMMOPlayerLevelUpEvent(player, skill, levelsChanged, xpGainReason) : new McMMOPlayerLevelDownEvent(player, skill, levelsChanged, xpGainReason); @@ -315,9 +316,9 @@ public final class EventUtils { PluginManager pluginManager = mcMMO.p.getServer().getPluginManager(); // Support for NoCheat - if (shouldArmSwing) { - callFakeArmSwingEvent(player); - } + //if (shouldArmSwing) { + // callFakeArmSwingEvent(player); + //} FakeBlockDamageEvent damageEvent = new FakeBlockDamageEvent(player, block, player.getInventory().getItemInMainHand(), true); pluginManager.callEvent(damageEvent); diff --git a/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardWrapper.java b/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardWrapper.java index be3e97cb4..24634bad2 100644 --- a/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardWrapper.java +++ b/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardWrapper.java @@ -626,7 +626,7 @@ public class ScoreboardWrapper { } } - public void acceptLeaderboardData(List leaderboardData) { + public void acceptLeaderboardData(@NotNull List leaderboardData) { for (PlayerStat stat : leaderboardData) { String name = stat.name; diff --git a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java index 85c1e09b2..bf4a3a4ee 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java +++ b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java @@ -681,7 +681,7 @@ public final class CombatUtils { continue; } - EventUtils.callFakeArmSwingEvent(attacker); + //EventUtils.callFakeArmSwingEvent(attacker); switch (type) { case SWORDS: