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 de.steamwar.velocitycore.discord.listeners.ChannelListener;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import net.dv8tion.jda.api.entities.Icon;
|
||||||
import net.dv8tion.jda.api.entities.User;
|
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.entities.channel.middleman.MessageChannel;
|
||||||
import net.dv8tion.jda.api.events.interaction.component.GenericComponentInteractionCreateEvent;
|
import net.dv8tion.jda.api.events.interaction.component.GenericComponentInteractionCreateEvent;
|
||||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
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.dv8tion.jda.api.utils.messages.MessageCreateBuilder;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
||||||
@@ -61,12 +64,55 @@ public class DiscordChannel extends Chatter.PlayerlessChatter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void send(String message) {
|
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()
|
send(new MessageCreateBuilder()
|
||||||
.setContent(message
|
.setContent(message));
|
||||||
.replace("&", "")
|
|
||||||
.replace("@everyone", "`@everyone`")
|
|
||||||
.replace("@here", "`@here`")
|
|
||||||
.replaceAll("<[@#]!?\\d+>", "`$0`")));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void send(MessageCreateBuilder builder) {
|
public void send(MessageCreateBuilder builder) {
|
||||||
|
|||||||
Reference in New Issue
Block a user