MySQL Error in all events.

Discussion in 'Plugin Development' started by Zumpz, Feb 17, 2013.

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

    Zumpz

    Hello, I tried to make a BlockProtect plugin with MySQL and I gets error every time, on ALL events. And yes, the connection with MySQL works.

    BlockProtect.java
    Show Spoiler

    Code:
    package me.MO;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
     
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.World;
    import org.bukkit.block.Block;
    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.block.BlockBreakEvent;
    import org.bukkit.event.block.BlockPlaceEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class BlockProtect extends JavaPlugin implements Listener {
    public static MO plugin;
     
     
     
    private boolean deleteBlock(Location loc) {
    double LX = loc.getX();
    double LY = loc.getY();
    double LZ = loc.getZ();
    World world = loc.getWorld();
    String search = LX + "-" + LY + "-" + LZ + "-" + world;
     
    try {
    Connection tilkobling = DriverManager.getConnection("jdbc:mysql://"+MO.Mysql_HOST+"/"+MO.Mysql_DATA, MO.Mysql_USER, MO.Mysql_PASS);
    PreparedStatement deleteQuery = tilkobling.prepareStatement("DELETE FROM protectedblocks WHERE location = ?");
    deleteQuery.setString(1, search);
    deleteQuery.executeQuery();
     
    return true;
    } catch(SQLException error) {
    getLogger().info("deleteBlock() at line 46: " + error);
    return false;
    }
     
     
    }
     
    private boolean checkBlock(Location loc, Player player){
     
    double LX = loc.getX();
    double LY = loc.getY();
    double LZ = loc.getZ();
    World world = loc.getWorld();
    String search = LX + "-" + LY + "-" + LZ + "-" + world;
     
    try {
    Connection tilkobling = DriverManager.getConnection("jdbc:mysql://"+MO.Mysql_HOST+"/"+MO.Mysql_DATA, MO.Mysql_USER, MO.Mysql_PASS);
    PreparedStatement checkQuery = tilkobling.prepareStatement("SELECT player FROM protectedblocks WHERE location = ?");
    checkQuery.setString(1, search);
    ResultSet resultat = checkQuery.executeQuery();
     
     
    String theOwner = resultat.getString("player");
    if(player.getName().equalsIgnoreCase(theOwner)){
    return true;
    } else {
    return false;
    }
     
    } catch(SQLException error) {
    getLogger().info("checkBlock() at line 75: " + error);
    return false;
    }
    }
     
    private boolean addBlock(Location loc, Player player) {
    String name = player.getName();
    double LX = loc.getX();
    double LY = loc.getY();
    double LZ = loc.getZ();
    World world = loc.getWorld();
    String search = LX + "-" + LY + "-" + LZ + "-" + world;
     
    try {
    Connection tilkobling = DriverManager.getConnection("jdbc:mysql://"+MO.Mysql_HOST+"/"+MO.Mysql_DATA, MO.Mysql_USER, MO.Mysql_PASS);
    PreparedStatement addblockQuery = tilkobling.prepareStatement("INSERT INTO protectedblocks VALUES('"+name+"', '"+search+"')");
    addblockQuery.executeQuery();
     
    return true;
    } catch(SQLException error) {
    getLogger().info("addBlock(): " + error);
    return false;
    }
     
     
    }
     
    private String stickCheck(Location loc){
     
    double LX = loc.getX();
    double LY = loc.getY();
    double LZ = loc.getZ();
    World world = loc.getWorld();
    String search = LX + "-" + LY + "-" + LZ + "-" + world;
     
    try {
    Connection tilkobling = DriverManager.getConnection("jdbc:mysql://"+MO.Mysql_HOST+"/"+MO.Mysql_DATA, MO.Mysql_USER, MO.Mysql_PASS);
    PreparedStatement checkQuery = tilkobling.prepareStatement("SELECT player FROM protectedblocks WHERE location = ?");
    checkQuery.setString(1, search);
    ResultSet resultat = checkQuery.executeQuery();
     
     
    String theOwner = resultat.getString("player");
    return theOwner;
     
    } catch(SQLException error) {
    getLogger().info("stickCheck(): " + error);
    return null;
    }
    }
     
    @EventHandler
    public void AdminStick(PlayerInteractEvent event){
    Player player = event.getPlayer();
    if(player.hasPermission("murstein.blockprotection.remove") || player.isOp()){
    Block targetblock = player.getTargetBlock(null, 0);
    Location location = targetblock.getLocation();
     
    if (event.getAction() == Action.RIGHT_CLICK_BLOCK){
    if (event.getItem().getType() == Material.STICK) {
    if(deleteBlock(location)){
    player.sendMessage(ChatColor.GREEN + "Blokkbeskyttelsen er borte");
    } else {
    player.sendMessage(ChatColor.RED + "MySQL spørring er feil. Kontakt stab med konsollrettigheter");
    }
    }
    }
    }
    }
     
    @EventHandler
    public void BlazeStick(PlayerInteractEvent event){
    Player player = event.getPlayer();
    if(player.hasPermission("murstein.blockprotection.remove") || player.isOp()){
    Block targetblock = player.getTargetBlock(null, 0);
    if (event.getAction() == Action.RIGHT_CLICK_BLOCK){
    if (event.getItem().getType() == Material.BLAZE_ROD) {
    player.sendMessage(ChatColor.GREEN + "Blokken er borte.");
    targetblock.setTypeId(0);
    }
    }
    }
    }
     
    @EventHandler
    public void BreakBlock(BlockBreakEvent event){
    Block block = event.getBlock();
    Location location = block.getLocation();
    Player player = event.getPlayer();
    if(checkBlock(location, player)){
    deleteBlock(location);
    } else {
    player.sendMessage(ChatColor.RED + stickCheck(location) + " eier denne blokken. Kontakt en vakt eller stab for å fjerne blokken.");
    event.setCancelled(true);
    }
    }
     
    @EventHandler
    public void PlaceBlock(BlockPlaceEvent event){
    Block block = event.getBlock();
    Location location = block.getLocation();
    Player player = event.getPlayer();
    if(block.getTypeId() != 6){
    if(addBlock(location, player)){
    // YEAH!!! DEN ER LAGT TIL :D
    } else {
    event.setCancelled(true);
    }
    }
     
    }
     
     
     
     
     
     
    }


    Console Errors: (All events)
    Show Spoiler

    21:03:31 [SEVERE] Could not pass event BlockPlaceEvent to MursteinORG v1.0
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
    at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:100)
    at net.minecraft.server.v1_4_R1.ItemBlock.processBlockPlace(ItemBlock.java:87)
    at net.minecraft.server.v1_4_R1.ItemBlock.interactWith(ItemBlock.java:72)
    at net.minecraft.server.v1_4_R1.ItemStack.placeItem(ItemStack.java:72)
    at net.minecraft.server.v1_4_R1.PlayerInteractManager.interact(PlayerInteractManager.java:392)
    at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:657)
    at net.minecraft.server.v1_4_R1.Packet15Place.handle(SourceFile:58)
    at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290)
    at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113)
    at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39)
    at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30)
    at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598)
    at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224)
    at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494)
    at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427)
    at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
    Caused by: java.lang.NullPointerException
    at me.MO.BlockProtect.addBlock(BlockProtect.java:98)
    at me.MO.BlockProtect.PlaceBlock(BlockProtect.java:181)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
    ... 19 more
    21:03:32 [SEVERE] Could not pass event BlockBreakEvent to MursteinORG v1.0
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
    at net.minecraft.server.v1_4_R1.PlayerInteractManager.breakBlock(PlayerInteractManager.java:282)
    at net.minecraft.server.v1_4_R1.PlayerInteractManager.dig(PlayerInteractManager.java:131)
    at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:564)
    at net.minecraft.server.v1_4_R1.Packet14BlockDig.handle(SourceFile:46)
    at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290)
    at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113)
    at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39)
    at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30)
    at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598)
    at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224)
    at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494)
    at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427)
    at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
    Caused by: java.lang.NullPointerException
    at me.MO.BlockProtect.checkBlock(BlockProtect.java:78)
    at me.MO.BlockProtect.BreakBlock(BlockProtect.java:167)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
    ... 16 more
    21:03:36 [SEVERE] Could not pass event PlayerInteractEvent to MursteinORG v1.0
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
    at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:178)
    at net.minecraft.server.v1_4_R1.PlayerInteractManager.interact(PlayerInteractManager.java:376)
    at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:657)
    at net.minecraft.server.v1_4_R1.Packet15Place.handle(SourceFile:58)
    at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290)
    at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113)
    at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39)
    at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30)
    at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598)
    at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224)
    at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494)
    at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427)
    at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
    Caused by: java.lang.NullPointerException
    at me.MO.BlockProtect.deleteBlock(BlockProtect.java:45)
    at me.MO.BlockProtect.AdminStick(BlockProtect.java:138)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
    ... 16 more

    Help me!
    - Zumpz
     
  2. Offline

    RainoBoy97

    The variable "plugin" is null, you need to initialise it with a constructor. (ps: jeg er også norsk)
     
  3. Offline

    Zumpz

    Forklar det på norsk da xD
     
  4. Offline

    RainoBoy97

    Ok, kan prøve.

    Akkurat nå, i koden din, så er "plugin" ingenting, du må si hva "plugin" er.

    I blocklistener klassen din, skriv
    Code:
    public MO plugin;
     
    public BlockProtect(MO instance){
        plugin = instance;
    }
    
    Når du registrerer evente i hovedklassen, bruk
    Code:
    this.getServer().getPluginManager().registerEvents(new BlockProtect(this), this);
    
    Det skal funke hvis du gjør dette :)
    Håper det hjalp ;)
    Si ifra om du trenger mer hjelp :p
     
  5. Offline

    Zumpz

    Får fortsatt feil
    // I get errors again :-P
     
  6. Offline

    RainoBoy97

    Åssen feil da? Stacktrace plox
     
  7. Offline

    Zumpz

    Code:
    21:27:15 [SEVERE] Could not pass event BlockBreakEvent to MursteinORG v1.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
        at net.minecraft.server.v1_4_R1.PlayerInteractManager.breakBlock(PlayerInteractManager.java:282)
        at net.minecraft.server.v1_4_R1.PlayerInteractManager.dig(PlayerInteractManager.java:131)
        at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:564)
        at net.minecraft.server.v1_4_R1.Packet14BlockDig.handle(SourceFile:46)
        at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290)
        at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113)
        at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39)
        at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30)
        at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598)
        at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224)
        at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494)
        at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427)
        at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
    Caused by: java.lang.NullPointerException
        at me.MO.BlockProtect.checkBlock(BlockProtect.java:79)
        at me.MO.BlockProtect.BreakBlock(BlockProtect.java:166)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        ... 16 more
    
     
  8. Offline

    RainoBoy97

    Kan jeg få linje 76 og 166 i BlockProtect.java?
     
  9. Offline

    Zumpz

    if(checkBlock(location, player)){ er Linje 166 og 76 er blank.
     
  10. Offline

    RainoBoy97

    Ops, mente 79 :p
     
  11. Offline

    Zumpz

    79: getLogger().info("checkBlock(): " + error);
     
  12. Offline

    RainoBoy97

    Noe er null i checkBlock(Location, Player); metoden, ser ikke hva akkurat nå
     
  13. Offline

    Zumpz

    Hvordan fikser jeg det.
    // how can i fix that
     
  14. Offline

    RainoBoy97

    En null check
    Code:
    if(something != null){
      //something is not null
    }else{
      //OMG ITS NULL HOLY SHEIT
    }
    
     
Thread Status:
Not open for further replies.

Share This Page