migration
This commit is contained in:
@@ -21,6 +21,8 @@ public interface TelegramBot {
|
||||
|
||||
void shutdown();
|
||||
|
||||
void start(UpdateConsumer updateConsumer);
|
||||
|
||||
default CompletableFuture<File> downloadFile(TelegramFile telegramFile, Path targetDirectory) {
|
||||
CompletableFuture<File> completableFuture = CompletableFuture.supplyAsync(() -> awaitDownloadFile(telegramFile, targetDirectory));
|
||||
completableFuture.exceptionally(e -> {
|
||||
|
||||
@@ -1,23 +1,7 @@
|
||||
package hdvtdev.telegram.core;
|
||||
|
||||
import hdvtdev.telegram.core.objects.ChosenInlineResult;
|
||||
import hdvtdev.telegram.core.objects.InlineQuery;
|
||||
|
||||
import hdvtdev.telegram.core.objects.Update;
|
||||
import hdvtdev.telegram.core.objects.business.BusinessConnection;
|
||||
import hdvtdev.telegram.core.objects.business.BusinessMessagesDeleted;
|
||||
import hdvtdev.telegram.core.objects.callback.CallbackQuery;
|
||||
import hdvtdev.telegram.core.objects.chat.ChatJoinRequest;
|
||||
import hdvtdev.telegram.core.objects.chat.ChatMemberUpdated;
|
||||
import hdvtdev.telegram.core.objects.chatboost.ChatBoostRemoved;
|
||||
import hdvtdev.telegram.core.objects.chatboost.ChatBoostUpdated;
|
||||
import hdvtdev.telegram.core.objects.media.paidmedia.PaidMediaPurchased;
|
||||
import hdvtdev.telegram.core.objects.message.Message;
|
||||
import hdvtdev.telegram.core.objects.message.MessageReactionCountUpdated;
|
||||
import hdvtdev.telegram.core.objects.message.MessageReactionUpdated;
|
||||
import hdvtdev.telegram.core.objects.payment.PreCheckoutQuery;
|
||||
import hdvtdev.telegram.core.objects.payment.ShippingQuery;
|
||||
import hdvtdev.telegram.core.objects.poll.Poll;
|
||||
import hdvtdev.telegram.core.objects.poll.PollAnswer;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -25,7 +9,7 @@ public interface UpdateConsumer {
|
||||
|
||||
|
||||
|
||||
void onUpdates(List<Update> updates);
|
||||
default void onUpdate(Update update) {}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
package hdvtdev.telegram.core;
|
||||
|
||||
import hdvtdev.telegram.core.objects.ChosenInlineResult;
|
||||
import hdvtdev.telegram.core.objects.InlineQuery;
|
||||
import hdvtdev.telegram.core.objects.Update;
|
||||
import hdvtdev.telegram.core.objects.business.BusinessConnection;
|
||||
import hdvtdev.telegram.core.objects.business.BusinessMessagesDeleted;
|
||||
import hdvtdev.telegram.core.objects.callback.CallbackQuery;
|
||||
import hdvtdev.telegram.core.objects.chat.ChatJoinRequest;
|
||||
import hdvtdev.telegram.core.objects.chat.ChatMemberUpdated;
|
||||
import hdvtdev.telegram.core.objects.chatboost.ChatBoostRemoved;
|
||||
import hdvtdev.telegram.core.objects.chatboost.ChatBoostUpdated;
|
||||
import hdvtdev.telegram.core.objects.media.paidmedia.PaidMediaPurchased;
|
||||
import hdvtdev.telegram.core.objects.message.Message;
|
||||
import hdvtdev.telegram.core.objects.message.MessageReactionCountUpdated;
|
||||
import hdvtdev.telegram.core.objects.message.MessageReactionUpdated;
|
||||
import hdvtdev.telegram.core.objects.payment.PreCheckoutQuery;
|
||||
import hdvtdev.telegram.core.objects.payment.ShippingQuery;
|
||||
import hdvtdev.telegram.core.objects.poll.Poll;
|
||||
import hdvtdev.telegram.core.objects.poll.PollAnswer;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface UpdateHandler extends UpdateConsumer {
|
||||
|
||||
@Override
|
||||
default void onUpdates(List<Update> updates) {
|
||||
for (Update update : updates) {
|
||||
if (update.hasMessage()) onMessage(update.message());
|
||||
if (update.hasEditedMessage()) onEditedMessage(update.editedMessage());
|
||||
if (update.hasChannelPost()) onChannelPost(update.channelPost());
|
||||
if (update.hasEditedChannelPost()) onEditedChannelPost(update.editedChannelPost());
|
||||
if (update.hasBusinessConnection()) onBusinessConnection(update.businessConnection());
|
||||
if (update.hasBusinessMessage()) onBusinessMessage(update.businessMessage());
|
||||
if (update.hasEditedBusinessMessage()) onEditedBusinessMessage(update.editedBusinessMessage());
|
||||
if (update.hasDeletedBusinessMessages()) onDeletedBusinessMessages(update.businessMessagesDeleted());
|
||||
if (update.hasMessageReaction()) onMessageReaction(update.messageReaction());
|
||||
if (update.hasMessageReactionCount()) onMessageReactionCount(update.messageReactionCount());
|
||||
if (update.hasInlineQuery()) onInlineQuery(update.inlineQuery());
|
||||
if (update.hasChosenInlineResult()) onChosenInlineResult(update.chosenInlineResult());
|
||||
if (update.hasCallbackQuery()) onCallbackQuery(update.callbackQuery());
|
||||
if (update.hasShippingQuery()) onShippingQuery(update.shippingQuery());
|
||||
if (update.hasPreCheckoutQuery()) onPreCheckoutQuery(update.preCheckoutQuery());
|
||||
if (update.hasPurchasedPaidMedia()) onPaidMediaPurchased(update.paidMediaPurchased());
|
||||
if (update.hasPoll()) onPoll(update.poll());
|
||||
if (update.hasPollAnswer()) onPollAnswer(update.pollAnswer());
|
||||
if (update.hasMyChatMember()) onMyChatMember(update.myChatMember());
|
||||
if (update.hasChatMember()) onChatMember(update.chatMember());
|
||||
if (update.hasChatJoinRequest()) onChatJoinRequest(update.chatJoinRequest());
|
||||
if (update.hasChatBoost()) onChatBoost(update.chatBoost());
|
||||
if (update.hasRemovedChatBoost()) onChatBoostRemoved(update.chatBoostRemoved());
|
||||
}
|
||||
}
|
||||
|
||||
default void onMessage(Message message) {}
|
||||
default void onEditedMessage(Message message) {}
|
||||
default void onChannelPost(Message message) {}
|
||||
default void onEditedChannelPost(Message message) {}
|
||||
default void onBusinessConnection(BusinessConnection connection) {}
|
||||
default void onBusinessMessage(Message message) {}
|
||||
default void onEditedBusinessMessage(Message message) {}
|
||||
default void onDeletedBusinessMessages(BusinessMessagesDeleted deleted) {}
|
||||
default void onMessageReaction(MessageReactionUpdated reaction) {}
|
||||
default void onMessageReactionCount(MessageReactionCountUpdated count) {}
|
||||
default void onInlineQuery(InlineQuery query) {}
|
||||
default void onChosenInlineResult(ChosenInlineResult result) {}
|
||||
default void onCallbackQuery(CallbackQuery callbackQuery) {}
|
||||
default void onShippingQuery(ShippingQuery query) {}
|
||||
default void onPreCheckoutQuery(PreCheckoutQuery query) {}
|
||||
default void onPaidMediaPurchased(PaidMediaPurchased paidMedia) {}
|
||||
default void onPoll(Poll poll) {}
|
||||
default void onPollAnswer(PollAnswer answer) {}
|
||||
default void onMyChatMember(ChatMemberUpdated member) {}
|
||||
default void onChatMember(ChatMemberUpdated member) {}
|
||||
default void onChatJoinRequest(ChatJoinRequest request) {}
|
||||
default void onChatBoost(ChatBoostUpdated boost) {}
|
||||
default void onChatBoostRemoved(ChatBoostRemoved removedBoost) {}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
package hdvtdev.telegram.core.annotaions;
|
||||
|
||||
import hdvtdev.telegram.core.methods.TelegramApiMethod;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* This annotation is used to indicate {@link TelegramApiMethod} that should be serialized into JSON.
|
||||
* <h5>Last documentation update: 2025-04-05</h5>
|
||||
* @see com.fasterxml.jackson.databind.ObjectMapper
|
||||
* @since 1.0.0
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.TYPE)
|
||||
public @interface Jsonable {
|
||||
}
|
||||
@@ -8,7 +8,7 @@ import hdvtdev.telegram.core.objects.User;
|
||||
/**
|
||||
* Use this method to approve a chat join request.
|
||||
* The command must be an <u>administrator</u> in the chat for this to work and must have the {@link ChatAdministratorRights#canInviteUsers()} administrator right.
|
||||
* Returns True on success.
|
||||
* Returns {@code true} on success.
|
||||
* @param chatId Unique username of the target channel in the format @channelusername
|
||||
* @param userId Unique identifier of the target user
|
||||
* @see ChatAdministratorRights
|
||||
@@ -17,6 +17,7 @@ import hdvtdev.telegram.core.objects.User;
|
||||
* @since 0.1.0
|
||||
*/
|
||||
//TODO NotTested
|
||||
|
||||
public record ApproveChatJoinRequest(String chatId, long userId) implements TelegramApiMethod<Boolean> {
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import hdvtdev.telegram.core.annotaions.Jsonable;
|
||||
import hdvtdev.telegram.core.methods.util.ParseMode;
|
||||
import hdvtdev.telegram.core.objects.message.MessageEntity;
|
||||
import hdvtdev.telegram.core.objects.poll.Poll;
|
||||
@@ -24,7 +23,6 @@ import java.util.List;
|
||||
* @since 1.0.0
|
||||
*/
|
||||
//TODO NotTested
|
||||
@Jsonable
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public final class CopyMessage implements TelegramApiMethod<Long> {
|
||||
|
||||
@@ -136,6 +134,12 @@ public final class CopyMessage implements TelegramApiMethod<Long> {
|
||||
this.replyMarkup = replyMarkup;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public boolean isJsonable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public TelegramApiMethodBody getBody() {
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import hdvtdev.telegram.core.annotaions.Jsonable;
|
||||
import hdvtdev.telegram.core.objects.poll.Poll;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -21,7 +20,7 @@ import java.util.List;
|
||||
* @see Poll#correctOptionId()
|
||||
* @since 1.0.0
|
||||
*/
|
||||
@Jsonable
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public final class CopyMessages implements TelegramApiMethod<Long[]> {
|
||||
|
||||
@@ -124,6 +123,12 @@ public final class CopyMessages implements TelegramApiMethod<Long[]> {
|
||||
return Long[].class;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public boolean isJsonable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static final class Builder {
|
||||
private final String chatId;
|
||||
private Long messageThreadId;
|
||||
|
||||
@@ -4,16 +4,14 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import hdvtdev.telegram.core.annotaions.Jsonable;
|
||||
import hdvtdev.telegram.core.objects.message.Message;
|
||||
|
||||
|
||||
/**
|
||||
* Use this method to forward message of any kind.
|
||||
* Service message and message with protected content can't be forwarded.
|
||||
* On success, the sent {@link Message} is returned.
|
||||
*/
|
||||
@Jsonable
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public final class ForwardMessage implements TelegramApiMethod<Message> {
|
||||
|
||||
@@ -90,6 +88,12 @@ public final class ForwardMessage implements TelegramApiMethod<Message> {
|
||||
return Message.class;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public boolean isJsonable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static final class Builder {
|
||||
private final String chatId;
|
||||
private Long messageThreadId;
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import hdvtdev.telegram.core.annotaions.Jsonable;
|
||||
import hdvtdev.telegram.core.objects.message.Message;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -17,7 +16,6 @@ import java.util.List;
|
||||
* @see Message#hasProtectedContent()
|
||||
*/
|
||||
// TODO NotTested
|
||||
@Jsonable
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public final class ForwardMessages implements TelegramApiMethod<Long[]> {
|
||||
|
||||
@@ -93,6 +91,11 @@ public final class ForwardMessages implements TelegramApiMethod<Long[]> {
|
||||
return Long[].class;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public boolean isJsonable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static final class Builder {
|
||||
private final String chatId;
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import hdvtdev.telegram.core.annotaions.Jsonable;
|
||||
import hdvtdev.telegram.core.objects.command.BotCommand;
|
||||
import hdvtdev.telegram.core.objects.command.BotCommandScope;
|
||||
import hdvtdev.telegram.core.objects.command.BotCommandScopeDefault;
|
||||
@@ -17,7 +16,6 @@ import hdvtdev.telegram.core.objects.command.BotCommandScopeDefault;
|
||||
* @see BotCommandScope
|
||||
* @since 1.0.0
|
||||
*/
|
||||
@Jsonable
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public record GetMyCommands(
|
||||
@JsonProperty("scope") BotCommandScope scope,
|
||||
@@ -53,4 +51,10 @@ public record GetMyCommands(
|
||||
public Class<BotCommand[]> getResponseClass() {
|
||||
return BotCommand[].class;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public boolean isJsonable() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package hdvtdev.telegram.core.methods;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public record GetMyName(String languageCode) implements TelegramApiMethod<GetMyName.BotName> {
|
||||
|
||||
public GetMyName() {
|
||||
@@ -30,7 +32,7 @@ public record GetMyName(String languageCode) implements TelegramApiMethod<GetMyN
|
||||
public record BotName(String name) {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
public @NotNull String toString() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,12 +4,10 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import hdvtdev.telegram.core.annotaions.Jsonable;
|
||||
import hdvtdev.telegram.core.objects.message.Message;
|
||||
import hdvtdev.telegram.core.objects.markup.ReplyMarkup;
|
||||
import hdvtdev.telegram.core.objects.ReplyParameters;
|
||||
|
||||
@Jsonable
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public final class SendDice implements TelegramApiMethod<Message> {
|
||||
|
||||
@@ -106,6 +104,12 @@ public final class SendDice implements TelegramApiMethod<Message> {
|
||||
return Message.class;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public boolean isJsonable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public enum Emoji {
|
||||
DICE("🎲"),
|
||||
DART("🎯"),
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import hdvtdev.telegram.core.annotaions.Jsonable;
|
||||
import hdvtdev.telegram.core.methods.util.ParseMode;
|
||||
import hdvtdev.telegram.core.objects.*;
|
||||
import hdvtdev.telegram.core.objects.markup.ReplyMarkup;
|
||||
@@ -13,7 +12,6 @@ import hdvtdev.telegram.core.objects.message.Message;
|
||||
import hdvtdev.telegram.core.objects.message.MessageEntity;
|
||||
|
||||
|
||||
@Jsonable
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public final class SendMessage implements TelegramApiMethod<Message> {
|
||||
|
||||
@@ -137,6 +135,12 @@ public final class SendMessage implements TelegramApiMethod<Message> {
|
||||
return Message.class;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public boolean isJsonable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static final class Builder {
|
||||
private final String chatId;
|
||||
private final String text;
|
||||
|
||||
@@ -4,12 +4,10 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import hdvtdev.telegram.core.annotaions.Jsonable;
|
||||
import hdvtdev.telegram.core.objects.reaction.ReactionType;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Jsonable
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class SetMessageReaction implements TelegramApiMethod<Boolean> {
|
||||
|
||||
@@ -65,6 +63,12 @@ public class SetMessageReaction implements TelegramApiMethod<Boolean> {
|
||||
return Boolean.class;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public boolean isJsonable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static final class Builder {
|
||||
private final String chatId;
|
||||
private final long messageId;
|
||||
|
||||
@@ -4,13 +4,11 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import hdvtdev.telegram.core.annotaions.Jsonable;
|
||||
import hdvtdev.telegram.core.objects.command.BotCommand;
|
||||
import hdvtdev.telegram.core.objects.command.BotCommandScope;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Jsonable
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public final class SetMyCommands implements TelegramApiMethod<Boolean> {
|
||||
|
||||
@@ -68,6 +66,12 @@ public final class SetMyCommands implements TelegramApiMethod<Boolean> {
|
||||
return Boolean.class;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public boolean isJsonable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public static final class Builder {
|
||||
private final List<BotCommand> commands;
|
||||
|
||||
@@ -8,4 +8,8 @@ public interface TelegramApiMethod<T> {
|
||||
|
||||
Class<T> getResponseClass();
|
||||
|
||||
default boolean isJsonable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package hdvtdev.telegram.core.methods;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public final class TelegramApiMethodBody {
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package hdvtdev.telegram.core.objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import hdvtdev.telegram.core.objects.business.BusinessConnection;
|
||||
import hdvtdev.telegram.core.objects.business.BusinessMessagesDeleted;
|
||||
import hdvtdev.telegram.core.objects.callback.CallbackQuery;
|
||||
@@ -19,6 +20,9 @@ import hdvtdev.telegram.core.objects.payment.ShippingQuery;
|
||||
import hdvtdev.telegram.core.objects.poll.Poll;
|
||||
import hdvtdev.telegram.core.objects.poll.PollAnswer;
|
||||
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@@ -48,8 +52,15 @@ public record Update(
|
||||
@JsonProperty("chat_join_request") ChatJoinRequest chatJoinRequest,
|
||||
@JsonProperty("chat_boost") ChatBoostUpdated chatBoost,
|
||||
@JsonProperty("removed_chat_boost") ChatBoostRemoved chatBoostRemoved
|
||||
) {
|
||||
) implements GeneralObject {
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public Message message() {
|
||||
return message;
|
||||
}
|
||||
|
||||
@Contract(pure = true)
|
||||
public boolean hasMessage() {
|
||||
return this.message != null;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package hdvtdev.telegram.core.objects.callback;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import hdvtdev.telegram.core.objects.GeneralObject;
|
||||
import hdvtdev.telegram.core.objects.User;
|
||||
import hdvtdev.telegram.core.objects.message.MaybeInaccessibleMessage;
|
||||
|
||||
@@ -16,7 +17,7 @@ public record CallbackQuery(
|
||||
@JsonProperty("chat_instance") String chatInstance,
|
||||
@JsonProperty("data") String data,
|
||||
@JsonProperty("game_short_name") String gameShortName
|
||||
) {
|
||||
) implements GeneralObject {
|
||||
|
||||
public boolean hasMessage() {
|
||||
return this.message != null;
|
||||
|
||||
@@ -113,7 +113,7 @@ public record Message(
|
||||
@JsonProperty("web_app_data") WebAppData webAppData,
|
||||
@JsonProperty("reply_markup") InlineKeyboardMarkup inlineKeyboardMarkup
|
||||
|
||||
) implements MaybeInaccessibleMessage {
|
||||
) implements MaybeInaccessibleMessage, GeneralObject {
|
||||
|
||||
public boolean hasMessageThreadId() {
|
||||
return messageThreadId != null;
|
||||
|
||||
Reference in New Issue
Block a user