mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-10-14 01:58:20 +02:00
1.21.9 support for treasures.yml, experience.yml, fishing_treasures.yml, and settings for mannequins and a fix for armor stands
This commit is contained in:
@@ -201,6 +201,10 @@ public class ExperienceConfig extends BukkitConfig {
|
||||
return config.getBoolean("ExploitFix.PreventArmorStandInteraction", true);
|
||||
}
|
||||
|
||||
public boolean isMannequinInteractionPrevented() {
|
||||
return config.getBoolean("ExploitFix.PreventMannequinInteraction", true);
|
||||
}
|
||||
|
||||
public boolean isFishingExploitingPrevented() {
|
||||
return config.getBoolean("ExploitFix.Fishing", true);
|
||||
}
|
||||
|
@@ -34,6 +34,7 @@ import com.gmail.nossr50.util.skills.CombatUtils;
|
||||
import com.gmail.nossr50.util.skills.ProjectileUtils;
|
||||
import com.gmail.nossr50.worldguard.WorldGuardManager;
|
||||
import com.gmail.nossr50.worldguard.WorldGuardUtils;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
@@ -352,11 +353,13 @@ public class EntityListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
// Don't process this event for marked entities, for players this is handled above,
|
||||
// However, for entities, we do not wanna cancel this event to allow plugins to observe changes
|
||||
// properly
|
||||
if (ExperienceConfig.getInstance().isArmorStandInteractionPrevented()
|
||||
&& attacker.getType().toString().toLowerCase(Locale.ENGLISH).equals("armor_stand")) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getEntity() instanceof ArmorStand) {
|
||||
if (ExperienceConfig.getInstance().isMannequinInteractionPrevented()
|
||||
&& attacker.getType().toString().toLowerCase(Locale.ENGLISH).equals("mannequin")) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@@ -1408,6 +1408,7 @@ public class MaterialMapStore {
|
||||
blackList.add("dropper");
|
||||
blackList.add("hopper");
|
||||
blackList.add("armor_stand");
|
||||
blackList.add("mannequin");
|
||||
}
|
||||
|
||||
private void fillAbilityBlackList() {
|
||||
|
@@ -58,7 +58,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public final class CombatUtils {
|
||||
|
||||
private static final ThreadLocal<Boolean> IN_MCMO_DAMAGE
|
||||
private static final ThreadLocal<Boolean> IN_MCMMO_DAMAGE
|
||||
= ThreadLocal.withInitial(() -> false);
|
||||
|
||||
|
||||
@@ -75,14 +75,14 @@ public final class CombatUtils {
|
||||
*/
|
||||
public static void safeDealDamage(@NotNull LivingEntity target, double amount,
|
||||
@Nullable Entity attacker) {
|
||||
boolean prev = IN_MCMO_DAMAGE.get();
|
||||
boolean prev = IN_MCMMO_DAMAGE.get();
|
||||
|
||||
if (prev || target.isDead()) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
IN_MCMO_DAMAGE.set(true);
|
||||
IN_MCMMO_DAMAGE.set(true);
|
||||
if (!hasIgnoreDamageMetadata(target)) {
|
||||
applyIgnoreDamageMetadata(target);
|
||||
}
|
||||
@@ -93,7 +93,7 @@ public final class CombatUtils {
|
||||
target.damage(amount);
|
||||
}
|
||||
} finally {
|
||||
IN_MCMO_DAMAGE.set(false);
|
||||
IN_MCMMO_DAMAGE.set(false);
|
||||
if (hasIgnoreDamageMetadata(target)) {
|
||||
removeIgnoreDamageMetadata(target);
|
||||
}
|
||||
|
@@ -30,6 +30,7 @@ ExploitFix:
|
||||
PistonCheating: true
|
||||
SnowGolemExcavation: true
|
||||
PreventArmorStandInteraction: true
|
||||
PreventMannequinInteraction: true
|
||||
# This include NPCs from stuff like Citizens, this is not a setting for Vanilla Minecraft Villagers (Which can be considered NPCs)
|
||||
# mcMMO normally doesn't process attacks against an Entity if it is an NPC from another plugin
|
||||
# Of course, mcMMO doesn't know for sure whether something is an NPC, it checks a few known things, see our source code to see how
|
||||
@@ -553,6 +554,7 @@ Experience_Values:
|
||||
String: 1.8
|
||||
Other: 1.5
|
||||
Smelting:
|
||||
Copper_Nugget: 85
|
||||
Raw_Copper: 75
|
||||
Deepslate_Redstone_Ore: 30
|
||||
Deepslate_Copper_Ore: 100
|
||||
@@ -683,3 +685,5 @@ Experience_Values:
|
||||
Camel: 1.2
|
||||
Bogged: 2.0
|
||||
Breeze: 4.0
|
||||
Armor_Stand: 0.0
|
||||
Mannequin: 0.0
|
||||
|
@@ -63,6 +63,26 @@ Fishing:
|
||||
Amount: 1
|
||||
XP: 200
|
||||
Rarity: UNCOMMON
|
||||
COPPER_SWORD:
|
||||
Amount: 1
|
||||
XP: 200
|
||||
Rarity: UNCOMMON
|
||||
COPPER_SHOVEL:
|
||||
Amount: 1
|
||||
XP: 200
|
||||
Rarity: UNCOMMON
|
||||
COPPER_PICKAXE:
|
||||
Amount: 1
|
||||
XP: 200
|
||||
Rarity: UNCOMMON
|
||||
COPPER_AXE:
|
||||
Amount: 1
|
||||
XP: 200
|
||||
Rarity: UNCOMMON
|
||||
COPPER_HOE:
|
||||
Amount: 1
|
||||
XP: 200
|
||||
Rarity: UNCOMMON
|
||||
GOLDEN_SWORD:
|
||||
Amount: 1
|
||||
XP: 200
|
||||
@@ -143,6 +163,22 @@ Fishing:
|
||||
Amount: 1
|
||||
XP: 200
|
||||
Rarity: RARE
|
||||
COPPER_BOOTS:
|
||||
Amount: 1
|
||||
XP: 200
|
||||
Rarity: COMMON
|
||||
COPPER_HELMET:
|
||||
Amount: 1
|
||||
XP: 200
|
||||
Rarity: COMMON
|
||||
COPPER_LEGGINGS:
|
||||
Amount: 1
|
||||
XP: 200
|
||||
Rarity: COMMON
|
||||
COPPER_CHESTPLATE:
|
||||
Amount: 1
|
||||
XP: 200
|
||||
Rarity: COMMON
|
||||
IRON_BOOTS:
|
||||
Amount: 1
|
||||
XP: 200
|
||||
|
@@ -296,3 +296,11 @@ Hylian_Luck:
|
||||
Standard_Mode: 0
|
||||
Retro_Mode: 0
|
||||
Drops_From: [Pots]
|
||||
COPPER_NUGGET:
|
||||
Amount: 1
|
||||
XP: 5
|
||||
Drop_Chance: 100.0
|
||||
Level_Requirement:
|
||||
Standard_Mode: 0
|
||||
Retro_Mode: 0
|
||||
Drops_From: [Pots]
|
||||
|
Reference in New Issue
Block a user