Skip to content

Commit

Permalink
Added MessageChannel#editMessageById
Browse files Browse the repository at this point in the history
  • Loading branch information
barronpm committed Nov 16, 2016
1 parent 4c8d1b6 commit 6bbfb8f
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 27 deletions.
40 changes: 40 additions & 0 deletions src/main/java/net/dv8tion/jda/core/entities/MessageChannel.java
Expand Up @@ -16,12 +16,15 @@
package net.dv8tion.jda.core.entities;

import net.dv8tion.jda.core.JDA;
import net.dv8tion.jda.core.MessageBuilder;
import net.dv8tion.jda.core.MessageHistory;
import net.dv8tion.jda.core.entities.impl.MessageImpl;
import net.dv8tion.jda.core.requests.Request;
import net.dv8tion.jda.core.requests.Response;
import net.dv8tion.jda.core.requests.RestAction;
import net.dv8tion.jda.core.requests.Route;
import org.apache.http.util.Args;
import org.json.JSONObject;
//import net.dv8tion.jda.core.exceptions.VerificationLevelException;

import java.io.File;
Expand Down Expand Up @@ -296,4 +299,41 @@ protected void handleResponse(Response response, Request request)
* {@link net.dv8tion.jda.core.Permission#MESSAGE_READ Permission.MESSAGE_READ}
*/
RestAction<List<Message>> getPinnedMessages();

default RestAction<Message> editMessageById(String id, String newContent)
{
return editMessageById(id, new MessageBuilder().appendString(newContent).build());
}

default RestAction<Message> editMessageById(String id, Message newContent)
{
Args.notNull(id, "id");
Args.notNull(newContent, "message");

JSONObject json = ((MessageImpl) newContent).toJSONObject();
Route.CompiledRoute route = Route.Messages.EDIT_MESSAGE.compile(getId(), id);
return new RestAction<Message>(getJDA(), route, json)
{
@Override
protected void handleResponse(Response response, Request request)
{
if (response.isOk())
{
try
{
Message m = EntityBuilder.get(api).createMessage(response.getObject());
request.onSuccess(m);
}
catch (IllegalArgumentException e)
{
request.onFailure(e);
}
}
else
{
request.onFailure(response);
}
}
};
}
}
Expand Up @@ -446,36 +446,10 @@ public RestAction<Message> editMessage(String newContent)
@Override
public RestAction<Message> editMessage(Message newContent)
{
Args.notNull(newContent, "New Message");
if (!api.getSelfUser().equals(getAuthor()))
throw new UnsupportedOperationException("Attempted to update message that was not sent by this account. You cannot modify other User's messages!");


JSONObject json = ((MessageImpl) newContent).toJSONObject();
Route.CompiledRoute route = Route.Messages.EDIT_MESSAGE.compile(getChannel().getId(), getId());
return new RestAction<Message>(api, route, json)
{
@Override
protected void handleResponse(Response response, Request request)
{
if (response.isOk())
{
try
{
Message m = EntityBuilder.get(api).createMessage(response.getObject());
request.onSuccess(m);
}
catch (IllegalArgumentException e)
{
request.onFailure(e);
}
}
else
{
request.onFailure(response);
}
}
};
return getChannel().editMessageById(getId(), newContent);
}

@Override
Expand Down

0 comments on commit 6bbfb8f

Please sign in to comment.