From e4ca6b4e3bf24cd806cd251b48926369f4db3b6c Mon Sep 17 00:00:00 2001
From: yaohunya <31456652@qq.com>
Date: Tue, 16 Jul 2024 22:58:42 +0800
Subject: [PATCH] firt
---
.gitignore | 6 ++
.idea/artifacts/AuLiveCodeMysql.xml | 8 ++
README.md | 8 ++
pom.xml | 31 ++++++
src/main/java/com/yaohun/aulivecode/Main.java | 45 ++++++++
.../yaohun/aulivecode/database/MegumiSQL.java | 13 +++
.../aulivecode/database/SqlManager.java | 72 +++++++++++++
.../com/yaohun/aulivecode/util/SqlUtil.java | 102 ++++++++++++++++++
src/main/resources/config.yml | 0
src/main/resources/plugin.yml | 5 +
10 files changed, 290 insertions(+)
create mode 100644 .gitignore
create mode 100644 .idea/artifacts/AuLiveCodeMysql.xml
create mode 100644 README.md
create mode 100644 pom.xml
create mode 100644 src/main/java/com/yaohun/aulivecode/Main.java
create mode 100644 src/main/java/com/yaohun/aulivecode/database/MegumiSQL.java
create mode 100644 src/main/java/com/yaohun/aulivecode/database/SqlManager.java
create mode 100644 src/main/java/com/yaohun/aulivecode/util/SqlUtil.java
create mode 100644 src/main/resources/config.yml
create mode 100644 src/main/resources/plugin.yml
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ec3deeb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+/.idea/.gitignore
+/.idea/misc.xml
+/.idea/modules.xml
+/.idea/vcs.xml
+/.idea/jarRepositories.xml
+/.idea/compiler.xml
diff --git a/.idea/artifacts/AuLiveCodeMysql.xml b/.idea/artifacts/AuLiveCodeMysql.xml
new file mode 100644
index 0000000..6c971b7
--- /dev/null
+++ b/.idea/artifacts/AuLiveCodeMysql.xml
@@ -0,0 +1,8 @@
+
+
+ $PROJECT_DIR$/out/artifacts/AuLiveCodeMysql
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..dd8b1bd
--- /dev/null
+++ b/README.md
@@ -0,0 +1,8 @@
+# AuLiveCodeMysql
+
+蔚来传媒遂宁公司专用直播监控插件
+
+监听内容:
+ - 直播间礼物流水
+ - 观众聊天记录
+ -
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..01ab6a0
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,31 @@
+
+
+ 4.0.0
+
+ com.yaohun.aulivecode.Main
+ AuLiveCodeMysql
+ 1.0-SNAPSHOT
+
+
+ 8
+ 8
+
+
+
+
+ public-rpg
+ https://repo.aurora-pixels.com/repository/public-rpg/
+
+
+
+
+
+ org.spigotmc
+ spigot-api
+ 1.12.2
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/yaohun/aulivecode/Main.java b/src/main/java/com/yaohun/aulivecode/Main.java
new file mode 100644
index 0000000..bbdc7f7
--- /dev/null
+++ b/src/main/java/com/yaohun/aulivecode/Main.java
@@ -0,0 +1,45 @@
+package com.yaohun.aulivecode;
+
+import com.yaohun.aulivecode.database.SqlManager;
+import com.yaohun.aulivecode.util.SqlUtil;
+import org.bukkit.Bukkit;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.plugin.java.JavaPlugin;
+
+public class Main extends JavaPlugin {
+
+ public static Main plugin;
+ public static SqlUtil sqlUtil;
+ public static SqlManager sqlManager;
+
+ @Override
+ public void onEnable() {
+ plugin = this;
+ sqlManager = new SqlManager();
+ LinkMySqlData();
+ }
+
+ public void LinkMySqlData(){
+ String SQL_Host = "gz-cdb-r9koldtt.sql.tencentcdb.com";
+ String SQL_Port = "29320";
+ String SQL_Users = "root";
+ String SQL_Password = "Pixel@123456";
+ String SQL_Database = "wllivestats";
+ sqlUtil = new SqlUtil(SQL_Host,SQL_Port,SQL_Database,SQL_Users,SQL_Password);
+ sqlManager.createTable();
+ Bukkit.getConsoleSender().sendMessage("[直播数据] 数据库已连接.");
+ }
+
+ @Override
+ public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
+ if(args.length == 3 && args[0].equalsIgnoreCase("create") && sender.isOp()){
+ String zhubo = args[1];
+ String liveId = args[2];
+ sqlManager.createAnchorProfile(zhubo,liveId);
+ sender.sendMessage("[直播数据] 正在创建主播档案.");
+ }
+ return false;
+ }
+
+}
diff --git a/src/main/java/com/yaohun/aulivecode/database/MegumiSQL.java b/src/main/java/com/yaohun/aulivecode/database/MegumiSQL.java
new file mode 100644
index 0000000..3fd55b8
--- /dev/null
+++ b/src/main/java/com/yaohun/aulivecode/database/MegumiSQL.java
@@ -0,0 +1,13 @@
+package com.yaohun.aulivecode.database;
+
+import java.sql.Connection;
+
+public abstract class MegumiSQL {
+ public abstract void openConnection();
+
+ public abstract boolean checkConnection();
+
+ public abstract Connection getConnection();
+
+ public abstract void closeConnection();
+}
diff --git a/src/main/java/com/yaohun/aulivecode/database/SqlManager.java b/src/main/java/com/yaohun/aulivecode/database/SqlManager.java
new file mode 100644
index 0000000..1539da0
--- /dev/null
+++ b/src/main/java/com/yaohun/aulivecode/database/SqlManager.java
@@ -0,0 +1,72 @@
+package com.yaohun.aulivecode.database;
+
+import com.yaohun.aulivecode.Main;
+import com.yaohun.aulivecode.util.SqlUtil;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+
+import java.sql.ResultSet;
+import java.util.*;
+
+public class SqlManager {
+
+
+ public String table = "zhubo_data";
+
+ // 创建数据库表格格式
+ public void createTable() {
+ // 数据库结构组成
+ // 主播名字(VARCHAR) 抖音号(VARCHAR) 直播流水(VARCHAR) 运营礼物(VARCHAR)
+ String s = "CREATE TABLE IF NOT EXISTS "+table+"(" +
+ " zhubo VARCHAR(32) NOT NULL," +
+ " tiktok VARCHAR(32) NOT NULL," +
+ " giftspectator INT NOT NULL," +
+ " giftadmini INT NOT NULL," +
+ " PRIMARY KEY(id)" +
+ ") ENGINE = InnoDB";
+ getSQL().openConnection();
+ getSQL().updateSQL(s);
+ getSQL().closeConnection();
+ }
+
+ // 创建主播档案数据
+ public void createAnchorProfile(String zhubo,String tiktok){
+ // MySQL.update("INSERT INTO "+ table+" VALUES ('" + p.getName() + "','" + p.getUniqueId() + "','默认','默认');");
+ String set = "INSERT INTO "+table+" (`zhubo`, `tiktok`, `giftspectator`, `giftadmini`) VALUES ('%zhubo%', '%tiktok%', '%giftspectator%', '%giftadmini%')";
+ getSQL().openConnection();
+ set = set.replace("%zhubo%", zhubo).replace("%tiktok%", tiktok);
+ List integers = new ArrayList<>();
+ for (int i = 1;i <= 31;i++){
+ integers.add(i);
+ }
+ StringJoiner joiner = new StringJoiner(",");
+ for (int s : integers) {
+ joiner.add(String.valueOf(s));
+ }
+ set = set.replace("%giftspectator%", joiner.toString());
+ set = set.replace("%giftadmini%", joiner.toString());
+ getSQL().updateSQL(set);
+ getSQL().closeConnection();
+ Bukkit.getConsoleSender().sendMessage("§6[主播数据] §a主播档案创建。");
+ }
+
+ public int getPlayerData(String playerName) {
+ String select = "SELECT * FROM recharge WHERE player = '%playerName%'";
+ try {
+ getSQL().openConnection();
+ ResultSet set = getSQL().querySQL(select.replace("%playerName%", playerName));
+ if (set.next()) {
+ return set.getInt("point");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ getSQL().closeConnection();
+ }
+ return -1;
+ }
+
+ private SqlUtil getSQL() {
+ return Main.sqlUtil;
+ }
+}
diff --git a/src/main/java/com/yaohun/aulivecode/util/SqlUtil.java b/src/main/java/com/yaohun/aulivecode/util/SqlUtil.java
new file mode 100644
index 0000000..967e302
--- /dev/null
+++ b/src/main/java/com/yaohun/aulivecode/util/SqlUtil.java
@@ -0,0 +1,102 @@
+package com.yaohun.aulivecode.util;
+
+import com.yaohun.aulivecode.database.MegumiSQL;
+
+import java.sql.*;
+
+public class SqlUtil extends MegumiSQL {
+ private final String hostname;
+ private final String port;
+ private final String database;
+ private final String username;
+ private final String password;
+ private Connection connection;
+
+ public SqlUtil(String hostname, String port, String database, String username, String password) {
+ this.hostname = hostname;
+ this.port = port;
+ this.database = database;
+ this.username = username;
+ this.password = password;
+ this.connection = null;
+ }
+
+ @Override
+ public void openConnection() {
+ try {
+ Class.forName("com.mysql.jdbc.Driver");
+ this.connection = DriverManager.getConnection("jdbc:mysql://" + this.hostname + ":" + this.port + "/" + this.database + "?useSSL=false", this.username, this.password);
+ } catch (SQLException e) {
+ System.out.println("[日志 - 错误] 连接数据库失败!");
+ this.connection = null;
+ } catch (ClassNotFoundException e) {
+ System.out.println("[日志 - 错误] 未找到JDBC驱动程序");
+ this.connection = null;
+ }
+ }
+
+ @Override
+ public boolean checkConnection() {
+ return this.connection != null;
+ }
+
+ @Override
+ public Connection getConnection() {
+ return this.connection;
+ }
+
+ @Override
+ public void closeConnection() {
+ if (this.connection != null) {
+ try {
+ this.connection.close();
+ this.connection = null;
+ } catch (SQLException e) {
+ System.out.println("[日志 - 错误] 关闭数据库连接失败!");
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public ResultSet querySQL(String query) {
+ Connection conn;
+ if (checkConnection())
+ conn = getConnection();
+ else
+ return null;
+ Statement stat = null;
+ try {
+ stat = conn.createStatement();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ ResultSet result = null;
+ try {
+ if (stat != null)
+ result = stat.executeQuery(query);
+ else
+ return null;
+ } catch (SQLException e) {
+ e.printStackTrace();
+ return null;
+ }
+ return result;
+ }
+
+ public boolean updateSQL(String data) {
+ Connection conn;
+ if (checkConnection())
+ conn = getConnection();
+ else
+ return false;
+ Statement stat = null;
+ try {
+ stat = conn.createStatement();
+ stat.executeUpdate(data);
+ return true;
+ } catch (SQLException e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
new file mode 100644
index 0000000..23991f6
--- /dev/null
+++ b/src/main/resources/plugin.yml
@@ -0,0 +1,5 @@
+name: AuLiveCodeMysql
+main: com.yaohun.aulivecode.Main
+version: 1.0.0
+commands:
+ code:
\ No newline at end of file