init: library wrapper done

This commit is contained in:
Leo
2026-04-07 02:03:25 +02:00
commit 4680be3ba9
8 changed files with 853 additions and 0 deletions

265
DiscordActivityBuilder.java Normal file
View File

@@ -0,0 +1,265 @@
package com.leohabrom.discord;
import com.leohabrom.discord.DiscordActivity;
import java.net.URI;
public class DiscordActivityBuilder {
public enum Type {
PLAYING(0),
WATCHING(3),
LISTENING(2),
COMPETING(4);
private final int value;
Type(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
public enum Status {
NAME(0),
STATE(1),
DETAIL(2);
private final int value;
Status(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
public enum Platform {
ANDROID(0),
DESKTOP(1),
EMBEDDED(2),
IOS(3),
PS4(4),
PS5(5),
SAMSUNG(6),
XBOX(7);
private final int value;
Platform(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
public enum Privacy {
PRIVATE(0),
PUBLIC(1);
private final int value;
Privacy(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
public enum Button {
FIRST(0),
SECOND(1);
private final int value;
Button(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
private final DiscordActivity activity;
public DiscordActivityBuilder() {
activity = new DiscordActivity();
}
public DiscordActivityBuilder details(String details) {
activity.details = details;
return this;
}
public DiscordActivityBuilder details(String details, URI url) {
activity.details = details;
activity.detailsUrl = url.toString();
return this;
}
public DiscordActivityBuilder name(String name) {
activity.name = name;
return this;
}
public DiscordActivityBuilder state(String state) {
activity.state = state;
return this;
}
public DiscordActivityBuilder state(String state, URI url) {
activity.state = state;
activity.stateUrl = url.toString();
return this;
}
public DiscordActivityBuilder type(Type type) {
activity.type = type.getValue();
return this;
}
public DiscordActivityBuilder statusDisplay(Status status) {
activity.status = status.getValue();
return this;
}
public DiscordActivityBuilder platform(Platform platform) {
activity.platform = platform.getValue();
return this;
}
public DiscordActivityBuilder largeImage(String idOrUrl) {
activity.largeImage = idOrUrl;
return this;
}
public DiscordActivityBuilder largeImage(String idOrUrl, String text) {
activity.largeImage = idOrUrl;
activity.largeText = text;
return this;
}
public DiscordActivityBuilder largeImage(String idOrUrl, URI url) {
activity.largeImage = idOrUrl;
activity.largeUrl = url.toString();
return this;
}
public DiscordActivityBuilder largeImage(String idOrUrl, String text, URI url) {
activity.largeImage = idOrUrl;
activity.largeText = text;
activity.largeUrl = url.toString();
return this;
}
public DiscordActivityBuilder smallImage(String idOrUrl) {
activity.smallImage = idOrUrl;
return this;
}
public DiscordActivityBuilder smallImage(String idOrUrl, String text) {
activity.smallImage = idOrUrl;
activity.smallText = text;
return this;
}
public DiscordActivityBuilder smallImage(String idOrUrl, URI url) {
activity.smallImage = idOrUrl;
activity.smallUrl = url.toString();
return this;
}
public DiscordActivityBuilder smallImage(String idOrUrl, String text, URI url) {
activity.smallImage = idOrUrl;
activity.smallText = text;
activity.smallUrl = url.toString();
return this;
}
public DiscordActivityBuilder inviteCoverImage(String idOrUrl) {
activity.inviteCoverImage = idOrUrl;
return this;
}
public DiscordActivityBuilder party(String id) {
activity.partyId = id;
return this;
}
public DiscordActivityBuilder party(String id, int currentSize) {
activity.partyId = id;
activity.partyCurrentSize = currentSize;
return this;
}
public DiscordActivityBuilder party(String id, int currentSize, Privacy privacy) {
activity.partyId = id;
activity.partyCurrentSize = currentSize;
activity.partyPrivacy = privacy.getValue();
return this;
}
public DiscordActivityBuilder party(String id, Privacy privacy) {
activity.partyId = id;
activity.partyPrivacy = privacy.getValue();
return this;
}
public DiscordActivityBuilder party(String id, int currentSize, int maxSize, Privacy privacy) {
activity.partyId = id;
activity.partyCurrentSize = currentSize;
activity.partyMaxSize = maxSize;
activity.partyPrivacy = privacy.getValue();
return this;
}
public DiscordActivityBuilder time(long startTime) {
activity.startTimestamp = startTime;
return this;
}
public DiscordActivityBuilder endTime(long endTime) {
activity.startTimestamp = endTime;
return this;
}
public DiscordActivityBuilder time(long startTime, long endTime) {
activity.startTimestamp = startTime;
activity.endTimestamp = endTime;
return this;
}
public DiscordActivityBuilder button(Button id, String label, URI url) {
switch (id) {
case FIRST -> {
activity.firstButtonLabel = label;
activity.firstButtonUrl = url.toString();
}
case SECOND -> {
activity.secondButtonLabel = label;
activity.secondButtonUrl = url.toString();
}
}
return this;
}
public DiscordActivityBuilder joinSecret(String secret) {
activity.joinSecret = secret;
return this;
}
public DiscordActivity build() {
return activity;
}
}