diff --git a/example/pom.xml b/example/pom.xml
index 297574d..c43d01a 100644
--- a/example/pom.xml
+++ b/example/pom.xml
@@ -26,24 +26,24 @@
it.tdlighttdlight-java
- 2.7.8.32
+ 2.7.8.33it.tdlighttdlight-natives-linux-amd64
- 4.0.173
+ 4.0.175it.tdlighttdlight-natives-windows-amd64
- 4.0.173
+ 4.0.175it.tdlighttdlight-natives-osx-amd64
- 4.0.173
+ 4.0.175
@@ -78,8 +78,8 @@
3.8.1UTF-8
-
- 11
+
+ 17
diff --git a/example/src/main/java/it.tdlight.example/Example.java b/example/src/main/java/it.tdlight.example/Example.java
index cb006c1..55e57bb 100644
--- a/example/src/main/java/it.tdlight.example/Example.java
+++ b/example/src/main/java/it.tdlight.example/Example.java
@@ -1,6 +1,6 @@
package it.tdlight.example;
-import it.tdlight.client.APIToken;
+import it.tdlight.client.*;
import it.tdlight.client.AuthenticationData;
import it.tdlight.client.CommandHandler;
import it.tdlight.client.SimpleTelegramClient;
@@ -8,15 +8,6 @@ import it.tdlight.client.TDLibSettings;
import it.tdlight.common.Init;
import it.tdlight.common.utils.CantLoadLibrary;
import it.tdlight.jni.TdApi;
-import it.tdlight.jni.TdApi.AuthorizationState;
-import it.tdlight.jni.TdApi.Chat;
-import it.tdlight.jni.TdApi.MessageContent;
-import it.tdlight.jni.TdApi.MessageSender;
-import it.tdlight.jni.TdApi.MessageSenderUser;
-import it.tdlight.jni.TdApi.MessageText;
-import it.tdlight.jni.TdApi.UpdateAuthorizationState;
-import it.tdlight.jni.TdApi.UpdateNewMessage;
-import java.nio.file.Path;
import java.nio.file.Paths;
/**
@@ -29,61 +20,39 @@ public final class Example {
/**
* Admin user id, used by the stop command example
*/
- private static final long ADMIN_ID = 667900586;
+ private static final TdApi.MessageSender ADMIN_ID = new TdApi.MessageSenderUser(667900586);
+
+ private static SimpleTelegramClient client;
public static void main(String[] args) throws CantLoadLibrary, InterruptedException {
// Initialize TDLight native libraries
Init.start();
// Obtain the API token
- APIToken apiToken = APIToken.example();
+ var apiToken = APIToken.example();
// Configure the client
- TDLibSettings settings = TDLibSettings.create(apiToken);
+ var settings = TDLibSettings.create(apiToken);
// Configure the session directory
- Path sessionPath = Paths.get("example-tdlight-session");
+ var sessionPath = Paths.get("example-tdlight-session");
settings.setDatabaseDirectoryPath(sessionPath.resolve("data"));
settings.setDownloadedFilesDirectoryPath(sessionPath.resolve("downloads"));
// Create a client
- SimpleTelegramClient client = new SimpleTelegramClient(settings);
+ client = new SimpleTelegramClient(settings);
// Configure the authentication info
- AuthenticationData authenticationData = AuthenticationData.consoleLogin();
+ var authenticationData = AuthenticationData.consoleLogin();
// Add an example update handler that prints when the bot is started
- client.addUpdateHandler(UpdateAuthorizationState.class, update -> printStatus(update.authorizationState));
-
- // Add an example command handler that stops the bot
- client.addCommandHandler("stop", new StopCommandHandler(client));
+ client.addUpdateHandler(TdApi.UpdateAuthorizationState.class, Example::onUpdateAuthorizationState);
// Add an example update handler that prints every received message
- client.addUpdateHandler(UpdateNewMessage.class, update -> {
- // Get the message content
- MessageContent messageContent = update.message.content;
+ client.addUpdateHandler(TdApi.UpdateNewMessage.class, Example::onUpdateNewMessage);
- // Get the message text
- String text;
- if (messageContent instanceof MessageText) {
- // Get the text of the text message
- text = ((MessageText) messageContent).text.text;
- } else {
- // We handle only text messages, the other messages will be printed as their type
- text = "(" + messageContent.getClass().getSimpleName() + ")";
- }
-
- // Get the chat title
- client.send(new TdApi.GetChat(update.message.chatId), chatIdResult -> {
- // Get the chat response
- Chat chat = chatIdResult.get();
- // Get the chat name
- String chatName = chat.title;
-
- // Print the message
- System.out.println("Received new message from chat " + chatName + ": " + text);
- });
- });
+ // Add an example command handler that stops the bot
+ client.addCommandHandler("stop", new StopCommandHandler());
// Start the client
client.start(authenticationData);
@@ -92,10 +61,53 @@ public final class Example {
client.waitForExit();
}
+ private static void onUpdateNewMessage(TdApi.UpdateNewMessage update) {
+ // Get the message content
+ var messageContent = update.message.content;
+
+ // Get the message text
+ String text;
+ if (messageContent instanceof TdApi.MessageText messageText) {
+ // Get the text of the text message
+ text = messageText.text.text;
+ } else {
+ // We handle only text messages, the other messages will be printed as their type
+ text = "(" + messageContent.getClass().getSimpleName() + ")";
+ }
+
+ // Get the chat title
+ client.send(new TdApi.GetChat(update.message.chatId), chatIdResult -> {
+ // Get the chat response
+ var chat = chatIdResult.get();
+ // Get the chat name
+ var chatName = chat.title;
+
+ // Print the message
+ System.out.println("Received new message from chat " + chatName + ": " + text);
+ });
+ }
+
+ /**
+ * Close the bot if the /stop command is sent by the administrator
+ */
+ private static class StopCommandHandler implements CommandHandler {
+
+ @Override
+ public void onCommand(TdApi.Chat chat, TdApi.MessageSender commandSender, String arguments) {
+ // Check if the sender is the admin
+ if (isAdmin(commandSender)) {
+ // Stop the client
+ System.out.println("Received stop command. closing...");
+ client.sendClose();
+ }
+ }
+ }
+
/**
* Print the bot status
*/
- private static void printStatus(AuthorizationState authorizationState) {
+ private static void onUpdateAuthorizationState(TdApi.UpdateAuthorizationState update) {
+ var authorizationState = update.authorizationState;
if (authorizationState instanceof TdApi.AuthorizationStateReady) {
System.out.println("Logged in");
} else if (authorizationState instanceof TdApi.AuthorizationStateClosing) {
@@ -110,33 +122,7 @@ public final class Example {
/**
* Check if the command sender is admin
*/
- private static boolean isAdmin(MessageSender sender) {
- if (sender instanceof MessageSenderUser) {
- MessageSenderUser senderUser = (MessageSenderUser) sender;
- return senderUser.userId == ADMIN_ID;
- }
- return false;
- }
-
- /**
- * Close the bot if the /stop command is sent by the administrator
- */
- private static class StopCommandHandler implements CommandHandler {
-
- private final SimpleTelegramClient client;
-
- public StopCommandHandler(SimpleTelegramClient client) {
- this.client = client;
- }
-
- @Override
- public void onCommand(Chat chat, MessageSender commandSender, String arguments) {
- // Check if the sender is the admin
- if (isAdmin(commandSender)) {
- // Stop the client
- System.out.println("Received stop command. closing...");
- client.sendClose();
- }
- }
+ private static boolean isAdmin(TdApi.MessageSender sender) {
+ return sender.equals(ADMIN_ID);
}
}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 2cbd737..2c7be4f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,12 +5,12 @@
tdlight-java-parent${revision}pom
- TDLib Java Parent
+ TDLight Java Parent1.0.0.0-SNAPSHOT
- 173
+ 175
- 171
+ 173