forked from SteamWar/SteamWar
Improve DiscordChannel on discord!
This commit is contained in:
@@ -26,10 +26,13 @@ import de.steamwar.velocitycore.discord.DiscordBot;
|
||||
import de.steamwar.velocitycore.discord.listeners.ChannelListener;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import net.dv8tion.jda.api.entities.Icon;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
import net.dv8tion.jda.api.events.interaction.component.GenericComponentInteractionCreateEvent;
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
import net.dv8tion.jda.api.utils.ImageProxy;
|
||||
import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
||||
@@ -61,12 +64,55 @@ public class DiscordChannel extends Chatter.PlayerlessChatter {
|
||||
}
|
||||
|
||||
public void send(String message) {
|
||||
message = message
|
||||
.replace("&", "")
|
||||
.replace("@everyone", "`@everyone`")
|
||||
.replace("@here", "`@here`")
|
||||
.replaceAll("<[@#]!?\\d+>", "`$0`");
|
||||
|
||||
if (getChannel() instanceof TextChannel && message.contains("»")) {
|
||||
String[] strings = message.split("»", 2);
|
||||
String userName = strings[0];
|
||||
message = strings[1];
|
||||
strings = userName.split(" ");
|
||||
|
||||
String ingameName = strings[strings.length - 1];
|
||||
|
||||
SteamwarUser user = SteamwarUser.get(ingameName);
|
||||
if (user != null) {
|
||||
send(new MessageCreateBuilder()
|
||||
.setContent(message));
|
||||
return;
|
||||
}
|
||||
|
||||
ImageProxy avatarUrl;
|
||||
if (user.getDiscordId() != null) {
|
||||
avatarUrl = DiscordBot.getGuild().retrieveMemberById(user.getDiscordId()).complete().getEffectiveAvatar();
|
||||
} else {
|
||||
avatarUrl = DiscordBot.getInstance().getJda().getSelfUser().getAvatar();
|
||||
}
|
||||
|
||||
TextChannel textChannel = (TextChannel) getChannel();
|
||||
String finalMessage = message;
|
||||
try {
|
||||
textChannel.createWebhook(userName)
|
||||
.setAvatar(Icon.from(avatarUrl.download(128).get()))
|
||||
.onSuccess(webhook -> {
|
||||
webhook.sendMessage(finalMessage)
|
||||
.onSuccess(__ -> {
|
||||
webhook.delete().queue();
|
||||
})
|
||||
.queue();
|
||||
})
|
||||
.queue();
|
||||
return;
|
||||
} catch (Exception e) {
|
||||
// Ignore and send message as normal!
|
||||
}
|
||||
}
|
||||
|
||||
send(new MessageCreateBuilder()
|
||||
.setContent(message
|
||||
.replace("&", "")
|
||||
.replace("@everyone", "`@everyone`")
|
||||
.replace("@here", "`@here`")
|
||||
.replaceAll("<[@#]!?\\d+>", "`$0`")));
|
||||
.setContent(message));
|
||||
}
|
||||
|
||||
public void send(MessageCreateBuilder builder) {
|
||||
|
||||
Reference in New Issue
Block a user