Files
AllMusic/core/side/ISide.java
T
2024-04-19 11:14:17 +08:00

273 lines
5.6 KiB
Java

package com.coloryr.allmusic.server.core.side;
import com.coloryr.allmusic.server.core.AllMusic;
import com.coloryr.allmusic.server.core.objs.enums.HudType;
import com.coloryr.allmusic.server.core.objs.music.MusicObj;
import com.coloryr.allmusic.server.core.objs.music.SongInfoObj;
import java.util.List;
public abstract class ISide {
/**
* 重载
*/
public abstract void reload();
/**
* 获取当前玩家数量
*
* @return 数量
*/
public abstract int getAllPlayer();
/**
* 主线程运行任务
*
* @param run 任务
*/
public abstract void runTask(Runnable run);
/**
* 主线程延迟任务
*
* @param run 任务
* @param delay 延迟
*/
public abstract void runTask(Runnable run, int delay);
/**
* 检查权限
*
* @param player 用户名
* @param permission 权限
* @return 是否有权限
*/
public abstract boolean checkPermission(String player, String permission);
/**
* 是否需要播放
*
* @return 结果
*/
public abstract boolean needPlay();
/**
* 发送停止指令
*/
public final void sendStop() {
AllMusic.clearNowPlayer();
topSendStop();
}
protected abstract void topSendStop();
/**
* 发送停止指令
*
* @param name 用户名
*/
public final void sendStop(String name) {
AllMusic.removeNowPlayPlayer(name);
topSendStop(name);
}
protected abstract void topSendStop(String name);
/**
* 发送播放歌曲指令
*
* @param url 歌曲Url
*/
public abstract void sendMusic(String url);
public final void sendMusic(String player, String url) {
AllMusic.addNowPlayPlayer(player);
topSendMusic(player, url);
}
protected abstract void topSendMusic(String player, String url);
/**
* 发送图片数据指令
*
* @param url 图片地址
*/
public abstract void sendPic(String url);
/**
* 发送图片数据指令
*
* @param player 用户名
* @param url 图片地址
*/
public abstract void sendPic(String player, String url);
/**
* 发送歌曲位置信息
*
* @param player 用户名
* @param pos 歌曲位置(毫秒)
*/
public abstract void sendPos(String player, int pos);
/**
* 发送Hud的歌词数据
*
* @param data 数据
*/
public abstract void sendHudLyric(String data);
/**
* 发送Hud的信息数据
*
* @param data 数据
*/
public abstract void sendHudInfo(String data);
/**
* 发送Hud的位置信息
*
* @param name 用户名
*/
public abstract void sendHudPos(String name);
/**
* 发送Hud数据
*
* @param name 用户名
* @param pos 位置
* @param data 信息
*/
public abstract void sendHud(String name, HudType pos, String data);
/**
* 发送Hud的歌曲列表数据
*
* @param data 数据
*/
public abstract void sendHudList(String data);
/**
* 发送Hud位置数据
*/
public abstract void sendHudUtilsAll();
/**
* 发送Bar数据
*
* @param data 数据
*/
public abstract void sendBar(String data);
/**
* 清理Hud数据
*
* @param player 用户名
*/
public abstract void clearHud(String player);
/**
* 清理Hud数据
*/
public abstract void clearHud();
/**
* 广播消息
*
* @param data 消息
*/
public abstract void bq(String data);
/**
* 广播点击消息
*
* @param message 消息
* @param end 结尾
* @param command 指令
*/
public abstract void bqRun(String message, String end, String command);
/**
* 在主线程中广播消息
*
* @param data 消息
*/
public abstract void bqt(String data);
/**
* 在主线程发送消息
*
* @param obj 接受对象
* @param message 消息
*/
public abstract void sendMessaget(Object obj, String message);
/**
* 发送消息
*
* @param obj 接受对象
* @param message 消息
*/
public abstract void sendMessage(Object obj, String message);
/**
* 发送执行指令
*
* @param obj 接受对象
* @param message 消息
* @param end 结尾
* @param command 指令
*/
public abstract void sendMessageRun(Object obj, String message, String end, String command);
/**
* 发送推荐指令
*
* @param obj 接受对象
* @param message 消息
* @param end 结尾
* @param command 指令
*/
public abstract void sendMessageSuggest(Object obj, String message, String end, String command);
/**
* 当歌曲添加时触发的事件
*
* @param obj 歌曲信息
* @return 是否阻止播放
*/
public abstract boolean onMusicPlay(SongInfoObj obj);
/**
* 当歌曲播放时触发的事件
*
* @param obj 发送者
* @param music 歌曲信息
* @return 是否阻止添加
*/
public abstract boolean onMusicAdd(Object obj, MusicObj music);
/**
* 更新信息
*/
public abstract void updateInfo();
/**
* 更新歌词
*/
public abstract void updateLyric();
/**
* 发送BC的ping包
*/
public abstract void ping();
/**
* 获取玩家列表
*
* @return 玩家列表
*/
public abstract List<String> getPlayerList();
}