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

Java jda + bukkit

ǫᴜᴢᴢ Мастер (1637), на голосовании 1 год назад
 if (channelId.equals("1135316394364383273")) { 
// Get the content of the message
String messageContent = event.getMessage().getContentRaw().trim();

// Get the user who sent the message
User user = event.getAuthor();

// Check if the user is a bot
if (!user.isBot()) {
// Dispatch the command synchronously on the server's main thread
getServer().getScheduler().runTask(MineCord.this, () -> getServer().dispatchCommand(getServer().getConsoleSender(), messageContent));
}
}
}
});

}
как сделать, чтобы выводился ответ консоли на команду?
Голосование за лучший ответ
Professional Professional Мудрец (15955) 1 год назад
Для того чтобы передать ответ консоли на команду обратно в Discord, вы должны слушать ответ консоли и отправить его обратно в канал Discord. Вот пример того, как это можно сделать с использованием Bukkit и JDA:

1. Создайте `CommandSender`, который будет перехватывать сообщения от консоли.
2. Отправьте команду на выполнение с использованием вашего `CommandSender`.
3. Передайте ответ консоли обратно в Discord.

Вот пример реализации:

```java
public class CustomCommandSender implements CommandSender {

private final TextChannel channel;

public CustomCommandSender(TextChannel channel) {
this.channel = channel;
}

@Override
public void sendMessage(String message) {
channel.sendMessage(message).queue();
}

// Реализуйте остальные методы CommandSender...
}
```

Затем, в вашем слушателе:

```java
if (channelId.equals("1135316394364383273")) {
String messageContent = event.getMessage().getContentRaw().trim();
User user = event.getAuthor();

if (!user.isBot()) {
TextChannel channel = event.getTextChannel();
CustomCommandSender customSender = new CustomCommandSender(channel);

getServer().getScheduler().runTask(MineCord.this, () -> getServer().dispatchCommand(customSender, messageContent));
}
}
```

Теперь, когда команда выполняется, все сообщения, которые обычно отправляются в консоль, будут отправляться обратно в Discord-канал с помощью `CustomCommandSender`.

Пожалуйста, учтите, что это простой пример. Вам возможно потребуется реализовать дополнительные методы или обработку ошибок, чтобы этот код работал корректно в вашем окружении.
Похожие вопросы