Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.trz.exchangebot;
- import java.util.Collection;
- import java.util.List;
- import com.google.common.util.concurrent.FutureCallback;
- import com.trz.exchangebot.api.BotAPI;
- 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 userpos;
- public static void main(String[] args){
- DiscordAPI api = Javacord.getApi(token, true);
- api.setWaitForServersOnStartup(false);
- api.connect(new FutureCallback<DiscordAPI>() {
- @Override
- public void onSuccess(DiscordAPI api) {
- api.registerListener(new MessageCreateListener() {
- @SuppressWarnings("null")
- @Override
- public void onMessageCreate(DiscordAPI api, Message message) {
- Channel channel = message.getChannelReceiver();
- Server serv = null;
- if(channel != null){
- serv = channel.getServer();
- }
- Channel freedrops = serv.getChannelById("269113741012893696");
- Channel announce = serv.getChannelById("269111444526727170");
- String channelname = "";
- String channelid = "";
- if (channel != null){
- channelname = channel.getName();
- channelid = channel.getId();
- //System.out.println(channelid);
- }
- Role dropper = serv.getRoleById("269115471855353856");
- Role primedropper = serv.getRoleById("269133327108276224");
- User messageUser = message.getAuthor();
- String messageSender = message.getAuthor().getName();
- Collection<Role> messageUserRole = messageUser.getRoles(serv);
- List<User> activeDroppers = null;
- Collection<User> queueUsers = null;
- //System.out.println(messageSender);
- if(channelname.equals("freedrops")){
- if(message.getContent().contentEquals("ping")){
- message.reply("pong");
- }
- }
- String dropClosed = "There is no open drop right now, check #freedrops and #announcements for the next one!";
- String noPerm = "You don't have access to that command.";
- String qPos = "You are position " + userpos + " in 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 alreadyClosed = "There is no open drop lobby to close.";
- //Bot-command channel monitoring
- if(channelname.equals("bot-commands")){
- //User commands
- if(message.getContent().contentEquals("!join")){
- messageUser.sendMessage("Type !join " + currentDropQName+ " to join the current queue.");
- message.delete();
- }
- else if(message.getContent().contentEquals("!join " + currentDropQName)){
- if(isDropOpen){
- messageUser.sendMessage("Youve been added to the current queue!");
- BotAPI.sleep(2);
- messageUser.sendMessage(qPos);
- message.delete();
- } else {
- messageUser.sendMessage(dropClosed);
- message.delete();
- }
- }
- else if(message.getContent().contentEquals("!pos")){
- if(isDropOpen){
- messageUser.sendMessage(qPos);
- message.delete();
- } else {
- messageUser.sendMessage(dropClosed);
- message.delete();
- }
- }
- else if(message.getContent().contentEquals("!leave")){
- if(isDropOpen){
- messageUser.sendMessage("You have left the current queue.");
- } else {
- messageUser.sendMessage(dropClosed);
- message.delete();
- }
- }
- //Dropper commands
- else if(message.getContent().contentEquals("!opendrop")){
- if(isDropOpen){
- if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
- activeDroppers.add(messageUser);
- messageUser.sendMessage("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.");
- messageUser.sendMessage("There is a drop open already, no message sent in #freedrops");
- announce.sendMessage(startDrop);
- freedrops.sendMessage(startDrop);
- isDropOpen = true;
- System.out.println(activeDroppers);
- BotAPI.sleep(5);
- messageUser.sendMessage("There are currently: " + qLength + " in the queue.");
- message.delete();
- } else {
- messageUser.sendMessage(noPerm);
- message.delete();
- }
- } else {
- if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
- messageUser.sendMessage("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.");
- BotAPI.sleep(5);
- messageUser.sendMessage("There are currently: " + qLength + " in the queue.");
- message.delete();
- announce.sendMessage(startDrop);
- freedrops.sendMessage(startDrop);
- isDropOpen = true;
- } else {
- messageUser.sendMessage(noPerm);
- message.delete();
- }
- }
- }
- else if(message.getContent().contentEquals("!opendrop name")){
- if(isDropOpen){
- if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
- messageUser.sendMessage("Alright! Opening a free drop lobby for " + messageUser.getMentionTag() + "\n \t Users will have your SC name, 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.");
- BotAPI.sleep(5);
- messageUser.sendMessage("There are currently: " + qLength + " in the queue.");
- message.delete();
- announce.sendMessage(startDrop);
- freedrops.sendMessage(startDrop);
- isDropOpen = true;
- } else {
- messageUser.sendMessage(noPerm);
- message.delete();
- }
- } else {
- if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
- messageUser.sendMessage("Alright! Opening a free drop lobby for " + messageUser.getMentionTag() + "\n \t Users will have your SC name, 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.");
- BotAPI.sleep(5);
- messageUser.sendMessage("There are currently: " + qLength + " in the queue.");
- message.delete();
- announce.sendMessage(startDrop);
- freedrops.sendMessage(startDrop);
- isDropOpen = true;
- } else {
- messageUser.sendMessage(noPerm);
- message.delete();
- }
- }
- }
- else if(message.getContent().contentEquals("!shutdown")){
- if(messageSender.equals("TheRealZeher")){
- shutdown(api);
- message.delete();
- }
- else{
- messageUser.sendMessage(noPerm);
- message.delete();
- }
- }
- else if(message.getContent().contentEquals("!closedrop")){
- if(isDropOpen){
- System.out.println(activeDroppers);
- if(activeDroppers.contains(messageUser)){
- if(messageUserRole.contains(dropper) || messageUserRole.contains("primedropper")){
- isDropOpen = false;
- message.delete();
- announce.sendMessage(endDrop);
- freedrops.sendMessage(endDrop);
- BotAPI.sleep(5);
- announce.sendMessage(qEnd);
- freedrops.sendMessage(qEnd);
- activeDroppers.remove(messageUser);
- queueUsers.clear();
- } else {
- messageUser.sendMessage(noPerm);
- message.delete();
- }
- } else {
- messageUser.sendMessage("You aren't an active Dropper. No open drop to close.");
- }
- } else {
- if(messageSender.equals("TheRealZeher")){
- messageUser.sendMessage(alreadyClosed);
- message.delete();
- }
- }
- }
- }
- }
- });
- }
- @Override
- public void onFailure(Throwable t) {
- t.printStackTrace();
- }
- });
- }
- public static void openDrop(){
- }
- public static void closeDrop(){
- }
- public static void shutdown(DiscordAPI api){
- api.disconnect();
- BotAPI.sleep(10);
- System.exit(0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement