Для написания бота, я использую библиотеку для java TelegraBots
Когда Java-класс extends TelegramLongPollingBot
, то я могу добавить метод отправки сообщения на сервер (в том же классе):
private void sendAllMessages(String chatId, String text) {
SendMessage message = new SendMessage();
message.setText(text);
message.setChatId(chatId);
try {
execute(message);
} catch (TelegramApiException e) {
e.printStackTrace();
}
}
Но мне не хочется вызывать весь класс в другом классе ради одного метода. Я хотел бы вынести возможность отправки сообщений в отдельный класс. Как это лучше всего стоит сделать?
Примерно как я это вижу:
import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
public class sendMessages {
private String chatId, text;
public sendMessages(String chatId, String text){
this.chatId = text;
this.text = text;
}
private void sendAllMessages() {
SendMessage message = new SendMessage();
message.setText(text);
message.setChatId(chatId);
try {
execute(message);
} catch (TelegramApiException e) {
e.printStackTrace();
}
}
}
Проблему решил. Я решил пойти на хитрый шаг:
У Вас есть файл, допустим, EventHandler.java
в котором public class EventListener extends TelegramLongPollingBot{...}
.
Создаем второй класс, допустим, SendMessagesBot
.
В нем создаем метод:
public void sendEvent(String chatId, String text){
SendMessage message = new SendMessage();
message.setText(text);
message.setParseMode(ParseMode.MARKDOWN);
message.setChatId(Long.parseLong(chatId));
try {
//просто вызываем класс EventListner с методом execute
new EventListener().execute(message);
} catch (TelegramApiException e) {
e.printStackTrace();
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Пишу телеграмм бота для регистрации задачИспользую библиотеку от rubenlagus
начал разбираться со Spring и AOP, хочу сделать логирование, но столкнулся с проблемойВот классы мои классы Application:
Мне нужно закрывать listening порт(например, 12000, который создается java методом serversocketaccept) в определённый момент(неизвестно когда он наступит)