Added WorldBlack list setting

This commit is contained in:
jameslfc19 2020-07-24 17:30:06 +01:00
parent 80aef139ac
commit 0f117e5332
5 changed files with 26 additions and 7 deletions

View File

@ -3,6 +3,7 @@ package com.jamesdpeters.minecraft.chests.commands;
import com.jamesdpeters.minecraft.chests.ChestsPlusPlus;
import com.jamesdpeters.minecraft.chests.misc.Messages;
import com.jamesdpeters.minecraft.chests.misc.Permissions;
import com.jamesdpeters.minecraft.chests.misc.Settings;
import com.jamesdpeters.minecraft.chests.misc.Utils;
import com.jamesdpeters.minecraft.chests.storage.autocraft.AutoCraftingStorage;
import com.jamesdpeters.minecraft.chests.serialize.Config;
@ -77,7 +78,7 @@ public class AutoCraftCommand extends ServerCommand {
return true;
case ADD:
if(args.length > 1){
if (player.hasPermission(Permissions.AUTOCRAFT_ADD)) {
if (player.hasPermission(Permissions.AUTOCRAFT_ADD) && !Settings.isBlacklistedWorld(player.getWorld())) {
Block targetBlock = player.getTargetBlockExact(5);
if (targetBlock != null) Config.getAutoCraft().createStorage(player, targetBlock, args[1],true);
else Config.getAutoCraft().getMessages().mustLookAtBlock(player);
@ -92,7 +93,7 @@ public class AutoCraftCommand extends ServerCommand {
}
case OPEN:
if(args.length > 1){
if(sender.hasPermission(Permissions.AUTOCRAFT_OPEN)) {
if(sender.hasPermission(Permissions.AUTOCRAFT_OPEN) && !Settings.isBlacklistedWorld(player.getWorld())) {
AutoCraftingStorage invs;
if(args[1].contains(":")){
invs = Config.getAutoCraft().getStorage(player,args[1]);

View File

@ -4,6 +4,7 @@ import com.jamesdpeters.minecraft.chests.ChestsPlusPlus;
import com.jamesdpeters.minecraft.chests.inventories.ChestLinkMenu;
import com.jamesdpeters.minecraft.chests.misc.Messages;
import com.jamesdpeters.minecraft.chests.misc.Permissions;
import com.jamesdpeters.minecraft.chests.misc.Settings;
import com.jamesdpeters.minecraft.chests.misc.Utils;
import com.jamesdpeters.minecraft.chests.serialize.Config;
import com.jamesdpeters.minecraft.chests.storage.chestlink.ChestLinkStorage;
@ -80,7 +81,7 @@ public class ChestLinkCommand extends ServerCommand {
return true;
case ADD:
if(args.length > 1){
if(sender.hasPermission(Permissions.ADD)) {
if(sender.hasPermission(Permissions.ADD) && !Settings.isBlacklistedWorld(player.getWorld())) {
Block targetBlock = player.getTargetBlockExact(5);
if (targetBlock != null) Config.getChestLink().createStorage(player,targetBlock,args[1],true);
else Config.getChestLink().getMessages().mustLookAtBlock(player);
@ -96,7 +97,7 @@ public class ChestLinkCommand extends ServerCommand {
}
case OPEN:
if(args.length > 1){
if(sender.hasPermission(Permissions.OPEN)) {
if(sender.hasPermission(Permissions.OPEN) && !Settings.isBlacklistedWorld(player.getWorld())) {
ChestLinkStorage invs;
if(args[1].contains(":")){
invs = Config.getChestLink().getStorage(player,args[1]);
@ -115,7 +116,7 @@ public class ChestLinkCommand extends ServerCommand {
return true;
}
case MENU:
if(sender.hasPermission(Permissions.MENU)) {
if(sender.hasPermission(Permissions.MENU) && !Settings.isBlacklistedWorld(player.getWorld())) {
ChestLinkMenu.getMenu(player).open(player);
return true;
} else {

View File

@ -1,8 +1,14 @@
package com.jamesdpeters.minecraft.chests.misc;
import org.bukkit.World;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.Plugin;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class Settings {
private static String CHECK_UPDATE = "update-checker";
@ -14,6 +20,7 @@ public class Settings {
private static String SHOULD_CHEST_ARMOUR_STAND = "display_chestlink_armour_stands";
private static String SHOULD_AUTOCRAFT_ARMOUR_STAND = "display_chestlink_armour_stands";
private static String INVISIBLE_FILTER_ITEM_FRAMES = "set-filter-itemframe-invisible";
private static String WORLD_BLACKLIST = "world-blacklist";
private static Settings cf;
private FileConfiguration configuration;
@ -28,6 +35,7 @@ public class Settings {
private static boolean shouldDisplayChestLinkStand;
private static boolean shouldDisplayAutoCraftStand;
private static boolean filterItemFrameInvisible;
private static List<String> worldBlacklist;
public static void initConfig(Plugin plugin){
cf = new Settings();
@ -44,6 +52,7 @@ public class Settings {
cf.configuration.addDefault(SHOULD_CHEST_ARMOUR_STAND,true);
cf.configuration.addDefault(SHOULD_AUTOCRAFT_ARMOUR_STAND,true);
cf.configuration.addDefault(INVISIBLE_FILTER_ITEM_FRAMES, false);
cf.configuration.addDefault(WORLD_BLACKLIST, Collections.singletonList(""));
cf.configuration.options().copyDefaults(true);
cf.plugin.saveConfig();
@ -67,6 +76,7 @@ public class Settings {
shouldDisplayChestLinkStand = cf.configuration.getBoolean(SHOULD_CHEST_ARMOUR_STAND);
shouldDisplayAutoCraftStand = cf.configuration.getBoolean(SHOULD_AUTOCRAFT_ARMOUR_STAND);
filterItemFrameInvisible = cf.configuration.getBoolean(INVISIBLE_FILTER_ITEM_FRAMES);
worldBlacklist = cf.configuration.getStringList(WORLD_BLACKLIST);
}
/**
@ -93,4 +103,9 @@ public class Settings {
public static boolean isFilterItemFrameInvisible() {
return filterItemFrameInvisible;
}
public static List<String> getWorldBlacklist(){ return worldBlacklist; }
public static boolean isBlacklistedWorld(World world){
return worldBlacklist.contains(world.getName());
}
}

View File

@ -2,6 +2,7 @@ package com.jamesdpeters.minecraft.chests.storage.autocraft;
import com.jamesdpeters.minecraft.chests.misc.Messages;
import com.jamesdpeters.minecraft.chests.misc.Permissions;
import com.jamesdpeters.minecraft.chests.misc.Settings;
import com.jamesdpeters.minecraft.chests.misc.Utils;
import com.jamesdpeters.minecraft.chests.misc.Values;
import com.jamesdpeters.minecraft.chests.serialize.Config;
@ -57,7 +58,7 @@ public class AutoCraftingStorageType extends StorageType<AutoCraftingStorage> {
@Override
public boolean hasPermissionToAdd(Player player) {
return player.hasPermission(Permissions.AUTOCRAFT_ADD);
return player.hasPermission(Permissions.AUTOCRAFT_ADD) && !Settings.isBlacklistedWorld(player.getWorld());
}
@Override

View File

@ -1,6 +1,7 @@
package com.jamesdpeters.minecraft.chests.storage.chestlink;
import com.jamesdpeters.minecraft.chests.misc.Permissions;
import com.jamesdpeters.minecraft.chests.misc.Settings;
import com.jamesdpeters.minecraft.chests.misc.Values;
import com.jamesdpeters.minecraft.chests.runnables.ChestLinkVerifier;
import com.jamesdpeters.minecraft.chests.serialize.Config;
@ -52,7 +53,7 @@ public class ChestLinkStorageType extends StorageType<ChestLinkStorage> {
@Override
public boolean hasPermissionToAdd(Player player) {
return player.hasPermission(Permissions.ADD);
return player.hasPermission(Permissions.ADD) && !Settings.isBlacklistedWorld(player.getWorld());
}
@Override