Seite 1 von 1

Scheduler Probleme (mit MySQL)

BeitragVerfasst: Mi 6. Apr 2016, 00:50
von Homerlator
Hallo ich habe ein kleines Probleme,
ich möchte mir ein kleines TopFünf Plugin Schreiben:

Bild


Wie man sieht funktioniert es wie soll nur die Konsole bekommt trotzdem Errors:

Code: Alles auswählen
  1. [01:47:25 WARN]: [SkyPvP] Task #126 for SkyPvP v2.0 generated an exception
  2. java.lang.NullPointerException
  3.         at me.homerlator.SkyPvP.Main.Main$1.run(Main.java:146) ~[?:?]
  4.         at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71) ~[spigot_server.jar:git-Spigot-76236cb-62a2169]
  5.         at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [spigot_server.jar:git-Spigot-76236cb-62a2169]
  6.         at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:723) [spigot_server.jar:git-Spigot-76236cb-62a2169]
  7.         at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot_server.jar:git-Spigot-76236cb-62a2169]
  8.         at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot_server.jar:git-Spigot-76236cb-62a2169]
  9.         at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot_server.jar:git-Spigot-76236cb-62a2169]
  10.         at java.lang.Thread.run(Thread.java:745) [?:1.8.0_74]


Das der Scheduler:

Code: Alles auswählen
  1.    public void setSkull(){
  2.       Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(){
  3.          @Override
  4.          public void run() {
  5.             if(Bukkit.getOnlinePlayers().length == 0){
  6.                return;
  7.             }
  8.             TopFive.set();
  9.             
  10.          }
  11.          
  12.       }, 0, 3 * 20);
  13.    }


Und das hier ist die Klasse wo die Köpfe und Schilder gesetzt werden:

