2024-04-19 09:46:54 +08:00
|
|
|
package com.coloryr.allmusic.server.core.utils;
|
|
|
|
|
|
2026-01-31 19:06:53 +08:00
|
|
|
import com.coloryr.allmusic.codec.HudDirType;
|
|
|
|
|
import com.coloryr.allmusic.codec.HudItemPosObj;
|
|
|
|
|
import com.coloryr.allmusic.codec.HudPosObj;
|
|
|
|
|
import com.coloryr.allmusic.codec.HudType;
|
2024-04-19 09:46:54 +08:00
|
|
|
import com.coloryr.allmusic.server.core.AllMusic;
|
2026-02-26 20:18:57 +08:00
|
|
|
import com.coloryr.allmusic.server.core.music.LyricSave;
|
|
|
|
|
import com.coloryr.allmusic.server.core.music.PlayMusic;
|
2024-05-13 09:33:41 +08:00
|
|
|
import com.coloryr.allmusic.server.core.objs.config.LimitObj;
|
2025-09-24 22:16:24 +08:00
|
|
|
import com.coloryr.allmusic.server.core.objs.message.ARG;
|
2024-04-19 09:46:54 +08:00
|
|
|
import com.coloryr.allmusic.server.core.objs.music.SongInfoObj;
|
|
|
|
|
import com.coloryr.allmusic.server.core.sql.DataSql;
|
2020-05-02 21:53:22 +08:00
|
|
|
|
2024-04-17 23:43:11 +08:00
|
|
|
import java.util.Locale;
|
2023-01-06 18:15:10 +08:00
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
|
|
2021-03-19 15:32:47 +08:00
|
|
|
public class HudUtils {
|
2026-01-31 19:06:53 +08:00
|
|
|
private static final Map<String, HudPosObj> HudList = new ConcurrentHashMap<>();
|
2023-01-06 18:15:10 +08:00
|
|
|
|
2025-03-24 18:20:45 +08:00
|
|
|
/**
|
|
|
|
|
* 获取玩家的Hud储存
|
2025-03-24 20:13:54 +08:00
|
|
|
*
|
2025-03-24 18:20:45 +08:00
|
|
|
* @param name 玩家名
|
|
|
|
|
* @return Hud储存
|
|
|
|
|
*/
|
2026-01-31 19:06:53 +08:00
|
|
|
public static HudPosObj get(String name) {
|
2024-04-17 23:43:11 +08:00
|
|
|
name = name.toLowerCase(Locale.ROOT);
|
2024-04-17 22:15:12 +08:00
|
|
|
if (!HudList.containsKey(name)) {
|
2026-01-31 19:06:53 +08:00
|
|
|
HudPosObj obj1 = DataSql.readHud(name);
|
2025-03-24 18:20:45 +08:00
|
|
|
if (obj1 == null) {
|
2026-01-31 19:06:53 +08:00
|
|
|
HudPosObj obj = AllMusic.getConfig().defaultHud.copy();
|
2025-03-24 18:20:45 +08:00
|
|
|
HudList.put(name, obj);
|
|
|
|
|
String finalName = name;
|
|
|
|
|
DataSql.task(() -> DataSql.addUser(finalName, obj));
|
|
|
|
|
return obj;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HudList.put(name, obj1);
|
|
|
|
|
return obj1;
|
2023-01-06 18:15:10 +08:00
|
|
|
}
|
2024-04-17 22:15:12 +08:00
|
|
|
return HudList.get(name);
|
2023-01-06 18:15:10 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-31 19:06:53 +08:00
|
|
|
public static void addAndSave(String name, HudPosObj hud) {
|
2024-04-17 23:43:11 +08:00
|
|
|
name = name.toLowerCase(Locale.ROOT);
|
2024-04-17 22:15:12 +08:00
|
|
|
HudList.put(name, hud);
|
2024-04-17 23:43:11 +08:00
|
|
|
String finalName = name;
|
|
|
|
|
DataSql.task(() -> DataSql.addUser(finalName, hud));
|
2023-01-06 18:15:10 +08:00
|
|
|
}
|
|
|
|
|
|
2023-01-06 17:50:22 +08:00
|
|
|
/**
|
|
|
|
|
* 设置玩家Hud位置
|
2023-01-08 20:55:21 +08:00
|
|
|
*
|
2023-01-06 17:50:22 +08:00
|
|
|
* @param player 用户名
|
|
|
|
|
* @param pos 位置
|
|
|
|
|
* @param x x
|
|
|
|
|
* @param y y
|
|
|
|
|
* @return 位置数据
|
|
|
|
|
*/
|
2026-01-31 19:06:53 +08:00
|
|
|
public static HudItemPosObj setHudPos(String player, HudType pos, String x, String y) {
|
|
|
|
|
HudPosObj obj = get(player);
|
2020-05-02 21:53:22 +08:00
|
|
|
if (obj == null)
|
2024-04-17 22:15:12 +08:00
|
|
|
obj = AllMusic.getConfig().defaultHud.copy();
|
2026-01-31 19:06:53 +08:00
|
|
|
HudItemPosObj posOBJ = new HudItemPosObj(0, 0, HudDirType.TOP_LEFT, 0xffffff, false, true);
|
2020-05-02 21:53:22 +08:00
|
|
|
if (!Function.isInteger(x) && !Function.isInteger(y))
|
|
|
|
|
return null;
|
|
|
|
|
int x1 = Integer.parseInt(x);
|
|
|
|
|
int y1 = Integer.parseInt(y);
|
|
|
|
|
|
2024-04-17 22:15:12 +08:00
|
|
|
switch (pos) {
|
|
|
|
|
case LYRIC:
|
|
|
|
|
posOBJ = obj.lyric;
|
2020-05-02 21:53:22 +08:00
|
|
|
break;
|
2024-04-17 22:15:12 +08:00
|
|
|
case LIST:
|
|
|
|
|
posOBJ = obj.list;
|
2020-05-02 21:53:22 +08:00
|
|
|
break;
|
2024-04-17 22:15:12 +08:00
|
|
|
case INFO:
|
|
|
|
|
posOBJ = obj.info;
|
2020-05-02 21:53:22 +08:00
|
|
|
break;
|
2024-04-17 22:15:12 +08:00
|
|
|
case PIC:
|
|
|
|
|
posOBJ = obj.pic;
|
2020-05-02 21:53:22 +08:00
|
|
|
}
|
2023-01-06 17:50:22 +08:00
|
|
|
posOBJ.x = x1;
|
|
|
|
|
posOBJ.y = y1;
|
2020-05-02 21:53:22 +08:00
|
|
|
|
2023-01-06 18:15:10 +08:00
|
|
|
addAndSave(player, obj);
|
2023-01-06 17:50:22 +08:00
|
|
|
HudUtils.sendHudPos(player);
|
2020-05-02 21:53:22 +08:00
|
|
|
return posOBJ;
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-06 17:50:22 +08:00
|
|
|
/**
|
|
|
|
|
* 更新Hud的List数据
|
|
|
|
|
*/
|
2021-06-21 22:25:17 +08:00
|
|
|
public static void sendHudListData() {
|
2022-12-27 11:41:15 +08:00
|
|
|
String info;
|
2024-04-17 22:15:12 +08:00
|
|
|
if (PlayMusic.getListSize() == 0) {
|
|
|
|
|
info = AllMusic.getMessage().hud.emptyList;
|
2020-05-02 21:53:22 +08:00
|
|
|
} else {
|
|
|
|
|
String now;
|
2022-12-27 11:41:15 +08:00
|
|
|
StringBuilder list = new StringBuilder();
|
2023-01-06 18:15:10 +08:00
|
|
|
for (SongInfoObj info1 : PlayMusic.getList()) {
|
2022-12-27 11:41:15 +08:00
|
|
|
if (info1 == null)
|
2020-12-23 23:40:34 +08:00
|
|
|
continue;
|
2024-08-12 11:14:54 +08:00
|
|
|
now = AllMusic.getMessage().musicPlay.musicInfo
|
2025-09-24 22:16:24 +08:00
|
|
|
.replace(ARG.musicName, listLimit(info1.getName()))
|
|
|
|
|
.replace(ARG.musicAuthor, listLimit(info1.getAuthor()))
|
|
|
|
|
.replace(ARG.musicAl, listLimit(info1.getAl()))
|
|
|
|
|
.replace(ARG.musicAlia, listLimit(info1.getAlia()))
|
|
|
|
|
.replace(ARG.player, info1.getCall());
|
2024-08-12 11:14:54 +08:00
|
|
|
|
2020-05-02 21:53:22 +08:00
|
|
|
list.append(now).append("\n");
|
|
|
|
|
}
|
2024-04-17 22:15:12 +08:00
|
|
|
info = AllMusic.getMessage().hud.list
|
2025-09-24 22:16:24 +08:00
|
|
|
.replace(ARG.size, String.valueOf(PlayMusic.getList().size()))
|
|
|
|
|
.replace(ARG.list, list.toString());
|
2020-05-02 21:53:22 +08:00
|
|
|
}
|
|
|
|
|
|
2022-12-27 11:41:15 +08:00
|
|
|
AllMusic.side.sendHudList(info);
|
2020-05-02 21:53:22 +08:00
|
|
|
}
|
|
|
|
|
|
2023-01-06 17:50:22 +08:00
|
|
|
/**
|
|
|
|
|
* 时间转换
|
|
|
|
|
*
|
|
|
|
|
* @param time 时间
|
|
|
|
|
* @return 结果
|
|
|
|
|
*/
|
2024-09-21 14:13:00 +08:00
|
|
|
private static String tranTime(long time) {
|
|
|
|
|
long m = time / 60;
|
|
|
|
|
long s = time - m * 60;
|
2020-05-03 09:18:46 +08:00
|
|
|
return (m < 10 ? "0" : "") + m + ":" + (s < 10 ? "0" : "") + s;
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-06 17:50:22 +08:00
|
|
|
/**
|
|
|
|
|
* 更新Hud的信息数据
|
|
|
|
|
*/
|
2021-06-21 22:25:17 +08:00
|
|
|
public static void sendHudNowData() {
|
2022-12-27 10:31:41 +08:00
|
|
|
String info;
|
2021-11-30 13:37:43 +08:00
|
|
|
if (PlayMusic.nowPlayMusic == null) {
|
2024-04-17 22:15:12 +08:00
|
|
|
info = AllMusic.getMessage().hud.emptyMusic;
|
2020-05-02 21:53:22 +08:00
|
|
|
} else {
|
2024-04-17 22:15:12 +08:00
|
|
|
info = AllMusic.getMessage().hud.music
|
2025-09-24 22:16:24 +08:00
|
|
|
.replace(ARG.name, infoLimit(PlayMusic.nowPlayMusic.getName()))
|
|
|
|
|
.replace(ARG.allTime, tranTime(PlayMusic.musicAllTime))
|
|
|
|
|
.replace(ARG.nowTime, tranTime(PlayMusic.musicNowTime / 1000))
|
|
|
|
|
.replace(ARG.musicAuthor, infoLimit(PlayMusic.nowPlayMusic.getAuthor()))
|
|
|
|
|
.replace(ARG.musicAlia, infoLimit(PlayMusic.nowPlayMusic.getAlia()))
|
|
|
|
|
.replace(ARG.musicAl, infoLimit(PlayMusic.nowPlayMusic.getAl()))
|
|
|
|
|
.replace(ARG.player, PlayMusic.nowPlayMusic.getCall());
|
2020-05-02 21:53:22 +08:00
|
|
|
}
|
|
|
|
|
|
2022-12-27 10:31:41 +08:00
|
|
|
AllMusic.side.sendHudInfo(info);
|
2020-05-02 21:53:22 +08:00
|
|
|
}
|
|
|
|
|
|
2023-01-06 17:50:22 +08:00
|
|
|
/**
|
|
|
|
|
* 更新Hud的歌词数据
|
|
|
|
|
*/
|
2023-01-08 16:03:28 +08:00
|
|
|
public static void sendHudLyricData() {
|
2022-12-27 10:31:41 +08:00
|
|
|
String info;
|
2023-01-08 16:03:28 +08:00
|
|
|
LyricSave obj = PlayMusic.lyric;
|
|
|
|
|
if (obj == null) {
|
2024-04-17 22:15:12 +08:00
|
|
|
info = AllMusic.getMessage().hud.emptyLyric;
|
2020-05-02 21:53:22 +08:00
|
|
|
} else {
|
2023-01-08 16:03:28 +08:00
|
|
|
String lyric = obj.getLyric();
|
|
|
|
|
String tLyric = obj.getTlyric();
|
|
|
|
|
String kLyric = obj.getKly();
|
2024-04-17 22:15:12 +08:00
|
|
|
if (!AllMusic.getConfig().ktvMode) {
|
|
|
|
|
info = AllMusic.getMessage().hud.lyric
|
2025-09-24 22:16:24 +08:00
|
|
|
.replace(ARG.lyric, lyric == null ? "" : lyric)
|
|
|
|
|
.replace(ARG.tlyric, tLyric != null ? tLyric : "");
|
2023-01-08 14:31:20 +08:00
|
|
|
} else {
|
2024-04-17 22:15:12 +08:00
|
|
|
info = AllMusic.getMessage().hud.ktv
|
2025-09-24 22:16:24 +08:00
|
|
|
.replace(ARG.lyric, lyric != null ? lyric : "")
|
|
|
|
|
.replace(ARG.klyric, kLyric != null ? kLyric : "")
|
|
|
|
|
.replace(ARG.tlyric, tLyric != null ? tLyric : "");
|
2023-01-08 14:31:20 +08:00
|
|
|
}
|
2020-05-02 21:53:22 +08:00
|
|
|
}
|
|
|
|
|
|
2022-12-27 10:31:41 +08:00
|
|
|
AllMusic.side.sendHudLyric(info);
|
2020-05-02 21:53:22 +08:00
|
|
|
}
|
|
|
|
|
|
2023-01-06 17:50:22 +08:00
|
|
|
/**
|
|
|
|
|
* 更新Hud的开启关闭数据
|
|
|
|
|
*
|
|
|
|
|
* @param player 用户名
|
|
|
|
|
* @param pos 输入数据
|
|
|
|
|
* @return 设置结果
|
|
|
|
|
*/
|
2024-04-18 09:03:23 +08:00
|
|
|
public static boolean setHudEnable(String player, HudType pos, String arg) {
|
2026-01-31 19:06:53 +08:00
|
|
|
HudPosObj obj = get(player);
|
2023-01-06 17:50:22 +08:00
|
|
|
boolean res = false;
|
2024-04-18 09:03:23 +08:00
|
|
|
boolean value = false;
|
|
|
|
|
boolean have = false;
|
|
|
|
|
if (arg != null) {
|
|
|
|
|
try {
|
|
|
|
|
value = Boolean.parseBoolean(arg);
|
|
|
|
|
have = true;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-07-19 12:24:02 +08:00
|
|
|
if (obj == null) {
|
2024-04-17 22:15:12 +08:00
|
|
|
obj = AllMusic.getConfig().defaultHud.copy();
|
2024-04-18 09:03:23 +08:00
|
|
|
if (have) {
|
|
|
|
|
res = obj.info.enable = obj.list.enable = obj.lyric.enable = obj.pic.enable = value;
|
|
|
|
|
} else {
|
|
|
|
|
res = obj.info.enable = obj.list.enable = obj.lyric.enable = obj.pic.enable = true;
|
|
|
|
|
}
|
2020-08-19 19:18:38 +08:00
|
|
|
} else {
|
2020-07-19 12:24:02 +08:00
|
|
|
if (pos == null) {
|
2024-04-18 09:03:23 +08:00
|
|
|
if (have) {
|
|
|
|
|
res = obj.info.enable = obj.list.enable = obj.lyric.enable = obj.pic.enable = value;
|
|
|
|
|
} else if (obj.info.enable && obj.list.enable && obj.lyric.enable && obj.pic.enable) {
|
|
|
|
|
obj.info.enable = obj.list.enable = obj.lyric.enable = obj.pic.enable = false;
|
2020-07-19 12:24:02 +08:00
|
|
|
} else {
|
2024-04-18 09:03:23 +08:00
|
|
|
res = obj.info.enable = obj.list.enable = obj.lyric.enable = obj.pic.enable = true;
|
2020-07-19 12:24:02 +08:00
|
|
|
}
|
2020-07-15 12:15:09 +08:00
|
|
|
} else {
|
2024-04-17 22:15:12 +08:00
|
|
|
switch (pos) {
|
|
|
|
|
case INFO:
|
2024-04-18 09:03:23 +08:00
|
|
|
res = obj.info.enable = have ? value : !obj.info.enable;
|
2020-07-19 12:24:02 +08:00
|
|
|
break;
|
2024-04-17 22:15:12 +08:00
|
|
|
case LIST:
|
2024-04-18 09:03:23 +08:00
|
|
|
res = obj.list.enable = have ? value : !obj.list.enable;
|
2020-07-19 12:24:02 +08:00
|
|
|
break;
|
2024-04-17 22:15:12 +08:00
|
|
|
case LYRIC:
|
2024-04-18 09:03:23 +08:00
|
|
|
res = obj.lyric.enable = have ? value : !obj.lyric.enable;
|
2020-07-19 12:24:02 +08:00
|
|
|
break;
|
2024-04-17 22:15:12 +08:00
|
|
|
case PIC:
|
2024-04-18 09:03:23 +08:00
|
|
|
res = obj.pic.enable = have ? value : !obj.pic.enable;
|
2021-06-08 23:28:03 +08:00
|
|
|
break;
|
2020-07-19 12:24:02 +08:00
|
|
|
}
|
2020-05-02 21:53:22 +08:00
|
|
|
}
|
|
|
|
|
}
|
2024-04-17 23:43:11 +08:00
|
|
|
|
2023-01-06 18:15:10 +08:00
|
|
|
addAndSave(player, obj);
|
2023-01-06 17:50:22 +08:00
|
|
|
HudUtils.sendHudPos(player);
|
2024-04-18 09:03:23 +08:00
|
|
|
|
|
|
|
|
return res;
|
2020-05-02 21:53:22 +08:00
|
|
|
}
|
|
|
|
|
|
2023-01-06 17:50:22 +08:00
|
|
|
/**
|
|
|
|
|
* 清空Hud数据
|
|
|
|
|
*/
|
2020-05-03 08:54:45 +08:00
|
|
|
public static void clearHud() {
|
2022-12-27 10:31:41 +08:00
|
|
|
AllMusic.side.clearHud();
|
2020-05-02 21:53:22 +08:00
|
|
|
}
|
|
|
|
|
|
2023-01-06 17:50:22 +08:00
|
|
|
/**
|
|
|
|
|
* 清空Hud数
|
|
|
|
|
*
|
|
|
|
|
* @param player 用户名
|
|
|
|
|
*/
|
|
|
|
|
public static void clearHud(String player) {
|
|
|
|
|
AllMusic.side.clearHud(player);
|
2020-05-02 21:53:22 +08:00
|
|
|
}
|
2020-05-02 22:31:03 +08:00
|
|
|
|
2023-01-06 17:50:22 +08:00
|
|
|
/**
|
|
|
|
|
* 发送Hud位置信息
|
|
|
|
|
*
|
|
|
|
|
* @param player 用户名
|
|
|
|
|
*/
|
|
|
|
|
public static void sendHudPos(String player) {
|
2021-11-30 13:37:43 +08:00
|
|
|
AllMusic.side.runTask(() -> {
|
2020-05-02 23:32:23 +08:00
|
|
|
try {
|
2026-01-31 19:06:53 +08:00
|
|
|
HudPosObj obj = get(player);
|
2020-05-02 23:32:23 +08:00
|
|
|
if (obj == null) {
|
2024-04-17 22:15:12 +08:00
|
|
|
obj = AllMusic.getConfig().defaultHud.copy();
|
2023-01-06 18:15:10 +08:00
|
|
|
addAndSave(player, obj);
|
2020-05-02 23:32:23 +08:00
|
|
|
}
|
2024-04-17 22:15:12 +08:00
|
|
|
AllMusic.side.sendHudPos(player);
|
2020-05-02 23:32:23 +08:00
|
|
|
} catch (Exception e1) {
|
2026-03-04 16:05:57 +08:00
|
|
|
AllMusic.log.data("<light_purple>[AllMusic3]<red>数据发送发生错误");
|
2020-05-02 23:32:23 +08:00
|
|
|
e1.printStackTrace();
|
2020-05-02 22:31:03 +08:00
|
|
|
}
|
2020-05-02 23:32:23 +08:00
|
|
|
});
|
2020-05-02 22:31:03 +08:00
|
|
|
}
|
2020-07-19 12:24:02 +08:00
|
|
|
|
2023-01-06 17:50:22 +08:00
|
|
|
/**
|
|
|
|
|
* 重置Hud位置
|
|
|
|
|
*
|
|
|
|
|
* @param player 用户名
|
|
|
|
|
*/
|
|
|
|
|
public static void reset(String player) {
|
2026-01-31 19:06:53 +08:00
|
|
|
HudPosObj obj = AllMusic.getConfig().defaultHud.copy();
|
2023-01-06 18:15:10 +08:00
|
|
|
addAndSave(player, obj);
|
2023-01-06 17:50:22 +08:00
|
|
|
HudUtils.sendHudPos(player);
|
2020-07-19 12:24:02 +08:00
|
|
|
}
|
2022-06-19 16:24:15 +08:00
|
|
|
|
2024-04-17 22:15:12 +08:00
|
|
|
public static void reset(String player, HudType type) {
|
2026-01-31 19:06:53 +08:00
|
|
|
HudPosObj obj = AllMusic.getConfig().defaultHud.copy();
|
|
|
|
|
HudPosObj obj1 = get(player);
|
2024-04-17 22:15:12 +08:00
|
|
|
switch (type) {
|
|
|
|
|
case INFO:
|
|
|
|
|
obj1.info = obj.info;
|
|
|
|
|
break;
|
|
|
|
|
case LIST:
|
|
|
|
|
obj1.list = obj.list;
|
|
|
|
|
break;
|
|
|
|
|
case LYRIC:
|
|
|
|
|
obj1.lyric = obj.lyric;
|
|
|
|
|
break;
|
|
|
|
|
case PIC:
|
|
|
|
|
obj1.pic = obj.pic;
|
|
|
|
|
obj1.picRotateSpeed = obj.picRotateSpeed;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2024-04-17 23:43:11 +08:00
|
|
|
|
2024-04-17 22:15:12 +08:00
|
|
|
addAndSave(player, obj1);
|
|
|
|
|
HudUtils.sendHudPos(player);
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-06 17:50:22 +08:00
|
|
|
/**
|
|
|
|
|
* 设置Hud的图片大小
|
|
|
|
|
*
|
|
|
|
|
* @param player 用户名
|
|
|
|
|
* @param size 大小
|
|
|
|
|
* @return 结果
|
|
|
|
|
*/
|
|
|
|
|
public static boolean setPicSize(String player, String size) {
|
2026-01-31 19:06:53 +08:00
|
|
|
HudPosObj obj = get(player);
|
2022-06-19 16:24:15 +08:00
|
|
|
if (obj == null)
|
2024-04-17 22:15:12 +08:00
|
|
|
obj = AllMusic.getConfig().defaultHud.copy();
|
2022-06-19 16:24:15 +08:00
|
|
|
if (!Function.isInteger(size))
|
|
|
|
|
return false;
|
|
|
|
|
|
2024-04-17 22:15:12 +08:00
|
|
|
obj.pic.color = Integer.parseInt(size);
|
2022-06-19 16:24:15 +08:00
|
|
|
|
2023-01-06 18:15:10 +08:00
|
|
|
addAndSave(player, obj);
|
2023-01-06 17:50:22 +08:00
|
|
|
HudUtils.sendHudPos(player);
|
2022-06-19 16:24:15 +08:00
|
|
|
return true;
|
|
|
|
|
}
|
2023-01-09 15:56:26 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 图片旋转开关
|
2023-10-22 10:14:55 +08:00
|
|
|
*
|
2023-01-09 15:56:26 +08:00
|
|
|
* @param player 用户名
|
2023-10-22 10:14:55 +08:00
|
|
|
* @param open 开关
|
2023-01-09 15:56:26 +08:00
|
|
|
* @return 结果
|
|
|
|
|
*/
|
|
|
|
|
public static boolean setPicRotate(String player, String open) {
|
2026-01-31 19:06:53 +08:00
|
|
|
HudPosObj obj = get(player);
|
2023-01-09 15:56:26 +08:00
|
|
|
if (obj == null)
|
2024-04-17 22:15:12 +08:00
|
|
|
obj = AllMusic.getConfig().defaultHud.copy();
|
2023-01-09 15:56:26 +08:00
|
|
|
|
2024-04-18 09:03:23 +08:00
|
|
|
if (open != null) {
|
|
|
|
|
obj.pic.shadow = Boolean.parseBoolean(open);
|
|
|
|
|
} else {
|
|
|
|
|
obj.pic.shadow = !obj.pic.shadow;
|
|
|
|
|
}
|
2023-01-09 15:56:26 +08:00
|
|
|
|
|
|
|
|
addAndSave(player, obj);
|
|
|
|
|
HudUtils.sendHudPos(player);
|
2024-04-17 22:15:12 +08:00
|
|
|
return obj.pic.shadow;
|
2023-01-09 15:56:26 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 图片旋转速度设置
|
2023-10-22 10:14:55 +08:00
|
|
|
*
|
2023-01-09 15:56:26 +08:00
|
|
|
* @param player 用户名
|
2023-10-22 10:14:55 +08:00
|
|
|
* @param size 大小
|
2023-01-09 15:56:26 +08:00
|
|
|
* @return 结果
|
|
|
|
|
*/
|
2023-10-22 10:14:55 +08:00
|
|
|
public static boolean setPicRotateSpeed(String player, String size) {
|
2026-01-31 19:06:53 +08:00
|
|
|
HudPosObj obj = get(player);
|
2023-01-09 15:56:26 +08:00
|
|
|
if (obj == null)
|
2024-04-17 22:15:12 +08:00
|
|
|
obj = AllMusic.getConfig().defaultHud.copy();
|
2023-01-09 15:56:26 +08:00
|
|
|
if (!Function.isInteger(size))
|
|
|
|
|
return false;
|
|
|
|
|
|
2024-04-17 22:15:12 +08:00
|
|
|
obj.picRotateSpeed = Integer.parseInt(size);
|
|
|
|
|
|
|
|
|
|
addAndSave(player, obj);
|
|
|
|
|
HudUtils.sendHudPos(player);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static HudDirType setDir(String player, HudType hud, String arg) {
|
|
|
|
|
HudDirType type = null;
|
|
|
|
|
try {
|
|
|
|
|
if (Function.isInteger(arg)) {
|
|
|
|
|
int index = Integer.parseInt(arg);
|
|
|
|
|
type = HudDirType.values()[index];
|
|
|
|
|
} else {
|
|
|
|
|
type = HudDirType.valueOf(arg);
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception ignored) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (type == null) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-31 19:06:53 +08:00
|
|
|
HudPosObj obj = get(player);
|
2024-04-17 22:15:12 +08:00
|
|
|
if (obj == null)
|
|
|
|
|
obj = AllMusic.getConfig().defaultHud.copy();
|
|
|
|
|
|
|
|
|
|
switch (hud) {
|
|
|
|
|
case INFO:
|
|
|
|
|
obj.info.dir = type;
|
|
|
|
|
break;
|
|
|
|
|
case LIST:
|
|
|
|
|
obj.list.dir = type;
|
|
|
|
|
break;
|
|
|
|
|
case LYRIC:
|
|
|
|
|
obj.lyric.dir = type;
|
|
|
|
|
break;
|
|
|
|
|
case PIC:
|
|
|
|
|
obj.pic.dir = type;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
addAndSave(player, obj);
|
|
|
|
|
HudUtils.sendHudPos(player);
|
|
|
|
|
|
|
|
|
|
return type;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static boolean setColor(String player, HudType type, String arg) {
|
|
|
|
|
int color;
|
|
|
|
|
try {
|
2024-09-23 13:31:53 +08:00
|
|
|
if (arg.startsWith("0x")) {
|
|
|
|
|
color = Integer.parseUnsignedInt(arg.substring(2), 16);
|
|
|
|
|
} else if (arg.startsWith("#")) {
|
|
|
|
|
color = Integer.parseUnsignedInt(arg.substring(1), 16);
|
|
|
|
|
} else {
|
|
|
|
|
color = Integer.parseUnsignedInt(arg);
|
|
|
|
|
}
|
2024-04-17 22:15:12 +08:00
|
|
|
} catch (Exception ignored) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-31 19:06:53 +08:00
|
|
|
HudPosObj obj = get(player);
|
2024-04-17 22:15:12 +08:00
|
|
|
if (obj == null)
|
|
|
|
|
obj = AllMusic.getConfig().defaultHud.copy();
|
|
|
|
|
|
|
|
|
|
switch (type) {
|
|
|
|
|
case INFO:
|
|
|
|
|
obj.info.color = color;
|
|
|
|
|
break;
|
|
|
|
|
case LIST:
|
|
|
|
|
obj.list.color = color;
|
|
|
|
|
break;
|
|
|
|
|
case LYRIC:
|
|
|
|
|
obj.lyric.color = color;
|
|
|
|
|
break;
|
|
|
|
|
case PIC:
|
|
|
|
|
obj.pic.color = color;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2023-01-09 15:56:26 +08:00
|
|
|
|
|
|
|
|
addAndSave(player, obj);
|
|
|
|
|
HudUtils.sendHudPos(player);
|
2024-04-17 22:15:12 +08:00
|
|
|
|
2023-01-09 15:56:26 +08:00
|
|
|
return true;
|
|
|
|
|
}
|
2024-04-19 09:46:54 +08:00
|
|
|
|
|
|
|
|
public static boolean setShadow(String name, HudType pos, String arg) {
|
2026-01-31 19:06:53 +08:00
|
|
|
HudPosObj obj = get(name);
|
2024-04-19 09:46:54 +08:00
|
|
|
boolean res = false;
|
|
|
|
|
boolean value = false;
|
|
|
|
|
boolean have = false;
|
|
|
|
|
if (arg != null) {
|
|
|
|
|
try {
|
|
|
|
|
value = Boolean.parseBoolean(arg);
|
|
|
|
|
have = true;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (obj == null) {
|
|
|
|
|
obj = AllMusic.getConfig().defaultHud.copy();
|
|
|
|
|
if (have) {
|
|
|
|
|
res = obj.info.shadow = obj.list.shadow = obj.lyric.shadow = obj.pic.shadow = value;
|
|
|
|
|
} else {
|
|
|
|
|
res = obj.info.shadow = obj.list.shadow = obj.lyric.shadow = obj.pic.shadow = true;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (pos == null) {
|
|
|
|
|
if (have) {
|
|
|
|
|
res = obj.info.shadow = obj.list.shadow = obj.lyric.shadow = obj.pic.shadow = value;
|
|
|
|
|
} else if (obj.info.shadow && obj.list.shadow && obj.lyric.shadow && obj.pic.shadow) {
|
|
|
|
|
obj.info.shadow = obj.list.shadow = obj.lyric.shadow = obj.pic.shadow = false;
|
|
|
|
|
} else {
|
|
|
|
|
res = obj.info.shadow = obj.list.shadow = obj.lyric.shadow = obj.pic.shadow = true;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
switch (pos) {
|
|
|
|
|
case INFO:
|
|
|
|
|
res = obj.info.shadow = have ? value : !obj.info.shadow;
|
|
|
|
|
break;
|
|
|
|
|
case LIST:
|
|
|
|
|
res = obj.list.shadow = have ? value : !obj.list.shadow;
|
|
|
|
|
break;
|
|
|
|
|
case LYRIC:
|
|
|
|
|
res = obj.lyric.shadow = have ? value : !obj.lyric.shadow;
|
|
|
|
|
break;
|
|
|
|
|
case PIC:
|
|
|
|
|
res = obj.pic.shadow = have ? value : !obj.pic.shadow;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
addAndSave(name, obj);
|
|
|
|
|
HudUtils.sendHudPos(name);
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
}
|
2024-04-22 11:24:52 +08:00
|
|
|
|
2026-01-31 19:06:53 +08:00
|
|
|
public static void set(String name, HudPosObj obj) {
|
2024-04-22 11:24:52 +08:00
|
|
|
addAndSave(name, obj);
|
|
|
|
|
HudUtils.sendHudPos(name);
|
|
|
|
|
}
|
2024-08-12 11:14:54 +08:00
|
|
|
|
|
|
|
|
public static String infoLimit(String info) {
|
|
|
|
|
LimitObj limit = AllMusic.getConfig().limit;
|
|
|
|
|
if (limit.infoLimit && info.length() > limit.infoLimitSize)
|
|
|
|
|
info = info.substring(0, limit.infoLimitSize - 1) + limit.limitText;
|
|
|
|
|
|
|
|
|
|
return info;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static String listLimit(String list) {
|
|
|
|
|
LimitObj limit = AllMusic.getConfig().limit;
|
|
|
|
|
if (limit.listLimit && list.length() > limit.listLimitSize)
|
|
|
|
|
list = list.substring(0, limit.listLimitSize - 1) + limit.limitText;
|
|
|
|
|
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static String messageLimit(String message) {
|
|
|
|
|
LimitObj limit = AllMusic.getConfig().limit;
|
|
|
|
|
if (limit.messageLimit && message.length() > limit.messageLimitSize)
|
|
|
|
|
message = message.substring(0, limit.messageLimitSize - 1) + limit.limitText;
|
|
|
|
|
|
|
|
|
|
return message;
|
|
|
|
|
}
|
2020-05-02 21:53:22 +08:00
|
|
|
}
|