9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2026-01-04 15:41:38 +00:00

Merge branch 'Xiao-MoMi:dev' into dev

This commit is contained in:
jhqwqmc
2025-12-27 06:35:14 +08:00
committed by GitHub
123 changed files with 551 additions and 958 deletions

View File

@@ -33,7 +33,6 @@ import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine;
import net.momirealms.craftengine.core.block.BlockManager;
import net.momirealms.craftengine.core.entity.furniture.ExternalModel;
import net.momirealms.craftengine.core.entity.player.Player;
import net.momirealms.craftengine.core.loot.LootConditions;
import net.momirealms.craftengine.core.plugin.compatibility.*;
import net.momirealms.craftengine.core.plugin.config.Config;
import net.momirealms.craftengine.core.plugin.context.CommonConditions;
@@ -125,12 +124,10 @@ public class BukkitCompatibilityManager implements CompatibilityManager {
Key worldGuardRegion = Key.of("worldguard:region");
if (this.hasPlugin("WorldGuard")) {
runCatchingHook(() -> {
CommonConditions.register(worldGuardRegion, new WorldGuardRegionCondition.FactoryImpl<>());
LootConditions.register(worldGuardRegion, new WorldGuardRegionCondition.FactoryImpl<>());
CommonConditions.register(worldGuardRegion, WorldGuardRegionCondition.factory());
}, "WorldGuard");
} else {
CommonConditions.register(worldGuardRegion, new AlwaysFalseCondition.FactoryImpl<>());
LootConditions.register(worldGuardRegion, new AlwaysFalseCondition.FactoryImpl<>());
CommonConditions.register(worldGuardRegion, AlwaysFalseCondition.factory());
}
if (this.hasPlugin("Geyser-Spigot")) {
this.hasGeyser = true;

View File

@@ -8,6 +8,7 @@ import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import net.momirealms.craftengine.core.plugin.context.Condition;
import net.momirealms.craftengine.core.plugin.context.Context;
import net.momirealms.craftengine.core.plugin.context.condition.AlwaysTrueCondition;
import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory;
import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters;
import net.momirealms.craftengine.core.util.Key;
@@ -33,6 +34,10 @@ public class WorldGuardRegionCondition<CTX extends Context> implements Condition
this.regions = regions;
}
public static <CTX extends Context> ConditionFactory<CTX> factory() {
return new Factory<>();
}
@Override
public boolean test(CTX ctx) {
if (this.regions.isEmpty()) return false;
@@ -55,11 +60,6 @@ public class WorldGuardRegionCondition<CTX extends Context> implements Condition
return false;
}
@Override
public Key type() {
return TYPE;
}
public enum MatchMode {
ANY((p, regions) -> {
for (String region : regions) {
@@ -85,7 +85,7 @@ public class WorldGuardRegionCondition<CTX extends Context> implements Condition
}
}
public static class FactoryImpl<CTX extends Context> implements ConditionFactory<CTX> {
private static class Factory<CTX extends Context> implements ConditionFactory<CTX> {
@Override
public Condition<CTX> create(Map<String, Object> arguments) {