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

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

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

 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();
}
}
Голосование за лучший ответ
Максим Белкин Мастер (1034) 2 месяца назад
Ваш код частично неполный и имеет несколько проблем. Вот исправленный и упрощенный вариант, который отправляет сообщение и файл через вебхук 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Ученик (203) 2 месяца назад
спасибо за ответ от чат гпт, но я уже пробовал, оно не работает. и переписывать и дополнять код тоже не нужно
Похожие вопросы