From fa188d4d32539f3def4cad38df33c01b49da2f67 Mon Sep 17 00:00:00 2001 From: p1xEL_mc Date: Sun, 3 Aug 2025 01:34:24 +0800 Subject: [PATCH 1/2] add protection for nobuildplus --- dough-api/pom.xml | 8 +++ dough-protection/pom.xml | 14 +++++ .../dough/protection/ProtectionManager.java | 20 +------ .../modules/NoBuildPlusProtectionModule.java | 53 +++++++++++++++++++ 4 files changed, 77 insertions(+), 18 deletions(-) create mode 100644 dough-protection/src/main/java/io/github/bakedlibs/dough/protection/modules/NoBuildPlusProtectionModule.java diff --git a/dough-api/pom.xml b/dough-api/pom.xml index 4bb28d00..d637da39 100644 --- a/dough-api/pom.xml +++ b/dough-api/pom.xml @@ -427,6 +427,14 @@ 1.7 provided + + + + com.github.Ez4p1xEL + NoBuildPlus + 1.5.16 + provided + diff --git a/dough-protection/pom.xml b/dough-protection/pom.xml index d12c8315..fa25bc22 100644 --- a/dough-protection/pom.xml +++ b/dough-protection/pom.xml @@ -365,6 +365,20 @@ + + + com.github.Ez4p1xEL + NoBuildPlus + 1.5.16 + provided + + + bukkit + * + + + + net.dzikoysk.funnyguilds diff --git a/dough-protection/src/main/java/io/github/bakedlibs/dough/protection/ProtectionManager.java b/dough-protection/src/main/java/io/github/bakedlibs/dough/protection/ProtectionManager.java index bebd5b33..80dd96f2 100644 --- a/dough-protection/src/main/java/io/github/bakedlibs/dough/protection/ProtectionManager.java +++ b/dough-protection/src/main/java/io/github/bakedlibs/dough/protection/ProtectionManager.java @@ -9,6 +9,7 @@ import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; +import io.github.bakedlibs.dough.protection.modules.*; import org.bukkit.Location; import org.bukkit.OfflinePlayer; import org.bukkit.block.Block; @@ -18,24 +19,6 @@ import io.github.bakedlibs.dough.common.DoughLogger; import io.github.bakedlibs.dough.protection.loggers.CoreProtectLogger; import io.github.bakedlibs.dough.protection.loggers.LogBlockLogger; -import io.github.bakedlibs.dough.protection.modules.BentoBoxProtectionModule; -import io.github.bakedlibs.dough.protection.modules.BlockLockerProtectionModule; -import io.github.bakedlibs.dough.protection.modules.BoltProtectionModule; -import io.github.bakedlibs.dough.protection.modules.ChestProtectProtectionModule; -import io.github.bakedlibs.dough.protection.modules.FactionsUUIDProtectionModule; -import io.github.bakedlibs.dough.protection.modules.FunnyGuildsProtectionModule; -import io.github.bakedlibs.dough.protection.modules.GriefPreventionProtectionModule; -import io.github.bakedlibs.dough.protection.modules.HuskTownsProtectionModule; -import io.github.bakedlibs.dough.protection.modules.HuskClaimsProtectionModule; -import io.github.bakedlibs.dough.protection.modules.LWCProtectionModule; -import io.github.bakedlibs.dough.protection.modules.LandsProtectionModule; -import io.github.bakedlibs.dough.protection.modules.LocketteProtectionModule; -import io.github.bakedlibs.dough.protection.modules.PlotSquaredProtectionModule; -import io.github.bakedlibs.dough.protection.modules.PreciousStonesProtectionModule; -import io.github.bakedlibs.dough.protection.modules.RedProtectProtectionModule; -import io.github.bakedlibs.dough.protection.modules.ShopChestProtectionModule; -import io.github.bakedlibs.dough.protection.modules.TownyProtectionModule; -import io.github.bakedlibs.dough.protection.modules.WorldGuardProtectionModule; /** * This Class provides a nifty API for plugins to query popular protection plugins. @@ -97,6 +80,7 @@ private void loadModuleImplementations(Plugin plugin) { registerModule(pm, "ShopChest", shopChest -> new ShopChestProtectionModule(shopChest)); registerModule(pm, "HuskClaims", huskClaims -> new HuskClaimsProtectionModule(huskClaims)); registerModule(pm, "Bolt", bolt -> new BoltProtectionModule(bolt)); + registerModule(pm, "NoBuildPlus", noBuildPlus -> new NoBuildPlusProtectionModule()); /* * The following Plugins work by utilising one of the above listed diff --git a/dough-protection/src/main/java/io/github/bakedlibs/dough/protection/modules/NoBuildPlusProtectionModule.java b/dough-protection/src/main/java/io/github/bakedlibs/dough/protection/modules/NoBuildPlusProtectionModule.java new file mode 100644 index 00000000..1985a01d --- /dev/null +++ b/dough-protection/src/main/java/io/github/bakedlibs/dough/protection/modules/NoBuildPlusProtectionModule.java @@ -0,0 +1,53 @@ +package io.github.bakedlibs.dough.protection.modules; + +import io.github.bakedlibs.dough.protection.Interaction; +import io.github.bakedlibs.dough.protection.ProtectionModule; +import org.bukkit.Location; +import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; +import p1xel.nobuildplus.Flags; +import p1xel.nobuildplus.NoBuildPlus; +import p1xel.nobuildplus.Storage.Worlds; + +public class NoBuildPlusProtectionModule implements ProtectionModule { + + private NoBuildPlus plugin; + @Override + public void load() { + plugin = NoBuildPlus.getInstance(); + } + + @Override + public NoBuildPlus getPlugin() { + return plugin; + } + + @Override + public boolean hasPermission(OfflinePlayer p, Location l, Interaction action) { + if (!p.isOnline()) { + return false; + } + + Player player = (Player) p; + String world = l.getWorld().getName(); + if (player.hasPermission(Worlds.getPermission(world))) { + return true; + } + + switch (action) { + case BREAK_BLOCK: + return !plugin.getAPI().canExecute(world, Flags.destroy); + case PLACE_BLOCK: + return !plugin.getAPI().canExecute(world, Flags.build); + case ATTACK_PLAYER: + return !plugin.getAPI().canExecute(world, Flags.pvp); + case ATTACK_ENTITY: + return !plugin.getAPI().canExecute(world, Flags.mob_damage); + case INTERACT_ENTITY: + case INTERACT_BLOCK: + return !plugin.getAPI().canExecute(world, Flags.use); + } + + return true; + } +} From 5d469369adb6a9cf58a7296973210fbd25d7ed76 Mon Sep 17 00:00:00 2001 From: p1xEL_mc Date: Thu, 15 Jan 2026 17:38:48 +0800 Subject: [PATCH 2/2] update nobuildplus api --- dough-api/pom.xml | 2 +- dough-protection/pom.xml | 2 +- .../modules/NoBuildPlusProtectionModule.java | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dough-api/pom.xml b/dough-api/pom.xml index d637da39..5bdd1246 100644 --- a/dough-api/pom.xml +++ b/dough-api/pom.xml @@ -432,7 +432,7 @@ com.github.Ez4p1xEL NoBuildPlus - 1.5.16 + 1.5.54 provided diff --git a/dough-protection/pom.xml b/dough-protection/pom.xml index fa25bc22..03303e31 100644 --- a/dough-protection/pom.xml +++ b/dough-protection/pom.xml @@ -369,7 +369,7 @@ com.github.Ez4p1xEL NoBuildPlus - 1.5.16 + 1.5.54 provided diff --git a/dough-protection/src/main/java/io/github/bakedlibs/dough/protection/modules/NoBuildPlusProtectionModule.java b/dough-protection/src/main/java/io/github/bakedlibs/dough/protection/modules/NoBuildPlusProtectionModule.java index 1985a01d..3f09eab4 100644 --- a/dough-protection/src/main/java/io/github/bakedlibs/dough/protection/modules/NoBuildPlusProtectionModule.java +++ b/dough-protection/src/main/java/io/github/bakedlibs/dough/protection/modules/NoBuildPlusProtectionModule.java @@ -7,7 +7,7 @@ import org.bukkit.entity.Player; import p1xel.nobuildplus.Flags; import p1xel.nobuildplus.NoBuildPlus; -import p1xel.nobuildplus.Storage.Worlds; +import p1xel.nobuildplus.storage.Worlds; public class NoBuildPlusProtectionModule implements ProtectionModule { @@ -36,16 +36,16 @@ public boolean hasPermission(OfflinePlayer p, Location l, Interaction action) { switch (action) { case BREAK_BLOCK: - return !plugin.getAPI().canExecute(world, Flags.destroy); + return !plugin.getAPI().canExecute(world, Flags.destroy, l); case PLACE_BLOCK: - return !plugin.getAPI().canExecute(world, Flags.build); + return !plugin.getAPI().canExecute(world, Flags.build, l); case ATTACK_PLAYER: - return !plugin.getAPI().canExecute(world, Flags.pvp); + return !plugin.getAPI().canExecute(world, Flags.pvp, l); case ATTACK_ENTITY: - return !plugin.getAPI().canExecute(world, Flags.mob_damage); + return !plugin.getAPI().canExecute(world, Flags.mob_damage, l); case INTERACT_ENTITY: case INTERACT_BLOCK: - return !plugin.getAPI().canExecute(world, Flags.use); + return !plugin.getAPI().canExecute(world, Flags.use, l); } return true;