File can not be null

Discussion in 'Plugin Development' started by Monkeyboystein, Feb 2, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    Monkeyboystein

    hey! im making this pig wars plugin (dont ask) and im having issues with getting it to actually work. ive been at this error for about an hour, can anyone shed some light? (oh and its missing a class on here but the class is useless, it just changes display names)
    Main Class:
    Code:java
    1. package monkeyboystein;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.Material;
    6. import org.bukkit.block.Sign;
    7. import org.bukkit.command.Command;
    8. import org.bukkit.command.CommandSender;
    9. import org.bukkit.entity.Pig;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.event.EventHandler;
    12. import org.bukkit.event.Listener;
    13. import org.bukkit.event.block.SignChangeEvent;
    14. import org.bukkit.event.entity.EntityDamageByEntityEvent;
    15. import org.bukkit.event.inventory.InventoryClickEvent;
    16. import org.bukkit.event.player.PlayerDropItemEvent;
    17. import org.bukkit.event.player.PlayerInteractEntityEvent;
    18. import org.bukkit.event.player.PlayerInteractEvent;
    19. import org.bukkit.inventory.Inventory;
    20. import org.bukkit.inventory.ItemStack;
    21. import org.bukkit.plugin.java.JavaPlugin;
    22. import org.bukkit.util.Vector;
    23. import sun.net.[URL='http://www.content.text.plain;']www.content.text.plain;[/URL]
    24.  
    25. import java.util.ArrayList;
    26. import java.util.List;
    27.  
    28. /**
    29. * Created by Andrew on 2/2/14.
    30. */
    31. public class DP extends JavaPlugin implements Listener{
    32. /*
    33. Multiple Games - Create arena function set arena function
    34. 10 players
    35. 5 to start
    36. */ public GameMechanics gameMechanics = null;
    37. public boolean enabled = false;
    38. public void onEnable()
    39. {
    40. getServer().getPluginManager().registerEvents(this, this);
    41. saveDefaultConfig();
    42. enabled = true;
    43. Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    44. @Override
    45. public void run() {
    46. startup();
    47. }
    48. }, 20);
    49. }
    50.  
    51.  
    52.  
    53. public void startup()
    54. {
    55. gameMechanics = new GameMechanics();
    56. saveConfig();
    57. reloadConfig();
    58. saveConfig();
    59. getLogger().info("startup");
    60. gameMechanics.join("Andrewcpu", "game_1");
    61. }
    62. public void openGames(Player player)
    63. {
    64. List<String> games = getConfig().getStringList("JoinableGames");
    65. int size = 9;
    66. int gamesX = 0;
    67. for(String s : games)
    68. {
    69. gamesX++;
    70. }
    71.  
    72. int count = 0;
    73. Inventory gamesXXX = Bukkit.createInventory(player, size, "Games");
    74.  
    75. for(String s : games)
    76. {
    77. count++;
    78. ItemStack itemStack = new ItemStack(Material.PAPER, count);
    79. gamesXXX.addItem(gameMechanics.itemStackCreator.setDisplayName("&bgame_" + gamesX, itemStack));
    80. }
    81. player.openInventory(gamesXXX);
    82. getLogger().info("open games");
    83. }
    84. @EventHandler
    85. public void onDrop(PlayerDropItemEvent event)
    86. {
    87. if(event.getItemDrop().getItemStack().getItemMeta().getDisplayName() == null)
    88. {
    89.  
    90. }
    91. else
    92. {
    93. if(getConfig().getStringList("JoinableGames").contains(ChatColor.stripColor(event.getItemDrop().getItemStack().getItemMeta().getDisplayName())))
    94. {
    95. String game = event.getItemDrop().getItemStack().getItemMeta().getDisplayName();
    96. gameMechanics.join(event.getPlayer().getName(), ChatColor.stripColor(game));
    97. }
    98. if(event.getItemDrop().getItemStack().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GOLD + "Pig Launcher"))
    99. {
    100. if(event.getPlayer().isInsideVehicle())
    101. {
    102.  
    103. gameMechanics.launch(event.getPlayer(), (Pig)event.getPlayer().getVehicle(), event.getPlayer().getLocation().getDirection());
    104. event.getItemDrop().remove();
    105. }
    106. }
    107. }
    108. }
    109. @EventHandler
    110. public void onSignDone(SignChangeEvent event)
    111. {
    112. if(event.getLine(0).equalsIgnoreCase("[Pig Wars]"))
    113. {
    114. event.setLine(0, ChatColor.LIGHT_PURPLE + "[Pig Wars]");
    115.  
    116. }
    117. }
    118. @EventHandler
    119. public void oninteract(PlayerInteractEvent event)
    120. {
    121. try
    122. {
    123. if(event.getClickedBlock().getType() == Material.WALL_SIGN || event.getClickedBlock().getType() == Material.SIGN_POST)
    124. {
    125. Sign sign = (Sign)event.getClickedBlock().getState();
    126. if(sign.getLine(0).equalsIgnoreCase(ChatColor.LIGHT_PURPLE + "[Pig Wars]"))
    127. {
    128. openGames(event.getPlayer());
    129. }
    130. }
    131. }catch(Exception ex){}
    132. }
    133. @EventHandler
    134. public void onDamage(EntityDamageByEntityEvent event)
    135. {
    136. if(event.getEntity() instanceof Pig)
    137. {
    138. event.setCancelled(true);
    139. }
    140. if(event.getDamager() instanceof Player)
    141. {
    142. Player d = (Player)event.getDamager();
    143. if(d.getItemInHand().getItemMeta().getDisplayName() == null)
    144. {
    145.  
    146. }
    147. else
    148. {
    149. if(d.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.RED + "Hitting Stick"))
    150. {
    151. if(event.getEntity() instanceof Player)
    152. {
    153. gameMechanics.hit((Player)event.getEntity(), getConfig().getString(((Player)event.getEntity()).getName()));
    154. }
    155.  
    156. }
    157. }
    158. }
    159. }
    160. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
    161. if(cmd.getName().equalsIgnoreCase("Pig")){
    162. if(args.length==0)
    163. {
    164. sender.sendMessage(gameMechanics.unknownCmd);
    165. return true;
    166. }
    167. if(args[0].equalsIgnoreCase("create"))
    168. {
    169. if(getConfig().isSet(args[1]))
    170. {
    171. sender.sendMessage(gameMechanics.header + "Name taken.");
    172. return true;
    173. }
    174. else
    175. {
    176. getConfig().set(args[1].toLowerCase(), true);
    177. List<String> games= getConfig().getStringList("JoinableGames");
    178. games.add(args[1].toLowerCase());
    179. getConfig().set("JoinableGames", games);
    180. saveConfig();
    181. reloadConfig();
    182. sender.sendMessage(gameMechanics.header + "Game created.");
    183. return true;
    184. }
    185. }
    186. if(args[0].equalsIgnoreCase("start"))
    187. {
    188. if(getConfig().getStringList("JoinableGames").contains(args[1]))
    189. {
    190. List<Player> players = new ArrayList<Player>();
    191. for(String s : getConfig().getStringList(args[1] + "_players"))
    192. {
    193. Player p = Bukkit.getPlayer(s);
    194. players.add(p);
    195. }
    196. gameMechanics.start(players, args[1]);
    197. }
    198. return true;
    199. }
    200. if(args[0].equalsIgnoreCase("addjoin"))
    201. {
    202. List<String> games= getConfig().getStringList("JoinableGames");
    203. games.add(args[1].toLowerCase());
    204. getConfig().set("JoinableGames", games);
    205. saveConfig();
    206. reloadConfig();
    207. return true;
    208. }
    209. if(args[0].equalsIgnoreCase("set"))
    210. {
    211. if(args[1].equalsIgnoreCase("lobby"))
    212. {
    213. //set
    214. Player player = (Player)sender;
    215. player.sendMessage(gameMechanics.header + "Set the lobby ");
    216. int x = Math.round((int)player.getLocation().getX());
    217. int y = Math.round((int)player.getLocation().getY());
    218. int z = Math.round((int)player.getLocation().getZ());
    219. getConfig().set("lobbyX", x);
    220. getConfig().set("lobbyY", y);
    221. getConfig().set("lobbyZ", z);
    222. saveConfig();
    223. reloadConfig();
    224.  
    225. return true;
    226. }
    227. else if(getConfig().isSet(args[1].toLowerCase()))
    228. {
    229. if(args[2].equalsIgnoreCase("start"))
    230. {
    231. Player player = (Player)sender;
    232. int x = Math.round((int)player.getLocation().getX());
    233. int y = Math.round((int)player.getLocation().getY());
    234. int z = Math.round((int)player.getLocation().getZ());
    235. getConfig().set(args[1].toLowerCase() + "_startX", x);
    236. getConfig().set(args[1].toLowerCase() + "_startY", y);
    237. getConfig().set(args[1].toLowerCase() + "_startZ", z);
    238. saveConfig();
    239. reloadConfig();
    240. player.sendMessage(gameMechanics.header + "Set the start for " + args[1]);
    241. return true;
    242.  
    243. }
    244. else
    245. {
    246. sender.sendMessage(gameMechanics.error);
    247. return true;
    248. }
    249. }
    250. else
    251. {
    252. sender.sendMessage(gameMechanics.header + "that plaec isnt set");
    253. return true;
    254. }
    255. }
    256.  
    257.  
    258. return true;
    259. }
    260. return false;
    261. }
    262. @EventHandler
    263. public void onClick(InventoryClickEvent event)
    264.  
    265. {
    266. getLogger().info("click");
    267. try
    268. {
    269. if(event.getInventory().getSize()==9)
    270. {
    271. if(event.getInventory().getTitle().equalsIgnoreCase(ChatColor.RED + "Classes"))
    272. {
    273. if(gameMechanics.selecting.contains(event.getWhoClicked()))
    274. {
    275. gameMechanics.giveItems((Player)event.getWhoClicked(), event.getCursor().getItemMeta().getDisplayName().replaceAll(" ", "_").toLowerCase());
    276. event.setCancelled(true);
    277. event.getWhoClicked().closeInventory();
    278. }
    279. }
    280. else if(event.getInventory().getTitle().equalsIgnoreCase( "Games"))
    281. {
    282. getLogger().info("games");
    283.  
    284.  
    285. String gameName = ChatColor.stripColor(event.getCurrentItem().getItemMeta().getDisplayName()).toString();
    286.  
    287. Player p = (Player)event.getWhoClicked();
    288. getLogger().info("b4join");
    289. gameMechanics.join(p.getName(), gameName);
    290. getLogger().info("join");
    291.  
    292.  
    293.  
    294. // String realName = getConfig().getString(gameName);
    295.  
    296.  
    297.  
    298. }
    299. event.setCancelled(true);
    300. }
    301. }catch(Exception ex){}
    302.  
    303. }
    304.  
    305. }
    306.  



    Game Mechanics:
    Code:java
    1. package monkeyboystein;
    2.  
    3. import org.bukkit.*;
    4. import org.bukkit.craftbukkit.libs.org.ibex.nestedvm.util.Platform;
    5. import org.bukkit.entity.EntityType;
    6. import org.bukkit.entity.Pig;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.inventory.Inventory;
    9. import org.bukkit.inventory.ItemStack;
    10. import org.bukkit.inventory.meta.ItemMeta;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12. import org.bukkit.util.Vector;
    13.  
    14. import java.util.ArrayList;
    15. import java.util.List;
    16.  
    17. /**
    18. * Created by Andrew on 2/2/14.
    19. */
    20. public class GameMechanics extends JavaPlugin {
    21. public String header = ChatColor.GRAY + "[" + ChatColor.LIGHT_PURPLE + "Pig Wars" + ChatColor.GRAY + "] " + ChatColor.WHITE;
    22. public String error = header + "Something went wrong!";
    23. public String unknownCmd = header + "That's not a valid command!";
    24. public String joinedGame = header + "The game has started!";
    25. public String enteredQ= header + "Joined the game lobby!";
    26. public List<Player> selecting = new ArrayList<Player>();
    27. public ItemStackCreator itemStackCreator = new ItemStackCreator();
    28. public void onEnable()
    29. {
    30.  
    31. }
    32. public void onDisable()
    33. {
    34.  
    35. }
    36. public void start(List<Player> players, String game)
    37. {
    38. if(!getConfig().isSet(game + "_startX"))
    39. {
    40. Bukkit.broadcastMessage(header + "That's not a valid game! You cant play a game that does'nt exist!");
    41. }
    42. else
    43. {
    44. int x = getConfig().getInt(game + "_startX");
    45. int y = getConfig().getInt(game + "_startY");
    46. int z = getConfig().getInt(game + "_startZ");
    47.  
    48. World world = Bukkit.getWorld(getConfig().getString(game + "_world"));
    49. for(Player player : players)
    50. {
    51. player.sendMessage(header + joinedGame);
    52. player.teleport(new Location(world, x, y, z));
    53. player.getInventory().addItem(itemStackCreator.setDisplayName("&cHitting Stick", new ItemStack(Material.STICK, 1)));
    54. getConfig().set(player.getName(), true);
    55. }
    56. openClass(players);
    57. List<String> games = getConfig().getStringList("JoinableGames");
    58. games.remove(game.toLowerCase());
    59. getConfig().set(game + "_j", false);
    60.  
    61. getConfig().set("JoinableGames", games);
    62. saveConfig();
    63. reloadConfig();
    64.  
    65. }
    66. getLogger().info("start");
    67.  
    68. }
    69. public void end(String game, String winner)
    70. {
    71. int x = getConfig().getInt( "lobbyX");
    72. int y = getConfig().getInt( "lobbyY");
    73. int z = getConfig().getInt( "lobbyZ");
    74. World world = Bukkit.getWorld(getConfig().getString(game + "_world"));
    75. for(String p : getConfig().getStringList(game + "_players"))
    76. {
    77. Player player = Bukkit.getPlayer(p);
    78. getConfig().set(player.getName(), false);
    79. if(winner.equalsIgnoreCase("null"))
    80. {
    81. player.sendMessage(header + "The game has just ended!");
    82. }
    83. else
    84. {
    85. player.sendMessage(header + "The game has just ended! " + winner + " has won!");
    86. }
    87.  
    88. player.teleport(new Location(world, x, y, z));
    89.  
    90. }
    91.  
    92.  
    93. List<String> games = getConfig().getStringList("JoinableGames");
    94. games.add(game.toLowerCase());
    95. getConfig().set(game + "_j", true);
    96. getConfig().set("JoinableGames", games);
    97. saveConfig();
    98. reloadConfig(); getLogger().info("end");
    99. }
    100. public void launch(Player p, Pig pig, Vector vector)
    101. {
    102. pig.setVelocity(vector);
    103. }
    104. public boolean isInGame(Player player)
    105. {
    106. if(getConfig().getBoolean(player.getName()))
    107. {
    108. return true;
    109. }
    110. else
    111. {
    112. return false;
    113. }
    114.  
    115.  
    116. }
    117. public void openClass(List<Player> players)
    118. {
    119.  
    120. for(Player player : players)
    121. {
    122. selecting.add(player);
    123. }
    124. Inventory i = Bukkit.createInventory(players.get(2), 9, ChatColor.RED + "Classes");
    125. ItemStack defaultClass = new ItemStack(Material.BLAZE_ROD, 1);
    126. i.addItem(itemStackCreator.setDisplayName("&5Default Class", defaultClass));
    127. for(Player player : selecting)
    128. {
    129. player.openInventory(i);
    130. }
    131. getLogger().info("openclass");
    132. }
    133. public void givePig(Player player)
    134. {
    135. Pig pig = (Pig)player.getWorld().spawnEntity(player.getLocation(), EntityType.PIG);
    136. pig.setPassenger(player);
    137. }
    138. public void giveItems(Player player, String classs)
    139. {
    140. if(classs.equalsIgnoreCase("default_class"))
    141. {
    142. ItemStack pigStick = new ItemStack(Material.BLAZE_ROD, 64);
    143. player.getInventory().addItem(itemStackCreator.setDisplayName("&6Pig Launcher", pigStick));
    144. }
    145. //DO GIVE ON ITEMS
    146.  
    147.  
    148. givePig(player);
    149. selecting.remove(player);
    150. }
    151. public void join(String ppp, String joinedGame)
    152. {
    153. Player player = Bukkit.getPlayer(ppp);
    154. //getLogger().info("Join1");
    155. List<String> gamePlayers = new ArrayList<String>();
    156. final List<Player> players = new ArrayList<Player>();
    157.  
    158. if(!getConfig().isSet(joinedGame + "_players"))
    159. {
    160. players.add(player);
    161. }
    162.  
    163. else
    164. {
    165. getLogger().info("Join2");
    166. for(String s : getConfig().getStringList(joinedGame + "_players"))
    167. {
    168. Player p = Bukkit.getPlayer(s);
    169. gamePlayers.add(p.getName());
    170. players.add(p);
    171. }
    172. }
    173. getLogger().info("Join3");
    174. gamePlayers.add(player.getName());
    175. getConfig().set(joinedGame + "_players", gamePlayers);
    176. getConfig().set(player.getName() + "_game", joinedGame);
    177. if(gamePlayers.size() > 5)
    178. {
    179. for(Player p: players)
    180. {
    181. p.sendMessage(header + "The game is starting in 15 seconds,");
    182. }
    183. final String joinedGamea = joinedGame;
    184. Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    185. @Override
    186. public void run() {
    187. start(players, joinedGamea);
    188. }
    189. }, 300);
    190.  
    191. }
    192. getLogger().info("join");
    193. saveConfig();
    194. reloadConfig();
    195. }
    196. public void hit(Player player, String game)
    197. {
    198. Inventory i = Bukkit.createInventory(player, 36);
    199. player.getVehicle().eject();
    200. player.getInventory().setContents(i.getContents());
    201. int x = getConfig().getInt( "lobbyX");
    202. int y = getConfig().getInt( "lobbyY");
    203. int z = getConfig().getInt( "lobbyZ");
    204. World world = Bukkit.getWorld(getConfig().getString(game + "_world"));
    205. player.teleport(new Location(world, x,y,z));
    206. }
    207. }
    208.  






    Error:
    Code:
    [19:56:37] [Server thread/ERROR]: Could not pass event PlayerDropItemEvent to PigWars v1.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:481) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:466) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.EntityHuman.a(EntityHuman.java:565) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.EntityHuman.a(EntityHuman.java:517) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:494) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.PacketPlayInBlockDig.a(SourceFile:53) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.PacketPlayInBlockDig.handle(SourceFile:8) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [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) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.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) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        at monkeyboystein.GameMechanics.join(GameMechanics.java:158) ~[?:?]
        at monkeyboystein.DP.onDrop(DP.java:96) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
        ... 15 more
    

    P.s. sorry if its not formatted correctly
     
  2. Offline

    _Filip

    Whenever I have this error, I just make a new module, or project, and copy all the classes into it. This usually works.
     
  3. Offline

    Monkeyboystein

    thanks

    Didnt work, anyone else have an idea?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 6, 2016
Thread Status:
Not open for further replies.

Share This Page