移植之前版本所有功能

This commit is contained in:
2021-12-07 21:59:41 +08:00
parent 06cb246af7
commit 697bf302ac
24 changed files with 1127 additions and 258 deletions

View File

@@ -0,0 +1,180 @@
package com.yutou.qqbot.MessageEvent;
import com.yutou.qqbot.QQBotManager;
import com.yutou.qqbot.QQNumberManager;
import com.yutou.qqbot.models.Model;
import com.yutou.qqbot.utlis.StringUtils;
import java.util.List;
public class AdminMessage extends Message {
public static class QQCommands {
private static final String POWER_ADD = "!新增权限";
private static final String POWER_SHOW = "!查看权限";
private static final String POWER_DEL = "!删除权限";
private static final String MODEL_ADD = "!新增模块";
private static final String MODEL_SHOW = "!查看模块";
private static final String MODEL_DEL = "!删除模块";
}
public AdminMessage(Long qq, String msg) {
sendQQ = qq;
String msgSrc = msg;
String[] msgGroup = msg.replace("", "!").split(" ");
System.err.println(Model.classList.size());
for (Class<?> aClass : Model.classList) {
System.err.println(aClass.getName());
}
String[] commands;
switch (msgGroup[0]) {
case QQCommands.POWER_ADD -> {
if (msgGroup.length == 1) {
StringBuilder builder = Model.getCommands(Model.QQGroupCommands.class);
builder.append("\n");
builder.append(Model.getCommands(Model.QQFromCommands.class));
QQBotManager.getInstance().sendMessage(qq, "使用方法:" + QQCommands.POWER_ADD + " [qqnumber] 权限" + "\n" + "可设置以下权限,用&分割");
QQBotManager.getInstance().sendMessage(qq, builder.toString());
} else {
if (msgGroup.length <= 2) {
addPower(msgGroup[1], null);
} else {
addPower(msgGroup[1], msgGroup[2]);
}
}
}
case QQCommands.POWER_SHOW -> {
if (msgGroup.length == 1) {
QQBotManager.getInstance().sendMessage(qq, "使用方法:" + QQCommands.POWER_SHOW + " [qqnumber]");
} else {
List<String> list = QQNumberManager.getManager().getPower(Long.parseLong(msgGroup[1]));
StringBuilder builder = new StringBuilder();
for (String power : list) {
builder.append(power).append("\n");
}
QQBotManager.getInstance().sendMessage(qq, Long.parseLong(msgGroup[1]) + " 拥有以下权限:" + builder);
}
}
case QQCommands.POWER_DEL -> {
if (msgGroup.length == 1) {
QQBotManager.getInstance().sendMessage(qq, "使用方法:" + QQCommands.POWER_DEL + " [qqnumber] 权限 用&分割");
} else {
if (msgGroup.length <= 2) {
delPower(msgGroup[1], null);
} else {
delPower(msgGroup[1], msgGroup[2]);
}
}
}
case QQCommands.MODEL_ADD -> {
if (msgGroup.length == 1) {
StringBuilder builder = new StringBuilder();
for (Class<?> aClass : Model.classList) {
builder.append(aClass.getName()).append("\n");
}
QQBotManager.getInstance().sendMessage(qq, "使用方法:" + QQCommands.MODEL_ADD + " [qqnumber] 模块" + "\n" + "可设置以下模块,用&分割");
QQBotManager.getInstance().sendMessage(qq, builder.toString());
} else {
if (msgGroup.length <= 2) {
addModel(msgGroup[1], null);
} else {
addModel(msgGroup[1], msgGroup[2]);
}
}
}
case QQCommands.MODEL_SHOW -> {
if (msgGroup.length == 1) {
QQBotManager.getInstance().sendMessage(qq, "使用方法:" + QQCommands.MODEL_SHOW + " [qqnumber]");
} else {
List<String> list = QQNumberManager.getManager().getUseModel(Long.parseLong(msgGroup[1]));
StringBuilder builder = new StringBuilder();
for (String power : list) {
builder.append(power).append("\n");
}
QQBotManager.getInstance().sendMessage(qq, Long.parseLong(msgGroup[1]) + " 拥有以下模块:" + builder);
}
}
case QQCommands.MODEL_DEL -> {
if (msgGroup.length == 1) {
QQBotManager.getInstance().sendMessage(qq, "使用方法:" + QQCommands.MODEL_DEL + " [qqnumber] 模块 用&分割");
} else {
if (msgGroup.length <= 2) {
delModel(msgGroup[1], null);
} else {
delModel(msgGroup[1], msgGroup[2]);
}
}
}
}
}
private void addPower(String qq, String msg) {
boolean flag = false;
if (msg == null) {
StringBuilder builder = Model.getCommands(Model.QQGroupCommands.class);
builder.append("\n");
builder.append(Model.getCommands(Model.QQFromCommands.class));
for (String power : builder.toString().split("\n")) {
if (!StringUtils.isEmpty(power)) {
flag = QQNumberManager.getManager().addPower(Long.parseLong(qq), power);
}
}
} else {
for (String power : msg.split("&")) {
flag = QQNumberManager.getManager().addPower(Long.parseLong(qq), power);
}
}
QQBotManager.getInstance().sendMessage(sendQQ, flag ? "新增成功" : "新增失败");
}
private void delPower(String qq, String msg) {
if (msg == null) {
List<String> list = QQNumberManager.getManager().getPower(Long.parseLong(qq));
for (String power : list) {
QQNumberManager.getManager().delPower(Long.parseLong(qq), power);
}
} else {
for (String power : msg.split("&")) {
QQNumberManager.getManager().delPower(Long.parseLong(qq), power);
}
}
}
private void addModel(String qq, String model) {
boolean flag = false;
try {
if (model == null) {
for (Class<?> power : Model.classList) {
flag = QQNumberManager.getManager().addUseModel(Long.parseLong(qq), power);
}
} else {
for (String power : model.split("&")) {
flag = QQNumberManager.getManager().addUseModel(Long.parseLong(qq), Class.forName(power));
}
}
} catch (Exception e) {
e.printStackTrace();
}
QQBotManager.getInstance().sendMessage(sendQQ, flag ? "新增成功" : "新增失败");
}
private void delModel(String qq, String model) {
try {
if (model == null) {
List<String> list = QQNumberManager.getManager().getUseModel(Long.parseLong(qq));
for (String power : list) {
QQNumberManager.getManager().delUseModel(Long.parseLong(qq), Class.forName(power));
}
} else {
for (String power : model.split("&")) {
QQNumberManager.getManager().delUseModel(Long.parseLong(qq), Class.forName(power));
}
}
}catch (Exception e){
e.printStackTrace();
}
}
}

View File

@@ -0,0 +1,7 @@
package com.yutou.qqbot.MessageEvent;
public class Message {
public long sendQQ=891655174L;
}