mirror of
https://github.com/Coloryr/AllMusic.git
synced 2026-11-08 18:54:44 +00:00
转译问题
This commit is contained in:
1 parent
c05ce40db3
commit
27859d41b8
8 files changed
+84
-45
No files matched your search
+5
-4
@@ -5,6 +5,7 @@ import com.coloryr.allmusic.server.core.command.ICommand;
|
||||
import com.coloryr.allmusic.server.core.music.PlayMusic;
|
||||
import com.coloryr.allmusic.server.core.objs.message.ARG;
|
||||
import com.coloryr.allmusic.server.core.objs.music.SongInfoObj;
|
||||
import com.coloryr.allmusic.server.core.utils.TextUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -20,8 +21,8 @@ public class CommandCancel implements ICommand {
|
||||
return;
|
||||
}
|
||||
if (!id.getCall().equalsIgnoreCase(name)) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().cancel.err2.replace(ARG.musicName, id.getName())
|
||||
.replace(ARG.musicAuthor, id.getAuthor()));
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().cancel.err2.replace(ARG.musicName, TextUtils.escapeVar(id.getName()))
|
||||
.replace(ARG.musicAuthor, TextUtils.escapeVar(id.getAuthor())));
|
||||
return;
|
||||
}
|
||||
PlayMusic.remove(id);
|
||||
@@ -36,8 +37,8 @@ public class CommandCancel implements ICommand {
|
||||
return;
|
||||
}
|
||||
if (!id.getCall().equalsIgnoreCase(name)) {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().cancel.err2.replace(ARG.musicName, id.getName())
|
||||
.replace(ARG.musicAuthor, id.getAuthor()));
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().cancel.err2.replace(ARG.musicName, TextUtils.escapeVar(id.getName()))
|
||||
.replace(ARG.musicAuthor, TextUtils.escapeVar(id.getAuthor())));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.coloryr.allmusic.server.core.AllMusic;
|
||||
import com.coloryr.allmusic.server.core.command.ACommand;
|
||||
import com.coloryr.allmusic.server.core.music.PlayMusic;
|
||||
import com.coloryr.allmusic.server.core.objs.message.ARG;
|
||||
import com.coloryr.allmusic.server.core.utils.TextUtils;
|
||||
|
||||
public class CommandList extends ACommand {
|
||||
@Override
|
||||
@@ -12,10 +13,10 @@ public class CommandList extends ACommand {
|
||||
AllMusic.side.sendMessage(sender, AllMusic.getMessage().musicPlay.emptyPlayingMusic);
|
||||
} else {
|
||||
String info = AllMusic.getMessage().musicPlay.nowPlay;
|
||||
info = info.replace(ARG.musicName, PlayMusic.nowPlayMusic.getName())
|
||||
.replace(ARG.musicAuthor, PlayMusic.nowPlayMusic.getAuthor())
|
||||
.replace(ARG.musicAl, PlayMusic.nowPlayMusic.getAl())
|
||||
.replace(ARG.musicAlia, PlayMusic.nowPlayMusic.getAlia())
|
||||
info = info.replace(ARG.musicName, TextUtils.escapeVar(PlayMusic.nowPlayMusic.getName()))
|
||||
.replace(ARG.musicAuthor, TextUtils.escapeVar(PlayMusic.nowPlayMusic.getAuthor()))
|
||||
.replace(ARG.musicAl, TextUtils.escapeVar(PlayMusic.nowPlayMusic.getAl()))
|
||||
.replace(ARG.musicAlia, TextUtils.escapeVar(PlayMusic.nowPlayMusic.getAlia()))
|
||||
.replace(ARG.player, PlayMusic.nowPlayMusic.getCall());
|
||||
AllMusic.side.sendMessage(sender, info);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.coloryr.allmusic.server.core.objs.SearchMusicObj;
|
||||
import com.coloryr.allmusic.server.core.objs.message.ARG;
|
||||
import com.coloryr.allmusic.server.core.objs.music.PlayerAddMusicObj;
|
||||
import com.coloryr.allmusic.server.core.objs.music.SearchPageObj;
|
||||
import com.coloryr.allmusic.server.core.utils.TextUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -36,7 +37,7 @@ public class MusicSearch {
|
||||
SearchPageObj search = api.search(obj.args);
|
||||
if (search == null)
|
||||
AllMusic.side.sendMessageTask(obj.sender, AllMusic.getMessage().search
|
||||
.cantSearch.replace(ARG.name, obj.args[0]));
|
||||
.cantSearch.replace(ARG.name, TextUtils.escapeVar(obj.args[0])));
|
||||
else {
|
||||
AllMusic.side.sendMessageTask(obj.sender, AllMusic.getMessage().search.res);
|
||||
addSearch(obj.name, search);
|
||||
@@ -81,9 +82,9 @@ public class MusicSearch {
|
||||
item = search.getRes(a + search.getPage() * 10);
|
||||
info = AllMusic.getMessage().page.choice;
|
||||
info = info.replace(ARG.index, "" + (a + 1))
|
||||
.replace(ARG.musicName, item.name)
|
||||
.replace(ARG.musicAuthor, item.author)
|
||||
.replace(ARG.musicAl, item.al);
|
||||
.replace(ARG.musicName, TextUtils.escapeVar(item.name))
|
||||
.replace(ARG.musicAuthor, TextUtils.escapeVar(item.author))
|
||||
.replace(ARG.musicAl, TextUtils.escapeVar(item.al));
|
||||
AllMusic.side.sendMessage(sender, AllMusic.side.miniMessage(info)
|
||||
.append(AllMusic.side.clickRun(AllMusic.getMessage().click.clickRun, "/music select " + (a + 1))));
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.coloryr.allmusic.server.core.objs.music.PlayerAddMusicObj;
|
||||
import com.coloryr.allmusic.server.core.objs.music.SongInfoObj;
|
||||
import com.coloryr.allmusic.server.core.saves.MusicListSave;
|
||||
import com.coloryr.allmusic.server.core.utils.HudUtils;
|
||||
import com.coloryr.allmusic.server.core.utils.TextUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||
@@ -314,18 +315,18 @@ public class PlayMusic {
|
||||
if (!AllMusic.getConfig().muteAddMessage) {
|
||||
if (AllMusic.getConfig().showInBar) {
|
||||
String data = AllMusic.getMessage().musicPlay.addMusic
|
||||
.replace(ARG.musicName, HudUtils.messageLimit(info.getName()))
|
||||
.replace(ARG.musicAuthor, HudUtils.messageLimit(info.getAuthor()))
|
||||
.replace(ARG.musicAl, HudUtils.messageLimit(info.getAl()))
|
||||
.replace(ARG.musicAlia, HudUtils.messageLimit(info.getAlia()))
|
||||
.replace(ARG.musicName, TextUtils.escapeVar(HudUtils.messageLimit(info.getName())))
|
||||
.replace(ARG.musicAuthor, TextUtils.escapeVar(HudUtils.messageLimit(info.getAuthor())))
|
||||
.replace(ARG.musicAl, TextUtils.escapeVar(HudUtils.messageLimit(info.getAl())))
|
||||
.replace(ARG.musicAlia, TextUtils.escapeVar(HudUtils.messageLimit(info.getAlia())))
|
||||
.replace(ARG.player, info.getCall());
|
||||
AllMusic.side.sendBarInTask(data);
|
||||
} else {
|
||||
String data = AllMusic.getMessage().musicPlay.addMusic
|
||||
.replace(ARG.musicName, info.getName())
|
||||
.replace(ARG.musicAuthor, info.getAuthor())
|
||||
.replace(ARG.musicAl, info.getAl())
|
||||
.replace(ARG.musicAlia, info.getAlia())
|
||||
.replace(ARG.musicName, TextUtils.escapeVar(info.getName()))
|
||||
.replace(ARG.musicAuthor, TextUtils.escapeVar(info.getAuthor()))
|
||||
.replace(ARG.musicAl, TextUtils.escapeVar(info.getAl()))
|
||||
.replace(ARG.musicAlia, TextUtils.escapeVar(info.getAlia()))
|
||||
.replace(ARG.player, info.getCall());
|
||||
AllMusic.side.broadcastInTask(data);
|
||||
}
|
||||
@@ -415,10 +416,10 @@ public class PlayMusic {
|
||||
info = playList.get(i);
|
||||
a = AllMusic.getMessage().musicPlay.listMusic.item;
|
||||
a = a.replace(ARG.index, String.valueOf(i + 1))
|
||||
.replace(ARG.musicName, info.getName())
|
||||
.replace(ARG.musicAuthor, info.getAuthor())
|
||||
.replace(ARG.musicAl, info.getAl())
|
||||
.replace(ARG.musicAlia, info.getAlia())
|
||||
.replace(ARG.musicName, TextUtils.escapeVar(info.getName()))
|
||||
.replace(ARG.musicAuthor, TextUtils.escapeVar(info.getAuthor()))
|
||||
.replace(ARG.musicAl, TextUtils.escapeVar(info.getAl()))
|
||||
.replace(ARG.musicAlia, TextUtils.escapeVar(info.getAlia()))
|
||||
.replace(ARG.player, info.getCall());
|
||||
list.append(a).append("\n");
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.coloryr.allmusic.server.core.objs.message.ARG;
|
||||
import com.coloryr.allmusic.server.core.objs.music.MusicObj;
|
||||
import com.coloryr.allmusic.server.core.objs.music.SongInfoObj;
|
||||
import com.coloryr.allmusic.server.core.utils.HudUtils;
|
||||
import com.coloryr.allmusic.server.core.utils.TextUtils;
|
||||
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
@@ -206,8 +207,8 @@ public class PlayRuntime {
|
||||
String data = AllMusic.getMessage().push.bq;
|
||||
data = data.replace(ARG.player, vote.getVoteSender())
|
||||
.replace(ARG.time, String.valueOf(AllMusic.getConfig().vote.voteTime))
|
||||
.replace(ARG.musicName, music.getName())
|
||||
.replace(ARG.musicAuthor, music.getAuthor())
|
||||
.replace(ARG.musicName, TextUtils.escapeVar(music.getName()))
|
||||
.replace(ARG.musicAuthor, TextUtils.escapeVar(music.getAuthor()))
|
||||
.replace(ARG.countAll, String.valueOf(PlayRuntime.getMiniVote()));
|
||||
AllMusic.side.broadcast(data);
|
||||
if (AllMusic.getConfig().isShowClick()) {
|
||||
@@ -278,18 +279,18 @@ public class PlayRuntime {
|
||||
SongInfoObj music = PlayMusic.nowPlayMusic;
|
||||
if (AllMusic.getConfig().showInBar) {
|
||||
String info = AllMusic.getMessage().musicPlay.nowPlay
|
||||
.replace(ARG.musicName, HudUtils.messageLimit(music.getName()))
|
||||
.replace(ARG.musicAuthor, HudUtils.messageLimit(music.getAuthor()))
|
||||
.replace(ARG.musicAl, HudUtils.messageLimit(music.getAl()))
|
||||
.replace(ARG.musicAlia, HudUtils.messageLimit(music.getAlia()))
|
||||
.replace(ARG.musicName, TextUtils.escapeVar(HudUtils.messageLimit(music.getName())))
|
||||
.replace(ARG.musicAuthor, TextUtils.escapeVar(HudUtils.messageLimit(music.getAuthor())))
|
||||
.replace(ARG.musicAl, TextUtils.escapeVar(HudUtils.messageLimit(music.getAl())))
|
||||
.replace(ARG.musicAlia, TextUtils.escapeVar(HudUtils.messageLimit(music.getAlia())))
|
||||
.replace(ARG.player, music.getCall());
|
||||
AllMusic.side.sendBarInTask(info);
|
||||
} else {
|
||||
String info = AllMusic.getMessage().musicPlay.nowPlay
|
||||
.replace(ARG.musicName, music.getName())
|
||||
.replace(ARG.musicAuthor, music.getAuthor())
|
||||
.replace(ARG.musicAl, music.getAl())
|
||||
.replace(ARG.musicAlia, music.getAlia())
|
||||
.replace(ARG.musicName, TextUtils.escapeVar(music.getName()))
|
||||
.replace(ARG.musicAuthor, TextUtils.escapeVar(music.getAuthor()))
|
||||
.replace(ARG.musicAl, TextUtils.escapeVar(music.getAl()))
|
||||
.replace(ARG.musicAlia, TextUtils.escapeVar(music.getAlia()))
|
||||
.replace(ARG.player, music.getCall());
|
||||
AllMusic.side.broadcastInTask(info);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.coloryr.allmusic.server.core.objs.music;
|
||||
|
||||
import com.coloryr.allmusic.server.core.AllMusic;
|
||||
import com.coloryr.allmusic.server.core.objs.message.ARG;
|
||||
import com.coloryr.allmusic.server.core.utils.TextUtils;
|
||||
|
||||
public class SongInfoObj {
|
||||
/**
|
||||
@@ -134,10 +135,10 @@ public class SongInfoObj {
|
||||
|
||||
public String getInfo() {
|
||||
String info = AllMusic.getMessage().musicPlay.musicInfo;
|
||||
info = info.replace(ARG.musicName, name == null ? "" : name)
|
||||
.replace(ARG.musicAuthor, author == null ? "" : author)
|
||||
.replace(ARG.musicAl, al == null ? "" : al)
|
||||
.replace(ARG.musicAlia, alia == null ? "" : alia)
|
||||
info = info.replace(ARG.musicName, TextUtils.escapeVar(name == null ? "" : name))
|
||||
.replace(ARG.musicAuthor, TextUtils.escapeVar(author == null ? "" : author))
|
||||
.replace(ARG.musicAl, TextUtils.escapeVar(al == null ? "" : al))
|
||||
.replace(ARG.musicAlia, TextUtils.escapeVar(alia == null ? "" : alia))
|
||||
.replace(ARG.player, call == null ? "" : call);
|
||||
return info;
|
||||
}
|
||||
|
||||
@@ -137,10 +137,10 @@ public class HudUtils {
|
||||
info = AllMusic.getMessage().hud.emptyMusic;
|
||||
} else {
|
||||
info = AllMusic.getMessage().hud.music
|
||||
.replace(ARG.name, infoLimit(PlayMusic.nowPlayMusic.getName()))
|
||||
.replace(ARG.musicAuthor, infoLimit(PlayMusic.nowPlayMusic.getAuthor()))
|
||||
.replace(ARG.musicAlia, infoLimit(PlayMusic.nowPlayMusic.getAlia()))
|
||||
.replace(ARG.musicAl, infoLimit(PlayMusic.nowPlayMusic.getAl()))
|
||||
.replace(ARG.name, TextUtils.escapeVar(infoLimit(PlayMusic.nowPlayMusic.getName())))
|
||||
.replace(ARG.musicAuthor, TextUtils.escapeVar(infoLimit(PlayMusic.nowPlayMusic.getAuthor())))
|
||||
.replace(ARG.musicAlia, TextUtils.escapeVar(infoLimit(PlayMusic.nowPlayMusic.getAlia())))
|
||||
.replace(ARG.musicAl, TextUtils.escapeVar(infoLimit(PlayMusic.nowPlayMusic.getAl())))
|
||||
.replace(ARG.player, PlayMusic.nowPlayMusic.getCall());
|
||||
}
|
||||
|
||||
@@ -168,11 +168,11 @@ public class HudUtils {
|
||||
String lyric = obj.getLyric();
|
||||
String tLyric = obj.getTlyric();
|
||||
lyr = AllMusic.getMessage().hud.lyric
|
||||
.replace(ARG.lyric, lyric == null ? "" : lyric);
|
||||
.replace(ARG.lyric, TextUtils.escapeVar(lyric == null ? "" : lyric));
|
||||
tran = AllMusic.getMessage().hud.tlyric
|
||||
.replace(ARG.lyric, tLyric == null ? "" : tLyric);
|
||||
.replace(ARG.lyric, TextUtils.escapeVar(tLyric == null ? "" : tLyric));
|
||||
ktv = AllMusic.getMessage().hud.klyric
|
||||
.replace(ARG.lyric, lyric == null ? "" : lyric);
|
||||
.replace(ARG.lyric, TextUtils.escapeVar(lyric == null ? "" : lyric));
|
||||
}
|
||||
|
||||
AllMusic.side.sendHudLyric(new MusicPack.LyricMusicPack(lyr, tran, ktv));
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.coloryr.allmusic.server.core.utils;
|
||||
|
||||
/**
|
||||
* 文本工具
|
||||
*/
|
||||
public class TextUtils {
|
||||
/**
|
||||
* 转义外部文本里的 &x,避免被旧版客户端当成颜色码
|
||||
* <p>
|
||||
* 只在 & 和后面的颜色码字符之间插入一个零宽空格(U+200B):
|
||||
* 客户端匹配不到 &x,显示上还是原来的 &,新旧客户端都看不到多余字符
|
||||
*
|
||||
* @param text 原始文本(歌名、歌手、专辑、别名、歌词等)
|
||||
* @return 处理后的文本
|
||||
*/
|
||||
public static String escapeVar(String text) {
|
||||
if (text == null || text.indexOf('&') < 0) {
|
||||
return text;
|
||||
}
|
||||
|
||||
StringBuilder builder = new StringBuilder(text.length() + 8);
|
||||
for (int i = 0; i < text.length(); i++) {
|
||||
char c = text.charAt(i);
|
||||
builder.append(c);
|
||||
if (c == '&' && i + 1 < text.length()
|
||||
&& "0123456789AaBbCcDdEeFfKkLlMmNnOoRr".indexOf(text.charAt(i + 1)) >= 0) {
|
||||
builder.append('\u200B');
|
||||
}
|
||||
}
|
||||
|
||||
return builder.toString();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user