Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package basic.bukkit;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- public class main extends JavaPlugin implements Listener
- {
- public void onEnable() {
- getServer().getPluginManager().registerEvents(this,this);
- }
- public void disEnable() {
- }
- @EventHandler
- public void onPlayerJoin(PlayerJoinEvent e) {//玩家加入取得基本資料
- Player p = e.getPlayer();
- String name = p.getName();
- String uuid=p.getPlayer().getUniqueId().toString();
- String ip = e.getPlayer().getAddress().getHostString();
- setplayer(name,ip,uuid);
- }
- public void setplayer(String name,String ip,String uuid){ //建立玩家基本資料
- try{
- Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/minecraft?useSSL=false", "root", "pass");
- if(!Find("player","uid",uuid)){
- Statement stat = connection.createStatement();
- stat.executeUpdate( "INSERT INTO player(player_name,ipv4,uid) VALUES (" +" ' "+name+" ' "+", '"+ip+"' ,"+"'"+uuid+"'"+")");
- setplayermoney(name);
- }
- }
- catch(SQLException e1) {
- e1.printStackTrace();
- }
- }
- public void setplayermoney(String name) {//新增玩家初始金額
- try{
- Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/money?useSSL=false", "root", "pass");
- String date=getDateTime();
- Statement stat = connection.createStatement();
- stat.executeUpdate("CREATE TABLE " +name+ "(date datetime, pay integer,income integer,who char(20),Totalassets integer)");
- stat.executeUpdate("INSERT INTO"+" "+name+"(date,pay,income,who,Totalassets) VALUES (" +" ' "+date+" ' "+",0,0,"+" ' "+name+" ' ,"+50+")");
- }
- catch(SQLException e1) {
- e1.printStackTrace();
- }
- }
- public boolean Find(String x,String y,String z){//搜尋器
- try{
- Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/minecraft?useSSL=false", "root", "pass");
- Statement statement = connection.createStatement();
- ResultSet resultSet = null;
- String selectSql="SELECT * FROM "+ x + " WHERE "+ y+"= '"+z+" ' ";
- resultSet = statement.executeQuery(selectSql);
- boolean canFind = resultSet.next();
- return canFind;
- }catch(SQLException e){
- e.printStackTrace();
- return false;
- }
- }
- public String getDateTime(){//取得現在時間
- SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
- Date date = new Date();
- String strDate = sdFormat.format(date);
- //System.out.println(strDate);
- return strDate;
- }
- public boolean onCommand(CommandSender sender ,Command cmd,String cmdlable,String[] args)//指令庫
- {
- Player p = (Player) sender;
- if(cmdlable.equals("bal"))
- {
- bal(p);
- return true;
- }
- else if(cmdlable.equals("pay"))
- {
- p.sendMessage(args[0]);
- Player p2 = Bukkit.getPlayer(args[0]); //args[0]=玩家名字
- String income=args[1];
- if(p2==null) {//該玩家不存在
- p.sendMessage(ChatColor.RED+"該玩家不存在或是不再線上");
- }
- else
- {
- try{
- int changearg = Integer.parseInt(income);
- pay(p,p2,changearg);
- }catch(NumberFormatException e){
- p.sendMessage(ChatColor.RED+"輸入轉帳金額錯誤");
- }
- }
- return true;
- }
- return false;
- }
- public void bal(Player p) {//查詢金額
- try{
- Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/money?useSSL=false", "root", "pass");
- String query = "SELECT `Totalassets` FROM `"+p.getName()+"` ORDER BY date DESC LIMIT 0 , 1";
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(query);
- while (rs.next()) {
- int Totalassets= rs.getInt("Totalassets");
- p.sendMessage(ChatColor.GREEN+"您的帳戶總額:"+ChatColor.YELLOW+Totalassets);
- }
- rs.close();
- stmt.close();
- }
- catch(SQLException e1) {
- e1.printStackTrace();
- }
- }
- public void pay(Player p, Player p2, int income)//付款
- {
- try{
- Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/money?useSSL=false", "root", "pass");
- String query = "SELECT `Totalassets` FROM `"+p.getName()+"` ORDER BY date DESC LIMIT 0 , 1";
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(query);
- while (rs.next()) {
- int Totalassets= rs.getInt("Totalassets");
- if(Totalassets<income)
- {
- p.sendMessage(ChatColor.RED+"餘額不足");
- }
- else
- {
- String date=getDateTime();
- Totalassets-=income;
- stmt.executeUpdate("INSERT INTO"+" "+p.getName()+"(date,pay,income,who,Totalassets) VALUES (" +" ' "+date+" ' "+","+income+","+"0"+","+" ' "+p2.getName()+" ' ,"+Totalassets+")");
- pay2(p,p2,income);
- p.sendMessage(ChatColor.WHITE+"您像 "+p2.getName()+" 支付了 "+income+" 元");
- p.sendMessage(ChatColor.GREEN+"交易成功:已從 "+ChatColor.YELLOW+p.getName()+ChatColor.GREEN+" 的帳戶轉移 "+ChatColor.YELLOW+ income+ChatColor.GREEN+" 元 至 "+ChatColor.YELLOW+p2.getName()+ChatColor.GREEN+" 的帳戶");
- }
- }
- }
- catch(SQLException e1) {
- e1.printStackTrace();
- }
- }
- public void pay2(Player p, Player p2, int income)//付款
- {
- try{
- Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/money?useSSL=false", "root", "pass");
- String query = "SELECT `Totalassets` FROM `"+p2.getName()+"` ORDER BY date DESC LIMIT 0 , 1";
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(query);
- while (rs.next()) {
- String date=getDateTime();
- int Totalassets= rs.getInt("Totalassets");
- Totalassets+=income;
- stmt.executeUpdate("INSERT INTO"+" "+p2.getName()+"(date,pay,income,who,Totalassets) VALUES (" +" ' "+date+" ' "+",0,"+income+","+" ' "+p.getName()+" ' ,"+Totalassets+")");
- p.sendMessage(ChatColor.GREEN+"交易成功:已從 "+ChatColor.YELLOW+p.getName()+ChatColor.GREEN+" 的帳戶轉移 "+ChatColor.YELLOW+ income+ChatColor.GREEN+" 元 至 "+ChatColor.YELLOW+p2.getName()+ChatColor.GREEN+" 的帳戶");
- }
- }
- catch(SQLException e1) {
- e1.printStackTrace();
- }
- }
- }
Add Comment
Please, Sign In to add comment