Hallo,
Ik ben nu bezig met een bukkit plugin te maken voor een minecraft server,
Nu moet ik van alles opslaan (punten enz) maar het kijken of de tabellen bestaan lukt al niet...
in de main wordt er een andere class opgeroepen met dit regeltje in het onEnable event (als de plugin aangaat):
Sql.java:
Met deze code roep je een string in de database op als je je dat afvraagt:
ik krijg in de console deze errorlog:
Ik ben nu bezig met een bukkit plugin te maken voor een minecraft server,
Nu moet ik van alles opslaan (punten enz) maar het kijken of de tabellen bestaan lukt al niet...
in de main wordt er een andere class opgeroepen met dit regeltje in het onEnable event (als de plugin aangaat):
Code:
public void onEnable(){
this.getConfig().options().copyDefaults(true);
this.saveDefaultConfig();
cookcraft.Sql.startup();
}
Sql.java:
Code:
package cookcraft;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.plugin.java.JavaPlugin;
public class Sql extends JavaPlugin{
public static Main plugin;
public static Sql sql;
public Logger log = Logger.getLogger("Minecraft");
public Sql(Main instance) {
plugin = instance;
}
public static void startup(){
Connection conn = null;
java.sql.PreparedStatement verwerkspelertab = null;
java.sql.PreparedStatement verwerkpermstab = null;
ResultSet rs = null;
try {
String tabprefix = plugin.getConfig().getString("mysql.tableprefix");
String port = plugin.getConfig().getString("mysql.poort");
String database = plugin.getConfig().getString("mysql.database");
String host = plugin.getConfig().getString("mysql.hostname");
String db = "jdbc:mysql://" + host + ":" + port + "/" + database;
String username = plugin.getConfig().getString("mysql.gebruikersnaam");
String password = plugin.getConfig().getString("mysql.wachtwoord");
String driver = plugin.getConfig().getString("mysql.driver");
Class.forName(driver).newInstance();
String permtab = tabprefix + "permissies";
String spelertab = tabprefix + "spelers";
conn = DriverManager.getConnection(db, username, password);
String maakspelertab = "CREATE TABLE IF NOT EXISTS " + spelertab
+ "( `id` int(100) NOT NULL AUTO_INCREMENT,"
+ "`naam` varchar(100) NOT NULL,"
+ "`pp` int(100) NOT NULL DEFAULT '0',"
+ " PRIMARY KEY (`id`)";
verwerkspelertab = conn.prepareStatement(maakspelertab);
verwerkspelertab.executeQuery();
String maakpermstab = "CREATE TABLE IF NOT EXISTS " + permtab
+ "( `id` int(100) NOT NULL AUTO_INCREMENT,"
+ "`naam` varchar(100) NOT NULL,"
+ "`permissie` varchar(100) NOT NULL"
+ "`kosten` int(100) NOT NULL DEFAULT '3',"
+ " PRIMARY KEY (`id`)";
verwerkpermstab = conn.prepareStatement(maakpermstab);
verwerkpermstab.executeQuery();
} catch (Exception e) {
plugin.log.log(Level.SEVERE, "[JellyDonatie][Fatale error] Kan geen verbinding met de database maken! " + e);
} finally {
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (verwerkspelertab != null)
verwerkspelertab.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (verwerkpermstab != null)
verwerkpermstab.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Met deze code roep je een string in de database op als je je dat afvraagt:
Code:
plugin.getConfig().getString("mysql.tableprefix")
ik krijg in de console deze errorlog:
Code:
[SEVERE] Error occurred while enabling JellyDonatie v0.1 beta (Is it up to date?)
java.lang.NullPointerException
at cookcraft.Sql.startup(Sql.java:25)
at cookcraft.Main.onEnable(Main.java:18)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
at org.bukkit.craftbukkit.v1_4_6.CraftServer.loadPlugin(CraftServer.java:282)
at org.bukkit.craftbukkit.v1_4_6.CraftServer.enablePlugins(CraftServer.java:264)
at org.bukkit.craftbukkit.v1_4_6.CraftServer.reload(CraftServer.java:593)
at org.bukkit.Bukkit.reload(Bukkit.java:184)
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186)
at org.bukkit.craftbukkit.v1_4_6.CraftServer.dispatchCommand(CraftServer.java:514)
at org.bukkit.craftbukkit.v1_4_6.CraftServer.dispatchServerCommand(CraftServer.java:506)
at net.minecraft.server.v1_4_6.DedicatedServer.al(DedicatedServer.java:260)
at net.minecraft.server.v1_4_6.DedicatedServer.r(DedicatedServer.java:225)
at net.minecraft.server.v1_4_6.MinecraftServer.q(MinecraftServer.java:494)
at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:849)
Laatst bewerkt: