Advertisement
TheRealZeher

Untitled

Jan 22nd, 2017
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.77 KB | None | 0 0
  1. package com.trz.exchangebot;
  2.  
  3. import java.util.Collection;
  4. import java.util.List;
  5.  
  6. import com.google.common.util.concurrent.FutureCallback;
  7. import com.trz.exchangebot.api.BotAPI;
  8.  
  9. import de.btobastian.javacord.DiscordAPI;
  10. import de.btobastian.javacord.Javacord;
  11. import de.btobastian.javacord.entities.Channel;
  12. import de.btobastian.javacord.entities.Server;
  13. import de.btobastian.javacord.entities.User;
  14. import de.btobastian.javacord.entities.message.Message;
  15. import de.btobastian.javacord.entities.permissions.Role;
  16. import de.btobastian.javacord.listener.message.MessageCreateListener;
  17.  
  18. public class ExhangeBot {
  19.  
  20. public static final String token = "";
  21.  
  22. public static String currentDropQName = "mildbreeze";
  23. public static boolean isDropOpen;
  24. public static boolean isDropQOpen;
  25. public static int qLength;
  26.  
  27. public static int userpos;
  28.  
  29. public static void main(String[] args){
  30. DiscordAPI api = Javacord.getApi(token, true);
  31.  
  32. api.setWaitForServersOnStartup(false);
  33.  
  34. api.connect(new FutureCallback<DiscordAPI>() {
  35. @Override
  36. public void onSuccess(DiscordAPI api) {
  37.  
  38. api.registerListener(new MessageCreateListener() {
  39.  
  40. @SuppressWarnings("null")
  41. @Override
  42. public void onMessageCreate(DiscordAPI api, Message message) {
  43.  
  44. Channel channel = message.getChannelReceiver();
  45.  
  46. Server serv = null;
  47. if(channel != null){
  48. serv = channel.getServer();
  49. }
  50.  
  51. Channel freedrops = serv.getChannelById("269113741012893696");
  52. Channel announce = serv.getChannelById("269111444526727170");
  53.  
  54. String channelname = "";
  55. String channelid = "";
  56. if (channel != null){
  57. channelname = channel.getName();
  58. channelid = channel.getId();
  59. //System.out.println(channelid);
  60. }
  61.  
  62. Role dropper = serv.getRoleById("269115471855353856");
  63. Role primedropper = serv.getRoleById("269133327108276224");
  64.  
  65. User messageUser = message.getAuthor();
  66. String messageSender = message.getAuthor().getName();
  67.  
  68. Collection<Role> messageUserRole = messageUser.getRoles(serv);
  69.  
  70. List<User> activeDroppers = null;
  71.  
  72. Collection<User> queueUsers = null;
  73.  
  74. //System.out.println(messageSender);
  75.  
  76. if(channelname.equals("freedrops")){
  77. if(message.getContent().contentEquals("ping")){
  78. message.reply("pong");
  79. }
  80. }
  81.  
  82. String dropClosed = "There is no open drop right now, check #freedrops and #announcements for the next one!";
  83. String noPerm = "You don't have access to that command.";
  84. String qPos = "You are position " + userpos + " in the current queue";
  85. String startDrop = "@here" + " A free drop lobby is starting, join the queue by sending me `!join " + currentDropQName + "`.";
  86. String endDrop = "@here" + " This free drop lobby is now CLOSED.";
  87. String qEnd = "@here" + " The queue has now closed. Try again next time!";
  88. String alreadyClosed = "There is no open drop lobby to close.";
  89.  
  90.  
  91. //Bot-command channel monitoring
  92. if(channelname.equals("bot-commands")){
  93. //User commands
  94. if(message.getContent().contentEquals("!join")){
  95. messageUser.sendMessage("Type !join " + currentDropQName+ " to join the current queue.");
  96. message.delete();
  97. }
  98.  
  99. else if(message.getContent().contentEquals("!join " + currentDropQName)){
  100. if(isDropOpen){
  101. messageUser.sendMessage("Youve been added to the current queue!");
  102. BotAPI.sleep(2);
  103. messageUser.sendMessage(qPos);
  104. message.delete();
  105. } else {
  106. messageUser.sendMessage(dropClosed);
  107. message.delete();
  108. }
  109. }
  110.  
  111. else if(message.getContent().contentEquals("!pos")){
  112. if(isDropOpen){
  113. messageUser.sendMessage(qPos);
  114. message.delete();
  115. } else {
  116. messageUser.sendMessage(dropClosed);
  117. message.delete();
  118. }
  119. }
  120.  
  121. else if(message.getContent().contentEquals("!leave")){
  122. if(isDropOpen){
  123. messageUser.sendMessage("You have left the current queue.");
  124. } else {
  125. messageUser.sendMessage(dropClosed);
  126. message.delete();
  127. }
  128. }
  129.  
  130. //Dropper commands
  131. else if(message.getContent().contentEquals("!opendrop")){
  132. if(isDropOpen){
  133. if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
  134. activeDroppers.add(messageUser);
  135.  
  136. 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.");
  137. messageUser.sendMessage("There is a drop open already, no message sent in #freedrops");
  138.  
  139. announce.sendMessage(startDrop);
  140. freedrops.sendMessage(startDrop);
  141.  
  142. isDropOpen = true;
  143.  
  144. System.out.println(activeDroppers);
  145. BotAPI.sleep(5);
  146. messageUser.sendMessage("There are currently: " + qLength + " in the queue.");
  147. message.delete();
  148.  
  149. } else {
  150. messageUser.sendMessage(noPerm);
  151. message.delete();
  152. }
  153. } else {
  154. if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
  155. 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.");
  156. BotAPI.sleep(5);
  157. messageUser.sendMessage("There are currently: " + qLength + " in the queue.");
  158. message.delete();
  159.  
  160. announce.sendMessage(startDrop);
  161. freedrops.sendMessage(startDrop);
  162.  
  163. isDropOpen = true;
  164. } else {
  165. messageUser.sendMessage(noPerm);
  166. message.delete();
  167. }
  168. }
  169. }
  170.  
  171. else if(message.getContent().contentEquals("!opendrop name")){
  172. if(isDropOpen){
  173. if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
  174. 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.");
  175. BotAPI.sleep(5);
  176. messageUser.sendMessage("There are currently: " + qLength + " in the queue.");
  177. message.delete();
  178.  
  179. announce.sendMessage(startDrop);
  180. freedrops.sendMessage(startDrop);
  181.  
  182. isDropOpen = true;
  183. } else {
  184. messageUser.sendMessage(noPerm);
  185. message.delete();
  186. }
  187. } else {
  188. if(messageUserRole.contains(dropper) || messageUserRole.contains(primedropper)){
  189. 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.");
  190. BotAPI.sleep(5);
  191. messageUser.sendMessage("There are currently: " + qLength + " in the queue.");
  192. message.delete();
  193.  
  194. announce.sendMessage(startDrop);
  195. freedrops.sendMessage(startDrop);
  196.  
  197. isDropOpen = true;
  198. } else {
  199. messageUser.sendMessage(noPerm);
  200. message.delete();
  201. }
  202. }
  203.  
  204. }
  205.  
  206. else if(message.getContent().contentEquals("!shutdown")){
  207. if(messageSender.equals("TheRealZeher")){
  208. shutdown(api);
  209. message.delete();
  210. }
  211. else{
  212. messageUser.sendMessage(noPerm);
  213. message.delete();
  214. }
  215. }
  216. else if(message.getContent().contentEquals("!closedrop")){
  217. if(isDropOpen){
  218.  
  219. System.out.println(activeDroppers);
  220.  
  221. if(activeDroppers.contains(messageUser)){
  222. if(messageUserRole.contains(dropper) || messageUserRole.contains("primedropper")){
  223. isDropOpen = false;
  224. message.delete();
  225.  
  226. announce.sendMessage(endDrop);
  227. freedrops.sendMessage(endDrop);
  228.  
  229. BotAPI.sleep(5);
  230.  
  231. announce.sendMessage(qEnd);
  232. freedrops.sendMessage(qEnd);
  233.  
  234. activeDroppers.remove(messageUser);
  235. queueUsers.clear();
  236. } else {
  237. messageUser.sendMessage(noPerm);
  238. message.delete();
  239. }
  240. } else {
  241. messageUser.sendMessage("You aren't an active Dropper. No open drop to close.");
  242. }
  243. } else {
  244. if(messageSender.equals("TheRealZeher")){
  245. messageUser.sendMessage(alreadyClosed);
  246. message.delete();
  247. }
  248. }
  249. }
  250. }
  251. }
  252. });
  253. }
  254.  
  255. @Override
  256. public void onFailure(Throwable t) {
  257. t.printStackTrace();
  258. }
  259. });
  260. }
  261.  
  262.  
  263. public static void openDrop(){
  264.  
  265. }
  266.  
  267. public static void closeDrop(){
  268.  
  269. }
  270.  
  271. public static void shutdown(DiscordAPI api){
  272. api.disconnect();
  273. BotAPI.sleep(10);
  274. System.exit(0);
  275. }
  276.  
  277. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement