From 2453c8924eb1e1a97c045df1099f38df655fe2f1 Mon Sep 17 00:00:00 2001
From: yaohunya <31456652@qq.com>
Date: Wed, 17 Jul 2024 00:13:40 +0800
Subject: [PATCH] firt
---
.gitignore | 1 +
pom.xml | 1 +
src/main/java/com/yaohun/aulivecode/Main.java | 37 +++++
.../java/com/yaohun/aulivecode/ZhuboData.java | 79 ++++++++++
.../aulivecode/database/SqlManager.java | 58 +++++--
.../yaohun/aulivecode/listener/JoinEvent.java | 16 ++
.../com/yaohun/aulivecode/util/GiftMoney.java | 148 ++++++++++++++++++
7 files changed, 328 insertions(+), 12 deletions(-)
create mode 100644 src/main/java/com/yaohun/aulivecode/ZhuboData.java
create mode 100644 src/main/java/com/yaohun/aulivecode/listener/JoinEvent.java
create mode 100644 src/main/java/com/yaohun/aulivecode/util/GiftMoney.java
diff --git a/.gitignore b/.gitignore
index ec3deeb..6ba5a29 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@
/.idea/vcs.xml
/.idea/jarRepositories.xml
/.idea/compiler.xml
+/.idea/artifacts/
diff --git a/pom.xml b/pom.xml
index 01ab6a0..615736d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,6 +13,7 @@
8
+
public-rpg
diff --git a/src/main/java/com/yaohun/aulivecode/Main.java b/src/main/java/com/yaohun/aulivecode/Main.java
index bbdc7f7..b398573 100644
--- a/src/main/java/com/yaohun/aulivecode/Main.java
+++ b/src/main/java/com/yaohun/aulivecode/Main.java
@@ -1,23 +1,34 @@
package com.yaohun.aulivecode;
import com.yaohun.aulivecode.database.SqlManager;
+import com.yaohun.aulivecode.util.GiftMoney;
import com.yaohun.aulivecode.util.SqlUtil;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
+import org.bukkit.configuration.file.FileConfiguration;
+import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.java.JavaPlugin;
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+
public class Main extends JavaPlugin {
public static Main plugin;
public static SqlUtil sqlUtil;
public static SqlManager sqlManager;
+ public static GiftMoney giftMoney;
+ public static HashMap zhuboDataMap = new HashMap<>();
@Override
public void onEnable() {
plugin = this;
sqlManager = new SqlManager();
+ giftMoney = new GiftMoney();
LinkMySqlData();
+ loadLiveIdSendLocal();
}
public void LinkMySqlData(){
@@ -31,8 +42,34 @@ public class Main extends JavaPlugin {
Bukkit.getConsoleSender().sendMessage("[直播数据] 数据库已连接.");
}
+ public void loadLiveIdSendLocal(){
+ File file = new File("./plugins/McLiveAPI","config.yml");
+ FileConfiguration yml = YamlConfiguration.loadConfiguration(file);
+ HashMap stringStringHashMap = sqlManager.getAllZhuboData();
+ for (String name : stringStringHashMap.keySet()) {
+ String liveId = stringStringHashMap.get(name);
+ yml.set("LiveId."+name,liveId);
+ Bukkit.getConsoleSender().sendMessage("[日志 - 输出] 主播: "+name+" 抖音号: "+liveId);
+ }
+ // 保存配置文件
+ try {
+ yml.save(file);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
+ if(args.length == 1 && args[0].equalsIgnoreCase("load") && sender.isOp()){
+ loadLiveIdSendLocal();
+ sender.sendMessage("[直播数据] 正在下载主播档案.");
+ }
+ if(args.length == 2 && args[0].equalsIgnoreCase("download") && sender.isOp()){
+ String zhubo = args[1];
+ Main.zhuboDataMap.put(zhubo,Main.sqlManager.getZhuboData(zhubo));
+ sender.sendMessage("[直播数据] 正在下载主播档案.");
+ }
if(args.length == 3 && args[0].equalsIgnoreCase("create") && sender.isOp()){
String zhubo = args[1];
String liveId = args[2];
diff --git a/src/main/java/com/yaohun/aulivecode/ZhuboData.java b/src/main/java/com/yaohun/aulivecode/ZhuboData.java
new file mode 100644
index 0000000..92af1c3
--- /dev/null
+++ b/src/main/java/com/yaohun/aulivecode/ZhuboData.java
@@ -0,0 +1,79 @@
+package com.yaohun.aulivecode;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.time.LocalDate;
+import java.util.*;
+
+public class ZhuboData {
+
+ private String zhuBo;
+ private String liveId;
+ private LinkedHashMap spectatorMap = new LinkedHashMap<>();
+ private LinkedHashMap adminMap = new LinkedHashMap<>();
+
+ public ZhuboData(String zhuBo,ResultSet resultSet){
+ this.zhuBo = zhuBo;
+ System.out.println("[调试 - 输出] 主播名: "+zhuBo);
+ try {
+ this.liveId = resultSet.getString("tiktok");
+ System.out.println("[调试 - 输出] 抖音号: "+liveId);
+ String spectatorString = resultSet.getString("giftspectator");
+ String[] stringList1 = spectatorString.split(",");
+ int a = 1;
+ for (String s : stringList1){
+ int money = Integer.parseInt(s);
+ spectatorMap.put(a,money);
+ System.out.println("[调试 - 输出] "+a+"号 流水: "+money+"音浪");
+ a++;
+ }
+ String giftadminiString = resultSet.getString("giftadmini");
+ String[] stringList2 = giftadminiString.split(",");
+ int b = 1;
+ for (String s : stringList2){
+ int money = Integer.parseInt(s);
+ adminMap.put(b,money);
+ System.out.println("[调试 - 输出] "+b+"号 对抗流水: "+money+"音浪");
+ b++;
+ }
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public String getZhuBo() {
+ return zhuBo;
+ }
+
+ public String getLiveId() {
+ return liveId;
+ }
+
+ public LinkedHashMap getAdminMap() {
+ return adminMap;
+ }
+
+ public LinkedHashMap getSpectatorMap() {
+ return spectatorMap;
+ }
+ public List getSpectatorList(){
+ List integerList = new ArrayList<>();
+ LocalDate today = LocalDate.now();
+ int dayOfMonth = today.getDayOfMonth();
+ for (int number : spectatorMap.keySet()){
+ if(number == dayOfMonth){
+ integerList.add(88);
+ }else {
+ integerList.add(spectatorMap.get(number));
+ }
+ }
+ return integerList;
+ }
+ public String getSpectatorConvertList(){
+ StringJoiner joiner = new StringJoiner(",");
+ for (int s : getSpectatorList()) {
+ joiner.add(String.valueOf(s));
+ }
+ return joiner.toString();
+ }
+}
diff --git a/src/main/java/com/yaohun/aulivecode/database/SqlManager.java b/src/main/java/com/yaohun/aulivecode/database/SqlManager.java
index 1539da0..5730b71 100644
--- a/src/main/java/com/yaohun/aulivecode/database/SqlManager.java
+++ b/src/main/java/com/yaohun/aulivecode/database/SqlManager.java
@@ -1,6 +1,7 @@
package com.yaohun.aulivecode.database;
import com.yaohun.aulivecode.Main;
+import com.yaohun.aulivecode.ZhuboData;
import com.yaohun.aulivecode.util.SqlUtil;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -20,9 +21,8 @@ public class SqlManager {
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)" +
+ " giftspectator VARCHAR(256) NOT NULL," +
+ " giftadmini VARCHAR(256) NOT NULL" +
") ENGINE = InnoDB";
getSQL().openConnection();
getSQL().updateSQL(s);
@@ -31,13 +31,12 @@ public class SqlManager {
// 创建主播档案数据
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);
+ for (int i = 1;i <= 30;i++){
+ integers.add(0);
}
StringJoiner joiner = new StringJoiner(",");
for (int s : integers) {
@@ -50,20 +49,55 @@ public class SqlManager {
Bukkit.getConsoleSender().sendMessage("§6[主播数据] §a主播档案创建。");
}
- public int getPlayerData(String playerName) {
- String select = "SELECT * FROM recharge WHERE player = '%playerName%'";
+
+ public ZhuboData getZhuboData(String name) {
+ String select = "SELECT * FROM "+table+" WHERE zhubo = '%name%'";
try {
getSQL().openConnection();
- ResultSet set = getSQL().querySQL(select.replace("%playerName%", playerName));
- if (set.next()) {
- return set.getInt("point");
+ ResultSet resultSet = getSQL().querySQL(select.replace("%name%", name));
+ while (resultSet.next()) {
+ return new ZhuboData(name,resultSet);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
getSQL().closeConnection();
}
- return -1;
+ return null;
+ }
+
+ public HashMap getAllZhuboData() {
+ HashMap map = new HashMap<>();
+ String select = "SELECT * FROM "+table;
+ try {
+ getSQL().openConnection();
+ ResultSet set = getSQL().querySQL(select);
+ while (set.next()) {
+ String zhubo = set.getString("zhubo");
+ String tiktok = set.getString("tiktok");
+ map.put(zhubo, tiktok);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ getSQL().closeConnection();
+ }
+ return map;
+ }
+
+ public void SavePlayerData(String name){
+ if(Main.zhuboDataMap.get(name) == null){return;}
+ ZhuboData dataAPI = Main.zhuboDataMap.get(name);
+ String liveId = dataAPI.getLiveId();
+
+ String set = "UPDATE `"+table+"` SET " +
+ "`tiktok` = '%tiktok%'," +
+ "`giftspectator` = '%giftspectator%' WHERE `"+table+"`.`zhubo` = '%player%'";
+ getSQL().openConnection();
+ getSQL().updateSQL(set.replace("%player%", name).
+ replace("%tiktok%", liveId)
+ .replace("%giftspectator%", dataAPI.getSpectatorConvertList()));
+ getSQL().closeConnection();
}
private SqlUtil getSQL() {
diff --git a/src/main/java/com/yaohun/aulivecode/listener/JoinEvent.java b/src/main/java/com/yaohun/aulivecode/listener/JoinEvent.java
new file mode 100644
index 0000000..ad24521
--- /dev/null
+++ b/src/main/java/com/yaohun/aulivecode/listener/JoinEvent.java
@@ -0,0 +1,16 @@
+package com.yaohun.aulivecode.listener;
+
+import com.yaohun.aulivecode.Main;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerJoinEvent;
+
+public class JoinEvent implements Listener {
+ @EventHandler
+ public void onJoin(PlayerJoinEvent e){
+ Player player = e.getPlayer();
+ String name = player.getName();
+ Main.zhuboDataMap.put(name,Main.sqlManager.getZhuboData(name));
+ }
+}
diff --git a/src/main/java/com/yaohun/aulivecode/util/GiftMoney.java b/src/main/java/com/yaohun/aulivecode/util/GiftMoney.java
new file mode 100644
index 0000000..01868c8
--- /dev/null
+++ b/src/main/java/com/yaohun/aulivecode/util/GiftMoney.java
@@ -0,0 +1,148 @@
+package com.yaohun.aulivecode.util;
+
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+
+public class GiftMoney {
+
+ private LinkedHashMap giftMap = new LinkedHashMap<>();
+ public GiftMoney(){
+ /*活动新增*/
+ giftMap.put("粘人小狗",1);
+ giftMap.put("西瓜",1);
+ giftMap.put("冰镇西瓜",99);
+ giftMap.put("夏日冰饮",99);
+ /*长期存在的礼物*/
+ giftMap.put("粉丝团灯牌",1);
+ giftMap.put("为你闪耀",9);
+ giftMap.put("人气票",1);
+ giftMap.put("小心心",1);
+ giftMap.put("玫瑰",1);
+ giftMap.put("抖音",1);
+ giftMap.put("称心如意",1);
+ giftMap.put("你最好看",2);
+ giftMap.put("啤酒",2);
+ giftMap.put("棒棒糖",9);
+ giftMap.put("鲜花",10);
+ giftMap.put("加油鸭",15);
+ giftMap.put("爱你哟",52);
+ giftMap.put("Thuglife",99);
+ giftMap.put("闪耀星辰",99);
+ giftMap.put("亲吻",99);
+ giftMap.put("比心兔兔",299);
+ giftMap.put("热气球",520);
+ giftMap.put("跑车",1200);
+ giftMap.put("礼花筒",199);
+ giftMap.put("捏捏小脸",99);
+ giftMap.put("鹿仙子",99);
+ giftMap.put("夏威夷花环",99);
+ giftMap.put("爱的纸鹤",99);
+ giftMap.put("送你花花",49);
+ giftMap.put("女神花环",99);
+ giftMap.put("鱼你一起",99);
+ giftMap.put("真爱玫瑰",366);
+ giftMap.put("为你举牌",199);
+ giftMap.put("兔耳朵",99);
+ giftMap.put("龙抬头",99);
+ giftMap.put("花开烂漫",466);
+ giftMap.put("比心",199);
+ giftMap.put("真的爱你",520);
+ giftMap.put("万象烟花",688);
+ giftMap.put("私人飞机",3000);
+ giftMap.put("浪漫烟花",599);
+ giftMap.put("闪亮登场",460);
+ giftMap.put("多喝热水",126);
+ giftMap.put("一点心意",266);
+ giftMap.put("荧光棒",99);
+ giftMap.put("娶你回家",599);
+ giftMap.put("掌上明珠",888);
+ giftMap.put("摧残舞台",899);
+ giftMap.put("星星点灯",268);
+ giftMap.put("一束花开",366);
+ giftMap.put("小傻猪",299);
+ giftMap.put("环球旅行车",650);
+ giftMap.put("爱的守护",299);
+ giftMap.put("好运莲莲鸭",299);
+ giftMap.put("日出相伴",726);
+ giftMap.put("永生花",520);
+ giftMap.put("纸短情长",921);
+ giftMap.put("直升机",2999);
+ giftMap.put("蝶·连理枝",280);
+ giftMap.put("爱情树下",599);
+ giftMap.put("灵龙现世",600);
+ giftMap.put("爱心煎蛋",99);
+ giftMap.put("夏日回忆",1000);
+ giftMap.put("抖音1号",10001);
+ giftMap.put("繁花秘语",1314);
+ giftMap.put("ONE礼挑一",299);
+ giftMap.put("重拳出击",199);
+ giftMap.put("花落长亭",1588);
+ giftMap.put("浪漫恋人",1999);
+ giftMap.put("花海泛舟",2800);
+ giftMap.put("豪华邮轮",6000);
+ giftMap.put("环游世界",3000);
+ giftMap.put("蝶·书中情",750);
+ giftMap.put("带你去海边",4500);
+ giftMap.put("蜜蜂叮叮",1000);
+ giftMap.put("奇幻八音盒",2399);
+ giftMap.put("光之祝福",1999);
+ giftMap.put("消暑罐头车",1500);
+ giftMap.put("月色山茶花",1999);
+ giftMap.put("为你而来",1688);
+ giftMap.put("点亮孤单",1800);
+ giftMap.put("浪漫营地",1699);
+ giftMap.put("薰衣草庄园",3300);
+ giftMap.put("红墙白雪",1688);
+ giftMap.put("华灯初上",5000);
+ giftMap.put("嘉年华",30000);
+ giftMap.put("单车恋人",1899);
+ giftMap.put("为爱启航",10001);
+ giftMap.put("镜中奇缘",1500);
+ giftMap.put("仲夏夜之梦",8999);
+ giftMap.put("龙珠纳福",2388);
+ giftMap.put("蝶·比翼鸟",1700);
+ giftMap.put("无畏守护",10168);
+ giftMap.put("壁上飞仙",4999);
+ giftMap.put("海上生明月",4166);
+ giftMap.put("铁甲柔情",3800);
+ giftMap.put("心动丘比特",4321);
+ giftMap.put("变形战车",5500);
+ giftMap.put("抖音飞艇",20000);
+ giftMap.put("冰冻战车",3000);
+ giftMap.put("星际玫瑰",7500);
+ giftMap.put("奏响人生",3666);
+ giftMap.put("摩天大厦",8222);
+ giftMap.put("传送门",2999);
+ giftMap.put("云中秘境",13140);
+ giftMap.put("火龙爆发",5000);
+ giftMap.put("福佑万家",4888);
+ giftMap.put("天空之镜",6399);
+ giftMap.put("情定三生",9666);
+ giftMap.put("月下瀑布",6666);
+ giftMap.put("金鳞化龙",9000);
+ giftMap.put("蝶·化蝶飞",10999);
+ giftMap.put("无尽浪漫",19999);
+ giftMap.put("云霄大厦",7888);
+ giftMap.put("梦幻城堡",28888);
+ giftMap.put("真爱永恒",8999);
+ giftMap.put("跨时空之恋",9000);
+ giftMap.put("炫彩射击",1888);
+ giftMap.put("一路有你",17999);
+ giftMap.put("浪漫马车",28888);
+ giftMap.put("蝶·寄相思",6800);
+ giftMap.put("梦回紫禁城",8666);
+ giftMap.put("小纸条",399);
+ giftMap.put("如意锦囊",99);
+ giftMap.put("星光瓶",900);
+ giftMap.put("一直陪伴你",520);
+ giftMap.put("动次打次",2999);
+ giftMap.put("宇宙之心",18888);
+ }
+
+ public int getGiftValue(String giftName){
+ if(giftMap.get(giftName) != null){
+ return giftMap.get(giftName);
+ }
+ return 0;
+ }
+}