my error Code: [19:57:58 ERROR]: Could not load 'plugins\NewFood.jar' in folder 'plugins' org.bukkit.plugin.InvalidPluginException: java.lang.IllegalArgumentException: Fi le cannot be null at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j ava:182) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager. java:308) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager .java:231) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugins(CraftServer.ja va:255) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.<init>(CraftServer.java:23 3) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.PlayerList.<init>(PlayerList.java:63) [c raftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.DedicatedPlayerList.<init>(SourceFile:14 ) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.init(DedicatedServer.jav a:126) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java :424) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:6 17) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] Caused by: java.lang.IllegalArgumentException: File cannot be null at org.apache.commons.lang.Validate.notNull(Validate.java:203) ~[craftbu kkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(Yam lConfiguration.java:171) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:118) ~ [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:112) ~[cr aftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at me.trevor.bukkit.NewFood.<init>(NewFood.java:21) ~[?:?] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_20] at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_20] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou rce) ~[?:1.8.0_20] at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_2 0] at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j ava:178) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] ... 9 more my class Code:java package me.trevor.bukkit; import org.bukkit.Bukkit;import org.bukkit.Material;import org.bukkit.entity.Player;import org.bukkit.event.EventHandler;import org.bukkit.event.Listener;import org.bukkit.event.block.Action;import org.bukkit.event.player.PlayerInteractEvent;import org.bukkit.plugin.java.JavaPlugin; import java.util.HashMap;import java.util.Map; public class NewFood extends JavaPlugin implements Listener { private Map<String, Long> lastUsageYellow = new HashMap<String, Long>(); private Map<String, Long> lastUsageOrange = new HashMap<String, Long>(); private Map<String, Long> lastUsageBone = new HashMap<String, Long>(); private Map<String, Long> lastUsageLapis = new HashMap<String, Long>(); private final int cdyellow = getConfig().getInt("cool-down-yellow"); private final int cdorange = getConfig().getInt("cool-down-orange"); private final int cdbone = getConfig().getInt("cool-down-bone-meal"); private final int cdlapis = getConfig().getInt("cool-down-lapis"); public void onEnable() { Bukkit.getPluginManager().registerEvents(this, this); saveDefaultConfig(); } @SuppressWarnings("deprecation") @EventHandler public void onClick(PlayerInteractEvent e) { if (e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.RIGHT_CLICK_AIR) { if (e.getClickedBlock().getType() == Material.INK_SACK) { Player p = e.getPlayer(); if (p.getHealth() != p.getMaxHealth()) { if (e.getClickedBlock().getData() == 4) { //lapis long lastUsed = 0; if (lastUsageLapis.containsKey(p.getName())) { lastUsed = lastUsageLapis.get(p.getName()); } int cdmillis10 = cdlapis * 1000; if (System.currentTimeMillis() - lastUsed >= cdmillis10) { // it works double pHealth = p.getHealth(); double pMaxHealth = p.getMaxHealth(); int pHeal = getConfig().getInt("heal-lapis"); if (pHealth + pHeal > pMaxHealth) { p.setHealth(pMaxHealth); } else { p.setFoodLevel(pHeal + (int) pHealth); } if (p.getItemInHand().getAmount() > 1) { p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1); } else { p.setItemInHand(null); } } else { int timeLeft = (int) (cdlapis - ((System.currentTimeMillis() - lastUsed) / 1000)); //player.sendMessage("This ability is on cooldown for you for another " + timeLeft + " seconds."); } } if (e.getClickedBlock().getData() == 11) { //yellow long lastUsed = 0; if (lastUsageYellow.containsKey(p.getName())) { lastUsed = lastUsageYellow.get(p.getName()); } int cdmillis10 = cdyellow * 1000; if (System.currentTimeMillis() - lastUsed >= cdmillis10) { // it works double pHealth = p.getHealth(); double pMaxHealth = p.getMaxHealth(); int pHeal = getConfig().getInt("heal-yellow"); if (pHealth + pHeal > pMaxHealth) { p.setHealth(pMaxHealth); } else { p.setFoodLevel(pHeal + (int) pHealth); } if (p.getItemInHand().getAmount() > 1) { p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1); } else { p.setItemInHand(null); } } else { int timeLeft = (int) (cdyellow - ((System.currentTimeMillis() - lastUsed) / 1000)); //player.sendMessage("This ability is on cooldown for you for another " + timeLeft + " seconds."); } } if (e.getClickedBlock().getData() == 14) { //orange long lastUsed = 0; if (lastUsageOrange.containsKey(p.getName())) { lastUsed = lastUsageOrange.get(p.getName()); } int cdmillis10 = cdorange * 1000; if (System.currentTimeMillis() - lastUsed >= cdmillis10) { // it works double pHealth = p.getHealth(); double pMaxHealth = p.getMaxHealth(); int pHeal = getConfig().getInt("heal-orange"); if (pHealth + pHeal > pMaxHealth) { p.setHealth(pMaxHealth); } else { p.setFoodLevel(pHeal + (int) pHealth); } if (p.getItemInHand().getAmount() > 1) { p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1); } else { p.setItemInHand(null); } } else { int timeLeft = (int) (cdorange - ((System.currentTimeMillis() - lastUsed) / 1000)); //player.sendMessage("This ability is on cooldown for you for another " + timeLeft + " seconds."); } } if (e.getClickedBlock().getData() == 15) { //bone meal long lastUsed = 0; if (lastUsageBone.containsKey(p.getName())) { lastUsed = lastUsageBone.get(p.getName()); } int cdmillis10 = cdbone * 1000; if (System.currentTimeMillis() - lastUsed >= cdmillis10) { // it works double pHealth = p.getHealth(); double pMaxHealth = p.getMaxHealth(); int pHeal = getConfig().getInt("heal-bone-meal"); if (pHealth + pHeal > pMaxHealth) { p.setHealth(pMaxHealth); } else { p.setFoodLevel(pHeal + (int) pHealth); } if (p.getItemInHand().getAmount() > 1) { p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1); } else { p.setItemInHand(null); } } else { int timeLeft = (int) (cdbone - ((System.currentTimeMillis() - lastUsed) / 1000)); //player.sendMessage("This ability is on cooldown for you for another " + timeLeft + " seconds."); } } } } } }} my config Code: cool-down-yellow: 5 heal-yellow: 5 cool-down-orange: 5 heal-orange: 5 cool-down-bone-meal: 5 heal-bone-meal: 5 cool-down-lapis: 5 heal-lapis: 5 my plugin.yml Code: name: NewFood version: 1.0.0 main: me.trevor.bukkit.NewFood author: 15987632 description: Adds new foods to minecraft with cooldowns
15987632 I believe what's happening here is that you're calling getConfig() before Bukkit creates the config.yml file. Try defining your ints in the onEnable() method and see if that fixes it.