forked from Upstream/mmocore
conditions.yml where you can reference some conditions.
This commit is contained in:
parent
5ef636f5b9
commit
bfe2b27ab5
@ -119,21 +119,36 @@ public class DefaultMMOLoader extends MMOLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Condition loadCondition(MMOLineConfig config) {
|
public List<Condition> loadCondition(MMOLineConfig config) {
|
||||||
|
if (config.getKey().equals("from")) {
|
||||||
|
String source = config.getString("source");
|
||||||
|
ConfigFile configFile = new ConfigFile("conditions");
|
||||||
|
if (!configFile.getConfig().contains(source)) {
|
||||||
|
MMOCore.plugin.getLogger().log(Level.WARNING, "Couldn't find " + source + " in experience-sources.yml");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
List<Condition> list = new ArrayList<>();
|
||||||
|
for (String condition : configFile.getConfig().getStringList(source)) {
|
||||||
|
list.addAll(loadCondition(new MMOLineConfig(condition)));
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if (config.getKey().equals("distance"))
|
if (config.getKey().equals("distance"))
|
||||||
return new DistanceCondition(config);
|
return Arrays.asList(new DistanceCondition(config));
|
||||||
|
|
||||||
if (config.getKey().equals("world"))
|
if (config.getKey().equals("world"))
|
||||||
return new WorldCondition(config);
|
return Arrays.asList(new WorldCondition(config));
|
||||||
|
|
||||||
if (config.getKey().equals("biome"))
|
if (config.getKey().equals("biome"))
|
||||||
return new BiomeCondition(config);
|
return Arrays.asList(new BiomeCondition(config));
|
||||||
|
|
||||||
if (config.getKey().equals("level"))
|
if (config.getKey().equals("level"))
|
||||||
return new LevelCondition(config);
|
return Arrays.asList(new LevelCondition(config));
|
||||||
|
|
||||||
if (config.getKey().equals("permission"))
|
if (config.getKey().equals("permission"))
|
||||||
return new PermissionCondition(config);
|
return Arrays.asList(new PermissionCondition(config));
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class MMOLoader {
|
public class MMOLoader {
|
||||||
|
|
||||||
public Condition loadCondition(MMOLineConfig config) {
|
public List<Condition> loadCondition(MMOLineConfig config) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,13 +4,16 @@ import net.Indyuce.mmocore.loot.chest.condition.Condition;
|
|||||||
import net.Indyuce.mmocore.api.load.MMOLoader;
|
import net.Indyuce.mmocore.api.load.MMOLoader;
|
||||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class WorldGuardMMOLoader extends MMOLoader {
|
public class WorldGuardMMOLoader extends MMOLoader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Condition loadCondition(MMOLineConfig config) {
|
public List<Condition> loadCondition(MMOLineConfig config) {
|
||||||
|
|
||||||
if (config.getKey().equals("region"))
|
if (config.getKey().equals("region"))
|
||||||
return new RegionCondition(config);
|
return Arrays.asList(new RegionCondition(config));
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ public class DropTable extends PostLoadObject {
|
|||||||
}
|
}
|
||||||
for (String key : conditionsList)
|
for (String key : conditionsList)
|
||||||
try {
|
try {
|
||||||
conditions.add(MMOCore.plugin.loadManager.loadCondition(new MMOLineConfig(key)));
|
conditions.addAll(MMOCore.plugin.loadManager.loadCondition(new MMOLineConfig(key)));
|
||||||
} catch (IllegalArgumentException exception) {
|
} catch (IllegalArgumentException exception) {
|
||||||
MMOCore.plugin.getLogger().log(Level.WARNING,
|
MMOCore.plugin.getLogger().log(Level.WARNING,
|
||||||
"Could not load condition '" + key + "' from table '" + id + "': " + exception.getMessage());
|
"Could not load condition '" + key + "' from table '" + id + "': " + exception.getMessage());
|
||||||
|
@ -89,6 +89,7 @@ public class ConfigManager {
|
|||||||
loadDefaultFile("exp-tables.yml");
|
loadDefaultFile("exp-tables.yml");
|
||||||
loadDefaultFile("exp-sources.yml");
|
loadDefaultFile("exp-sources.yml");
|
||||||
loadDefaultFile("triggers.yml");
|
loadDefaultFile("triggers.yml");
|
||||||
|
loadDefaultFile("conditions.yml");
|
||||||
loadDefaultFile("guilds.yml");
|
loadDefaultFile("guilds.yml");
|
||||||
|
|
||||||
commandVerbose.reload(MMOCore.plugin.getConfig().getConfigurationSection("command-verbose"));
|
commandVerbose.reload(MMOCore.plugin.getConfig().getConfigurationSection("command-verbose"));
|
||||||
|
@ -33,8 +33,8 @@ public class MMOLoadManager {
|
|||||||
loaders.add(loader);
|
loaders.add(loader);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Condition loadCondition(MMOLineConfig config) {
|
public List<Condition> loadCondition(MMOLineConfig config) {
|
||||||
return load(Condition.class, config, loader -> loader.loadCondition(config));
|
return load(List.class, config, loader -> loader.loadCondition(config));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Objective loadObjective(MMOLineConfig config, ConfigurationSection section) {
|
public Objective loadObjective(MMOLineConfig config, ConfigurationSection section) {
|
||||||
|
@ -189,7 +189,7 @@ public class CustomBlockManager extends SpecificProfessionManager {
|
|||||||
|
|
||||||
for (String key : MMOCore.plugin.getConfig().getStringList("custom-mine-conditions"))
|
for (String key : MMOCore.plugin.getConfig().getStringList("custom-mine-conditions"))
|
||||||
try {
|
try {
|
||||||
customMineConditions.add(MMOCore.plugin.loadManager.loadCondition(new MMOLineConfig(key)));
|
customMineConditions.addAll(MMOCore.plugin.loadManager.loadCondition(new MMOLineConfig(key)));
|
||||||
} catch (IllegalArgumentException exception) {
|
} catch (IllegalArgumentException exception) {
|
||||||
MMOCore.plugin.getLogger().log(Level.WARNING, "Could not load custom mining condition '" + key + "': " + exception.getMessage());
|
MMOCore.plugin.getLogger().log(Level.WARNING, "Could not load custom mining condition '" + key + "': " + exception.getMessage());
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,7 @@ public class FishingManager extends SpecificProfessionManager {
|
|||||||
|
|
||||||
for (String str : list)
|
for (String str : list)
|
||||||
try {
|
try {
|
||||||
conditions.add(MMOCore.plugin.loadManager.loadCondition(new MMOLineConfig(str)));
|
conditions.addAll(MMOCore.plugin.loadManager.loadCondition(new MMOLineConfig(str)));
|
||||||
} catch (IllegalArgumentException exception) {
|
} catch (IllegalArgumentException exception) {
|
||||||
MMOCore.plugin.getLogger().log(Level.WARNING,
|
MMOCore.plugin.getLogger().log(Level.WARNING,
|
||||||
"Could not load condition '" + str + "' from fishing drop table '" + id + "': " + exception.getMessage());
|
"Could not load condition '" + str + "' from fishing drop table '" + id + "': " + exception.getMessage());
|
||||||
|
@ -60,7 +60,7 @@ public class Waypoint extends PostLoadObject implements Unlockable {
|
|||||||
List<String> conditions = config.getStringList("dynamic-conditions");
|
List<String> conditions = config.getStringList("dynamic-conditions");
|
||||||
for (String condition : conditions)
|
for (String condition : conditions)
|
||||||
try {
|
try {
|
||||||
dynamicUseConditions.add(MMOCore.plugin.loadManager.loadCondition(new MMOLineConfig(condition)));
|
dynamicUseConditions.addAll(MMOCore.plugin.loadManager.loadCondition(new MMOLineConfig(condition)));
|
||||||
} catch (RuntimeException exception) {
|
} catch (RuntimeException exception) {
|
||||||
MMOCore.plugin.getLogger().log(Level.WARNING, "Could not load condition '" + condition + "' from waypoint '" + id + "': " + exception.getMessage());
|
MMOCore.plugin.getLogger().log(Level.WARNING, "Could not load condition '" + condition + "' from waypoint '" + id + "': " + exception.getMessage());
|
||||||
}
|
}
|
||||||
|
0
src/main/resources/default/conditions.yml
Normal file
0
src/main/resources/default/conditions.yml
Normal file
Loading…
Reference in New Issue
Block a user