Error...

Discussion in 'Plugin Development' started by stazek, May 13, 2020.

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

    stazek

    Console error:
    Code:
    [15:12:08] [Server thread/INFO]: stazek issued server command: /setupquest
    [15:12:08] [Server thread/ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'setupquest' in plugin RPGPlugin v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[server.jar:git-Spigot-2040c4c-a1a705e]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) ~[server.jar:git-Spigot-2040c4c-a1a705e]
    at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:723) ~[server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.PlayerConnection.handleCommand(PlayerConnection.java:1658) ~[server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:1498) ~[server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) ~[server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18) [server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(SourceFile:144) [server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) [server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(SourceFile:118) [server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:918) [server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:911) [server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.awaitTasks(SourceFile:127) [server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.MinecraftServer.sleepForTick(MinecraftServer.java:895) [server.jar:git-Spigot-2040c4c-a1a705e]
    at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:828) [server.jar:git-Spigot-2040c4c-a1a705e]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_141]
    Caused by: java.lang.NullPointerException
    at me.stazek.poradnik.PoradnikJava.QUEST1(PoradnikJava.java:219) ~[?:?]
    at me.stazek.poradnik.PoradnikJava.onCommand(PoradnikJava.java:59) ~[?:?]
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[server.jar:git-Spigot-2040c4c-a1a705e]
    ... 17 more
    
    And my code:
    Code:java
    1.  
    2. package me.stazek.poradnik;
    3.  
    4. import org.bukkit.Bukkit;
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.Material;
    7. import org.bukkit.command.Command;
    8. import org.bukkit.command.CommandSender;
    9. import org.bukkit.enchantments.Enchantment;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.event.Listener;
    12. import org.bukkit.event.entity.EntityDeathEvent;
    13. import org.bukkit.inventory.Inventory;
    14. import org.bukkit.inventory.ItemStack;
    15. import org.bukkit.inventory.meta.ItemMeta;
    16. import org.bukkit.plugin.java.JavaPlugin;
    17. import org.jetbrains.annotations.NotNull;
    18. import org.json.simple.JSONObject;
    19. import org.json.simple.parser.JSONParser;
    20.  
    21. import java.io.File;
    22. import java.io.FileReader;
    23. import java.io.FileWriter;
    24. import java.util.ArrayList;
    25.  
    26. public class PoradnikJava extends JavaPlugin implements Listener{
    27. public String pluginFolder = getDataFolder().getAbsolutePath();
    28. ArrayList<String> zbr1lore = new ArrayList<>();
    29. @Overridepublic void onEnable() {
    30. Bukkit.getServer().getPluginManager().registerEvents(this,this);
    31. }
    32.  
    33. public boolean onCommand(@NotNull CommandSender sender,@NotNull Command cmd,@NotNull String alias,@NotNull String[] args) {
    34. if(alias.equals("kpzbrj")) {
    35. if (args[0].equalsIgnoreCase("1")) {
    36. KupZbr1((Player)sender);
    37. }
    38. if (args[0].equalsIgnoreCase("2")) {
    39. KupZbr2((Player)sender);
    40. }
    41. if (args[0].equalsIgnoreCase("3")) {
    42. KupZbr3((Player)sender);
    43. }
    44. if (args[0].equalsIgnoreCase("4")) {
    45. KupZbr4((Player)sender);
    46. //MainHand x = ((Player) sender).getMainHand(); //ItemStack y = new ItemStack(Material.DIAMOND_AXE); //if(x.equals(y)){}}
    47. if (args[0].equalsIgnoreCase("5")) {
    48. KupZbr5((Player)sender);
    49. }
    50. }
    51. if(alias.equalsIgnoreCase("q1vp")){
    52. QUEST1(((Player) sender));
    53. }
    54. if(alias.equalsIgnoreCase("setupquest")){
    55. writeJSON("JONATAN", sender.getName(), "JONATANENDED", "N");
    56. writeJSON("JONATAN", sender.getName(), "JONATANSTARTED", "N");
    57. QUEST1((Player) sender);
    58.  
    59. }
    60. return true;
    61. }
    62. public void KupZbr1(Player player){
    63. player.closeInventory();
    64. ItemStack zbr1 = new ItemStack(Material.LEATHER_CHESTPLATE);
    65. Inventory gui = Bukkit.createInventory(null, 9, ChatColor.GOLD + "Wez swoja zbroje wojowniku :)");
    66. //Zbroja pierwszaItemMeta zbr1Meta = zbr1.getItemMeta();
    67. zbr1Meta.setLore(null);
    68. zbr1Meta.setDisplayName(null);
    69. zbr1lore.add(ChatColor.DARK_BLUE + "Chyba nie myslales ze bedziesz biegal nago.");
    70. zbr1Meta.setDisplayName("SKORZANA TUNIKA ");
    71. zbr1Meta.setLore(zbr1lore);
    72. zbr1Meta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 1, true);
    73. zbr1Meta.isUnbreakable();
    74. zbr1.setItemMeta(zbr1Meta);
    75. gui.setItem(4, zbr1);
    76. player.openInventory(gui);
    77.  
    78. }
    79.  
    80. public void KupZbr2(Player player){
    81. //if(player.getInventory().getHelmet().getItemMeta().getDisplayName()==""){}player.closeInventory();
    82. ItemStack zbr1 = new ItemStack(Material.LEATHER_CHESTPLATE);
    83. Inventory gui = Bukkit.createInventory(null, 9, ChatColor.GOLD + "Wez swoja zbroje wojowniku :)");
    84. //Zbroja pierwszaItemMeta zbr1Meta = zbr1.getItemMeta();
    85. zbr1Meta.setLore(null);
    86. zbr1Meta.setDisplayName(null);
    87. zbr1lore.add(ChatColor.DARK_BLUE + "Teraz jestes juz jak");
    88. zbr1lore.add(ChatColor.DARK_BLUE + "najbardziej gotowy na starcie z potworami.");
    89. zbr1Meta.setDisplayName("MOCNA ZBROJA ZE SKORY");
    90. zbr1Meta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    91. zbr1Meta.isUnbreakable();
    92. zbr1Meta.setLore(zbr1lore);
    93. zbr1.setItemMeta(zbr1Meta);
    94. gui.setItem(4, zbr1);
    95. player.openInventory(gui);
    96.  
    97. }
    98.  
    99. public void KupZbr3(Player player){
    100. player.closeInventory();
    101. ItemStack zbr1 = new ItemStack(Material.GOLD_CHESTPLATE);
    102. Inventory gui = Bukkit.createInventory(null, 9, ChatColor.GOLD + "Wez swoja zbroje wojowniku :)");
    103. //Zbroja pierwszaItemMeta zbr1Meta = zbr1.getItemMeta();
    104. zbr1Meta.setLore(null);
    105. zbr1Meta.setDisplayName(null);
    106. zbr1lore.add(ChatColor.DARK_BLUE + "Persiwald byl jednym z pierwszych");
    107. zbr1lore.add(ChatColor.DARK_BLUE + "ktorzy odwazyli sie eksplorowac expowiska.");
    108. zbr1Meta.setDisplayName("NIEDOCENIONA ZBROJA PERSIWALDA");
    109. zbr1Meta.setLore(zbr1lore);
    110. zbr1Meta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 3, true);
    111. zbr1Meta.isUnbreakable();
    112. zbr1Meta.setLore(zbr1lore);
    113. zbr1.setItemMeta(zbr1Meta);
    114. gui.setItem(4, zbr1);
    115. player.openInventory(gui);
    116.  
    117. }
    118. public void KupZbr4(Player player){
    119. player.closeInventory();
    120. ItemStack zbr1 = new ItemStack(Material.GOLD_CHESTPLATE);
    121. Inventory gui = Bukkit.createInventory(null, 9, ChatColor.GOLD + "Wez swoja zbroje wojowniku :)");
    122. //Zbroja pierwszaItemMeta zbr1Meta = zbr1.getItemMeta();
    123. zbr1Meta.setLore(null);
    124. zbr1Meta.setDisplayName(null);
    125. zbr1lore.add(ChatColor.DARK_BLUE + "Handlarz plakal jak sprzedawal.");
    126. zbr1Meta.setDisplayName("LEPSZA ZLOTA ZBROJA");
    127. zbr1Meta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 4, true);
    128. zbr1Meta.isUnbreakable();
    129. zbr1Meta.setLore(zbr1lore);
    130. zbr1.setItemMeta(zbr1Meta);
    131. gui.setItem(4, zbr1);
    132. player.openInventory(gui);
    133.  
    134. }
    135. public void KupZbr5(Player player){
    136. player.closeInventory();
    137. ItemStack zbr1 = new ItemStack(Material.IRON_CHESTPLATE);
    138. Inventory gui = Bukkit.createInventory(null, 9, ChatColor.GOLD + "Wez swoja zbroje wojowniku :)");
    139. //Zbroja pierwszaItemMeta zbr1Meta = zbr1.getItemMeta();
    140. zbr1Meta.setLore(null);
    141. zbr1Meta.setDisplayName(null);
    142. zbr1lore.add(ChatColor.DARK_BLUE + "W takich zbrojach");
    143. zbr1lore.add(ChatColor.DARK_BLUE+" wystepowali zolnierze broniacy");
    144. zbr1lore.add(ChatColor.DARK_BLUE+"wolnych krain przed pustka...");
    145. zbr1lore.add(ChatColor.DARK_BLUE+" to zaszczyt nosic jedna z nich.");
    146. zbr1Meta.setDisplayName("DUMA RYCERSKOSCI");
    147. zbr1Meta.isUnbreakable();
    148. zbr1Meta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 5, true);
    149. zbr1Meta.setLore(zbr1lore);
    150. zbr1.setItemMeta(zbr1Meta);
    151. gui.setItem(4, zbr1);
    152. player.openInventory(gui);
    153.  
    154. }
    155. public void writeJSON(String fileName, String subPath, String object, String value) {
    156. JSONObject main = new JSONObject();
    157.  
    158. main.put(object, value);
    159.  
    160. try {
    161. File file = new File(pluginFolder + File.separator + subPath + fileName + ".json");
    162. File filePath = new File(pluginFolder + File.separator + subPath);
    163. filePath.mkdirs();
    164. if (!file.exists()) {
    165. file.createNewFile();
    166. }
    167. FileWriter fileWriter = new FileWriter(file);
    168. fileWriter.write(main.toJSONString());
    169. fileWriter.flush();
    170. fileWriter.close();
    171. } catch (Exception e) {}
    172. }
    173. public String readJSON(String fileName, String subPath, String object) {
    174. String var = null;
    175. try {
    176. JSONParser parser = new JSONParser();
    177.  
    178. File file = new File(pluginFolder + File.separator + subPath + fileName + ".json");
    179. Object obj = parser.parse(new FileReader(file));
    180.  
    181. JSONObject jsonObject = (JSONObject) obj;
    182.  
    183. var = (String) jsonObject.get(object);
    184.  
    185. } catch (Exception e) {}
    186. return var;
    187. }
    188.  
    189. public void MobDied(EntityDeathEvent e){
    190. if(e.getEntity().getKiller() instanceof Player){
    191. if(readJSON("JONATAN",e.getEntity().getName(),"JONATANSTARTED") == "T"){
    192. int x = Integer.parseInt(readJSON("JONTAN",e.getEntity().getName(),"MOBSKILLED"));
    193. int y = x+1;
    194. writeJSON("JONATAN",e.getEntity().getName(),"MOBSKILLED",Integer.toString(y));
    195. if(Integer.parseInt(readJSON("JONATAN",e.getEntity().getName(),"MOBSKILLED")) == 150){
    196. writeJSON("JONATAN",e.getEntity().getName(),"JONATANENDEN","T");
    197. e.getEntity().sendMessage(ChatColor.GOLD+"ZABILES 150 POTWOROW - WROC DO JONATANA");
    198. }
    199. }
    200. }
    201. }
    202. public void QUEST1(@NotNull Player player){
    203. if (readJSON("JONATAN",player.getName(),"JONATANSTARTED").equalsIgnoreCase("N")){
    204. player.sendMessage( ChatColor.GOLD + "[Ty]" +ChatColor.YELLOW +" Witaj, podobno szukasz osob chetnych do wziecia udzialu w twojej ekspedycji. Chcialbym do niej dolaczyc.");
    205. player.sendMessage(ChatColor.GOLD + "[Jonatan] "+ ChatColor.YELLOW + "Ciesze sie, jednak to niebezpieczna misja. Będziesz musial udowodnic swoja siłe na placu boju. Pozwole ci wstapic do mojej druzyny, po tym jak zabijesz 150 potworów.");
    206. player.sendMessage(ChatColor.GOLD + "[Ty] "+ChatColor.YELLOW + "Rozumiem wroce do ciebie niebawem.");
    207. player.sendMessage(ChatColor.DARK_RED + "Porada: aby pojawić się w lokacji w której wykonywać będziesz zlecenie Jonatana, kliknij na jego postać prawym przyciskiem myszy (jeśli zdecydujesz się wrócić na spawn, zawsze możesz teleportować się ponownie na lokacje potrzebną do wykonania tego zadania. Osiągniesz to klikając prawym przyciskiem myszy na postać Jonatana. Analogicznie działa teleportowanie do wszystkich lokacji związanych z questami).");
    208. writeJSON("JONATAN", player.getName(), "JONATANSTARTED", "T");
    209. writeJSON("JONATAN",player.getName(),"MOBSKILLED","0");
    210. }
    211. if (readJSON("JONATAN",player.getName(),"JONATANSTARTED").equalsIgnoreCase("T") && readJSON("JONATAN",player.getName(),"JONATANENDED") == "N"){
    212. Bukkit.getServer().dispatchCommand(getServer().getConsoleSender(), "/tp " + player.getName() + " 1 1 1");
    213. }
    214. }
    215. }
    216.  


    What should i change?
     
    Last edited by a moderator: May 13, 2020
  2. Online

    timtower Administrator Administrator Moderator

    @stazek Your error is on line 219, your code does not have that line...
    Is the posted code the same code as is in the server?
     
  3. Offline

    stazek

    On line 219 is "{".
    Code:
    public void QUEST1(@NotNull Player player){
    if (readJSON("JONATAN",player.getName(),"JONATANSTARTED").equalsIgnoreCase("N")){
    player.sendMessage( ChatColor.GOLD + "[Ty]" +ChatColor.YELLOW +" Witaj, podobno szukasz osob chetnych do wziecia udzialu w twojej ekspedycji. Chcialbym do niej dolaczyc.");
    player.sendMessage(ChatColor.GOLD + "[Jonatan] "+ ChatColor.YELLOW + "Ciesze sie, jednak to niebezpieczna misja. Będziesz musial udowodnic swoja siłe na placu boju. Pozwole ci wstapic do mojej druzyny, po tym jak zabijesz 150 potworów.");
    player.sendMessage(ChatColor.GOLD + "[Ty] "+ChatColor.YELLOW + "Rozumiem wroce do ciebie niebawem.");
    player.sendMessage(ChatColor.DARK_RED + "Porada: aby pojawić się w lokacji w której wykonywać będziesz zlecenie Jonatana, kliknij na jego postać prawym przyciskiem myszy (jeśli zdecydujesz się wrócić na spawn, zawsze możesz teleportować się ponownie na lokacje potrzebną do wykonania tego zadania. Osiągniesz to klikając prawym przyciskiem myszy na postać Jonatana. Analogicznie działa teleportowanie do wszystkich lokacji związanych z questami).");
    writeJSON("JONATAN", player.getName(), "JONATANSTARTED", "T");
    writeJSON("JONATAN",player.getName(),"MOBSKILLED","0");
    } <- 219
    if (readJSON("JONATAN",player.getName(),"JONATANSTARTED").equalsIgnoreCase("T") && readJSON("JONATAN",player.getName(),"JONATANENDED") == "N"){
    Bukkit.getServer().dispatchCommand(getServer().getConsoleSender(), "/tp " + player.getName() + " 1 1 1");
    }
    }
    }
    
     
  4. Online

    timtower Administrator Administrator Moderator

    @stazek That still does not matches the error.
     
  5. Offline

    stazek

    Why? What do you need to help me?
     
  6. Online

    timtower Administrator Administrator Moderator

    And why? Because there is nothing there what can throw the error.

    Full code in pastebin, in a way that is readable (so format it please)
    Full server log in pastebin.

    Make sure that you export and test the plugin before getting the log.
     
Thread Status:
Not open for further replies.

Share This Page