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);
}
}