Skip to content

Commit

Permalink
Added PermissionOverrideAction
Browse files Browse the repository at this point in the history
  • Loading branch information
MinnDevelopment committed Feb 17, 2017
1 parent e77a498 commit f18e579
Show file tree
Hide file tree
Showing 4 changed files with 476 additions and 99 deletions.
5 changes: 3 additions & 2 deletions src/main/java/net/dv8tion/jda/core/entities/Channel.java
Expand Up @@ -20,6 +20,7 @@
import net.dv8tion.jda.core.managers.ChannelManagerUpdatable;
import net.dv8tion.jda.core.requests.RestAction;
import net.dv8tion.jda.core.requests.restaction.InviteAction;
import net.dv8tion.jda.core.requests.restaction.PermissionOverrideAction;

import java.util.List;

Expand Down Expand Up @@ -215,7 +216,7 @@ public interface Channel extends ISnowflake
*
* @see #createPermissionOverride(Role)
*/
RestAction<PermissionOverride> createPermissionOverride(Member member);
PermissionOverrideAction createPermissionOverride(Member member);

/**
* Creates a {@link net.dv8tion.jda.core.entities.PermissionOverride PermissionOverride}
Expand Down Expand Up @@ -245,7 +246,7 @@ public interface Channel extends ISnowflake
*
* @see #createPermissionOverride(Member)
*/
RestAction<PermissionOverride> createPermissionOverride(Role role);
PermissionOverrideAction createPermissionOverride(Role role);

/**
* Creates a new {@link net.dv8tion.jda.core.requests.restaction.InviteAction InviteAction} which can be used to create a
Expand Down
Expand Up @@ -28,6 +28,7 @@
import net.dv8tion.jda.core.requests.RestAction;
import net.dv8tion.jda.core.requests.Route;
import net.dv8tion.jda.core.requests.restaction.InviteAction;
import net.dv8tion.jda.core.requests.restaction.PermissionOverrideAction;
import net.dv8tion.jda.core.utils.MiscUtil;
import org.apache.http.util.Args;
import org.json.JSONArray;
Expand Down Expand Up @@ -446,7 +447,7 @@ protected void handleResponse(Response response, Request request)
}

@Override
public RestAction<PermissionOverride> createPermissionOverride(Member member)
public PermissionOverrideAction createPermissionOverride(Member member)
{
checkPermission(Permission.MANAGE_PERMISSIONS);
Args.notNull(member, "member");
Expand All @@ -455,34 +456,12 @@ public RestAction<PermissionOverride> createPermissionOverride(Member member)
if (getMemberOverrideMap().containsKey(member))
throw new IllegalStateException("Provided member already has a PermissionOverride in this channel!");

final PermissionOverride override = new PermissionOverrideImpl(this, member, null);

JSONObject body = new JSONObject()
.put("id", member.getUser().getId())
.put("type", "member")
.put("allow", 0)
.put("deny", 0);

Route.CompiledRoute route = Route.Channels.CREATE_PERM_OVERRIDE.compile(id, member.getUser().getId());
return new RestAction<PermissionOverride>(getJDA(), route, body)
{
@Override
protected void handleResponse(Response response, Request request)
{
if (!response.isOk())
{
request.onFailure(response);
return;
}

getMemberOverrideMap().put(member, override);
request.onSuccess(override);
}
};
return new PermissionOverrideAction(getJDA(), route, this, member);
}

@Override
public RestAction<PermissionOverride> createPermissionOverride(Role role)
public PermissionOverrideAction createPermissionOverride(Role role)
{
checkPermission(Permission.MANAGE_PERMISSIONS);
Args.notNull(role, "role");
Expand All @@ -491,30 +470,8 @@ public RestAction<PermissionOverride> createPermissionOverride(Role role)
if (getRoleOverrideMap().containsKey(role))
throw new IllegalStateException("Provided role already has a PermissionOverride in this channel!");

final PermissionOverride override = new PermissionOverrideImpl(this, null, role);

JSONObject body = new JSONObject()
.put("id", role.getId())
.put("type", "role")
.put("allow", 0)
.put("deny", 0);

Route.CompiledRoute route = Route.Channels.CREATE_PERM_OVERRIDE.compile(id, role.getId());
return new RestAction<PermissionOverride>(getJDA(), route, body)
{
@Override
protected void handleResponse(Response response, Request request)
{
if (!response.isOk())
{
request.onFailure(response);
return;
}

getRoleOverrideMap().put(role, override);
request.onSuccess(override);
}
};
return new PermissionOverrideAction(getJDA(), route, this, role);
}

@Override
Expand Down
Expand Up @@ -27,9 +27,9 @@
import net.dv8tion.jda.core.requests.RestAction;
import net.dv8tion.jda.core.requests.Route;
import net.dv8tion.jda.core.requests.restaction.InviteAction;
import net.dv8tion.jda.core.requests.restaction.PermissionOverrideAction;
import org.apache.http.util.Args;
import org.json.JSONArray;
import org.json.JSONObject;

import java.time.OffsetDateTime;
import java.util.ArrayList;
Expand Down Expand Up @@ -200,7 +200,7 @@ protected void handleResponse(Response response, Request request)
}

@Override
public RestAction<PermissionOverride> createPermissionOverride(Member member)
public PermissionOverrideAction createPermissionOverride(Member member)
{
checkPermission(Permission.MANAGE_PERMISSIONS);
Args.notNull(member, "member");
Expand All @@ -209,34 +209,12 @@ public RestAction<PermissionOverride> createPermissionOverride(Member member)
if (getMemberOverrideMap().containsKey(member))
throw new IllegalStateException("Provided member already has a PermissionOverride in this channel!");

final PermissionOverride override = new PermissionOverrideImpl(this, member, null);

JSONObject body = new JSONObject()
.put("id", member.getUser().getId())
.put("type", "member")
.put("allow", 0)
.put("deny", 0);

Route.CompiledRoute route = Route.Channels.CREATE_PERM_OVERRIDE.compile(id, member.getUser().getId());
return new RestAction<PermissionOverride>(getJDA(), route, body)
{
@Override
protected void handleResponse(Response response, Request request)
{
if (!response.isOk())
{
request.onFailure(response);
return;
}

getMemberOverrideMap().put(member, override);
request.onSuccess(override);
}
};
return new PermissionOverrideAction(getJDA(), route, this, member);
}

@Override
public RestAction<PermissionOverride> createPermissionOverride(Role role)
public PermissionOverrideAction createPermissionOverride(Role role)
{
checkPermission(Permission.MANAGE_PERMISSIONS);
Args.notNull(role, "role");
Expand All @@ -245,30 +223,8 @@ public RestAction<PermissionOverride> createPermissionOverride(Role role)
if (getRoleOverrideMap().containsKey(role))
throw new IllegalStateException("Provided role already has a PermissionOverride in this channel!");

final PermissionOverride override = new PermissionOverrideImpl(this, null, role);

JSONObject body = new JSONObject()
.put("id", role.getId())
.put("type", "role")
.put("allow", 0)
.put("deny", 0);

Route.CompiledRoute route = Route.Channels.CREATE_PERM_OVERRIDE.compile(id, role.getId());
return new RestAction<PermissionOverride>(getJDA(), route, body)
{
@Override
protected void handleResponse(Response response, Request request)
{
if (!response.isOk())
{
request.onFailure(response);
return;
};

getRoleOverrideMap().put(role, override);
request.onSuccess(override);
}
};
return new PermissionOverrideAction(getJDA(), route, this, role);
}

@Override
Expand Down

0 comments on commit f18e579

Please sign in to comment.