Code: Alles auswählen
  1. package Methoden;
  2. import java.sql.ResultSet;
  3. import java.sql.SQLException;
  4. import java.util.ArrayList;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.Location;
  9. import org.bukkit.Material;
  10. import org.bukkit.SkullType;
  11. import org.bukkit.block.BlockFace;
  12. import org.bukkit.block.Sign;
  13. import org.bukkit.block.Skull;
  14. import MySQL.MySQL2;
  15. import MySQL.SQLStats2;
  16. import me.homerlator.SkyPvP.Main.Main;
  17. public class TopFive {
  18.    private static Main plugin;
  19.    public TopFive(Main main) {
  20.       plugin = main;
  21.    }
  22.    public static HashMap<Integer, String> rang = new HashMap<>();
  23.    public static void set() {
  24.       ResultSet rs = MySQL2.query("SELECT UUID From System ORDER BY KILLS DESC LIMIT 5");
  25.       int i = 0;
  26.       try {
  27.          while (rs.next()) {
  28.             i++;
  29.             rang.put(i, rs.getString("UUID"));
  30.          }
  31.       } catch (SQLException e) {
  32.       }
  33.       Location loc = new Location(Bukkit.getWorld("newSkyPvP"), 6, 99, 441);
  34.       Location loc2 = new Location(Bukkit.getWorld("newSkyPvP"), 6, 99, 440);
  35.       Location loc3 = new Location(Bukkit.getWorld("newSkyPvP"), 6, 99, 439);
  36.       Location loc4 = new Location(Bukkit.getWorld("newSkyPvP"), 6, 99, 438);
  37.       Location loc5 = new Location(Bukkit.getWorld("newSkyPvP"), 6, 99, 437);
  38.       List<Location> LOC = new ArrayList<>();
  39.       LOC.add(loc);
  40.       LOC.add(loc2);
  41.       LOC.add(loc3);
  42.       LOC.add(loc4);
  43.       LOC.add(loc5);
  44.       for (int in = 0; in < LOC.size(); in++) {
  45.          int id = in + 1;
  46.          LOC.get(in).getBlock().setType(Material.SKULL);
  47.          Skull s = (Skull) LOC.get(in).getBlock().getState();
  48.          s.setRotation(BlockFace.EAST);
  49.          s.setSkullType(SkullType.PLAYER);
  50.          String name = String.valueOf(0);
  51.          try {
  52.             ResultSet rs2 = MySQL2.query("SELECT * FROM System WHERE UUID= '" + rang.get(id) + "'");
  53.             if ((rs2.next()) && (String.valueOf(rs2.getString("NAME")) == null))
  54.                ;
  55.             name = String.valueOf(rs2.getString("NAME"));
  56.          } catch (SQLException e) {
  57.          }
  58.          s.setOwner(name);
  59.          s.update();
  60.          Location newloc = new Location(Bukkit.getWorld("newSkyPvP"), 6, 98, 441);
  61.          Location newloc2 = new Location(Bukkit.getWorld("newSkyPvP"), 6, 98, 440);
  62.          Location newloc3 = new Location(Bukkit.getWorld("newSkyPvP"), 6, 98, 439);
  63.          Location newloc4 = new Location(Bukkit.getWorld("newSkyPvP"), 6, 98, 438);
  64.          Location newloc5 = new Location(Bukkit.getWorld("newSkyPvP"), 6, 98, 437);
  65.          if (in == 0) {
  66.             Sign sign = (Sign) newloc.getBlock().getState();
  67.             sign.setLine(0, "§c" + name);
  68.             sign.setLine(1, null);
  69.             sign.setLine(2, "§6Kills: §e" + SQLStats2.getKills(rang.get(id)));
  70.             sign.setLine(3, "§6Tode: §e" + SQLStats2.getTode(rang.get(id)));
  71.             sign.update();
  72.          } else if (in == 1) {
  73.             Sign sign2 = (Sign) newloc2.getBlock().getState();
  74.             sign2.setLine(0, "§c" + name);
  75.             sign2.setLine(1, null);
  76.             sign2.setLine(2, "§6Kills: §e" + SQLStats2.getKills(rang.get(id)));
  77.             sign2.setLine(3, "§6Tode: §e" + SQLStats2.getTode(rang.get(id)));
  78.             sign2.update();
  79.          } else if (in == 2) {
  80.             Sign sign3 = (Sign) newloc3.getBlock().getState();
  81.             sign3.setLine(0, "§c" + name);
  82.             sign3.setLine(1, null);
  83.             sign3.setLine(2, "§6Kills: §e" + SQLStats2.getKills(rang.get(id)));
  84.             sign3.setLine(3, "§6Tode: §e" + SQLStats2.getTode(rang.get(id)));
  85.             sign3.update();
  86.          } else if (in == 3) {
  87.             Sign sign4 = (Sign) newloc4.getBlock().getState();
  88.             sign4.setLine(0, "§c" + name);
  89.             sign4.setLine(1, null);
  90.             sign4.setLine(2, "§6Kills: §e" + SQLStats2.getKills(rang.get(id)));
  91.             sign4.setLine(3, "§6Tode: §e" + SQLStats2.getTode(rang.get(id)));
  92.             sign4.update();
  93.          } else if (in == 4) {
  94.             Sign sign5 = (Sign) newloc5.getBlock().getState();
  95.             sign5.setLine(0, "§c" + name);
  96.             sign5.setLine(1, null);
  97.             sign5.setLine(2, "§6Kills: §e" + SQLStats2.getKills(rang.get(id)));
  98.             sign5.setLine(3, "§6Tode: §e" + SQLStats2.getTode(rang.get(id)));
  99.             sign5.update();
  100.          }
  101.       }
  102.    }
  103. }


Danke schonmal für die Antworten :)
MFG Homerlator

Re: Scheduler Probleme (mit MySQL)

BeitragVerfasst: Mi 6. Apr 2016, 08:53
von Letsplaybar
Laut fehler Code ist der Fehler in der Main Zeile 146
Und ist da weil null rauskommt. Da er vorher nicht auftritt vermute ich das es ein variablen Fehler sein könnte

Re: Scheduler Probleme (mit MySQL)

BeitragVerfasst: Sa 9. Apr 2016, 19:16
von Homerlator
Ok Danke hab es herausgefunden :D