Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.trz.exchangebot;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.PrintWriter;
- import org.json.JSONObject;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Scanner;
- import java.util.StringTokenizer;
- import java.util.function.Function;
- import com.google.common.util.concurrent.FutureCallback;
- import com.trz.exchangebot.api.DropAPI;
- import com.trz.exchangebot.api.MessageAPI;
- import com.trz.exchangebot.user.Dropper;
- import com.trz.exchangebot.user.QueueUser;
- import com.trz.exchangebot.user.Receiver;
- import de.btobastian.javacord.DiscordAPI;
- import de.btobastian.javacord.Javacord;
- import de.btobastian.javacord.entities.Channel;
- import de.btobastian.javacord.entities.Server;
- import de.btobastian.javacord.entities.User;
- import de.btobastian.javacord.entities.message.Message;
- import de.btobastian.javacord.entities.permissions.Role;
- import de.btobastian.javacord.listener.message.MessageCreateListener;
- public class ExhangeBot {
- public static final String token = "";
- public static String currentDropQName = "mildbreeze";
- public static boolean isDropOpen;
- public static boolean isDropQOpen;
- public static int qLength;
- public static int nofdroppers;
- public static int userpos;
- static HashMap<String, Dropper> dropperIds = new HashMap<String, Dropper>();
- static HashMap<String, String> activeDroppers = new HashMap<String, String>();
- static HashMap<String, Receiver> userIds = new HashMap<String, Receiver>();
- static HashMap<String, QueueUser> activeUsers = new HashMap<String, QueueUser>();
- public static void main(String[] args){
- DiscordAPI api = Javacord.getApi(token, true);
- readUsersIdFromFile(userIds);
- System.out.println("Reading from file...");
- api.setWaitForServersOnStartup(false);
- api.connect(new FutureCallback<DiscordAPI>() {
- @Override
- public void onSuccess(DiscordAPI api) {
- api.registerListener(new MessageCreateListener() {
- //private static int qLength = qLength;
- @Override
- public void onMessageCreate(DiscordAPI api, Message message) {
- Channel channel = message.getChannelReceiver();
- String channelname = "";
- String channelid = "";
- Server serv = null;
- if (channel != null){
- channelname = channel.getName();
- channelid = channel.getId();
- serv = channel.getServer();
- //System.out.println(channelid);
- }
- //Channel List
- @SuppressWarnings("null")
- Channel freedrops = serv.getChannelById("269113741012893696");
- Channel announce = serv.getChannelById("269111444526727170");
- //Role List
- Role dropper = serv.getRoleById("269115471855353856");
- Role primedropper = serv.getRoleById("269133327108276224");
- User messageUser = message.getAuthor();
- String messageUserName = message.getAuthor().getName();
- String messageUserId = messageUser.getId();
- System.out.println(messageUser);
- Collection<Role> messageUserRole = messageUser.getRoles(serv);
- //System.out.println(messageUserName);
- String dropClosed = "There is no open drop right now, check #freedrops and #announcements for the next one!";
- String qPos = "You are position " + userpos + " in the current queue";
- String qAdd = "You've been added to the current queue.";
- String qRemove = "You've been removed from the current queue.";
- String qLeave = "You've left the current queue.";
- String qReLeave = "You've already left the current queue";
- String startDrop = "@here" + " - A free drop lobby is starting, join the queue by sending me `!join " + currentDropQName + "`.";
- String endDrop = "@here" + " This free drop lobby is now CLOSED.";
- String qEnd = "@here" + " The queue has now closed. Try again next time!";
- String startDropPmSendName = "Alright! Opening a free drop lobby for " + messageUser.getMentionTag() + "\n \t Your SC name will be given to users and they will add you in-game. \n \t Use `!add X` to add X users to the drop lobby. \n \t Use `!qlength` to see the current queue length.";
- String startDropPm = "Alright! Opening a free drop lobby for " + messageUser.getMentionTag() + "\n \t You will have to add users, with the SC names I give you. \n \t Use `!add X` to add X users to the drop lobby. \n \t Use `!qlength` to see the current queue length.";
- String alreadyClosed = "There is no open drop to close.";
- String alreadyOpen = "There is already a free drop lobby open. No messages sent.";
- String qNum = "There are currently " + qLength + " users in the queue.";
- String join = "Type `!join " + currentDropQName+ "` to join the current queue.";
- String noPerm = "You don't have access to that command.";
- //Bot-command channel monitoring
- if(channelname.equals("bot-commands")){
- //User commands
- if(message.getContent().equals("!join")){
- messageUser.sendMessage(join);
- message.delete();
- }
- else if(message.getContent().equals("!join " + currentDropQName)){
- if(isDropOpen){
- messageUser.sendMessage(qAdd);
- DropAPI.sleep(2);
- int q = qLength + 1;
- qLength += 1;
- activeUsers.put(messageUserId, new QueueUser(messageUserName, noPerm, 0, messageUserId, q));
- messageUser.sendMessage(qPos);
- message.delete();
- } else {
- messageUser.sendMessage(dropClosed);
- message.delete();
- }
- }
- else if(message.getContent().equals("!pos")){
- if(isDropOpen){
- if(activeUsers.containsKey(messageUserId)){
- messageUser.sendMessage(qPos);
- message.delete();
- } else {
- messageUser.sendMessage("You arent currently in the queue. " + join);
- }
- } else {
- messageUser.sendMessage(dropClosed);
- message.delete();
- }
- }
- else if(message.getContent().equals("!leave")){
- if(isDropOpen){
- if(activeUsers.containsKey(messageUserId)){
- messageUser.sendMessage(qLeave);
- DropAPI.sleep(10);
- message.delete();
- } else {
- messageUser.sendMessage(qReLeave);
- message.delete();
- }
- } else {
- messageUser.sendMessage(dropClosed);
- message.delete();
- }
- }
- else if(message.getContent().contains("!register")){
- String GTAName;
- if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
- if(message.getContent().contains(" ")){
- GTAName = message.getContent().substring(message.getContent().indexOf(' ')+ 1).trim();
- if(dropperIds.containsKey(messageUserId)){
- dropperIds.remove(messageUserId);
- DropAPI.sleep(5);
- dropperIds.put(messageUserId, new Dropper(messageUserName, GTAName));
- messageUser.sendMessage("Successfully registered as: " + GTAName + ".");
- System.out.println("Re-registered dropper to list: " + messageUserName + " | SC: " + GTAName + "| ID: " + messageUserId + " |");
- message.delete();
- } else {
- dropperIds.put(messageUserId, new Dropper(messageUserName, GTAName));
- messageUser.sendMessage("Successfully registered as: " + GTAName + ".");
- System.out.println("Added dropper to list: " + messageUserName + " | SC: " + GTAName + " | ID: " + messageUserId + " |");
- message.delete();
- }
- } else {
- GTAName = "";
- }
- } else {
- if(message.getContent().contains(" ")){
- GTAName = message.getContent().substring(message.getContent().indexOf(' ')+ 1).trim();
- if(userIds.containsKey(messageUserId)){
- userIds.remove(messageUserId);
- DropAPI.sleep(5);
- userIds.put(messageUserId, new Receiver(messageUserName, GTAName, 0, messageUserId));
- messageUser.sendMessage("Successfully registered as: " + GTAName + ".");
- System.out.println("Re-registered user to list: " + messageUserName + " | SC: " + GTAName + " | ID: " + messageUserId + " |");
- message.delete();
- } else {
- userIds.put(messageUserId, new Receiver(messageUserName, GTAName, 0, messageUserId));
- messageUser.sendMessage("Successfully registered as: " + GTAName + ".");
- System.out.println("Added user to list: " + messageUserName + " | SC: " + GTAName + " | ID: " + messageUserId + " |");
- message.delete();
- }
- } else {
- GTAName = "";
- }
- }
- }
- else if(message.getContent().contains("!deregister")){
- String GTAName;
- if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
- if(message.getContent().contains(" ")){
- GTAName = message.getContent().substring(message.getContent().indexOf(' ')+ 1).trim();
- if(dropperIds.containsKey(messageUserId)){
- dropperIds.remove(messageUserId);
- DropAPI.sleep(5);
- dropperIds.put(messageUserId, new Dropper(messageUserName, GTAName));
- System.out.println("Re-registered dropper to list: " + messageUserName + " | SC: " + GTAName + "| ID: " + messageUserId + " |");
- } else {
- dropperIds.put(messageUserId, new Dropper(messageUserName, GTAName));
- System.out.println("Added dropper to list: " + messageUserName + " | SC: " + GTAName + " | ID: " + messageUserId + " |");
- }
- } else {
- GTAName = "";
- }
- } else {
- if(message.getContent().contains(" ")){
- GTAName = message.getContent().substring(message.getContent().indexOf(' ')+ 1).trim();
- if(userIds.containsKey(messageUserId)){
- userIds.remove(messageUserId);
- DropAPI.sleep(5);
- userIds.put(messageUserId, new Receiver(messageUserName, GTAName, 0, messageUserId));
- System.out.println("Re-registered user to list: " + messageUserName + " | SC: " + GTAName + "| ID: " + messageUserId + " |");
- message.delete();
- } else {
- userIds.put(messageUserId, new Receiver(messageUserName, GTAName, 0, messageUserId));
- System.out.println("Added user to list: " + messageUserName + " | SC: " + GTAName + " | ID: " + messageUserId + " |");
- message.delete();
- }
- } else {
- GTAName = "";
- }
- }
- }
- else if(message.getContent().equals("!opendrop")){
- if(isDropOpen){
- if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
- messageUser.sendMessage(startDropPm);
- messageUser.sendMessage(alreadyOpen);
- DropAPI.sleep(20);
- messageUser.sendMessage(qNum);
- message.delete();
- activeDroppers.put(messageUserId, messageUserName);
- } else {
- messageUser.sendMessage(noPerm);
- message.delete();
- }
- } else {
- if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
- messageUser.sendMessage(startDropPm);
- DropAPI.sleep(20);
- messageUser.sendMessage(qNum);
- message.delete();
- announce.sendMessage(startDrop);
- freedrops.sendMessage(startDrop);
- isDropOpen = true;
- activeDroppers.put(messageUserId, messageUserName);
- } else {
- messageUser.sendMessage(noPerm);
- message.delete();
- }
- }
- }
- else if(message.getContent().equals("!opendrop sendname")){
- if(isDropOpen){
- if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
- messageUser.sendMessage(startDropPmSendName);
- messageUser.sendMessage(alreadyOpen);
- DropAPI.sleep(20);
- messageUser.sendMessage(qNum);
- message.delete();
- activeDroppers.put(messageUserId, messageUserName);
- } else {
- messageUser.sendMessage(noPerm);
- message.delete();
- }
- } else {
- if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
- messageUser.sendMessage(startDropPmSendName);
- DropAPI.sleep(20);
- messageUser.sendMessage(qNum);
- message.delete();
- announce.sendMessage(startDrop);
- freedrops.sendMessage(startDrop);
- isDropOpen = true;
- activeDroppers.put(messageUserId, messageUserName);
- } else {
- messageUser.sendMessage(noPerm);
- message.delete();
- }
- }
- }
- else if(message.getContent().equals("!closedrop")){
- if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
- if(activeDroppers.containsKey(messageUserId)){
- if(isDropOpen){
- isDropOpen = false;
- message.delete();
- announce.sendMessage(endDrop);
- freedrops.sendMessage(endDrop);
- DropAPI.sleep(5);
- announce.sendMessage(qEnd);
- freedrops.sendMessage(qEnd);
- activeDroppers.remove(messageUserId);
- activeUsers.clear();
- } else {
- messageUser.sendMessage(alreadyClosed);
- message.delete();
- }
- } else {
- messageUser.sendMessage("You aren't an active Dropper. No open drop to close.");
- message.delete();
- }
- } else {
- messageUser.sendMessage(noPerm);
- message.delete();
- }
- }
- else if(message.getContent().equals("!shutdown")){
- if(messageUserName.equals("TheRealZeher")){
- shutdown(api);
- message.delete();
- }
- else{
- messageUser.sendMessage(noPerm);
- message.delete();
- }
- }
- else if(message.getContent().equals("!qnum")){
- if(messageUser.getRoles(serv).contains(dropper) || messageUser.getRoles(serv).contains(primedropper)){
- if(isDropOpen){
- messageUser.sendMessage(qNum);
- message.delete();
- } else {
- messageUser.sendMessage(dropClosed);
- message.delete();
- }
- } else {
- messageUser.sendMessage(noPerm);
- message.delete();
- }
- }
- else if(message.getContent().equals("!droppers")){
- System.out.println("Droppers in lobbies: " + activeDroppers);
- System.out.println("Droppers: " + dropperIds);
- }
- else if(message.getContent().equals("!users")){
- System.out.println("Users in q: " + activeUsers);
- System.out.println("Users:" + userIds);
- }
- else if(message.getContent().equals("!addme")){
- System.out.println(dropperIds.size());
- }
- }
- }
- });
- }
- @Override
- public void onFailure(Throwable t) {
- t.printStackTrace();
- }
- });
- }
- public static void writeUsersIdToFile(HashMap<String, Receiver> map){
- //Write to file
- try{
- File fileTwo=new File("filetwo.txt");
- FileOutputStream fos=new FileOutputStream(fileTwo);
- PrintWriter pw=new PrintWriter(fos);
- for(Map.Entry<String, Receiver> m :map.entrySet()){
- pw.println(m.getKey()+"="+m.getValue());
- }
- pw.flush();
- pw.close();
- fos.close();
- }catch(Exception e){}
- }
- public static void readUsersIdFromFile(HashMap<String, Receiver> userIds2){
- try{
- File toRead=new File("filetwo.txt");
- FileInputStream fis=new FileInputStream(toRead);
- Scanner sc=new Scanner(fis);
- HashMap<String, String> mapInFile=new HashMap<String, String>();
- //read data from file line by line:
- String currentLine;
- while(sc.hasNextLine()){
- currentLine=sc.nextLine();
- //now tokenize the currentLine:
- StringTokenizer st=new StringTokenizer(currentLine,"=",false);
- //put tokens ot currentLine in map
- mapInFile.put(st.nextToken(), st.nextToken());
- }
- fis.close();
- //print All data in MAP
- for(Map.Entry<String, String> m :mapInFile.entrySet()){
- System.out.println(m.getKey()+" : "+m.getValue());
- }
- }catch(Exception e){}
- }
- public static void openDrop(Message message, User messageUser){
- }
- public static void closeDrop(Message message, User messageUser){
- }
- public static void shutdown(DiscordAPI api){
- writeUsersIdToFile(userIds);
- System.out.println("Writing to file...");
- DropAPI.sleep(5);
- api.disconnect();
- DropAPI.sleep(10);
- System.exit(0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement