package discord.jar;
import org.apache.commons.lang3.StringEscapeUtils;
import org.json.JSONArray;
import org.json.JSONObject;
public class WebhookImpl implements Webhook {
private String name;
private String avatar;
private String token;
private String id;
private String groupId;
private DiscordAPIImpl api;
public WebhookImpl(String name, String avatar, String token, String id, String groupId, DiscordAPIImpl api) {
this.name = name;
this.avatar = avatar;
this.token = token;
this.id = id;
this.groupId = groupId;
this.api = api;
}
@Override
public String toString() {
return name;
}
@Override
public String getName() {
return name;
}
@Override
public String getId() {
return id;
}
@Override
public String getGroupId() {
return groupId;
}
@Override
public void changeName(String name) {
PacketBuilder pb = new PacketBuilder(api);
pb.setType(RequestType.PATCH);
pb.setData(new JSONObject().put("name", StringEscapeUtils.escapeJson(name)).toString());
pb.setUrl("https://discordapp.com/api/webhooks/" + id);
pb.makeRequest();
}
@Override
public void changeAvatar(String avatar) {
PacketBuilder pb = new PacketBuilder(api);
pb.setType(RequestType.PATCH);
pb.setData(new JSONObject().put("avatar", StringEscapeUtils.escapeJson(avatar)).toString());
pb.setUrl("https://discordapp.com/api/webhooks/" + id);
System.out.println(pb.makeRequest());
}
@Override
public void execute(String content) {
execute(content, getName(), getAvatarUrl(), false);
}
@Override
public void execute(String content, String username) {
execute(content, username, getAvatarUrl(), false);
}
@Override
public void execute(String content, String username, String avatarUrl) {
execute(content, username, avatarUrl, false);
}
@Override
public void execute(String content, String username, String avatarUrl, boolean tts) {
execute(content, new Embed[0], username, avatarUrl, tts);
}
@Override
public void execute(Embed[] embeds) {
execute(embeds, getName(), getAvatarUrl());
}
@Override
public void execute(Embed[] embeds, String username) {
execute(embeds, username, getAvatarUrl());
}
@Override
public void execute(Embed[] embeds, String username, String avatarUrl) {
execute("", embeds, username, avatarUrl, false);
}
public void execute(String content, Embed[] embeds, String username, String avatarUrl, boolean tts) {
PacketBuilder pb = new PacketBuilder(api);
pb.setType(RequestType.POST);
JSONArray jsonEmbeds = new JSONArray();
for (Embed embed : embeds) jsonEmbeds.put(embed.toJson());
pb.setData(new JSONObject().put("content", content).put("embeds", jsonEmbeds).put("username", username).put("avatar_url", avatarUrl).put("tts", tts).toString());
pb.setUrl("https://discordapp.com/api/webhooks/" + id + "/" + token);
System.out.println(pb.makeRequest());
}
public String getAvatar() {
return avatar;
}
@Override
public String getAvatarUrl() {
return avatar == null ? "https://cdn.discordapp.com/embed/avatars/0.png" : "https://cdn.discordapp.com/avatars/" + id + "/" + avatar;
}
public String getToken() {
return token;
}
public void setName(String name) {
this.name = name;
}
public void setGroupId(String groupId) {
this.groupId = groupId;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
}