├── .classpath
├── .gitignore
├── .project
├── .settings
├── org.eclipse.jdt.apt.core.prefs
├── org.eclipse.jdt.core.prefs
└── org.eclipse.m2e.core.prefs
├── .vscode
└── settings.json
├── Dockerfile
├── README.md
├── app.json
├── heroku.yml
├── pom.xml
├── src
├── main
│ └── java
│ │ └── com
│ │ └── hellionbots
│ │ ├── App.java
│ │ ├── Helpers
│ │ └── configuration.java
│ │ ├── Master.java
│ │ └── WhatsX.java
└── test
│ └── java
│ └── com
│ └── hellionbots
│ └── AppTest.java
└── target
├── classes
└── com
│ └── hellionbots
│ ├── App.class
│ ├── Helpers
│ └── configuration.class
│ ├── Master.class
│ ├── WhatsX$1.class
│ └── WhatsX.class
├── maven-status
└── maven-compiler-plugin
│ └── compile
│ └── default-compile
│ ├── createdFiles.lst
│ └── inputFiles.lst
└── test-classes
└── com
└── hellionbots
└── AppTest.class
/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .env
2 | credentials.json
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | whatsx
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.m2e.core.maven2Builder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.m2e.core.maven2Nature
22 |
23 |
24 |
25 | 1628604186579
26 |
27 | 30
28 |
29 | org.eclipse.core.resources.regexFilterMatcher
30 | node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.jdt.apt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.apt.aptEnabled=false
3 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
3 | org.eclipse.jdt.core.compiler.compliance=1.8
4 | org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
5 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
6 | org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
7 | org.eclipse.jdt.core.compiler.processAnnotations=disabled
8 | org.eclipse.jdt.core.compiler.release=disabled
9 | org.eclipse.jdt.core.compiler.source=1.8
10 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.m2e.core.prefs:
--------------------------------------------------------------------------------
1 | activeProfiles=
2 | eclipse.preferences.version=1
3 | resolveWorkspaceProjects=true
4 | version=1
5 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "java.configuration.updateBuildConfiguration": "automatic"
3 | }
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM maven:3.8.2-jdk-11
2 |
3 | COPY . .
4 |
5 | RUN mvn clean package
6 |
7 | # set the startup command to execute the jar
8 | CMD ["java", "-jar", "target/whatsx-1.0-jar-with-dependencies.jar"]
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WhatsXBot
2 | WhatsX is a powerful **open-source** __Telegram Bot__ made with Java by [Aaryan](https://t.me/aryan1403).
3 |
4 | This is a **WhatsApp Manager** Bot which will help you to Manage your WhatsApp Account Directly from Telegram.
5 |
6 | ## Deploy
7 | [](https://heroku.com/deploy?template=https://github.com/aryan1403/WhatsXBot/)
8 |
9 | ## Language
10 | __WhatsXBot__ is written in pure **Java** using Telegram-Bot Library.
11 |
12 | 
13 |
14 | ## Credits
15 | [Rubenlagus](https://github.com/rubenlagus/) - For Telegram Bot Library
16 |
17 | [Developer](https://github.com/aryan1403/) - Developer(Me)
18 |
19 | # Donations
20 | As said earlier, WhatsXBot is a **open-source** Bot so to keep that Running we need some __Donations__. This help's to keep me motivated and get this Bot running you can read more about Donation's in the [Support](https://t.me/HellionBotSupport).
21 |
22 | This is my PayPal Account you can donate through it :)
23 |
24 | [](https://paypal.me/surinderkumar1492?locale.x=en_GB)
25 |
26 | Thank you for your Generosity.
27 |
--------------------------------------------------------------------------------
/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "WhatsX Bot",
3 | "description": "WhatsApp Bot",
4 | "repository": "https://github.com/aryan1403/WhatsXBot",
5 | "success_url": "https://t.me/aryan1403",
6 | "stack": "container",
7 | "env": {
8 | "botToken": {
9 | "description": "Token of your bot, from @BotFather.",
10 | "value": "",
11 | "required": true
12 | },
13 | "botUserName": {
14 | "description": "Bot Username, from @BotFather.",
15 | "value": "",
16 | "required": true
17 | },
18 | "handler": {
19 | "description": "The command handler to invoke commands.",
20 | "value": "/",
21 | "required": false
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/heroku.yml:
--------------------------------------------------------------------------------
1 |
2 | build:
3 | docker:
4 | worker: Dockerfile
5 | run:
6 | worker: java -jar target/whatsx-1.0-jar-with-dependencies.jar
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 | 4.0.0
6 |
7 | com.hellionbots
8 | whatsx
9 | 1.0
10 |
11 | whatsx
12 | https://www.github.com/Hellboy-Aaryan
13 |
14 |
15 | 1.8
16 | 1.8
17 |
18 |
19 |
20 |
21 | jitpack.io
22 | https://jitpack.io
23 |
24 |
25 |
26 |
27 |
28 | com.github.JicuNull
29 | WhatsJava
30 | 1.0.2
31 |
32 |
33 | junit
34 | junit
35 | 4.11
36 | test
37 |
38 |
39 | org.telegram
40 | telegrambots
41 | 5.3.0
42 |
43 |
44 | io.github.cdimascio
45 | dotenv-java
46 | 2.2.0
47 |
48 |
49 |
50 |
51 |
52 |
53 | org.apache.maven.plugins
54 | maven-compiler-plugin
55 | 3.5.1
56 |
57 | 1.8
58 | 1.8
59 |
60 |
61 |
62 |
63 | org.apache.maven.plugins
64 | maven-jar-plugin
65 | 3.1.0
66 |
67 |
68 |
69 | true
70 | com.hellionbots.App
71 |
72 |
73 |
74 |
75 |
76 | maven-assembly-plugin
77 |
78 |
79 |
80 | com.hellionbots.App
81 |
82 |
83 |
84 | jar-with-dependencies
85 |
86 |
87 |
88 |
89 | make-assembly
90 | package
91 |
92 | single
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/src/main/java/com/hellionbots/App.java:
--------------------------------------------------------------------------------
1 | package com.hellionbots;
2 |
3 | import org.telegram.telegrambots.meta.TelegramBotsApi;
4 | import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
5 | import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;
6 |
7 | public class App {
8 | public static void main(String[] args) {
9 | TelegramBotsApi telegramBotsApi;
10 | try {
11 | telegramBotsApi = new TelegramBotsApi(DefaultBotSession.class);
12 | telegramBotsApi.registerBot(new WhatsX());
13 | System.out.println("Bot Started Successfully");
14 | } catch (TelegramApiException e) {
15 | }
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/hellionbots/Helpers/configuration.java:
--------------------------------------------------------------------------------
1 | package com.hellionbots.Helpers;
2 |
3 | import io.github.cdimascio.dotenv.Dotenv;
4 | import io.github.cdimascio.dotenv.DotenvBuilder;
5 |
6 | public class configuration {
7 | private static final Dotenv dotenv = new DotenvBuilder().ignoreIfMissing().load();
8 |
9 | public static String botToken = dotenv.get("botToken");
10 | public static String botUserName = dotenv.get("botUserName");
11 | public static String handler = dotenv.get("handler");
12 | //public static String conn = dotenv.get("MONGODB_URI");
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/hellionbots/Master.java:
--------------------------------------------------------------------------------
1 | package com.hellionbots;
2 |
3 | import org.telegram.telegrambots.meta.api.objects.Update;
4 |
5 | import icu.jnet.whatsjava.whatsapp.WAClient;
6 |
7 | public interface Master {
8 | public abstract void handleRequests(WAClient client, Update update, String cmd);
9 | }
--------------------------------------------------------------------------------
/src/main/java/com/hellionbots/WhatsX.java:
--------------------------------------------------------------------------------
1 | package com.hellionbots;
2 |
3 | import com.hellionbots.Helpers.configuration;
4 | import org.telegram.telegrambots.bots.TelegramLongPollingBot;
5 | import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
6 | import org.telegram.telegrambots.meta.api.methods.send.SendPhoto;
7 | import org.telegram.telegrambots.meta.api.methods.updatingmessages.DeleteMessage;
8 | import org.telegram.telegrambots.meta.api.methods.updatingmessages.EditMessageText;
9 | import org.telegram.telegrambots.meta.api.objects.InputFile;
10 | import org.telegram.telegrambots.meta.api.objects.Message;
11 | import org.telegram.telegrambots.meta.api.objects.Update;
12 | import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup;
13 | import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.InlineKeyboardButton;
14 | import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
15 | import icu.jnet.whatsjava.listener.ClientActionInterface;
16 | import icu.jnet.whatsjava.messages.generic.WAChat;
17 | import icu.jnet.whatsjava.messages.generic.WAContact;
18 | import icu.jnet.whatsjava.messages.generic.WAEmoji;
19 | import icu.jnet.whatsjava.messages.generic.WAMessage;
20 | import icu.jnet.whatsjava.messages.generic.WAStatusMessage;
21 | import icu.jnet.whatsjava.whatsapp.WAClient;
22 | import java.awt.image.*;
23 | import java.io.File;
24 | import java.io.IOException;
25 | import java.util.ArrayList;
26 | import java.util.List;
27 | import javax.imageio.ImageIO;
28 |
29 | public class WhatsX extends TelegramLongPollingBot {
30 | WAClient client = new WAClient();
31 |
32 | @Override
33 | public void onUpdateReceived(Update update) {
34 | WAClient client = new WAClient();
35 | /*
36 | * ExecutorService executorService = Executors.newFixedThreadPool(11);
37 | * executorService.execute(new Runnable() {
38 | *
39 | * @Override public void run() { if(cmd.startsWith(getHandler()))
40 | * sendRequest(update, cmd); } }); executorService.shutdown();
41 | */
42 |
43 | client.setPrintQRCode(false);
44 | client.addClientActionListener(new ClientActionInterface() {
45 | @Override
46 | public void onQRCodeScanRequired(BufferedImage image) {
47 | sendMessage(update, "Authentication required! Please scan the QR code! within 10 Seconds.");
48 | File outputfile = new File("saved.png");
49 | try {
50 | ImageIO.write(image, "png", outputfile);
51 | File file = new File("saved.png");
52 |
53 | SendPhoto photo = new SendPhoto(chatId(update), new InputFile(file));
54 | execute(photo);
55 | file.delete();
56 | } catch (IOException | TelegramApiException e) {
57 | e.printStackTrace();
58 | }
59 | }
60 |
61 | @Override
62 | public void onReceiveLoginResponse(int response) {
63 | if (response == 200) {
64 | } else
65 | sendMessage(update, "Get me to the Doctor! " + support());
66 | }
67 |
68 | @Override
69 | public void onWAChat(WAChat[] wachat) {
70 |
71 | }
72 |
73 | @Override
74 | public void onWAContact(WAContact[] contacts) {
75 |
76 | }
77 |
78 | @Override
79 | public void onWAEmoji(WAEmoji[] emoji) {
80 |
81 | }
82 |
83 | @Override
84 | public void onWAMessage(WAMessage[] messages) {
85 |
86 | }
87 |
88 | @Override
89 | public void onWAStatus(WAStatusMessage[] statusMessages) {
90 |
91 | }
92 | });
93 | client.openConnection();
94 |
95 | String cmd = update.getMessage().getText();
96 | String[] meow2 = cmd.split(" ");
97 |
98 | if (cmd.equalsIgnoreCase(getHandler() + "start")) {
99 | sendMessage(update, "Hello, " + update.getMessage().getFrom().getFirstName() + ",\n"
100 | + "Welcome To WhatsX Bot\nI can Help you Manage your WhatsApp Account Directly from Telegram!\n"
101 | + "Type /help to see all the Available Command's\n\n"
102 | + "Join " + support()
103 | + " for more information about Bot's Like me\n" + "Join " + channel() + " for Regular Updates");
104 | }
105 |
106 | else if (cmd.equalsIgnoreCase(getHandler() + "help")) {
107 | InlineKeyboardMarkup inlineKeyboardMarkup = new InlineKeyboardMarkup();
108 |
109 | InlineKeyboardButton inlineKeyboardButton1 = new InlineKeyboardButton();
110 | InlineKeyboardButton inlineKeyboardButton2 = new InlineKeyboardButton();
111 | InlineKeyboardButton inlineKeyboardButton3 = new InlineKeyboardButton();
112 |
113 | inlineKeyboardButton1.setText("Support");
114 | inlineKeyboardButton1.setCallbackData("s");
115 | inlineKeyboardButton1.setUrl("https://t.me/HellionBotSupport");
116 |
117 | inlineKeyboardButton2.setText("Channel");
118 | inlineKeyboardButton2.setCallbackData("c");
119 | inlineKeyboardButton2.setUrl("https://t.me/HellionBots");
120 |
121 | inlineKeyboardButton3.setText("Developer");
122 | inlineKeyboardButton3.setUrl("https://t.me/Hellion_Coder");
123 | inlineKeyboardButton3.setCallbackData("d");
124 |
125 | List keyboardButtonsRow1 = new ArrayList<>();
126 | List keyboardButtonsRow2 = new ArrayList<>();
127 |
128 | keyboardButtonsRow1.add(inlineKeyboardButton1);
129 | keyboardButtonsRow1.add(inlineKeyboardButton2);
130 | keyboardButtonsRow2.add(inlineKeyboardButton3);
131 |
132 | List> rowList = new ArrayList<>();
133 | rowList.add(keyboardButtonsRow1);
134 | rowList.add(keyboardButtonsRow2);
135 |
136 | inlineKeyboardMarkup.setKeyboard(rowList);
137 |
138 | String handler = getHandler();
139 |
140 | SendMessage sm = new SendMessage();
141 | sm.setChatId(chatId(update));
142 | sm.setText("Welcome to the Help Section of WhatsX Bot\n\n" + "Available Commands :\n" + "1. SendMessage\n"
143 | + "2. Get Info\n" + "3. Spam\n\n" + "Formats :\n" + handler + "msg \n"
144 | + handler + "info \n" + handler
145 | + "spam \n\n"
146 | + "Powered By " + channel());
147 | sm.setReplyMarkup(inlineKeyboardMarkup);
148 |
149 | try {
150 | execute(sm);
151 | } catch (TelegramApiException e) {
152 | e.printStackTrace();
153 | }
154 | }
155 |
156 | else if (cmd.equalsIgnoreCase(getHandler() + "spam " + meow2[1] + " " + meow2[2] + " "
157 | + cmd.replace(getHandler() + "spam " + meow2[1] + " " + meow2[2] + " ", ""))) {
158 | try {
159 | if (Integer.parseInt(meow2[2]) > 50) {
160 | sendMessage(update, "You can't Send more than 50 Spam messages at a time");
161 | } else {
162 | if (meow2[1].startsWith("+")) {
163 | meow2[1] = meow2[1].replace("+", "");
164 | }
165 | for (int i = 0; i < Integer.parseInt(meow2[2]); i++) {
166 | client.sendMessage(meow2[1] + "@s.whatsapp.net",
167 | cmd.replace(getHandler() + "spam " + meow2[1] + " " + meow2[2] + " ", ""));
168 | }
169 | sendMessage(update,
170 | "Send Messages Successfully\n\n⚠️Note : We don't Promote any Illegal activities the Owner will not be responsible for any harm to anybody via this Bot.\nThis is for Educational Purpose Only");
171 | }
172 | } catch (Exception e) {
173 | sendMessage(update, "Kindly See the Format\n\nFormat for spam is :\n" + getHandler()
174 | + "spam \n\nExample : /spam 12345 10 hi");
175 | }
176 | }
177 |
178 | else if (cmd.equalsIgnoreCase(getHandler() + "info " + meow2[1])) {
179 | try {
180 | long start = System.nanoTime();
181 | Message meow = sendMessage(update, "Getting Info...");
182 | String number = meow2[1];
183 | if (number.startsWith("+")) {
184 | number = number.replace("+", "");
185 | }
186 | BufferedImage bi = client.getChatPicture(number + "@s.whatsapp.net");
187 | File outputfile = new File("pfp.png");
188 | ImageIO.write(bi, "png", outputfile);
189 | SendPhoto sendPhoto = new SendPhoto(chatId(update), new InputFile(outputfile));
190 | String status = client.getStatus(number + "@s.whatsapp.net");
191 | DeleteMessage deleteMessage = new DeleteMessage(chatId(update), meow.getMessageId());
192 | execute(deleteMessage);
193 | long end = System.nanoTime();
194 | sendPhoto.setCaption("Information Fetched in " + (Math.pow(10, -9) * (end - start) + "").substring(0, 3)
195 | + "s\n\n" + "Status : " + status);
196 | execute(sendPhoto);
197 | outputfile.delete();
198 | } catch (Exception e) {
199 | sendMessage(update, "Kindly Check your Number");
200 | }
201 | }
202 |
203 | else if (cmd.equalsIgnoreCase(
204 | getHandler() + "msg " + meow2[1] + " " + cmd.replace(getHandler() + "msg " + meow2[1] + " ", ""))) {
205 | try {
206 | client.sendMessage(meow2[1] + "@s.whatsapp.net",
207 | cmd.replace(getHandler() + "msg " + meow2[1] + " ", ""));
208 | sendMessage(update, "Message Sent Successfully! 🥳");
209 | } catch (Exception e) {
210 | sendMessage(update, "Kindly Check the Number!");
211 | }
212 | }
213 |
214 | }
215 |
216 | public void sendRequest(WAClient client, Update update, String cmd) {
217 |
218 | }
219 |
220 | public String getHandler() {
221 | return configuration.handler;
222 | }
223 |
224 | public String chatId(Update update) {
225 | return update.getMessage().getChatId().toString();
226 | }
227 |
228 | public void editMessage(Update update, int mid, String text) {
229 | EditMessageText editMessageText = new EditMessageText();
230 | editMessageText.setChatId(chatId(update));
231 | editMessageText.setMessageId(mid);
232 | editMessageText.setText(text);
233 |
234 | try {
235 | execute(editMessageText);
236 | } catch (TelegramApiException e) {
237 | e.printStackTrace();
238 | }
239 | }
240 |
241 | public Message sendMessage(Update update, String text) {
242 | Message m;
243 | SendMessage sMessage = new SendMessage(chatId(update), text);
244 | sMessage.enableMarkdown(true);
245 |
246 | try {
247 | m = execute(sMessage);
248 | return m;
249 | } catch (TelegramApiException e) {
250 | e.getMessage();
251 | }
252 |
253 | return null;
254 | }
255 |
256 | public String support() {
257 | return "@HellionBotSupport";
258 | }
259 |
260 | public String channel() {
261 | return "@HellionBots";
262 | }
263 |
264 | @Override
265 | public String getBotUsername() {
266 | String s = configuration.botUserName;
267 | return s;
268 | }
269 |
270 | @Override
271 | public String getBotToken() {
272 | String s = configuration.botToken;
273 | return s;
274 | }
275 | }
276 |
--------------------------------------------------------------------------------
/src/test/java/com/hellionbots/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.hellionbots;
2 |
3 | import static org.junit.Assert.assertTrue;
4 |
5 | import org.junit.Test;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | {
12 | /**
13 | * Rigorous Test :-)
14 | */
15 | @Test
16 | public void shouldAnswerWithTrue()
17 | {
18 | assertTrue( true );
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/target/classes/com/hellionbots/App.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aryan1403/WhatsXBot/92958298b4d7e25ed94af5dcbea6938853d93f6c/target/classes/com/hellionbots/App.class
--------------------------------------------------------------------------------
/target/classes/com/hellionbots/Helpers/configuration.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aryan1403/WhatsXBot/92958298b4d7e25ed94af5dcbea6938853d93f6c/target/classes/com/hellionbots/Helpers/configuration.class
--------------------------------------------------------------------------------
/target/classes/com/hellionbots/Master.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aryan1403/WhatsXBot/92958298b4d7e25ed94af5dcbea6938853d93f6c/target/classes/com/hellionbots/Master.class
--------------------------------------------------------------------------------
/target/classes/com/hellionbots/WhatsX$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aryan1403/WhatsXBot/92958298b4d7e25ed94af5dcbea6938853d93f6c/target/classes/com/hellionbots/WhatsX$1.class
--------------------------------------------------------------------------------
/target/classes/com/hellionbots/WhatsX.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aryan1403/WhatsXBot/92958298b4d7e25ed94af5dcbea6938853d93f6c/target/classes/com/hellionbots/WhatsX.class
--------------------------------------------------------------------------------
/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aryan1403/WhatsXBot/92958298b4d7e25ed94af5dcbea6938853d93f6c/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
--------------------------------------------------------------------------------
/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst:
--------------------------------------------------------------------------------
1 | F:\HellionBots\whatsx\src\main\java\com\hellionbots\Helpers\configuration.java
2 | F:\HellionBots\whatsx\src\main\java\com\hellionbots\App.java
3 | F:\HellionBots\whatsx\src\main\java\com\hellionbots\WhatsX.java
4 | F:\HellionBots\whatsx\src\main\java\com\hellionbots\Master.java
5 |
--------------------------------------------------------------------------------
/target/test-classes/com/hellionbots/AppTest.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aryan1403/WhatsXBot/92958298b4d7e25ed94af5dcbea6938853d93f6c/target/test-classes/com/hellionbots/AppTest.class
--------------------------------------------------------------------------------