diff --git a/src/main/java/com/massivecraft/factions/FactionsPlugin.java b/src/main/java/com/massivecraft/factions/FactionsPlugin.java index c377316d..28c857b5 100755 --- a/src/main/java/com/massivecraft/factions/FactionsPlugin.java +++ b/src/main/java/com/massivecraft/factions/FactionsPlugin.java @@ -2,7 +2,6 @@ package com.massivecraft.factions; import ch.njol.skript.Skript; import ch.njol.skript.SkriptAddon; -import com.earth2me.essentials.Essentials; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import com.massivecraft.factions.cmd.CmdAutoHelp; @@ -189,7 +188,10 @@ public class FactionsPlugin extends MPlugin { } this.loadSuccessful = false; - saveDefaultConfig(); + if (!new File(this.getDataFolder() + "/config.yml").exists()) { + this.saveResource("config.yml", false); + this.reloadConfig(); + } //Attempt to generate a permission list PermissionList.generateFile(); @@ -266,7 +268,7 @@ public class FactionsPlugin extends MPlugin { this.getServer().getScheduler().runTaskTimer(this, CheckTask::cleanupTask, 0L, 1200L); this.getServer().getScheduler().runTaskTimerAsynchronously(this, new WeeWooTask(this), 600L, 600L); } - if(Conf.useDiscordSystem) { + if(Conf.useDiscordSystem && !Conf.discordBotToken.equals("")) { new FactionChatHandler(this); } else { System.out.println("\n\n\n SABER-FACTIONS-DISCORD-INTEGRATION - You are not using Discord integration features, set conf.json option useDiscordSystem to true and put a valid token in before using!\n\n\n"); diff --git a/src/main/java/com/massivecraft/factions/missions/MissionGUI.java b/src/main/java/com/massivecraft/factions/missions/MissionGUI.java index 03d90099..29ad38b6 100644 --- a/src/main/java/com/massivecraft/factions/missions/MissionGUI.java +++ b/src/main/java/com/massivecraft/factions/missions/MissionGUI.java @@ -14,10 +14,7 @@ import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; public class MissionGUI implements FactionGUI { private FactionsPlugin plugin; @@ -79,30 +76,39 @@ public class MissionGUI implements FactionGUI { if (configurationSection == null) { return; } + for (int fill = 0; fill < configurationSection.getInt("FillItem.Rows") * 9; ++fill) { + ItemStack fillItem = new ItemStack(XMaterial.matchXMaterial(configurationSection.getString("FillItem.Material")).parseItem()); + ItemMeta meta = fillItem.getItemMeta(); + meta.setDisplayName(""); + fillItem.setItemMeta(meta); + inventory.setItem(fill, fillItem); + } for (String key : configurationSection.getKeys(false)) { - ConfigurationSection section = configurationSection.getConfigurationSection(key); - int slot = section.getInt("Slot"); + if (!key.equals("FillItem")) { + ConfigurationSection section = configurationSection.getConfigurationSection(key); + int slot = section.getInt("Slot"); - ItemStack itemStack = XMaterial.matchXMaterial(section.getString("Material")).parseItem(); - ItemMeta itemMeta = itemStack.getItemMeta(); - itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', section.getString("Name"))); - List loreLines = new ArrayList<>(); - for (String line : section.getStringList("Lore")) { - loreLines.add(ChatColor.translateAlternateColorCodes('&', line)); + ItemStack itemStack = XMaterial.matchXMaterial(section.getString("Material")).parseItem(); + ItemMeta itemMeta = itemStack.getItemMeta(); + itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', section.getString("Name"))); + List loreLines = new ArrayList<>(); + for (String line : section.getStringList("Lore")) { + loreLines.add(ChatColor.translateAlternateColorCodes('&', line)); + } + if (fPlayer.getFaction().getMissions().containsKey(key)) { + Mission mission = fPlayer.getFaction().getMissions().get(key); + itemMeta.addEnchant(Enchantment.SILK_TOUCH, 1, true); + itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); + loreLines.add(""); + loreLines.add(plugin.color(plugin.getConfig().getString("Mission-Progress-Format") + .replace("{progress}", String.valueOf(mission.getProgress())) + .replace("{total}", String.valueOf(section.getConfigurationSection("Mission").get("Amount"))))); + } + itemMeta.setLore(loreLines); + itemStack.setItemMeta(itemMeta); + inventory.setItem(slot, itemStack); + slots.put(slot, key); } - if (fPlayer.getFaction().getMissions().containsKey(key)) { - Mission mission = fPlayer.getFaction().getMissions().get(key); - itemMeta.addEnchant(Enchantment.SILK_TOUCH, 1, true); - itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); - loreLines.add(""); - loreLines.add(plugin.color(plugin.getConfig().getString("Mission-Progress-Format") - .replace("{progress}", String.valueOf(mission.getProgress())) - .replace("{total}", String.valueOf(section.getConfigurationSection("Mission").get("Amount"))))); - } - itemMeta.setLore(loreLines); - itemStack.setItemMeta(itemMeta); - inventory.setItem(slot, itemStack); - slots.put(slot, key); } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 6981e90d..12441306 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -756,6 +756,9 @@ DenyMissionsMoreThenOnce: true #this setting to true, means that if they complet #Mission Types: KILL, MINE, PLACE, FISH, TAME, ENCHANT, CONSUME Missions: + FillItem: + Material: BLACK_STAINED_GLASS_PANE + Rows: 3 sugarcane: Slot: 11 Material: "SUGAR_CANE"