Advertisement
Guest User

Untitled

a guest
Mar 16th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.46 KB | None | 0 0
  1. package basic.bukkit;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5.  
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9.  
  10. import java.text.SimpleDateFormat;
  11. import java.util.Date;
  12.  
  13. import org.bukkit.Bukkit;
  14. import org.bukkit.ChatColor;
  15. import org.bukkit.command.Command;
  16. import org.bukkit.command.CommandSender;
  17. import org.bukkit.entity.Player;
  18. import org.bukkit.event.EventHandler;
  19. import org.bukkit.event.Listener;
  20. import org.bukkit.event.player.PlayerJoinEvent;
  21. import org.bukkit.plugin.java.JavaPlugin;
  22.  
  23.  
  24.  
  25. public class main extends JavaPlugin implements Listener
  26. {
  27.  
  28. public void onEnable() {
  29. getServer().getPluginManager().registerEvents(this,this);
  30.  
  31. }
  32. public void disEnable() {
  33.  
  34.  
  35. }
  36. @EventHandler
  37. public void onPlayerJoin(PlayerJoinEvent e) {//玩家加入取得基本資料
  38. Player p = e.getPlayer();
  39.  
  40. String name = p.getName();
  41. String uuid=p.getPlayer().getUniqueId().toString();
  42. String ip = e.getPlayer().getAddress().getHostString();
  43. setplayer(name,ip,uuid);
  44.  
  45.  
  46.  
  47. }
  48.  
  49. public void setplayer(String name,String ip,String uuid){ //建立玩家基本資料
  50.  
  51.  
  52. try{
  53. Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/minecraft?useSSL=false", "root", "pass");
  54. if(!Find("player","uid",uuid)){
  55.  
  56. Statement stat = connection.createStatement();
  57. stat.executeUpdate( "INSERT INTO player(player_name,ipv4,uid) VALUES (" +" ' "+name+" ' "+", '"+ip+"' ,"+"'"+uuid+"'"+")");
  58. setplayermoney(name);
  59.  
  60.  
  61. }
  62.  
  63.  
  64. }
  65. catch(SQLException e1) {
  66. e1.printStackTrace();
  67. }
  68. }
  69. public void setplayermoney(String name) {//新增玩家初始金額
  70. try{
  71. Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/money?useSSL=false", "root", "pass");
  72.  
  73. String date=getDateTime();
  74.  
  75. Statement stat = connection.createStatement();
  76. stat.executeUpdate("CREATE TABLE " +name+ "(date datetime, pay integer,income integer,who char(20),Totalassets integer)");
  77.  
  78.  
  79. stat.executeUpdate("INSERT INTO"+" "+name+"(date,pay,income,who,Totalassets) VALUES (" +" ' "+date+" ' "+",0,0,"+" ' "+name+" ' ,"+50+")");
  80.  
  81.  
  82.  
  83.  
  84.  
  85. }
  86. catch(SQLException e1) {
  87. e1.printStackTrace();
  88. }
  89.  
  90. }
  91.  
  92. public boolean Find(String x,String y,String z){//搜尋器
  93. try{
  94. Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/minecraft?useSSL=false", "root", "pass");
  95. Statement statement = connection.createStatement();
  96. ResultSet resultSet = null;
  97. String selectSql="SELECT * FROM "+ x + " WHERE "+ y+"= '"+z+" ' ";
  98. resultSet = statement.executeQuery(selectSql);
  99.  
  100.  
  101.  
  102. boolean canFind = resultSet.next();
  103.  
  104. return canFind;
  105. }catch(SQLException e){
  106. e.printStackTrace();
  107. return false;
  108. }
  109. }
  110. public String getDateTime(){//取得現在時間
  111. SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
  112. Date date = new Date();
  113. String strDate = sdFormat.format(date);
  114. //System.out.println(strDate);
  115. return strDate;
  116. }
  117. public boolean onCommand(CommandSender sender ,Command cmd,String cmdlable,String[] args)//指令庫
  118. {
  119. Player p = (Player) sender;
  120. if(cmdlable.equals("bal"))
  121. {
  122. bal(p);
  123. return true;
  124. }
  125. else if(cmdlable.equals("pay"))
  126. {
  127. p.sendMessage(args[0]);
  128. Player p2 = Bukkit.getPlayer(args[0]); //args[0]=玩家名字
  129. String income=args[1];
  130.  
  131.  
  132. if(p2==null) {//該玩家不存在
  133. p.sendMessage(ChatColor.RED+"該玩家不存在或是不再線上");
  134. }
  135. else
  136. {
  137. try{
  138.  
  139. int changearg = Integer.parseInt(income);
  140.  
  141.  
  142.  
  143. pay(p,p2,changearg);
  144.  
  145. }catch(NumberFormatException e){
  146.  
  147. p.sendMessage(ChatColor.RED+"輸入轉帳金額錯誤");
  148. }
  149.  
  150. }
  151. return true;
  152. }
  153.  
  154. return false;
  155. }
  156.  
  157. public void bal(Player p) {//查詢金額
  158. try{
  159.  
  160. Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/money?useSSL=false", "root", "pass");
  161. String query = "SELECT `Totalassets` FROM `"+p.getName()+"` ORDER BY date DESC LIMIT 0 , 1";
  162. Statement stmt = connection.createStatement();
  163. ResultSet rs = stmt.executeQuery(query);
  164. while (rs.next()) {
  165. int Totalassets= rs.getInt("Totalassets");
  166. p.sendMessage(ChatColor.GREEN+"您的帳戶總額:"+ChatColor.YELLOW+Totalassets);
  167.  
  168. }
  169.  
  170. rs.close();
  171. stmt.close();
  172. }
  173. catch(SQLException e1) {
  174. e1.printStackTrace();
  175. }
  176.  
  177.  
  178. }
  179. public void pay(Player p, Player p2, int income)//付款
  180. {
  181. try{
  182.  
  183. Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/money?useSSL=false", "root", "pass");
  184. String query = "SELECT `Totalassets` FROM `"+p.getName()+"` ORDER BY date DESC LIMIT 0 , 1";
  185. Statement stmt = connection.createStatement();
  186. ResultSet rs = stmt.executeQuery(query);
  187. while (rs.next()) {
  188. int Totalassets= rs.getInt("Totalassets");
  189. if(Totalassets<income)
  190. {
  191. p.sendMessage(ChatColor.RED+"餘額不足");
  192. }
  193. else
  194. {
  195.  
  196. String date=getDateTime();
  197. Totalassets-=income;
  198. stmt.executeUpdate("INSERT INTO"+" "+p.getName()+"(date,pay,income,who,Totalassets) VALUES (" +" ' "+date+" ' "+","+income+","+"0"+","+" ' "+p2.getName()+" ' ,"+Totalassets+")");
  199. pay2(p,p2,income);
  200.  
  201. p.sendMessage(ChatColor.WHITE+"您像 "+p2.getName()+" 支付了 "+income+" 元");
  202. p.sendMessage(ChatColor.GREEN+"交易成功:已從 "+ChatColor.YELLOW+p.getName()+ChatColor.GREEN+" 的帳戶轉移 "+ChatColor.YELLOW+ income+ChatColor.GREEN+" 元 至 "+ChatColor.YELLOW+p2.getName()+ChatColor.GREEN+" 的帳戶");
  203.  
  204. }
  205.  
  206.  
  207. }
  208.  
  209.  
  210. }
  211. catch(SQLException e1) {
  212. e1.printStackTrace();
  213. }
  214.  
  215. }
  216. public void pay2(Player p, Player p2, int income)//付款
  217. {
  218. try{
  219.  
  220. Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/money?useSSL=false", "root", "pass");
  221. String query = "SELECT `Totalassets` FROM `"+p2.getName()+"` ORDER BY date DESC LIMIT 0 , 1";
  222. Statement stmt = connection.createStatement();
  223. ResultSet rs = stmt.executeQuery(query);
  224. while (rs.next()) {
  225. String date=getDateTime();
  226. int Totalassets= rs.getInt("Totalassets");
  227. Totalassets+=income;
  228. stmt.executeUpdate("INSERT INTO"+" "+p2.getName()+"(date,pay,income,who,Totalassets) VALUES (" +" ' "+date+" ' "+",0,"+income+","+" ' "+p.getName()+" ' ,"+Totalassets+")");
  229. p.sendMessage(ChatColor.GREEN+"交易成功:已從 "+ChatColor.YELLOW+p.getName()+ChatColor.GREEN+" 的帳戶轉移 "+ChatColor.YELLOW+ income+ChatColor.GREEN+" 元 至 "+ChatColor.YELLOW+p2.getName()+ChatColor.GREEN+" 的帳戶");
  230.  
  231. }
  232.  
  233.  
  234. }
  235. catch(SQLException e1) {
  236. e1.printStackTrace();
  237. }
  238.  
  239. }
  240.  
  241.  
  242.  
  243. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement