VillagerTradeLimiter/src/com/pretzel/dev/villagertradelimiter/settings/Config.java

60 lines
2.6 KiB
Java

package com.pretzel.dev.villagertradelimiter.settings;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Entity;
import java.util.List;
public class Config {
//Individual settings
private final ConfigurationSection database;
private final boolean bStats;
private final boolean ignoreCitizens;
private final boolean ignoreShopkeepers;
private final List<String> ignoreHeldItems;
private final List<String> ignoreWorlds;
private final List<String> disableTrading;
private final List<String> disableProfessions;
private final String restock;
private final boolean multipleTraders;
private final int tradeDelay;
public Config(final ConfigurationSection config) {
this.database = config.getConfigurationSection("Database");
this.bStats = config.getBoolean("bStats", true);
this.ignoreCitizens = config.getBoolean("IgnoreCitizens", true);
this.ignoreShopkeepers = config.getBoolean("IgnoreShopkeepers", true);
this.ignoreHeldItems = config.getStringList("IgnoreHeldItems");
this.ignoreWorlds = config.getStringList("IgnoreWorlds");
this.disableTrading = config.getStringList("DisableTrading");
this.disableProfessions = config.getStringList("DisableProfessions");
this.restock = config.getString("Restock", "0h");
this.multipleTraders = config.getBoolean("MultipleTraders", false);
this.tradeDelay = config.getInt("TradeDelay", -1);
}
/**
* @param entities The entity to check the NPC status of
* @return True if the entity is an NPC and config is set to ignore NPCs
*/
public boolean shouldSkipNPC(final Entity... entities) {
if(entities == null) return true;
for(Entity entity : entities) {
if(ignoreCitizens && entity.hasMetadata("NPC")) return true;
if(ignoreShopkeepers && entity.hasMetadata("shopkeeper")) return true;
}
return false;
}
// ------------------------- Getters -------------------------
public ConfigurationSection getDatabase() { return this.database; }
public boolean getBStats() { return bStats; }
public List<String> getIgnoreHeldItems() { return this.ignoreHeldItems; }
public List<String> getIgnoreWorlds() { return this.ignoreWorlds; }
public List<String> getDisableTrading() { return this.disableTrading; }
public List<String> getDisableProfessions() { return this.disableProfessions; }
public String getRestock() { return this.restock; }
public boolean getMultipleTraders() { return this.multipleTraders; }
public int getTradeDelay() { return this.tradeDelay; }
}