Added Barrel Check for GamemodeInventories

This commit is contained in:
Sn0wStorm 2019-11-27 13:52:19 +01:00
parent 40da30bf8e
commit 6577cbf628
5 changed files with 37 additions and 3 deletions

View File

@ -409,6 +409,7 @@ recipes:
useWorldGuard: true
useLWC: true
useGriefPrevention: true
useGMInventories: true
# Änderungen an Fassinventaren mit LogBlock aufzeichen [true]
useLogBlock: true

View File

@ -411,6 +411,7 @@ recipes:
useWorldGuard: true
useLWC: true
useGriefPrevention: true
useGMInventories: true
# Enable the Logging of Barrel Inventories to LogBlock [true]
useLogBlock: true

View File

@ -119,7 +119,6 @@ public class Barrel implements InventoryHolder {
// Listened to by WGBarrel7, WGBarrelNew, WGBarrelOld, GriefPreventionBarrel (IntegrationListener)
P.p.getServer().getPluginManager().callEvent(accessEvent);
if (accessEvent.isCancelled()) {
P.p.msg(player, P.p.languageReader.get("Error_NoBarrelAccess"));
return false;
}

View File

@ -48,6 +48,7 @@ public class BConfig {
public static boolean useGP; //GriefPrevention
public static boolean hasVault; // Vault
public static boolean useCitadel; // CivCraft/DevotedMC Citadel
public static boolean useGMInventories; // GamemodeInventories
public static Boolean hasSlimefun = null; // Slimefun ; Null if not checked
public static Boolean hasMMOItems = null; // MMOItems ; Null if not checked
@ -194,6 +195,7 @@ public class BConfig {
useLWC = config.getBoolean("useLWC", true) && plMan.isPluginEnabled("LWC");
useGP = config.getBoolean("useGriefPrevention", true) && plMan.isPluginEnabled("GriefPrevention");
useLB = config.getBoolean("useLogBlock", false) && plMan.isPluginEnabled("LogBlock");
useGMInventories = config.getBoolean("useGMInventories", false);
useCitadel = config.getBoolean("useCitadel", false) && plMan.isPluginEnabled("Citadel");
// The item util has been removed in Vault 1.7+
hasVault = plMan.isPluginEnabled("Vault")

View File

@ -15,6 +15,7 @@ import com.dre.brewery.recipe.RecipeItem;
import com.dre.brewery.utility.LegacyUtil;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.item.NBTItem;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
@ -37,6 +38,7 @@ public class IntegrationListener implements Listener {
try {
if (!BConfig.wg.checkAccess(event.getPlayer(), event.getSpigot(), plugin)) {
event.setCancelled(true);
P.p.msg(event.getPlayer(), P.p.languageReader.get("Error_NoBarrelAccess"));
}
} catch (Throwable e) {
event.setCancelled(true);
@ -58,10 +60,37 @@ public class IntegrationListener implements Listener {
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onBarrelAccess(BarrelAccessEvent event) {
if (BConfig.useGMInventories) {
Plugin pl = P.p.getServer().getPluginManager().getPlugin("GameModeInventories");
if (pl != null && pl.isEnabled()) {
try {
if (pl.getConfig().getBoolean("restrict_creative")) {
Player player = event.getPlayer();
if (player.getGameMode() == GameMode.CREATIVE) {
if (!pl.getConfig().getBoolean("bypass.inventories") || (!player.hasPermission("gamemodeinventories.bypass") && !player.isOp())) {
event.setCancelled(true);
if (!pl.getConfig().getBoolean("dont_spam_chat")) {
P.p.msg(event.getPlayer(), P.p.languageReader.get("Error_NoBarrelAccess"));
}
return;
}
}
}
} catch (Throwable e) {
P.p.errorLog("Failed to Check GameModeInventories for Barrel Open Permissions!");
P.p.errorLog("Players will be able to open Barrel with GameMode Creative");
e.printStackTrace();
BConfig.useGMInventories = false;
}
} else {
BConfig.useGMInventories = false;
}
}
if (BConfig.useGP) {
if (P.p.getServer().getPluginManager().isPluginEnabled("GriefPrevention")) {
try {
if (!GriefPreventionBarrel.checkAccess(event)) {
P.p.msg(event.getPlayer(), P.p.languageReader.get("Error_NoBarrelAccess"));
event.setCancelled(true);
return;
}
@ -94,9 +123,11 @@ public class IntegrationListener implements Listener {
Player player = event.getPlayer();
try {
if (!LWCBarrel.checkAccess(player, sign, plugin)) {
P.p.msg(event.getPlayer(), P.p.languageReader.get("Error_NoBarrelAccess"));
event.setCancelled(true);
}
} catch (Throwable e) {
event.setCancelled(true);
P.p.errorLog("Failed to Check LWC for Barrel Open Permissions!");
P.p.errorLog("Brewery was tested with version 4.5.0 of LWC!");
P.p.errorLog("Disable the LWC support in the config and do /brew reload");
@ -105,7 +136,7 @@ public class IntegrationListener implements Listener {
P.p.msg(player, "&cLWC check Error, Brewery was tested with up to v4.5.0 of LWC");
P.p.msg(player, "&cSet &7useLWC: false &cin the config and /brew reload");
} else {
P.p.msg(player, "&cError breaking Barrel, please report to an Admin!");
P.p.msg(player, "&cError opening Barrel, please report to an Admin!");
}
}
}
@ -134,7 +165,7 @@ public class IntegrationListener implements Listener {
P.p.msg(player, "&cLWC check Error, Brewery was tested with up to v4.5.0 of LWC");
P.p.msg(player, "&cSet &7useLWC: false &cin the config and /brew reload");
} else {
P.p.msg(player, "&cError opening Barrel, please report to an Admin!");
P.p.msg(player, "&cError breaking Barrel, please report to an Admin!");
}
}
} else {