Для написания бота, я использую библиотеку для 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();
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пишу телеграмм бота для регистрации задачИспользую библиотеку от rubenlagus
начал разбираться со Spring и AOP, хочу сделать логирование, но столкнулся с проблемойВот классы мои классы Application:
Мне нужно закрывать listening порт(например, 12000, который создается java методом serversocketaccept) в определённый момент(неизвестно когда он наступит)