From 58efba39b054bc4b5573c81750fa6819d1b5e80a Mon Sep 17 00:00:00 2001 From: Driftay Date: Sat, 14 Sep 2019 16:04:20 -0400 Subject: [PATCH] Config Converter Added (DroppingAnvil) --- .../massivecraft/factions/cmd/FCmdRoot.java | 4 +- .../cmd/configsf/CmdConvertConfig.java | 29 ++++ .../cmd/configsf/ConvertConfigHandler.java | 142 ++++++++++++++++++ .../factions/struct/Permission.java | 1 + .../massivecraft/factions/zcore/util/TL.java | 15 +- src/main/resources/plugin.yml | 1 + 6 files changed, 186 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/massivecraft/factions/cmd/configsf/CmdConvertConfig.java create mode 100644 src/main/java/com/massivecraft/factions/cmd/configsf/ConvertConfigHandler.java diff --git a/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java b/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java index fe5cef15..f43d274d 100644 --- a/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java +++ b/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java @@ -7,6 +7,7 @@ import com.massivecraft.factions.cmd.check.CmdCheck; import com.massivecraft.factions.cmd.check.CmdWeeWoo; import com.massivecraft.factions.cmd.chest.CmdChest; import com.massivecraft.factions.cmd.claim.*; +import com.massivecraft.factions.cmd.configsf.CmdConvertConfig; import com.massivecraft.factions.cmd.econ.CmdMoney; import com.massivecraft.factions.cmd.grace.CmdGrace; import com.massivecraft.factions.cmd.logout.CmdLogout; @@ -144,7 +145,7 @@ public class FCmdRoot extends FCommand implements CommandExecutor { public CmdStrikes cmdStrikes = new CmdStrikes(); public CmdCheck cmdCheck = new CmdCheck(); public CmdWeeWoo cmdWeeWoo = new CmdWeeWoo(); - + public CmdConvertConfig cmdConvertConfig = new CmdConvertConfig(); public FCmdRoot() { super(); @@ -253,6 +254,7 @@ public class FCmdRoot extends FCommand implements CommandExecutor { this.addSubCommand(this.cmdStrikes); this.addSubCommand(this.cmdFGlobal); this.addSubCommand(this.cmdViewChest); + this.addSubCommand(this.cmdConvertConfig); if (Conf.useCheckSystem) { this.addSubCommand(this.cmdCheck); diff --git a/src/main/java/com/massivecraft/factions/cmd/configsf/CmdConvertConfig.java b/src/main/java/com/massivecraft/factions/cmd/configsf/CmdConvertConfig.java new file mode 100644 index 00000000..73ada76e --- /dev/null +++ b/src/main/java/com/massivecraft/factions/cmd/configsf/CmdConvertConfig.java @@ -0,0 +1,29 @@ +package com.massivecraft.factions.cmd.configsf; + +import com.massivecraft.factions.cmd.CommandContext; +import com.massivecraft.factions.cmd.CommandRequirements; +import com.massivecraft.factions.cmd.FCommand; +import com.massivecraft.factions.struct.Permission; +import com.massivecraft.factions.zcore.util.TL; + +public class CmdConvertConfig extends FCommand { + + public CmdConvertConfig() { + super(); + this.aliases.add("convertconfig"); + + this.requirements = new CommandRequirements.Builder(Permission.CONVERTCONFIG) + .playerOnly() + .build(); + } + + @Override + public void perform(CommandContext context) { + ConvertConfigHandler.convertconfig(context.player); + } + + @Override + public TL getUsageTranslation() { + return TL.COMMAND_CONVERTCONFIG_DESCRIPTION; + } +} diff --git a/src/main/java/com/massivecraft/factions/cmd/configsf/ConvertConfigHandler.java b/src/main/java/com/massivecraft/factions/cmd/configsf/ConvertConfigHandler.java new file mode 100644 index 00000000..e176682c --- /dev/null +++ b/src/main/java/com/massivecraft/factions/cmd/configsf/ConvertConfigHandler.java @@ -0,0 +1,142 @@ +package com.massivecraft.factions.cmd.configsf; + +import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.zcore.util.TL; +import org.bukkit.Bukkit; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.scheduler.BukkitScheduler; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.logging.Level; + +public class ConvertConfigHandler { + + static File savageConfigFile = new File("plugins/Factions/SavageFactions/config.yml"); + static FileConfiguration sv = YamlConfiguration.loadConfiguration(savageConfigFile); + static File configFile = new File("plugins/Factions/config.yml"); + static FileConfiguration sb = YamlConfiguration.loadConfiguration(configFile); + public static void setString(String s){ + sb.set(s, sv.getString(s)); + } + public static void setInt(String s){ + sb.set(s, sv.getInt(s)); + } + public static void setConfigSec(String s){ + ConfigurationSection cs = sv.getConfigurationSection(s); + sb.set(s, cs); + } + static JavaPlugin plugin = JavaPlugin.getProvidingPlugin(FactionsPlugin.class); + public static void setBoolean(String s){ + sb.set(s, sv.getBoolean(s)); + } + public static void convertconfig(Player player) { + if (new File("plugins/Factions/SavageFactions/config.yml").exists()) { + BukkitScheduler scheduler = plugin.getServer().getScheduler(); + scheduler.scheduleAsyncDelayedTask(plugin, () -> { + File savageConfigFile = new File("plugins/Factions/SavageFactions/config.yml"); + FileConfiguration sv = YamlConfiguration.loadConfiguration(savageConfigFile); + File configFile = new File("plugins/Factions/config.yml"); + FileConfiguration sb = YamlConfiguration.loadConfiguration(configFile); + sb.set("ConfigConvertedFromSavageFactions", true); + sb.set("debug", sv.getBoolean("debug")); + ConfigurationSection ffe = sv.getConfigurationSection("findfactionsexploit"); + sb.set("findfactionsexploit", ffe); + setString("default-relation"); + ConfigurationSection pC = sv.getConfigurationSection("portals"); + sb.set("portals", pC); + sb.set("maxwarps", sv.getInt("maxwarps")); + setConfigSec("warp-cost"); + setBoolean("enable-faction-flight"); + setBoolean("ffly.AutoEnable"); + setInt("fly-falldamage-cooldown"); + setBoolean("disable-pistons-in-territory"); + setConfigSec("tooltips"); + setConfigSec("scoreboard"); + sb.set("scoreboard.also-send-chat", true); + setConfigSec("warmups"); + setConfigSec("max-relations"); + setInt("world-border.buffer"); + setConfigSec("hcf"); + sb.set("show", sv.getStringList("show")); + setBoolean("show-exempt"); + sb.set("map", sv.getStringList("map")); + setConfigSec("list"); + setBoolean("use-old-help"); + setConfigSec("help"); + setConfigSec("fperm-gui"); + sb.set("fperm-gui.action.slots.check", 50); + setConfigSec("fwarp-gui"); + setBoolean("faction-creation-broadcast"); + setBoolean("faction-disband-broadcast"); + setBoolean("See-Invisible-Faction-Members"); + setConfigSec("frules"); + setConfigSec("ftnt"); + setBoolean("fpaypal.Enabled"); + setBoolean("checkpoints.Enabled"); + setConfigSec("fnear"); + setConfigSec("ffocus"); + setConfigSec("fvualt"); + setString("fupgrades.MainMenu.Title"); + setString("fupgrades.MainMenu.DummyItem.Name"); + setString("fupgrades.MainMenu.DummyItem.Type"); + List l = sv.getStringList("fupgrades.MainMenu.DummyItem.Lore"); + sb.set("fupgrades.MainMenu.DummyItem.Lore", l); + setConfigSec("fupgrades.MainMenu.Crops.Crop-Boost"); + setConfigSec("fupgrades.MainMenu.Crops.Cost"); + sb.set("fupgrades.MainMenu.Crops.CropItem", sv.getConfigurationSection("fupgrades.MainMenu.Crops.DisplayItem")); + setConfigSec("fupgrades.MainMenu.EXP.EXP-Boost"); + setConfigSec("fupgrades.MainMenu.EXP.Cost"); + sb.set("fupgrades.MainMenu.EXP.EXPItem", sv.getConfigurationSection("fupgrades.MainMenu.EXP.DisplayItem")); + setConfigSec("fupgrades.MainMenu.Power.Power-Boost"); + setConfigSec("fupgrades.MainMenu.Power.Cost"); + sb.set("fupgrades.MainMenu.Power.PowerItem", sv.getConfigurationSection("fupgrades.MainMenu.Power.DisplayItem")); + List p = new ArrayList(); + p.add(sv.getInt("fupgrades.MainMenu.Power.DisplayItem.Slot")); + sb.set("fupgrades.MainMenu.Power.PowerItem.slots", p); + sb.set("fupgrades.MainMenu.Power.PowerItem.Amount", 1); + sb.set("fupgrades.MainMenu.Power.PowerItem.Damage", 0); + sb.set("fupgrades.MainMenu.Power.PowerItem.Slot", null); + sb.set("fupgrades.MainMenu.Members.Members-Limit", sv.getConfigurationSection("fupgrades.MainMenu.Members.Members-Boost")); + setConfigSec("fupgrades.MainMenu.Spawners.Spawner-Boost"); + setConfigSec("fupgrades.MainMenu.Spawners.Cost"); + sb.set("fupgrades.MainMenu.Spawners.SpawnerItem", sv.getConfigurationSection("fupgrades.MainMenu.Spawners.DisplayItem")); + setConfigSec("fupgrades.MainMenu.Chest.Chest-Size"); + setConfigSec("fupgrades.MainMenu.Chest.Cost"); + sb.set("fupgrades.MainMenu.Chest.ChestItem", sv.getConfigurationSection("fupgrades.MainMenu.Chest.DisplayItem")); + setConfigSec("fupgrades.MainMenu.Members.Cost"); + sb.set("fupgrades.MainMenu.Members.MembersItem", sv.getConfigurationSection("fupgrades.MainMenu.Members.DisplayItem")); + sb.set("fupgrades.MainMenu.Members.MembersItem.Amount", 1); + sb.set("fupgrades.MainMenu.Members.MembersItem.Damage", 0); + if (sv.getString("fupgrades.MainMenu.Members.DisplayItem.Type").equalsIgnoreCase("PLAYER_HEAD")) + sb.set("fupgrades.MainMenu.Members.MembersItem.Type", "PAPER"); + List x = new ArrayList(); + x.add(sv.getInt("fupgrades.MainMenu.Members.DisplayItem.Slot")); + sb.set("fupgrades.MainMenu.Members.MembersItem.slots", x); + sb.set("fupgrades.MainMenu.Members.MembersItem.Slot", null); + sb.set("fupgrades.MainMenu.Members.Members-Limit", sv.getConfigurationSection("fupgrades.MainMenu.Members.Members-Boost")); + setConfigSec("fbanners"); + setConfigSec("see-chunk"); + setConfigSec("Tntfill"); + try { + sb.save(configFile); + plugin.reloadConfig(); + } catch (IOException e) { + player.sendMessage(TL.COMMAND_CONVERTCONFIG_FAIL.toString()); + Bukkit.getLogger().log(Level.SEVERE, Arrays.toString(e.getStackTrace())); + } + player.sendMessage(TL.COMMAND_CONVERTCONFIG_SUCCESS.toString()); + }, 0L); + } else { + player.sendMessage(TL.COMMAND_CONVERTCONFIG_FAILCONFIGMISSING.toString()); + } + } + +} diff --git a/src/main/java/com/massivecraft/factions/struct/Permission.java b/src/main/java/com/massivecraft/factions/struct/Permission.java index 45a6a97d..38311d80 100644 --- a/src/main/java/com/massivecraft/factions/struct/Permission.java +++ b/src/main/java/com/massivecraft/factions/struct/Permission.java @@ -25,6 +25,7 @@ public enum Permission { CLAIM_RADIUS("claim.radius"), CONFIG("config"), CONVERT("convert"), + CONVERTCONFIG("convertconfig"), CREATE("create"), CORNER("corner"), DEFAULTRANK("defaultrank"), diff --git a/src/main/java/com/massivecraft/factions/zcore/util/TL.java b/src/main/java/com/massivecraft/factions/zcore/util/TL.java index a009d7f2..2cd18ad1 100644 --- a/src/main/java/com/massivecraft/factions/zcore/util/TL.java +++ b/src/main/java/com/massivecraft/factions/zcore/util/TL.java @@ -506,6 +506,11 @@ public enum TL { COMMAND_COLEADER_PROMOTED("&c&l[!]&7 You have &cpromoted &7%1$s to &ccoleader."), COMMAND_COLEADER_DESCRIPTION("Give or revoke coleader rights"), + COMMAND_CONVERTCONFIG_DESCRIPTION("Convert your SavageFactions config to SaberFactions"), + COMMAND_CONVERTCONFIG_SUCCESS("&cConfiguration successfully converted"), + COMMAND_CONVERTCONFIG_FAIL("&cConfiguration conversion failed!"), + COMMAND_CONVERTCONFIG_FAILCONFIGMISSING("&cPlease ensure you have placed SavageFactions files in a folder called SavageFactions"), + COMMAND_MODIFYPOWER_ADDED("&c&l[!]&7 Added &c%1$f &7power to &c%2$s. &7New total rounded power: &c%3$d"), COMMAND_MODIFYPOWER_DESCRIPTION("Modify the power of a faction/player"), @@ -1046,11 +1051,11 @@ public enum TL { /** * Roles */ - ROLE_LEADER("leader"), - ROLE_COLEADER("coleader"), - ROLE_MODERATOR("moderator"), - ROLE_NORMAL("normal member"), - ROLE_RECRUIT("recruit"), + ROLE_LEADER("Leader"), + ROLE_COLEADER("Co-Leader"), + ROLE_MODERATOR("Moderator"), + ROLE_NORMAL("Normal Member"), + ROLE_RECRUIT("Recruit"), /** * Region types. diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index a264af81..0110ed1d 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -25,6 +25,7 @@ permissions: factions.*: description: This is just an alias for factions.kit.admin children: + factions.convertconfig: true factions.kit.admin: true factions.kit.mod: description: All faction permissions but configuration and persistance.