小修代码

This commit is contained in:
Xujiayao 2021-11-04 18:45:06 +08:00
parent 12a8bd6047
commit df54e6482b
4 changed files with 30 additions and 27 deletions

View file

@ -37,15 +37,12 @@ dependencies {
include 'net.sf.trove4j:trove4j:3.0.3'
include 'org.apache.commons:commons-collections4:4.4'
include 'org.apache.httpcomponents:httpclient:4.5.13'
include 'org.jetbrains:annotations:22.0.0'
include 'org.jetbrains.kotlin:kotlin-stdlib:1.5.31'
include 'com.neovisionaries:nv-websocket-client:2.14'
include 'com.fasterxml.jackson.core:jackson-annotations:2.13.0'
include 'com.fasterxml.jackson.core:jackson-core:2.13.0'
include 'com.fasterxml.jackson.core:jackson-databind:2.13.0'
include 'com.google.code.gson:gson:2.8.9'
include 'com.neovisionaries:nv-websocket-client:2.14'
include 'com.squareup.okhttp3:okhttp:4.9.2'
include 'com.squareup.okio:okio:2.10.0'
include(modImplementation("org.json:json:20210307"))

View file

@ -11,8 +11,6 @@ import net.dv8tion.jda.api.utils.MemberCachePolicy;
import net.fabricmc.api.DedicatedServerModInitializer;
import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import okhttp3.OkHttpClient;
import okhttp3.Protocol;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import top.xujiayao.mcdiscordchat.commands.ShrugCommand;
@ -25,7 +23,6 @@ import top.xujiayao.mcdiscordchat.utils.ConfigManager;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
/**
* @author Xujiayao
@ -45,17 +42,13 @@ public class Main implements DedicatedServerModInitializer {
try {
if (Main.config.generic.membersIntents) {
jda = JDABuilder.createDefault(Main.config.generic.botToken).setHttpClient(new OkHttpClient.Builder()
.protocols(Collections.singletonList(Protocol.HTTP_1_1))
.build())
jda = JDABuilder.createDefault(Main.config.generic.botToken)
.setMemberCachePolicy(MemberCachePolicy.ALL)
.enableIntents(GatewayIntent.GUILD_MEMBERS)
.addEventListeners(new DiscordEventListener())
.build();
} else {
jda = JDABuilder.createDefault(Main.config.generic.botToken).setHttpClient(new OkHttpClient.Builder()
.protocols(Collections.singletonList(Protocol.HTTP_1_1))
.build())
jda = JDABuilder.createDefault(Main.config.generic.botToken)
.addEventListeners(new DiscordEventListener())
.build();
}
@ -89,11 +82,11 @@ public class Main implements DedicatedServerModInitializer {
}
for (String id : config.generic.superAdminsIds) {
text.append("<@" + id + "> ");
text.append("<@").append(id).append("> ");
}
for (String id : config.generic.adminsIds) {
text.append("<@" + id + "> ");
text.append("<@").append(id).append("> ");
}
textChannel.sendMessage(text).queue();

View file

@ -1,6 +1,8 @@
package top.xujiayao.mcdiscordchat.listeners;
import com.vdurmont.emoji.EmojiParser;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.MessageEmbed;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import net.fabricmc.loader.api.FabricLoader;
@ -23,6 +25,7 @@ import top.xujiayao.mcdiscordchat.utils.DiscordCommandOutput;
import top.xujiayao.mcdiscordchat.utils.MarkdownParser;
import top.xujiayao.mcdiscordchat.utils.Scoreboard;
import java.awt.Color;
import java.util.List;
import java.util.Objects;
@ -75,17 +78,17 @@ public class DiscordEventListener extends ListenerAdapter {
StringBuilder infoString = new StringBuilder("```\n=============== " + (Main.config.generic.switchLanguageFromChinToEng ? "Server Status" : "运行状态") + " ===============\n\n");
List<ServerPlayerEntity> onlinePlayers = server.getPlayerManager().getPlayerList();
infoString.append((Main.config.generic.switchLanguageFromChinToEng ? "Online players" : "在线玩家") + " (").append(onlinePlayers.size()).append(")" + (Main.config.generic.switchLanguageFromChinToEng ? ":" : ""));
infoString.append(Main.config.generic.switchLanguageFromChinToEng ? "Online players" : "在线玩家").append(" (").append(onlinePlayers.size()).append(")").append(Main.config.generic.switchLanguageFromChinToEng ? ":" : "");
if (onlinePlayers.isEmpty()) {
infoString.append("\n" + (Main.config.generic.switchLanguageFromChinToEng ? "No players online!" : "当前没有在线玩家!"));
infoString.append("\n").append(Main.config.generic.switchLanguageFromChinToEng ? "No players online!" : "当前没有在线玩家!");
} else {
for (ServerPlayerEntity player : onlinePlayers) {
infoString.append("\n[").append(player.pingMilliseconds).append("ms] ").append(player.getEntityName());
}
}
infoString.append("\n\n" + (Main.config.generic.switchLanguageFromChinToEng ? "Server TPS:\n" : "服务器 TPS\n"));
infoString.append("\n\n").append(Main.config.generic.switchLanguageFromChinToEng ? "Server TPS:\n" : "服务器 TPS\n");
double serverTickTime = MathHelper.average(server.lastTickLengths) * 1.0E-6D;
infoString.append(Math.min(1000.0 / serverTickTime, 20));
@ -184,7 +187,7 @@ public class DiscordEventListener extends ListenerAdapter {
StringBuilder bannedList = new StringBuilder("```\n=============== " + (Main.config.generic.switchLanguageFromChinToEng ? "Blacklist" : "黑名单") + " ===============\n\nDiscord:");
if (Main.config.generic.bannedDiscord.size() == 0) {
bannedList.append("\n" + (Main.config.generic.switchLanguageFromChinToEng ? "List is empty!" : "列表为空!"));
bannedList.append("\n").append(Main.config.generic.switchLanguageFromChinToEng ? "List is empty!" : "列表为空!");
}
for (String id : Main.config.generic.bannedDiscord) {
@ -194,7 +197,7 @@ public class DiscordEventListener extends ListenerAdapter {
bannedList.append("\n\nMinecraft:");
if (Main.config.generic.bannedMinecraft.size() == 0) {
bannedList.append("\n" + (Main.config.generic.switchLanguageFromChinToEng ? "List is empty!" : "列表为空!"));
bannedList.append("\n").append(Main.config.generic.switchLanguageFromChinToEng ? "List is empty!" : "列表为空!");
}
for (String name : Main.config.generic.bannedMinecraft) {
@ -253,17 +256,17 @@ public class DiscordEventListener extends ListenerAdapter {
StringBuilder adminList = new StringBuilder("```\n=============== " + (Main.config.generic.switchLanguageFromChinToEng ? "Admin List" : "管理员名单") + " ===============\n\n" + (Main.config.generic.switchLanguageFromChinToEng ? "Super admins:" : "超级管理员:"));
if (Main.config.generic.superAdminsIds.size() == 0) {
adminList.append("\n" + (Main.config.generic.switchLanguageFromChinToEng ? "List is empty!" : "列表为空!"));
adminList.append("\n").append(Main.config.generic.switchLanguageFromChinToEng ? "List is empty!" : "列表为空!");
}
for (String id : Main.config.generic.superAdminsIds) {
adminList.append("\n").append(id);
}
adminList.append("\n\n" + (Main.config.generic.switchLanguageFromChinToEng ? "Admins:" : "普通管理员:"));
adminList.append("\n\n").append(Main.config.generic.switchLanguageFromChinToEng ? "Admins:" : "普通管理员:");
if (Main.config.generic.adminsIds.size() == 0) {
adminList.append("\n" + (Main.config.generic.switchLanguageFromChinToEng ? "List is empty!" : "列表为空!"));
adminList.append("\n").append(Main.config.generic.switchLanguageFromChinToEng ? "List is empty!" : "列表为空!");
}
for (String name : Main.config.generic.adminsIds) {
@ -277,6 +280,17 @@ public class DiscordEventListener extends ListenerAdapter {
LiteralText coloredText;
LiteralText colorlessText;
e.getChannel().sendMessage(new EmbedBuilder()
.setTitle("Test")
.setColor(Color.red)
.setDescription("Description")
.addField("Title of field", "test of field", false)
.setAuthor("name", null, "https://blog.xujiayao.top/file/avatar.jpg")
.setFooter("Text", "https://github.com/zekroTJA/DiscordBot/blob/master/.websrc/zekroBot_Logo_-_round_small.png")
.setImage("https://github.com/zekroTJA/DiscordBot/blob/master/.websrc/logo%20-%20title.png")
.setThumbnail("https://github.com/zekroTJA/DiscordBot/blob/master/.websrc/logo%20-%20title.png")
.build()).queue();
if (e.isWebhookMessage() || e.getAuthor().isBot()) {
coloredText = new LiteralText(Main.texts.coloredText()
.replace("%servername%", e.getAuthor().getName().substring(1, e.getAuthor().getName().indexOf("] ")))
@ -295,7 +309,6 @@ public class DiscordEventListener extends ListenerAdapter {
.replace("\n", Main.texts.removeLineBreakFromDiscord() ? " " : "\n")
+ ((!e.getMessage().getAttachments().isEmpty()) ? " <att>" : "")
+ ((!e.getMessage().getEmbeds().isEmpty()) ? " <embed>" : ""))));
colorlessText.setStyle(colorlessText.getStyle().withColor(TextColor.fromFormatting(Formatting.GRAY)));
} else {
coloredText = new LiteralText(Main.texts.coloredText()
.replace("%servername%", "Discord")
@ -315,9 +328,10 @@ public class DiscordEventListener extends ListenerAdapter {
.replace("\n", Main.texts.removeLineBreakFromDiscord() ? " " : "\n")
+ ((!e.getMessage().getAttachments().isEmpty()) ? " <att>" : "")
+ ((!e.getMessage().getEmbeds().isEmpty()) ? " <embed>" : ""))));
colorlessText.setStyle(colorlessText.getStyle().withColor(TextColor.fromFormatting(Formatting.GRAY)));
}
colorlessText.setStyle(colorlessText.getStyle().withColor(TextColor.fromFormatting(Formatting.GRAY)));
server.getPlayerManager().getPlayerList().forEach(
serverPlayerEntity -> serverPlayerEntity.sendMessage(new LiteralText("").append(coloredText).append(colorlessText), false));
}

View file

@ -94,7 +94,7 @@ public class Scoreboard {
}
if (length == 0) {
output.append("\n" + (Main.config.generic.switchLanguageFromChinToEng ? "No result" : "无结果"));
output.append("\n").append(Main.config.generic.switchLanguageFromChinToEng ? "No result" : "无结果");
}
output.append("\n```");
@ -110,8 +110,7 @@ public class Scoreboard {
}
if (output == null) {
output = new StringBuilder("```\n=============== " + (Main.config.generic.switchLanguageFromChinToEng ? "Scoreboard" : "排行榜") + " ===============\n")
.append("\n" + (Main.config.generic.switchLanguageFromChinToEng ? "No result" : "无结果"))
output = new StringBuilder("```\n=============== " + (Main.config.generic.switchLanguageFromChinToEng ? "Scoreboard" : "排行榜") + " ===============\n").append("\n").append(Main.config.generic.switchLanguageFromChinToEng ? "No result" : "无结果")
.append("\n```");
}