60 lines
2.6 KiB
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; }
|
|
} |