mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 14:46:46 +01:00
World Blacklist Config
This commit is contained in:
parent
0e61557812
commit
f5c1e0952b
@ -3,13 +3,22 @@ package com.gmail.nossr50.config;
|
|||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constants relating to config folders and paths
|
* Constants relating to config folders and paths
|
||||||
*/
|
*/
|
||||||
public class ConfigConstants {
|
public class ConfigConstants {
|
||||||
/* HOCON ESCAPE CHARACTER FOR UNDERSCORES */
|
private final static String[] EXAMPLE_BLACKLIST_WORLDS = {"Example_15434453", "Example_2324423", "Example_323423465"};
|
||||||
public static final String HOCON_FRIENDLY_UNDERSCORE = "\\_";
|
public final static ArrayList<String> EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT;
|
||||||
|
|
||||||
|
//Add the worlds to the list
|
||||||
|
static {
|
||||||
|
EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT = new ArrayList<>();
|
||||||
|
EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT.add(EXAMPLE_BLACKLIST_WORLDS[0]);
|
||||||
|
EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT.add(EXAMPLE_BLACKLIST_WORLDS[1]);
|
||||||
|
EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT.add(EXAMPLE_BLACKLIST_WORLDS[2]);
|
||||||
|
}
|
||||||
|
|
||||||
/* FOLDER NAMES */
|
/* FOLDER NAMES */
|
||||||
public static final String FOLDER_NAME_CONFIG = "config";
|
public static final String FOLDER_NAME_CONFIG = "config";
|
||||||
|
@ -7,6 +7,7 @@ import com.gmail.nossr50.config.hocon.SerializedConfigLoader;
|
|||||||
import com.gmail.nossr50.config.hocon.database.ConfigDatabase;
|
import com.gmail.nossr50.config.hocon.database.ConfigDatabase;
|
||||||
import com.gmail.nossr50.config.hocon.playerleveling.ConfigLeveling;
|
import com.gmail.nossr50.config.hocon.playerleveling.ConfigLeveling;
|
||||||
import com.gmail.nossr50.config.hocon.scoreboard.ConfigScoreboard;
|
import com.gmail.nossr50.config.hocon.scoreboard.ConfigScoreboard;
|
||||||
|
import com.gmail.nossr50.config.hocon.worldblacklist.ConfigWorldBlacklist;
|
||||||
import com.gmail.nossr50.config.party.ItemWeightConfig;
|
import com.gmail.nossr50.config.party.ItemWeightConfig;
|
||||||
import com.gmail.nossr50.config.skills.alchemy.PotionConfig;
|
import com.gmail.nossr50.config.skills.alchemy.PotionConfig;
|
||||||
import com.gmail.nossr50.config.treasure.ExcavationTreasureConfig;
|
import com.gmail.nossr50.config.treasure.ExcavationTreasureConfig;
|
||||||
@ -65,6 +66,7 @@ public final class ConfigManager {
|
|||||||
private SerializedConfigLoader<ConfigDatabase> configDatabase;
|
private SerializedConfigLoader<ConfigDatabase> configDatabase;
|
||||||
private SerializedConfigLoader<ConfigScoreboard> configScoreboard;
|
private SerializedConfigLoader<ConfigScoreboard> configScoreboard;
|
||||||
private SerializedConfigLoader<ConfigLeveling> configLeveling;
|
private SerializedConfigLoader<ConfigLeveling> configLeveling;
|
||||||
|
private SerializedConfigLoader<ConfigWorldBlacklist> configWorldBlacklist;
|
||||||
private MainConfig mainConfig;
|
private MainConfig mainConfig;
|
||||||
private FishingTreasureConfig fishingTreasureConfig;
|
private FishingTreasureConfig fishingTreasureConfig;
|
||||||
private ExcavationTreasureConfig excavationTreasureConfig;
|
private ExcavationTreasureConfig excavationTreasureConfig;
|
||||||
@ -99,6 +101,7 @@ public final class ConfigManager {
|
|||||||
configDatabase = new SerializedConfigLoader<>(ConfigDatabase.class, "database_settings.conf", null);
|
configDatabase = new SerializedConfigLoader<>(ConfigDatabase.class, "database_settings.conf", null);
|
||||||
configScoreboard = new SerializedConfigLoader<>(ConfigScoreboard.class, "scoreboard.conf", null);
|
configScoreboard = new SerializedConfigLoader<>(ConfigScoreboard.class, "scoreboard.conf", null);
|
||||||
configLeveling = new SerializedConfigLoader<>(ConfigLeveling.class, "player_leveling.conf", null);
|
configLeveling = new SerializedConfigLoader<>(ConfigLeveling.class, "player_leveling.conf", null);
|
||||||
|
configWorldBlacklist = new SerializedConfigLoader<>(ConfigWorldBlacklist.class, "world_blacklist.conf", null);
|
||||||
|
|
||||||
mainConfig = new MainConfig();
|
mainConfig = new MainConfig();
|
||||||
|
|
||||||
@ -320,4 +323,8 @@ public final class ConfigManager {
|
|||||||
public ConfigLeveling getConfigLeveling() {
|
public ConfigLeveling getConfigLeveling() {
|
||||||
return configLeveling.getConfig();
|
return configLeveling.getConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ConfigWorldBlacklist getConfigWorldBlacklist() {
|
||||||
|
return configWorldBlacklist.getConfig();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,67 +11,14 @@ import java.util.ArrayList;
|
|||||||
* Blacklist certain features in certain worlds
|
* Blacklist certain features in certain worlds
|
||||||
*/
|
*/
|
||||||
public class WorldBlacklist {
|
public class WorldBlacklist {
|
||||||
private static ArrayList<String> blacklist;
|
|
||||||
private final String blackListFileName = "world_blacklist.txt";
|
|
||||||
|
|
||||||
public WorldBlacklist() {
|
|
||||||
blacklist = new ArrayList<>();
|
|
||||||
init();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isWorldBlacklisted(World world) {
|
public static boolean isWorldBlacklisted(World world) {
|
||||||
|
|
||||||
for (String s : blacklist) {
|
for (String s : mcMMO.getConfigManager().getConfigWorldBlacklist().getBlackListedWorlds()) {
|
||||||
if (world.getName().equalsIgnoreCase(s))
|
if (world.getName().equalsIgnoreCase(s))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void init() {
|
|
||||||
//Make the blacklist file if it doesn't exist
|
|
||||||
//TODO: Check if this works
|
|
||||||
File blackListFile = new File(mcMMO.p.getDataFolder().getAbsolutePath() + File.separator + blackListFileName);
|
|
||||||
//File blackListFile = new File(McmmoCore.getDataFolderPath().getAbsoluteFile() + File.separator + blackListFileName);
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (!blackListFile.exists())
|
|
||||||
blackListFile.createNewFile();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Load up the blacklist
|
|
||||||
loadBlacklist(blackListFile);
|
|
||||||
//registerFlags();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void loadBlacklist(File blackListFile) {
|
|
||||||
try {
|
|
||||||
FileReader fileReader = new FileReader(blackListFile);
|
|
||||||
BufferedReader bufferedReader = new BufferedReader(fileReader);
|
|
||||||
|
|
||||||
String currentLine;
|
|
||||||
|
|
||||||
while ((currentLine = bufferedReader.readLine()) != null) {
|
|
||||||
if (currentLine.length() == 0)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!blacklist.contains(currentLine))
|
|
||||||
blacklist.add(currentLine);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Close readers
|
|
||||||
bufferedReader.close();
|
|
||||||
fileReader.close();
|
|
||||||
} catch (FileNotFoundException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
//McmmoCore.getLogger().info(blacklist.size() + " entries in mcMMO World Blacklist");
|
|
||||||
mcMMO.p.getLogger().info(blacklist.size() + " entries in mcMMO World Blacklist");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
package com.gmail.nossr50.config.hocon.worldblacklist;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.config.ConfigConstants;
|
||||||
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
@ConfigSerializable
|
||||||
|
public class ConfigWorldBlacklist {
|
||||||
|
@Setting(value = "World-Blacklist", comment = "Enter as many worlds as you want here." +
|
||||||
|
"\nWhen a world is blacklisted, mcMMO ceases to function for players in that world outside of a few specific commands." +
|
||||||
|
"\nIf you want only a certain part of a world to be blacklisted, " +
|
||||||
|
"\nI instead recommend using WorldGuard and negating the \"mcmmo\" WorldGuard region flag.")
|
||||||
|
private ArrayList<String> blackListedWorlds = ConfigConstants.EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT;
|
||||||
|
|
||||||
|
public ArrayList<String> getBlackListedWorlds() {
|
||||||
|
return blackListedWorlds;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user