package com.dengyu.mysql; import java.io.File; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitRunnable; public class Main extends JavaPlugin{ public static Main instance; private static FileConfiguration config; @Override public void onEnable() { if(!getDataFolder().exists()) { getDataFolder().mkdir(); } File file=new File(getDataFolder(),"config.yml"); if (!(file.exists())) { saveDefaultConfig(); } reloadConfig(); config = getConfig(); //以上为创建配置文件文件夹和配置文件 new BukkitRunnable() { @Override public void run() { MySQLManager.get().enableMySQL(); } }.runTaskAsynchronously(this); //利用BukkitRunnable创建新线程,防止使用SQL而堵塞主线程 } @Override public void onDisable() { MySQLManager.get().shutdown(); //断开连接 } @Override public boolean onCommand(CommandSender sender, Command command, String label, String as[]) { //处理指令的方法,每个方法都使用BukkitRunnable创建新线程 if (label.equalsIgnoreCase("ms")) { if (as[0].equalsIgnoreCase("add")) { new BukkitRunnable() { @Override public void run() { MySQLManager.get().insertData(as[1], as[2]); } }.runTaskAsynchronously(this); return true; } if (as[0].equalsIgnoreCase("del")) { new BukkitRunnable() { @Override public void run() { MySQLManager.get().deleteData(as[1]); } }.runTaskAsynchronously(this); return true; } if (as[0].equalsIgnoreCase("find")) { new BukkitRunnable() { @Override public void run() { MySQLManager.get().findData(as[1], sender); } }.runTaskAsynchronously(this); return true; } } return false; } //此方法忽略了权限问题,在对数据库进行操作的时候一定要考虑权限问题! public static String getConfigString(String path) { return config.getString(path); } public static int getConfigInt(String path) { return config.getInt(path); } }