public GuildMessageUpdateEvent(JDA api, long responseNumber, Message message) { super(api, responseNumber, message.getIdLong(), message.getTextChannel()); this.message = message; }
public GuildMessageReceivedEvent(JDA api, long responseNumber, Message message) { super(api, responseNumber, message.getIdLong(), message.getTextChannel()); this.message = message; }
public GroupMessageReceivedEvent(JDA api, long responseNumber, Message message) { super(api, responseNumber, message.getIdLong(), message.getGroup()); this.message = message; }
public PrivateMessageUpdateEvent(JDA api, long responseNumber, Message message) { super(api, responseNumber, message.getIdLong(), message.getPrivateChannel()); this.message = message; }
public MessageUpdateEvent(JDA api, long responseNumber, Message message) { super(api, responseNumber, message.getIdLong(), message.getChannel()); this.message = message; }
public GroupMessageUpdateEvent(JDA api, long responseNumber, Message message) { super(api, responseNumber, message.getIdLong(), message.getGroup()); this.message = message; }
public MessageReceivedEvent(JDA api, long responseNumber, Message message) { super(api, responseNumber, message.getIdLong(), message.getChannel()); this.message = message; }
public PrivateMessageReceivedEvent(JDA api, long responseNumber, Message message) { super(api, responseNumber, message.getIdLong(), message.getPrivateChannel()); this.message = message; }
/** * Convenience method to delete messages in the most efficient way available. * <br>This combines both {@link TextChannel#deleteMessagesByIds(Collection)} as well as {@link Message#delete()} * to delete all messages provided. No checks will be done to prevent failures, use {@link java.util.concurrent.CompletionStage#exceptionally(Function)} * to handle failures. * * <p>For possible ErrorResponses see {@link #purgeMessagesById(long...)}. * * @param messages * The messages to delete * * @throws net.dv8tion.jda.core.exceptions.InsufficientPermissionException * If one of the provided messages is from another user and cannot be deleted due to permissions * @throws IllegalArgumentException * If one of the provided messages is from another user and cannot be deleted because this is not in a guild * * @return List of futures representing all deletion tasks * * @see RequestFuture#allOf(Collection) */ default List<RequestFuture<Void>> purgeMessages(List<? extends Message> messages) { if (messages == null || messages.isEmpty()) return Collections.emptyList(); long[] ids = new long[messages.size()]; for (int i = 0; i < ids.length; i++) ids[i] = messages.get(i).getIdLong(); return purgeMessagesById(ids); }
@Override protected void handleResponse(Response response, Request<List<Message>> request) { if (!response.isOk()) { request.onFailure(response); return; } EntityBuilder builder = api.get().getEntityBuilder(); LinkedList<Message> msgs = new LinkedList<>(); JSONArray historyJson = response.getArray(); for (int i = 0; i < historyJson.length(); i++) msgs.add(builder.createMessage(historyJson.getJSONObject(i))); for (Iterator<Message> it = msgs.descendingIterator(); it.hasNext();) { Message m = it.next(); history.put(0, m.getIdLong(), m); } request.onSuccess(msgs); } };
@Override protected void handleResponse(Response response, Request<List<Message>> request) { if (!response.isOk()) { request.onFailure(response); return; } EntityBuilder builder = api.get().getEntityBuilder(); LinkedList<Message> msgs = new LinkedList<>(); JSONArray historyJson = response.getArray(); for (int i = 0; i < historyJson.length(); i++) msgs.add(builder.createMessage(historyJson.getJSONObject(i))); msgs.forEach(msg -> history.put(msg.getIdLong(), msg)); request.onSuccess(msgs); } };
public void setVoteMessage(Message message) { this.voteMessage = message; this.messageId = message.getIdLong(); }
if (getJDA().getGuildSetupController().isLocked(channel.getGuild().getIdLong())) return channel.getGuild().getIdLong(); channel.setLastMessageId(message.getIdLong()); manager.handle( new GuildMessageReceivedEvent( channel.setLastMessageId(message.getIdLong()); manager.handle( new PrivateMessageReceivedEvent( channel.setLastMessageId(message.getIdLong()); manager.handle( new GroupMessageReceivedEvent(
private void loadMessages(MessageHistory history, int toDelete, Set<Long> userIds, Consumer<List<Message>> consumer) { long maxMessageAge = (System.currentTimeMillis() - TimeUnit.DAYS.toMillis(14) - MiscUtil.DISCORD_EPOCH) << MiscUtil.TIMESTAMP_OFFSET; List<Message> messages = new ArrayList<>(); history.retrievePast(toDelete).queue(historyMessages -> { if (historyMessages.isEmpty()) { consumer.accept(messages); return; } for (Message historyMessage : historyMessages) { if (historyMessage.isPinned() || historyMessage.getIdLong() < maxMessageAge) { continue; } if (userIds != null && !userIds.contains(historyMessage.getAuthor().getIdLong())) { continue; } if (messages.size() >= toDelete) { consumer.accept(messages); return; } messages.add(historyMessage); } consumer.accept(messages); }); }
/** * Fetches the reaction message transformer for the given message, * if the message doesn't have any reaction roles attached to it * then {@code NULL} will be returned instead. * * @param avaire The avaire instance, used to talking to the database. * @param message The JDA message instance for the current message. * @return Possibly null, the reaction message transformer containing the reaction roles for the given message. */ @CheckReturnValue public static ReactionTransformer fetchReactionFromMessage(AvaIre avaire, Message message) { Collection reactions = fetchReactions(avaire, message); if (reactions == null) { return null; } List<DataRow> reaction = reactions.where("message_id", message.getIdLong()); if (reaction.isEmpty()) { return null; } return new ReactionTransformer(reaction.get(0)); }
public void addReactionListener(long guildId, Message message, CommandReactionListener<?> handler) { if (handler == null) { return; } if (message.getChannelType().equals(ChannelType.TEXT)) { if (!PermissionUtil.checkPermission(message.getTextChannel(), message.getGuild().getSelfMember(), Permission.MESSAGE_ADD_REACTION)) { return; } } if (!reactions.containsKey(guildId)) { reactions.put(guildId, new ConcurrentHashMap<>()); } if (!reactions.get(guildId).containsKey(message.getIdLong())) { for (String emote : handler.getEmotes()) { message.addReaction(emote).complete(); } reactions.get(guildId).put(message.getIdLong(), handler); } }
public void setLastNPMessage(Message m) { lastNP.put(m.getGuild().getIdLong(), new Pair<>(m.getTextChannel().getIdLong(), m.getIdLong())); }
break; if (msg.isPinned() || msg.getIdLong() < twoWeeksAgo) { oldMessageDetected = true; break;
private void displayMessage(DiscordBot bot, TextChannel channel, OReactionRoleKey key) { if (key.channelId > 0 && key.messageId > 0) { TextChannel tchan = channel.getGuild().getTextChannelById(key.channelId); if (tchan != null && tchan.canTalk()) { tchan.deleteMessageById(key.messageId).queue(); } } List<OReactionRoleMessage> reactions = CReactionRole.getReactionsForKey(key.id); channel.sendMessage(buildMessage(channel, key, reactions)).queue(message -> { key.messageId = message.getIdLong(); key.channelId = channel.getIdLong(); CReactionRole.update(key); bot.roleReactionHandler.initGuild(message.getGuild().getIdLong(), true); for (OReactionRoleMessage reaction : reactions) { if (reaction.isNormalEmote) { message.addReaction(reaction.emoji).queue(); } else { message.addReaction(message.getJDA().getEmoteById(reaction.emoji)).queue(); } } }); } }