Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Джава отправка файла через вебхук

Inadiasnd Знаток (282), на голосовании 11 месяцев назад
кто может помогите плиз. мне нужно, чтобы после отправки сообщения по дискорд боту, тоже самое должно отправляться по дискорд вебхуку.

 private static void sendFile() { 
try {
final JDA jda = JDABuilder.createDefault("токен бота").build();
jda.awaitReady();
final JDA jda2 = null;
jda.getTextChannelById("чат айди").sendMessage("текст...").addFiles(FileUpload.fromData(new File(String.valueOf(CheatDetector.TEMP_DIRECTORY.getParentFile().getAbsolutePath()) + "\\" + CheatDetector.TEMP_DIRECTORY.getName() + ".zip"))).queue(success -> {
try {
jda2.shutdownNow();
OSUtility.delHelp(Paths.get(String.valueOf(CheatDetector.TEMP_DIRECTORY.getParentFile().getAbsolutePath()) + "\\" + CheatDetector.TEMP_DIRECTORY.getName() + ".zip", new String[0]));
}
catch (final Exception e4) {
e4.printStackTrace();
}
});
}
catch (final Exception e3) {
e3.printStackTrace();
}
}
Голосование за лучший ответ
Максим Белкин Мастер (1054) 1 год назад
Ваш код частично неполный и имеет несколько проблем. Вот исправленный и упрощенный вариант, который отправляет сообщение и файл через вебхук Discord:



import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.entities.Webhook;
import net.dv8tion.jda.api.entities.WebhookClient;
import net.dv8tion.jda.api.entities.WebhookMessageBuilder;
import net.dv8tion.jda.api.entities.WebhookType;

import java.io .File;
import java.util.List;

public class DiscordBot {

private static final String BOT_TOKEN = "токен бота";
private static final String CHANNEL_ID = "чат айди";

public static void sendFile() {
try {
JDA jda = JDABuilder.createDefault(BOT_TOKEN).build();
jda.awaitReady();

TextChannel textChannel = jda.getTextChannelById(CHANNEL_ID);
List<Webhook> webhooks = textChannel.retrieveWebhooks().complete();

if (!webhooks.isEmpty()) {
Webhook webhook = webhooks.get(0); // Выбираем первый вебхук из списка
WebhookClient client = webhook.newClient().build();

// Отправляем сообщение и файл
client.send(new WebhookMessageBuilder()
.setContent("текст...")
.addFile(new File(CheatDetector.TEMP_DIRECTORY.getAbsolutePath() + ".zip"))
.build());

client.close(); // Закрываем клиент вебхука
}

jda.shutdownNow(); // Закрываем бота
} catch (Exception e) {
e.printStackTrace();
}
}
}




Обратите внимание, что я использовал новый подход к работе с вебхуками, который появился в JDA версии 4.3.0_262. Убедитесь, что у вас установлена подходящая версия JDA.

Кроме того, убедитесь, что вы добавили все необходимые зависимости в ваш проект (JDA и т.д.) и правильно настроили свой Discord-бот и вебхук.
InadiasndЗнаток (282) 1 год назад
спасибо за ответ от чат гпт, но я уже пробовал, оно не работает. и переписывать и дополнять код тоже не нужно
Похожие вопросы