From cd43355d4c18e12f743092c31a765aaa8451cb1b Mon Sep 17 00:00:00 2001 From: Trent Hensler Date: Thu, 18 Jan 2018 00:25:00 -0800 Subject: [PATCH] Move kits to kits.yml (#1774) * Move kits to kits.yml We will now use a separate kits.yml file. Any kits that were defined in the config.yml will be migrated over to the kits.yml file automatically on startup. --- Essentials/kits.yml | 39 ++++++ .../com/earth2me/essentials/Essentials.java | 11 ++ .../essentials/EssentialsUpgrade.java | 29 +++++ .../com/earth2me/essentials/IEssentials.java | 3 +- .../com/earth2me/essentials/ISettings.java | 33 +++-- .../src/com/earth2me/essentials/Kit.java | 39 +----- .../src/com/earth2me/essentials/Kits.java | 114 ++++++++++++++++++ .../src/com/earth2me/essentials/Settings.java | 49 ++------ .../essentials/commands/Commandcreatekit.java | 2 +- .../essentials/commands/Commandkit.java | 8 +- .../essentials/commands/Commandshowkit.java | 3 +- .../earth2me/essentials/signs/SignKit.java | 2 +- Essentials/src/config.yml | 50 ++------ Essentials/src/kits.yml | 39 ++++++ 14 files changed, 286 insertions(+), 135 deletions(-) create mode 100644 Essentials/kits.yml create mode 100644 Essentials/src/com/earth2me/essentials/Kits.java create mode 100644 Essentials/src/kits.yml diff --git a/Essentials/kits.yml b/Essentials/kits.yml new file mode 100644 index 000000000..47c44cb3f --- /dev/null +++ b/Essentials/kits.yml @@ -0,0 +1,39 @@ +# EssentialsX new Kit configuration. +# If you don't have any kits defined in this file, the plugin will try to copy them from the config.yml + +# Note: All items MUST be followed by a quantity! +# All kit names should be lower case, and will be treated as lower in permissions/costs. +# Syntax: - itemID[:DataValue/Durability] Amount [Enchantment:Level].. [itemmeta:value]... +# For Item Meta information visit http://wiki.ess3.net/wiki/Item_Meta +# 'delay' refers to the cooldown between how often you can use each kit, measured in seconds. +# Set delay to -1 for a one time kit. +# For more information, visit http://wiki.ess3.net/wiki/Kits +kits: + tools: + delay: 10 + items: + - 272 1 + - 273 1 + - 274 1 + - 275 1 + dtools: + delay: 600 + items: + - 278 1 efficiency:1 durability:1 fortune:1 name:&4Gigadrill lore:The_drill_that_&npierces|the_heavens + - 277 1 digspeed:3 name:Dwarf lore:Diggy|Diggy|Hole + - 298 1 color:255,255,255 name:Top_Hat lore:Good_day,_Good_day + - 279:780 1 + notch: + delay: 6000 + items: + - 397:3 1 player:Notch + color: + delay: 6000 + items: + - 387 1 title:&4Book_&9o_&6Colors author:KHobbits lore:Ingame_color_codes book:Colors + firework: + delay: 6000 + items: + - 401 1 name:Angry_Creeper color:red fade:green type:creeper power:1 + - 401 1 name:Starry_Night color:yellow,orange fade:blue type:star effect:trail,twinkle power:1 + - 401 2 name:Solar_Wind color:yellow,orange fade:red shape:large effect:twinkle color:yellow,orange fade:red shape:ball effect:trail color:red,purple fade:pink shape:star effect:trail power:1 diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 3e7209fa1..69c9fafed 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -106,6 +106,7 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { private transient SpawnerProvider spawnerProvider; private transient SpawnEggProvider spawnEggProvider; private transient PotionMetaProvider potionMetaProvider; + private transient Kits kits; public Essentials() { } @@ -150,6 +151,7 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { confList = new ArrayList<>(); jails = new Jails(this); registerListeners(server.getPluginManager()); + kits = new Kits(this); } @Override @@ -193,6 +195,10 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { userMap = new UserMap(this); confList.add(userMap); execTimer.mark("Init(Usermap)"); + kits = new Kits(this); + confList.add(kits); + upgrade.convertKits(); + execTimer.mark("Kits"); upgrade.afterSettings(); execTimer.mark("Upgrade2"); warps = new Warps(getServer(), this.getDataFolder()); @@ -585,6 +591,11 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { return backup; } + @Override + public Kits getKits() { + return kits; + } + @Override public Metrics getMetrics() { return metrics; diff --git a/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java b/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java index d645a35b7..8a6b8201b 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java @@ -12,6 +12,7 @@ import org.bukkit.BanList; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; +import org.bukkit.configuration.ConfigurationSection; import java.io.*; import java.math.BigInteger; @@ -41,6 +42,34 @@ public class EssentialsUpgrade { doneFile.load(); } + public void convertKits() { + Kits kits = ess.getKits(); + EssentialsConf config = kits.getConfig(); + if (doneFile.getBoolean("kitsyml", false)) { + return; + } + + LOGGER.info("Attempting to convert old kits in config.yml to new kits.yml"); + + ConfigurationSection section = ess.getSettings().getKitSection(); + if (section == null) { + LOGGER.info("No kits found to migrate."); + return; + } + + Map legacyKits = ess.getSettings().getKitSection().getValues(true); + + for (Map.Entry entry : legacyKits.entrySet()) { + LOGGER.info("Converting " + entry.getKey()); + config.set("kits." + entry.getKey(), entry.getValue()); + } + + config.save(); + doneFile.setProperty("kitsyml", true); + doneFile.save(); + LOGGER.info("Done converting kits."); + } + private void moveMotdRulesToFile(String name) { if (doneFile.getBoolean("move" + name + "ToFile", false)) { return; diff --git a/Essentials/src/com/earth2me/essentials/IEssentials.java b/Essentials/src/com/earth2me/essentials/IEssentials.java index f1ea0ca3a..31a31808e 100644 --- a/Essentials/src/com/earth2me/essentials/IEssentials.java +++ b/Essentials/src/com/earth2me/essentials/IEssentials.java @@ -19,7 +19,6 @@ import java.util.Collection; import java.util.List; import java.util.UUID; - public interface IEssentials extends Plugin { void addReloadListener(IConf listener); @@ -62,6 +61,8 @@ public interface IEssentials extends Plugin { Backup getBackup(); + Kits getKits(); + Methods getPaymentMethod(); BukkitTask runTaskAsynchronously(Runnable run); diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index 8f6a3eaae..9557960e9 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -58,12 +58,27 @@ public interface ISettings extends IConf { Set getMuteCommands(); - Map getKit(String name); - + /** + * @Deprecated in favor of {@link Kits#getKits()} + */ + @Deprecated ConfigurationSection getKits(); + /** + * @Deprecated in favor of {@link Kits#getKit(String)} + */ + @Deprecated + Map getKit(String kit); + + /** + * @Deprecated in favor of {@link Kits#addKit(String, List, long)}} + */ + @Deprecated void addKit(String name, List lines, long delay); + @Deprecated + ConfigurationSection getKitSection(); + boolean isSkippingUsedOneTimeKitsFromKitList(); String getLocale(); @@ -243,7 +258,7 @@ public interface ISettings extends IConf { boolean isLastMessageReplyRecipient(); BigDecimal getMinimumPayAmount(); - + long getLastMessageReplyRecipientTimeout(); boolean isMilkBucketEasterEggEnabled(); @@ -255,13 +270,13 @@ public interface ISettings extends IConf { boolean isSpawnOnJoin(); List getSpawnOnJoinGroups(); - + boolean isUserInSpawnOnJoinGroup(IUser user); boolean isTeleportToCenterLocation(); boolean isCommandCooldownsEnabled(); - + long getCommandCooldownMs(String label); Entry getCommandCooldownEntry(String label); @@ -273,11 +288,11 @@ public interface ISettings extends IConf { NumberFormat getCurrencyFormat(); List getUnprotectedSignNames(); - + boolean isPastebinCreateKit(); - + boolean isAllowBulkBuySell(); - + boolean isAddingPrefixInPlayerlist(); boolean isAddingSuffixInPlayerlist(); @@ -287,4 +302,4 @@ public interface ISettings extends IConf { int getMotdDelay(); boolean isDirectHatAllowed(); -} +} \ No newline at end of file diff --git a/Essentials/src/com/earth2me/essentials/Kit.java b/Essentials/src/com/earth2me/essentials/Kit.java index aac3323e5..4d5a71493 100644 --- a/Essentials/src/com/earth2me/essentials/Kit.java +++ b/Essentials/src/com/earth2me/essentials/Kit.java @@ -7,18 +7,15 @@ import com.earth2me.essentials.textreader.IText; import com.earth2me.essentials.textreader.KeywordReplacer; import com.earth2me.essentials.textreader.SimpleTextInput; import com.earth2me.essentials.utils.DateUtil; -import com.earth2me.essentials.utils.NumberUtil; import net.ess3.api.IEssentials; import org.bukkit.Bukkit; import org.bukkit.Material; -import org.bukkit.configuration.ConfigurationSection; import org.bukkit.inventory.ItemStack; import java.math.BigDecimal; import java.util.*; import java.util.logging.Level; -import static com.earth2me.essentials.I18n.capitalCase; import static com.earth2me.essentials.I18n.tl; @@ -31,7 +28,7 @@ public class Kit { public Kit(final String kitName, final IEssentials ess) throws Exception { this.kitName = kitName; this.ess = ess; - this.kit = ess.getSettings().getKit(kitName); + this.kit = ess.getKits().getKit(kitName); this.charge = new Trade("kit-" + kitName, new Trade("kit-kit", ess), ess); if (kit == null) { @@ -39,40 +36,6 @@ public class Kit { } } - //TODO: Convert this to use one of the new text classes? - public static String listKits(final IEssentials ess, final User user) throws Exception { - try { - final ConfigurationSection kits = ess.getSettings().getKits(); - final StringBuilder list = new StringBuilder(); - for (String kitItem : kits.getKeys(false)) { - if (user == null) { - list.append(" ").append(capitalCase(kitItem)); - } else if (user.isAuthorized("essentials.kits." + kitItem.toLowerCase(Locale.ENGLISH))) { - String cost = ""; - String name = capitalCase(kitItem); - BigDecimal costPrice = new Trade("kit-" + kitItem.toLowerCase(Locale.ENGLISH), ess).getCommandCost(user); - if (costPrice.signum() > 0) { - cost = tl("kitCost", NumberUtil.displayCurrency(costPrice, ess)); - } - - Kit kit = new Kit(kitItem, ess); - double nextUse = kit.getNextUse(user); - if (nextUse == -1 && ess.getSettings().isSkippingUsedOneTimeKitsFromKitList()) { - continue; - } else if (nextUse != 0) { - name = tl("kitDelay", name); - } - - list.append(" ").append(name).append(cost); - } - } - return list.toString().trim(); - } catch (Exception ex) { - throw new Exception(tl("kitError"), ex); - } - - } - public String getName() { return kitName; } diff --git a/Essentials/src/com/earth2me/essentials/Kits.java b/Essentials/src/com/earth2me/essentials/Kits.java new file mode 100644 index 000000000..de38fb4d5 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/Kits.java @@ -0,0 +1,114 @@ +package com.earth2me.essentials; + +import com.earth2me.essentials.utils.NumberUtil; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.MemoryConfiguration; + +import java.io.File; +import java.math.BigDecimal; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import static com.earth2me.essentials.I18n.capitalCase; +import static com.earth2me.essentials.I18n.tl; + +public class Kits implements IConf { + + private final EssentialsConf config; + private ConfigurationSection kits; + + public Kits(final IEssentials essentials) { + config = new EssentialsConf(new File(essentials.getDataFolder(), "kits.yml")); + config.setTemplateName("/kits.yml"); + config.load(); + + kits = _getKits(); + } + + @Override + public void reloadConfig() { + kits = _getKits(); + } + + private ConfigurationSection _getKits() { + if (config.isConfigurationSection("kits")) { + final ConfigurationSection section = config.getConfigurationSection("kits"); + final ConfigurationSection newSection = new MemoryConfiguration(); + for (String kitItem : section.getKeys(false)) { + if (section.isConfigurationSection(kitItem)) { + newSection.set(kitItem.toLowerCase(Locale.ENGLISH), section.getConfigurationSection(kitItem)); + } + } + return newSection; + } + return null; + } + + public EssentialsConf getConfig() { + return config; + } + + public ConfigurationSection getKits() { + return kits; + } + + public Map getKit(String name) { + name = name.replace('.', '_').replace('/', '_'); + if (getKits() != null) { + final ConfigurationSection kits = getKits(); + // For some reason, YAML doesn't sees keys as always lowercase even if they aren't defined like that. + // Workaround is to toLowercase when getting from the config, but showing normally elsewhere. + // ODDLY ENOUGH when you get the configuration section for ALL kits, it will return the proper + // case of each kit. But when you check for each kit's configuration section, it won't return the kit + // you just found if you don't toLowercase it. + if (kits.isConfigurationSection(name.toLowerCase())) { + return kits.getConfigurationSection(name.toLowerCase()).getValues(true); + } else { + } + } + + return null; + } + + public void addKit(String name, List lines, long delay) { + // Will overwrite but w/e + config.set("kits." + name + ".delay", delay); + config.set("kits." + name + ".items", lines); + kits = _getKits(); + config.save(); + } + + public String listKits(final net.ess3.api.IEssentials ess, final User user) throws Exception { + try { + final ConfigurationSection kits = config.getConfigurationSection("kits"); + final StringBuilder list = new StringBuilder(); + for (String kitItem : kits.getKeys(false)) { + if (user == null) { + list.append(" ").append(capitalCase(kitItem)); + } else if (user.isAuthorized("essentials.kits." + kitItem.toLowerCase(Locale.ENGLISH))) { + String cost = ""; + String name = capitalCase(kitItem); + BigDecimal costPrice = new Trade("kit-" + kitItem.toLowerCase(Locale.ENGLISH), ess).getCommandCost(user); + if (costPrice.signum() > 0) { + cost = tl("kitCost", NumberUtil.displayCurrency(costPrice, ess)); + } + + Kit kit = new Kit(kitItem, ess); + double nextUse = kit.getNextUse(user); + if (nextUse == -1 && ess.getSettings().isSkippingUsedOneTimeKitsFromKitList()) { + continue; + } else if (nextUse != 0) { + name = tl("kitDelay", name); + } + + list.append(" ").append(name).append(cost); + } + } + return list.toString().trim(); + } catch (Exception ex) { + throw new Exception(tl("kitError"), ex); + } + + } +} diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index d924653d6..a91f88429 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -325,46 +325,24 @@ public class Settings implements net.ess3.api.ISettings { return config.getDouble("heal-cooldown", 0); } - private ConfigurationSection kits; - - private ConfigurationSection _getKits() { - if (config.isConfigurationSection("kits")) { - final ConfigurationSection section = config.getConfigurationSection("kits"); - final ConfigurationSection newSection = new MemoryConfiguration(); - for (String kitItem : section.getKeys(false)) { - if (section.isConfigurationSection(kitItem)) { - newSection.set(kitItem.toLowerCase(Locale.ENGLISH), section.getConfigurationSection(kitItem)); - } - } - return newSection; - } - return null; - } - @Override public ConfigurationSection getKits() { - return kits; + return ess.getKits().getKits(); } @Override public Map getKit(String name) { - name = name.replace('.', '_').replace('/', '_'); - if (getKits() != null) { - final ConfigurationSection kits = getKits(); - if (kits.isConfigurationSection(name)) { - return kits.getConfigurationSection(name).getValues(true); - } - } - return null; + return ess.getKits().getKit(name); } @Override public void addKit(String name, List lines, long delay) { - // Will overwrite but w/e - config.set("kits." + name + ".delay", delay); - config.set("kits." + name + ".items", lines); - kits = _getKits(); - config.save(); + ess.getKits().addKit(name, lines, delay); + } + + @Override + public ConfigurationSection getKitSection() { + return config.getConfigurationSection("kits"); } @Override @@ -516,7 +494,6 @@ public class Settings implements net.ess3.api.ISettings { itemSpawnBl = _getItemSpawnBlacklist(); loginAttackDelay = _getLoginAttackDelay(); signUsePerSecond = _getSignUsePerSecond(); - kits = _getKits(); chatFormats.clear(); changeDisplayName = _changeDisplayName(); disabledCommands = getDisabledCommands(); @@ -1202,7 +1179,7 @@ public class Settings implements net.ess3.api.ISettings { public boolean isSpawnOnJoin() { return !this.spawnOnJoinGroups.isEmpty(); } - + private List spawnOnJoinGroups; public List _getSpawnOnJoinGroups() { @@ -1241,7 +1218,7 @@ public class Settings implements net.ess3.api.ISettings { public boolean isTeleportToCenterLocation() { return config.getBoolean("teleport-to-center", true); } - + private Map commandCooldowns; private Map _getCommandCooldowns() { @@ -1268,10 +1245,10 @@ public class Settings implements net.ess3.api.ISettings { cmdEntry = cmdEntry.substring(1); } String cmd = cmdEntry - .replaceAll("\\*", ".*"); // Wildcards are accepted as asterisk * as known universally. + .replaceAll("\\*", ".*"); // Wildcards are accepted as asterisk * as known universally. pattern = Pattern.compile(cmd + "( .*)?"); // This matches arguments, if present, to "ignore" them from the feature. } - + /* ================================ * >> Process cooldown value * ================================ */ @@ -1439,4 +1416,4 @@ public class Settings implements net.ess3.api.ISettings { public boolean isDirectHatAllowed() { return config.getBoolean("allow-direct-hat", true); } -} +} \ No newline at end of file diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandcreatekit.java b/Essentials/src/com/earth2me/essentials/commands/Commandcreatekit.java index 6318eb31f..c0b103ff2 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandcreatekit.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandcreatekit.java @@ -72,7 +72,7 @@ public class Commandcreatekit extends EssentialsCommand { } // Some users might want to directly write to config knowing the consequences. *shrug* if (!ess.getSettings().isPastebinCreateKit()) { - ess.getSettings().addKit(kitname, list, delay); + ess.getKits().addKit(kitname, list, delay); user.sendMessage(tl("createdKit", kitname, list.size(), delay)); } else { ConfigurationSection config = new MemoryConfiguration(); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandkit.java b/Essentials/src/com/earth2me/essentials/commands/Commandkit.java index a46518d21..5779deff7 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandkit.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandkit.java @@ -23,7 +23,7 @@ public class Commandkit extends EssentialsCommand { @Override public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception { if (args.length < 1) { - final String kitList = Kit.listKits(ess, user); + final String kitList = ess.getKits().listKits(ess, user); user.sendMessage(kitList.length() > 0 ? tl("kits", kitList) : tl("noKits")); throw new NoChargeException(); } else if (args.length > 1 && user.isAuthorized("essentials.kit.others")) { @@ -39,7 +39,7 @@ public class Commandkit extends EssentialsCommand { @Override public void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception { if (args.length < 2) { - final String kitList = Kit.listKits(ess, null); + final String kitList = ess.getKits().listKits(ess, null); sender.sendMessage(kitList.length() > 0 ? tl("kits", kitList) : tl("noKits")); throw new NoChargeException(); } else { @@ -106,7 +106,7 @@ public class Commandkit extends EssentialsCommand { if (args.length == 1) { List options = new ArrayList<>(); // TODO: Move all of this to its own method - for (String kitName : ess.getSettings().getKits().getKeys(false)) { + for (String kitName : ess.getKits().getKits().getKeys(false)) { if (!user.isAuthorized("essentials.kits." + kitName)) { // Only check perm, not time or money continue; } @@ -123,7 +123,7 @@ public class Commandkit extends EssentialsCommand { @Override protected List getTabCompleteOptions(final Server server, final CommandSource sender, final String commandLabel, final String[] args) { if (args.length == 1) { - return new ArrayList<>(ess.getSettings().getKits().getKeys(false)); // TODO: Move this to its own method + return new ArrayList<>(ess.getKits().getKits().getKeys(false)); // TODO: Move this to its own method } else if (args.length == 2) { return getPlayers(server, sender); } else { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandshowkit.java b/Essentials/src/com/earth2me/essentials/commands/Commandshowkit.java index 24e28ae68..b280b02df 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandshowkit.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandshowkit.java @@ -2,7 +2,6 @@ package com.earth2me.essentials.commands; import com.earth2me.essentials.Kit; import com.earth2me.essentials.User; -import com.earth2me.essentials.Settings; import org.bukkit.Server; import java.util.ArrayList; @@ -37,7 +36,7 @@ public class Commandshowkit extends EssentialsCommand { @Override protected List getTabCompleteOptions(final Server server, final User user, final String commandLabel, final String[] args) { if (args.length == 1) { - return new ArrayList<>(ess.getSettings().getKits().getKeys(false)); // TODO: Move this to its own method + return new ArrayList<>(ess.getKits().getKits().getKeys(false)); // TODO: Move this to its own method } else { return Collections.emptyList(); } diff --git a/Essentials/src/com/earth2me/essentials/signs/SignKit.java b/Essentials/src/com/earth2me/essentials/signs/SignKit.java index d47110d97..a9e569283 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignKit.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignKit.java @@ -28,7 +28,7 @@ public class SignKit extends EssentialsSign { return false; } else { try { - ess.getSettings().getKit(kitName); + ess.getKits().getKit(kitName); } catch (Exception ex) { throw new SignException(ex.getMessage(), ex); } diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 860d364e8..c7223c195 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -15,6 +15,8 @@ # Version ${project.version}-b${build.number} +# KITS ARE NOW IN THE kits.yml FILE + ############################################################ # +------------------------------------------------------+ # # | Essentials (Global) | # @@ -279,42 +281,11 @@ player-commands: # removed from the /kit list when a player can no longer use it skip-used-one-time-kits-from-kit-list: false -# Note: All items MUST be followed by a quantity! -# All kit names should be lower case, and will be treated as lower in permissions/costs. -# Syntax: - itemID[:DataValue/Durability] Amount [Enchantment:Level].. [itemmeta:value]... -# For Item Meta information visit http://wiki.ess3.net/wiki/Item_Meta -# 'delay' refers to the cooldown between how often you can use each kit, measured in seconds. -# Set delay to -1 for a one time kit. -# For more information, visit http://wiki.ess3.net/wiki/Kits -kits: - tools: - delay: 10 - items: - - 272 1 - - 273 1 - - 274 1 - - 275 1 - dtools: - delay: 600 - items: - - 278 1 efficiency:1 durability:1 fortune:1 name:&4Gigadrill lore:The_drill_that_&npierces|the_heavens - - 277 1 digspeed:3 name:Dwarf lore:Diggy|Diggy|Hole - - 298 1 color:255,255,255 name:Top_Hat lore:Good_day,_Good_day - - 279:780 1 - notch: - delay: 6000 - items: - - 397:3 1 player:Notch - color: - delay: 6000 - items: - - 387 1 title:&4Book_&9o_&6Colors author:KHobbits lore:Ingame_color_codes book:Colors - firework: - delay: 6000 - items: - - 401 1 name:Angry_Creeper color:red fade:green type:creeper power:1 - - 401 1 name:Starry_Night color:yellow,orange fade:blue type:star effect:trail,twinkle power:1 - - 401 2 name:Solar_Wind color:yellow,orange fade:red shape:large effect:twinkle color:yellow,orange fade:red shape:ball effect:trail color:red,purple fade:pink shape:star effect:trail power:1 +# Determines the functionality of the /createkit command. +# If this is true, /createkit will give the user a link with the kit code. +# If this is false, /createkit will add the kit to the kits.yml config file directly. +# +pastebin-createkit: false # Essentials Sign Control # See http://wiki.ess3.net/wiki/Sign_Tutorial for instructions on how to use these. @@ -537,13 +508,6 @@ command-cooldown-persistence: true # NPC balances can include features like factions from FactionsUUID plugin. npcs-in-balance-ranking: false -# Determines the functionality of the /createkit command. -# If this is true, /createkit will give the user a link with the kit code. -# If this is false, /createkit will add the kit to this config file directly. -# -# WARNING: If this is false, the config comments WILL be removed and it won't look the same as it does now. -pastebin-createkit: true - # Allow bulk buying and selling signs when the player is sneaking. # This is useful when a sign sells or buys one item at a time and the player wants to sell a bunch at once. allow-bulk-buy-sell: true diff --git a/Essentials/src/kits.yml b/Essentials/src/kits.yml new file mode 100644 index 000000000..47c44cb3f --- /dev/null +++ b/Essentials/src/kits.yml @@ -0,0 +1,39 @@ +# EssentialsX new Kit configuration. +# If you don't have any kits defined in this file, the plugin will try to copy them from the config.yml + +# Note: All items MUST be followed by a quantity! +# All kit names should be lower case, and will be treated as lower in permissions/costs. +# Syntax: - itemID[:DataValue/Durability] Amount [Enchantment:Level].. [itemmeta:value]... +# For Item Meta information visit http://wiki.ess3.net/wiki/Item_Meta +# 'delay' refers to the cooldown between how often you can use each kit, measured in seconds. +# Set delay to -1 for a one time kit. +# For more information, visit http://wiki.ess3.net/wiki/Kits +kits: + tools: + delay: 10 + items: + - 272 1 + - 273 1 + - 274 1 + - 275 1 + dtools: + delay: 600 + items: + - 278 1 efficiency:1 durability:1 fortune:1 name:&4Gigadrill lore:The_drill_that_&npierces|the_heavens + - 277 1 digspeed:3 name:Dwarf lore:Diggy|Diggy|Hole + - 298 1 color:255,255,255 name:Top_Hat lore:Good_day,_Good_day + - 279:780 1 + notch: + delay: 6000 + items: + - 397:3 1 player:Notch + color: + delay: 6000 + items: + - 387 1 title:&4Book_&9o_&6Colors author:KHobbits lore:Ingame_color_codes book:Colors + firework: + delay: 6000 + items: + - 401 1 name:Angry_Creeper color:red fade:green type:creeper power:1 + - 401 1 name:Starry_Night color:yellow,orange fade:blue type:star effect:trail,twinkle power:1 + - 401 2 name:Solar_Wind color:yellow,orange fade:red shape:large effect:twinkle color:yellow,orange fade:red shape:ball effect:trail color:red,purple fade:pink shape:star effect:trail power:1