aboutsummaryrefslogtreecommitdiff
path: root/mod/src/main/java/kr
diff options
context:
space:
mode:
authorsyeyoung <cyoung06@naver.com>2023-01-17 21:22:51 +0900
committersyeyoung <cyoung06@naver.com>2023-01-17 21:23:07 +0900
commit786be9ea22c86820c0f552a3b3a5f20b168f704b (patch)
tree0c3d675b083c3ceac0232a8ec70f41adae0600bf /mod/src/main/java/kr
parent33ecb692b2b6d672ff231547a5fed4750034e490 (diff)
downloadSkyblock-Dungeons-Guide-786be9ea22c86820c0f552a3b3a5f20b168f704b.tar.gz
Skyblock-Dungeons-Guide-786be9ea22c86820c0f552a3b3a5f20b168f704b.tar.bz2
Skyblock-Dungeons-Guide-786be9ea22c86820c0f552a3b3a5f20b168f704b.zip
- Move online alarm to overlay manager
Signed-off-by: syeyoung <cyoung06@naver.com>
Diffstat (limited to 'mod/src/main/java/kr')
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDungeonsGuide.java4
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/discord/DiscordIntegrationManager.java9
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/events/annotations/EventHandlerRegistry.java2
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/PartyInviteViewer.java280
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/PartyJoinRequest.java60
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/Reply.java30
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/TTL.java24
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/WidgetInvite.java75
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/WidgetJoinRequest.java80
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/WidgetPartyInviteViewer.java81
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/invteTooltip/MTooltipInviteElement.java27
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/onlinealarm/PlayingDGAlarm.java116
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/onlinealarm/WidgetOnline.java62
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/onlinealarm/WidgetOnlinePeopleViewer.java72
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/DomElement.java3
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Clip.java2
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Column.java21
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/ConstrainedBox.java102
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Flexible.java9
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/IntrinsicHeight.java2
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/IntrinsicWidth.java2
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Line.java1
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Row.java21
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/SizedBox.java87
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Stack.java1
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Text.java9
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/image/ImageTexture.java (renamed from mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/ImageTexture.java)13
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/image/URLImage.java16
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/renderer/OnlyChildrenRenderer.java1
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/renderer/Renderer.java4
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/renderer/RenderingContext.java5
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/renderer/SingleChildRenderer.java1
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/DomElementRegistry.java6
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/overlay/OverlayManager.java17
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/overlay/OverlayManagerRootWidget.java2
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/overlay/OverlayWidget.java1
36 files changed, 656 insertions, 592 deletions
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDungeonsGuide.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDungeonsGuide.java
index 36a0e955..394f95ca 100644
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDungeonsGuide.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDungeonsGuide.java
@@ -27,6 +27,7 @@ import kr.syeyoung.dungeonsguide.mod.discord.DiscordIntegrationManager;
import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry;
import kr.syeyoung.dungeonsguide.mod.features.impl.party.playerpreview.FeatureViewPlayerStatsOnJoin;
import kr.syeyoung.dungeonsguide.mod.features.impl.party.playerpreview.api.ApiFetcher;
+import kr.syeyoung.dungeonsguide.mod.guiv2.elements.image.ImageTexture;
import kr.syeyoung.dungeonsguide.mod.party.PartyManager;
import kr.syeyoung.dungeonsguide.mod.stomp.StompManager;
import kr.syeyoung.dungeonsguide.mod.stomp.StompPayload;
@@ -105,8 +106,7 @@ public class CommandDungeonsGuide extends CommandBase {
cosmeticsManager.requestCosmeticsList();
cosmeticsManager.requestActiveCosmetics();
StaticResourceCache.INSTANCE.purgeCache();
- FeatureRegistry.DISCORD_ASKTOJOIN.imageMap.clear();
- FeatureRegistry.DISCORD_ASKTOJOIN.futureMap.clear();
+ ImageTexture.imageMap.clear();
sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §fSuccessfully purged API Cache!"));
} else if (args[0].equals("pbroadcast")) {
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/discord/DiscordIntegrationManager.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/discord/DiscordIntegrationManager.java
index 196bdbd9..6771fc62 100644
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/discord/DiscordIntegrationManager.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/discord/DiscordIntegrationManager.java
@@ -32,7 +32,7 @@ import kr.syeyoung.dungeonsguide.mod.events.impl.DiscordUserInvitedEvent;
import kr.syeyoung.dungeonsguide.mod.events.impl.DiscordUserJoinRequestEvent;
import kr.syeyoung.dungeonsguide.mod.events.impl.DiscordUserUpdateEvent;
import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry;
-import kr.syeyoung.dungeonsguide.mod.features.impl.discord.inviteViewer.PartyJoinRequest;
+import kr.syeyoung.dungeonsguide.mod.features.impl.discord.inviteViewer.Reply;
import kr.syeyoung.dungeonsguide.mod.party.PartyContext;
import kr.syeyoung.dungeonsguide.mod.party.PartyManager;
import lombok.Getter;
@@ -83,9 +83,9 @@ public class DiscordIntegrationManager implements IPCListener {
}
- public void respondToJoinRequest(String userId, PartyJoinRequest.Reply accept) {
+ public void respondToJoinRequest(String userId, Reply accept) {
JSONObject payload = null;
- if (accept == PartyJoinRequest.Reply.ACCEPT) {
+ if (accept == Reply.ACCEPT) {
payload = new JSONObject()
.put("cmd", "SEND_ACTIVITY_JOIN_INVITE")
.put("args", new JSONObject().put("user_id", userId));
@@ -125,6 +125,7 @@ public class DiscordIntegrationManager implements IPCListener {
ipcClient.subscribe("RELATIONSHIP_UPDATE", this::onRelationshipUpdate);
ipcClient.send(new JSONObject().put("cmd", "GET_RELATIONSHIPS"), new Callback(this::onRelationshipLoad));
ipcClient.setListener(this);
+ System.out.println("Connecting");
} catch (Throwable t) {
t.printStackTrace();
}
@@ -225,7 +226,7 @@ public class DiscordIntegrationManager implements IPCListener {
presence.setJoinSecret(PartyManager.INSTANCE.getAskToJoinSecret());
}
presence.setInstance(false);
- sendRichPresence(presence.build());
+// sendRichPresence(presence.build());
}
}
private void run() {
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/events/annotations/EventHandlerRegistry.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/events/annotations/EventHandlerRegistry.java
index fecfa2fc..1e5b3c70 100644
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/events/annotations/EventHandlerRegistry.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/events/annotations/EventHandlerRegistry.java
@@ -112,7 +112,7 @@ public class EventHandlerRegistry {
private static Map<Class<? extends Event>, IEventListener> registeredHandlers = new HashMap<>();
- public static void registerActualListeners() {
+ public static synchronized void registerActualListeners() {
for (Class<? extends Event> aClass : targets.keySet()) {
if (registeredHandlers.containsKey(aClass)) continue;
try {
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/PartyInviteViewer.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/PartyInviteViewer.java
index e537c311..9e7cc18a 100644
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/PartyInviteViewer.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/PartyInviteViewer.java
@@ -25,7 +25,13 @@ import kr.syeyoung.dungeonsguide.mod.events.annotations.DGEventHandler;
import kr.syeyoung.dungeonsguide.mod.events.impl.DGTickEvent;
import kr.syeyoung.dungeonsguide.mod.events.impl.DiscordUserInvitedEvent;
import kr.syeyoung.dungeonsguide.mod.events.impl.DiscordUserJoinRequestEvent;
+import kr.syeyoung.dungeonsguide.mod.features.FeatureParameter;
import kr.syeyoung.dungeonsguide.mod.features.SimpleFeature;
+import kr.syeyoung.dungeonsguide.mod.guiv2.elements.image.ImageTexture;
+import kr.syeyoung.dungeonsguide.mod.guiv2.primitive.Rect;
+import kr.syeyoung.dungeonsguide.mod.overlay.OverlayManager;
+import kr.syeyoung.dungeonsguide.mod.overlay.OverlayType;
+import kr.syeyoung.dungeonsguide.mod.overlay.OverlayWidget;
import kr.syeyoung.dungeonsguide.mod.utils.TextUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
@@ -45,10 +51,18 @@ import java.util.Map;
import java.util.concurrent.*;
public class PartyInviteViewer extends SimpleFeature {
+ private WidgetPartyInviteViewer partyInviteViewer;
+ private OverlayWidget widget;
public PartyInviteViewer() {
super("Discord", "Party Invite Viewer","Simply type /dg asktojoin or /dg atj to toggle whether ask-to-join would be presented as option on discord!\n\nRequires Discord RPC to be enabled", "discord.party_invite_viewer");
-
+ addParameter("ttl", new FeatureParameter<Integer>("ttl", "Request Duration", "The duration after which the requests will be dismissed automatically. The value is in seconds.", 15, "integer"));
+ widget = new OverlayWidget(
+ partyInviteViewer = new WidgetPartyInviteViewer(),
+ OverlayType.OVER_ANY,
+ () -> new Rect(0,0,Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayHeight)
+ );
+ OverlayManager.getInstance().addOverlay(widget);
}
@Override
@@ -56,277 +70,21 @@ public class PartyInviteViewer extends SimpleFeature {
return false;
}
- @DGEventHandler
- public void onGuiPostRender(GuiScreenEvent.DrawScreenEvent.Post rendered) {
- renderRequests(true);
- }
-
- @DGEventHandler
- public void drawScreen(RenderGameOverlayEvent.Post postRender) {
-
- if (!(postRender.type == RenderGameOverlayEvent.ElementType.EXPERIENCE || postRender.type == RenderGameOverlayEvent.ElementType.JUMPBAR)) return;
-
- try {
- renderRequests(false);
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
- @DGEventHandler
+ @DGEventHandler(triggerOutOfSkyblock = true)
public void onTick(DGTickEvent tickEvent) {
try {
- List<PartyJoinRequest> partyJoinRequestList = new ArrayList<>();
- boolean isOnHypixel = DungeonsGuide.getDungeonsGuide().getSkyblockStatus().isOnHypixel();
- for (PartyJoinRequest joinRequest:joinRequests) {
- if (joinRequest.getTtl() != -1) {
- joinRequest.setTtl(joinRequest.getTtl() - 1);
- if (joinRequest.getTtl() == 0 || !isOnHypixel) {
- partyJoinRequestList.add(joinRequest);
- }
- } else if (!isOnHypixel){
-// DiscordRPC.discordRespond(joinRequest.getDiscordUser().userId, DiscordRPC.DiscordReply.NO);
- partyJoinRequestList.add(joinRequest);
- } else if (joinRequest.getExpire() < System.currentTimeMillis()) {
- partyJoinRequestList.add(joinRequest);
- }
- }
- joinRequests.removeAll(partyJoinRequestList);
+ partyInviteViewer.tick();
} catch (Throwable e) {e.printStackTrace();}
}
-
- @DGEventHandler
- public void onMouseInput(GuiScreenEvent.MouseInputEvent.Pre mouseInputEvent) {
-
- int mouseX = Mouse.getX();
- int mouseY = Minecraft.getMinecraft().displayHeight - Mouse.getY() +3;
- for (PartyJoinRequest joinRequest:joinRequests) {
- if (joinRequest.getWholeRect() != null && joinRequest.getWholeRect().contains(mouseX, mouseY)) {
- mouseInputEvent.setCanceled(true);
-
- if (Mouse.getEventButton() == -1) return;
-
- if (joinRequest.getReply() != null) {
- joinRequests.remove(joinRequest);
- return;
- }
-
- if (!joinRequest.isInvite()) {
- if (joinRequest.getAcceptRect().contains(mouseX, mouseY)) {
- joinRequest.setReply(PartyJoinRequest.Reply.ACCEPT);
- joinRequest.setTtl(60);
- DiscordIntegrationManager.INSTANCE.respondToJoinRequest(joinRequest.getDiscordUser().getId(), PartyJoinRequest.Reply.ACCEPT);
- return;
- }
-
- if (joinRequest.getDenyRect().contains(mouseX, mouseY)) {
- joinRequest.setReply(PartyJoinRequest.Reply.DENY);
- joinRequest.setTtl(60);
- DiscordIntegrationManager.INSTANCE.respondToJoinRequest(joinRequest.getDiscordUser().getId(), PartyJoinRequest.Reply.DENY);
- return;
- }
-
- if (joinRequest.getIgnoreRect().contains(mouseX, mouseY)) {
- joinRequest.setReply(PartyJoinRequest.Reply.IGNORE);
- joinRequest.setTtl(60);
- DiscordIntegrationManager.INSTANCE.respondToJoinRequest(joinRequest.getDiscordUser().getId(), PartyJoinRequest.Reply.IGNORE);
- return;
- }
- } else {
- if (joinRequest.getAcceptRect().contains(mouseX, mouseY)) {
- joinRequest.setReply(PartyJoinRequest.Reply.ACCEPT);
- joinRequest.setTtl(60);
- DiscordIntegrationManager.INSTANCE.acceptInvite(joinRequest.getHandle());
- return;
- }
-
- if (joinRequest.getDenyRect().contains(mouseX, mouseY)) {
- joinRequest.setReply(PartyJoinRequest.Reply.DENY);
- joinRequest.setTtl(60);
- return;
- }
- }
-
- return;
- }
- }
- }
-
-
-
- public CopyOnWriteArrayList<PartyJoinRequest> joinRequests = new CopyOnWriteArrayList<>();
-
ExecutorService executorService = Executors.newFixedThreadPool(3, DungeonsGuide.THREAD_FACTORY);
- public Map<String, Future<ImageTexture>> futureMap = new HashMap<>();
- public Map<String, ImageTexture> imageMap = new HashMap<>();
-
- public Future<ImageTexture> loadImage(String url) {
- if (imageMap.containsKey(url)) return CompletableFuture.completedFuture(imageMap.get(url));
- if (futureMap.containsKey(url)) return futureMap.get(url);
- Future<ImageTexture> future = executorService.submit(() -> {
- try {
- ImageTexture imageTexture = new ImageTexture(url);
- imageMap.put(url, imageTexture);
- return imageTexture;
- } catch (Exception e) {
- throw e;
- }
- });
- futureMap.put(url,future);
- return future;
- }
-
-
- public void renderRequests(boolean hover) {
- try {
- GlStateManager.pushMatrix();
- ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft());
- GlStateManager.scale(1.0 / sr.getScaleFactor(), 1.0 / sr.getScaleFactor(), 1.0);
- int height = 90;
- int gap = 5;
- int x = 5;
- int y = 5;
- for (PartyJoinRequest partyJoinRequest : joinRequests) {
- renderRequest(partyJoinRequest, x, y, 350,height, hover);
- y += height + gap;
- }
- GlStateManager.popMatrix();
- GlStateManager.enableBlend();
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
-
-
- public void renderRequest(PartyJoinRequest partyJoinRequest, int x, int y, int width, int height, boolean hover) {
- ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft());
-
- int mouseX = Mouse.getX();
- int mouseY = Minecraft.getMinecraft().displayHeight - Mouse.getY() +3;
-
- partyJoinRequest.getWholeRect().setBounds(x,y,width,height);
-
-
- GlStateManager.pushMatrix();
- GlStateManager.translate(x,y,0);
-
- Gui.drawRect(0, 0,width,height, 0xFF23272a);
- Gui.drawRect(2, 2, width-2, height-2, 0XFF2c2f33);
- {
- String avatar = "https://cdn.discordapp.com/avatars/"+partyJoinRequest.getDiscordUser().getId()+"/"+partyJoinRequest.getAvatar()+"."+(partyJoinRequest.getAvatar().startsWith("a_") ? "gif":"png");
- Future<ImageTexture> loadedImageFuture = loadImage(avatar);
- ImageTexture loadedImage = null;
- if (loadedImageFuture.isDone()) {
- try {
- loadedImage = loadedImageFuture.get();
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
- if (loadedImage != null) {
- loadedImage.drawFrame( 7,7,height-14,height-14);
- } else {
- Gui.drawRect(7, 7, height - 7, height-7, 0xFF4E4E4E);
- }
- }
-
- GlStateManager.enableBlend();
- GL14.glBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- FontRenderer fr = Minecraft.getMinecraft().fontRendererObj;
- GlStateManager.pushMatrix();
- GlStateManager.translate(height +3,7, 0);
-
- GlStateManager.pushMatrix();
- GlStateManager.scale(3.0,3.0,1.0);
- fr.drawString(partyJoinRequest.getUsername()+"", 0,0, 0xFFFFFFFF, true);
- GlStateManager.popMatrix();
-
- GlStateManager.pushMatrix();
- GlStateManager.translate(fr.getStringWidth(partyJoinRequest.getUsername()+"") * 3 + 1, (int)(fr.FONT_HEIGHT*1.5), 0);
- fr.drawString("#"+partyJoinRequest.getDiscriminator(), 0,0,0xFFaaaaaa, true);
- GlStateManager.popMatrix();
- GlStateManager.pushMatrix();
- GlStateManager.translate(0, fr.FONT_HEIGHT * 3 + 5, 0);
- GlStateManager.scale(1.0,1.0,1.0);
- if (partyJoinRequest.isInvite())
- fr.drawString("§ewants to you to join their party! ("+(TextUtils.formatTime(partyJoinRequest.getExpire() - System.currentTimeMillis()))+")", 0,0,0xFFFFFFFF,false);
- else
- fr.drawString("wants to join your party! ("+(TextUtils.formatTime(partyJoinRequest.getExpire() - System.currentTimeMillis()))+")", 0,0,0xFFFFFFFF,false);
- GlStateManager.popMatrix();
- GlStateManager.popMatrix();
- if (partyJoinRequest.getReply() == null) {
- GlStateManager.pushMatrix();
- GlStateManager.translate(height + 3, height - 32, 0);
- int widthForTheThing = (width - height) / 3;
- GlStateManager.pushMatrix();
- String text = "Accept";
- partyJoinRequest.getAcceptRect().setBounds(x + height + 3, y + height - 25, widthForTheThing - 10, 25);
- Gui.drawRect(0, 0, widthForTheThing - 10, 25, hover && partyJoinRequest.getAcceptRect().contains(mouseX, mouseY) ? 0xFF859DF0 : 0xFF7289da);
- GlStateManager.translate((widthForTheThing - 10 - fr.getStringWidth(text) * 2) / 2, 15 - fr.FONT_HEIGHT, 0);
-
- GlStateManager.scale(2.0f, 2.0f, 1.0f);
- GlStateManager.enableBlend();
- GL14.glBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- fr.drawString(text, 0, 0, 0xFFFFFFFF);
- GlStateManager.popMatrix();
- GlStateManager.translate(widthForTheThing, 0, 0);
- partyJoinRequest.getDenyRect().setBounds(x + height + 3 + widthForTheThing, y + height - 25, widthForTheThing - 10, 25);
- Gui.drawRect(0, 0, widthForTheThing - 10, 25, hover && partyJoinRequest.getDenyRect().contains(mouseX, mouseY) ? 0xFFAEC0CB : 0xFF99aab5);
- GlStateManager.pushMatrix();
- text = "Deny";
- GlStateManager.translate((widthForTheThing - 10 - fr.getStringWidth(text) * 2) / 2, 15 - fr.FONT_HEIGHT, 0);
- GlStateManager.scale(2.0f, 2.0f, 1.0f);
- GlStateManager.enableBlend();
- GL14.glBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- fr.drawString(text, 0, 0, 0xFFFFFFFF);
- GlStateManager.popMatrix();
- if (!partyJoinRequest.isInvite()) {
- GlStateManager.translate(widthForTheThing, 0, 0);
- partyJoinRequest.getIgnoreRect().setBounds(x + height + 3 + widthForTheThing + widthForTheThing, y + height - 25, widthForTheThing - 10, 25);
- Gui.drawRect(0, 0, widthForTheThing - 10, 25, hover && partyJoinRequest.getIgnoreRect().contains(mouseX, mouseY) ? 0xFFAEC0CB : 0xFF99aab5); // AEC0CB
-
- GlStateManager.pushMatrix();
- text = "Ignore";
- GlStateManager.translate((widthForTheThing - 10 - fr.getStringWidth(text) * 2) / 2, 15 - fr.FONT_HEIGHT, 0);
- GlStateManager.scale(2.0f, 2.0f, 1.0f);
- GlStateManager.enableBlend();
- GL14.glBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- fr.drawString(text, 0, 0, 0xFFFFFFFF);
- GlStateManager.popMatrix();
- }
- GlStateManager.popMatrix();
- } else {
- GlStateManager.pushMatrix();
- GlStateManager.translate(height + 3, height - 28, 0);
- GlStateManager.scale(2.0f,2.0f,1.0f);
- GlStateManager.enableBlend();
- GL14.glBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- fr.drawString(partyJoinRequest.getReply().getPast()+" the invite.",0,0,0xFFFFFFFF);
- GlStateManager.popMatrix();
- }
- GlStateManager.popMatrix();
- }
@DGEventHandler(triggerOutOfSkyblock = true)
public void onDiscordUserJoinRequest(DiscordUserJoinRequestEvent event) {
- PartyJoinRequest partyInvite = new PartyJoinRequest();
- partyInvite.setDiscordUser(event.getDiscordUser());
- partyInvite.setExpire(System.currentTimeMillis() + 30000L);
- partyInvite.setInvite(false);
- joinRequests.add(partyInvite);
+ partyInviteViewer.addJoinRequest(event);
}
@DGEventHandler(triggerOutOfSkyblock = true)
public void onDiscordUserJoinRequest(DiscordUserInvitedEvent event) {
- PartyJoinRequest partyInvite = new PartyJoinRequest();
- partyInvite.setDiscordUser(event.getDiscordUser());
- partyInvite.setHandle(event.getHandle());
- partyInvite.setExpire(System.currentTimeMillis() + 30000L);
- partyInvite.setInvite(true);
- joinRequests.add(partyInvite);
+ partyInviteViewer.addInvite(event);
}
}
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/PartyJoinRequest.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/PartyJoinRequest.java
deleted file mode 100644
index 98d601b9..00000000
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/PartyJoinRequest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Dungeons Guide - The most intelligent Hypixel Skyblock Dungeons Mod
- * Copyright (C) 2021 cyoung06
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-
-package kr.syeyoung.dungeonsguide.mod.features.impl.discord.inviteViewer;
-
-import com.jagrosh.discordipc.entities.User;
-import kr.syeyoung.dungeonsguide.mod.discord.InviteHandle;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.Getter;
-
-import java.awt.*;
-
-@Data
-public class PartyJoinRequest {
- private User discordUser;
- private InviteHandle handle;
-
- public void setDiscordUser(User discordUser) {
- this.discordUser = discordUser;
- username = discordUser.getName();
- discriminator = discordUser.getDiscriminator();
- avatar= discordUser.getEffectiveAvatarUrl();
- }
-
- private String username, discriminator, avatar;
- private long expire;
-
- private Rectangle wholeRect = new Rectangle();
- private Rectangle acceptRect = new Rectangle();
- private Rectangle denyRect = new Rectangle();
- private Rectangle ignoreRect = new Rectangle();
-
- private boolean isInvite;
- private int ttl = -1;
- private Reply reply;
-
- @AllArgsConstructor
- public enum Reply {
- ACCEPT("Accepted"), DENY("Denied"), IGNORE("Ignored");
-
- @Getter
- private final String past;
- }
-}
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/Reply.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/Reply.java
new file mode 100644
index 00000000..c36c0f04
--- /dev/null
+++ b/