/*******************************************************************************
* Copyright 2014 Tobias Welther
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package de.tobiyas.racesandclasses.datacontainer.traitholdercontainer;
import java.io.File;
import java.io.IOException;
import org.bukkit.Material;
import org.bukkit.configuration.file.YamlConfiguration;
import de.tobiyas.racesandclasses.RacesAndClasses;
public class DefaultContainer {
public static void createSTDRaces(){
RacesAndClasses plugin = RacesAndClasses.getPlugin();
File raceDir = new File(plugin.getDataFolder(), "races");
if(!raceDir.exists()) raceDir.mkdirs();
else return;
plugin.log("No Race file found. Creating new.");
//orcs
YamlConfiguration orcConfig = new YamlConfiguration();
File orcFile = new File(raceDir, "orc.yml");
orcConfig.createSection("Orc");
orcConfig.createSection("Orc.config");
orcConfig.createSection("Orc.traits");
orcConfig.set("Orc.config.tag", "[Orc]");
orcConfig.set("Orc.config.healthbonus", 10);
orcConfig.set("Orc.config.guislot", -1);
orcConfig.set("Orc.config.armor", "iron,diamond,chain");
orcConfig.createSection("Orc.traits.DamageReduceTrait");
orcConfig.set("Orc.traits.DamageReduceTrait.operation", '*');
orcConfig.set("Orc.traits.DamageReduceTrait.value", 0.5);
orcConfig.createSection("Orc.traits.BerserkerRageTrait");
orcConfig.set("Orc.traits.BerserkerRageTrait.operation", '+');
orcConfig.set("Orc.traits.BerserkerRageTrait.value", 1);
orcConfig.set("Orc.traits.BerserkerRageTrait.cooldown", 30);
//Elves
YamlConfiguration elvesConfig = new YamlConfiguration();
File elvesFile = new File(raceDir, "elves.yml");
elvesConfig.createSection("Elv.config");
elvesConfig.createSection("Elv.traits");
elvesConfig.set("Elv.config.tag", "[Elv]");
elvesConfig.set("Elv.config.healthbonus", 0);
elvesConfig.set("Elv.config.guislot", -1);
elvesConfig.set("Elv.config.armor", "leather,gold,chain");
elvesConfig.createSection("Elv.traits.FallResistanceTrait");
elvesConfig.set("Elv.traits.FallResistanceTrait.operation", '-');
elvesConfig.set("Elv.traits.FallResistanceTrait.value", 2);
elvesConfig.createSection("Elv.traits.SprintTrait");
elvesConfig.set("Elv.traits.SprintTrait.duration", 10);
elvesConfig.set("Elv.traits.SprintTrait.value", 3);
elvesConfig.set("Elv.traits.SprintTrait.cooldown", 60);
try {
orcConfig.save(orcFile);
elvesConfig.save(elvesFile);
} catch (IOException e) {
plugin.log("Saving STD races.yml failed.");
return;
}
}
public static void createSTDClasses(){
RacesAndClasses plugin = RacesAndClasses.getPlugin();
File classDir = new File(plugin.getDataFolder(), "classes");
if(!classDir.exists()) classDir.mkdirs();
else return;
plugin.log("No Class files found. Creating new.");
//Warrior:
YamlConfiguration warriorConfig = new YamlConfiguration();
File warriorFile = new File(classDir, "warrior.yml");
warriorConfig.createSection("warrior");
warriorConfig.createSection("warrior.config");
warriorConfig.createSection("warrior.traits");
warriorConfig.set("warrior.config.tag", "[Warrior]");
warriorConfig.set("warrior.config.healthbonus", 5);
warriorConfig.set("warrior.config.guislot", -1);
warriorConfig.createSection("warrior.traits.SwordDamageIncreaseTrait");
warriorConfig.set("warrior.traits.SwordDamageIncreaseTrait.operation", '+');
warriorConfig.set("warrior.traits.SwordDamageIncreaseTrait.value", 1);
warriorConfig.createSection("warrior.traits.AxeDamageIncreaseTrait");
warriorConfig.set("warrior.traits.AxeDamageIncreaseTrait.operation", '+');
warriorConfig.set("warrior.traits.AxeDamageIncreaseTrait.value", 1);
//Archer:
YamlConfiguration archerConfig = new YamlConfiguration();
File archerFile = new File(classDir, "archer.yml");
archerConfig.createSection("archer");
archerConfig.createSection("archer.config");
archerConfig.createSection("archer.traits");
archerConfig.set("archer.config.tag", "[Archer]");
archerConfig.set("archer.config.healthbonus", "+1");
archerConfig.set("archer.config.guislot", -1);
archerConfig.createSection("archer.traits.PoisonArrowTrait");
archerConfig.set("archer.traits.PoisonArrowTrait.duration", 10);
archerConfig.set("archer.traits.PoisonArrowTrait.totalDamage", 10);
archerConfig.set("archer.traits.PoisonArrowTrait.cooldown", 30);
archerConfig.createSection("archer.traits.FireArrowTrait");
archerConfig.set("archer.traits.FireArrowTrait.duration", 10);
archerConfig.set("archer.traits.FireArrowTrait.totalDamage", 10);
archerConfig.set("archer.traits.FireArrowTrait.cooldown", 30);
archerConfig.createSection("archer.traits.TeleportArrowTrait");
archerConfig.set("archer.traits.TeleportArrowTrait.cooldown", 60);
//Magician:
YamlConfiguration magicianConfig = new YamlConfiguration();
File magicianFile = new File(classDir, "magician.yml");
magicianConfig.createSection("magician");
magicianConfig.createSection("magician.config");
magicianConfig.createSection("magician.traits");
magicianConfig.set("magician.config.tag", "[Magician]");
magicianConfig.set("magician.config.healthbonus", -1);
magicianConfig.set("magician.config.manabonus", 20);
magicianConfig.set("magician.config.guislot", -1);
magicianConfig.createSection("magician.traits.ManaRegenerationTrait");
magicianConfig.set("magician.traits.ManaRegenerationTrait.time", 10);
magicianConfig.set("magician.traits.ManaRegenerationTrait.value", 2);
magicianConfig.createSection("magician.traits.FireballTrait");
magicianConfig.set("magician.traits.FireballTrait.cost", 6);
magicianConfig.set("magician.traits.FireballTrait.cooldown", 10);
magicianConfig.createSection("magician.traits.ItemForManaConsumeTrait");
magicianConfig.set("magician.traits.ItemForManaConsumeTrait.cooldown", 10);
magicianConfig.set("magician.traits.ItemForManaConsumeTrait.item", "WHEAT");
magicianConfig.set("magician.traits.ItemForManaConsumeTrait.cost", 1);
magicianConfig.set("magician.traits.ItemForManaConsumeTrait.value", 10);
magicianConfig.createSection("magician.traits.WallTrait");
magicianConfig.set("magician.traits.WallTrait.cooldown", 10);
magicianConfig.set("magician.traits.WallTrait.cost", 5);
magicianConfig.set("magician.traits.WallTrait.duration", 5);
magicianConfig.createSection("magician.traits.ExplosionTrait");
magicianConfig.set("magician.traits.ExplosionTrait.cooldown", 10);
magicianConfig.set("magician.traits.ExplosionTrait.cost", 10);
magicianConfig.set("magician.traits.ExplosionTrait.range", 5);
magicianConfig.set("magician.traits.ExplosionTrait.damage", 4);
magicianConfig.createSection("magician.traits.SlowFallTrait");
magicianConfig.set("magician.traits.SlowFallTrait.cooldown", 10);
magicianConfig.set("magician.traits.SlowFallTrait.cost", 5);
magicianConfig.set("magician.traits.SlowFallTrait.duration", 10);
magicianConfig.createSection("magician.traits.ColdFeetTrait");
magicianConfig.set("magician.traits.ColdFeetTrait.cost", 5);
magicianConfig.set("magician.traits.ColdFeetTrait.duration", 10);
//Shaman:
YamlConfiguration shamanConfig = new YamlConfiguration();
File shamanFile = new File(classDir, "shaman.yml");
shamanConfig.createSection("shaman");
shamanConfig.createSection("shaman.config");
shamanConfig.createSection("shaman.traits");
shamanConfig.set("shaman.config.tag", "[Shaman]");
shamanConfig.set("shaman.config.healthbonus", 1);
shamanConfig.set("shaman.config.manabonus", 20);
shamanConfig.set("shaman.config.guislot", -1);
shamanConfig.createSection("shaman.traits.HealTotemTrait");
shamanConfig.set("shaman.traits.HealTotemTrait.duration", 10);
shamanConfig.set("shaman.traits.HealTotemTrait.value", 3);
shamanConfig.set("shaman.traits.HealTotemTrait.every", 2);
shamanConfig.createSection("shaman.traits.PotionTotemTrait");
shamanConfig.set("shaman.traits.PotionTotemTrait.effect", 6);
shamanConfig.set("shaman.traits.PotionTotemTrait.duration", 10);
shamanConfig.createSection("shaman.traits.ItemForManaConsumeTrait");
shamanConfig.set("shaman.traits.ItemForManaConsumeTrait.cooldown", 10);
shamanConfig.set("shaman.traits.ItemForManaConsumeTrait.item", Material.POTION.name());
shamanConfig.set("shaman.traits.ItemForManaConsumeTrait.cost", 1);
shamanConfig.set("shaman.traits.ItemForManaConsumeTrait.value", 10);
shamanConfig.createSection("shaman.traits.ManaRegenerationTrait");
shamanConfig.set("shaman.traits.ManaRegenerationTrait.value", 1);
shamanConfig.set("shaman.traits.ManaRegenerationTrait.time", 5);
try {
shamanConfig.save(shamanFile);
archerConfig.save(archerFile);
magicianConfig.save(magicianFile);
warriorConfig.save(warriorFile);
} catch (IOException e) {
plugin.log("Saving STD classes.yml failed.");
return;
}
}
}