aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party
diff options
context:
space:
mode:
authorsyeyoung <cyong06@naver.com>2021-08-11 15:43:43 +0900
committersyeyoung <cyong06@naver.com>2021-08-11 15:43:43 +0900
commit21ec99c3e45e4557e228d026c148207b1227c14b (patch)
tree6b9972492da511c351cc07a9d215dd3b0ab77def /src/main/java/kr/syeyoung/dungeonsguide/features/impl/party
parenta48cb5c96e16fae589cb7d4f09146a17b3787924 (diff)
downloadSkyblock-Dungeons-Guide-21ec99c3e45e4557e228d026c148207b1227c14b.tar.gz
Skyblock-Dungeons-Guide-21ec99c3e45e4557e228d026c148207b1227c14b.tar.bz2
Skyblock-Dungeons-Guide-21ec99c3e45e4557e228d026c148207b1227c14b.zip
- X Started playing skyblock alarm
- Better Scrollbar - Modal Message - Inviting Friends in discord
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/features/impl/party')
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/FeatureCustomPartyFinder.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyFinder.java20
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyFinderSettings.java58
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyListElement.java8
4 files changed, 76 insertions, 15 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/FeatureCustomPartyFinder.java b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/FeatureCustomPartyFinder.java
index 7a06911f..5e14fb13 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/FeatureCustomPartyFinder.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/FeatureCustomPartyFinder.java
@@ -36,7 +36,10 @@ public class FeatureCustomPartyFinder extends SimpleFeature implements GuiOpenLi
@Getter
@Setter
- private String whitelist = "", blacklist = "", highlight ="";
+ private String whitelist = "", blacklist = "", highlight ="", blacklistClass = "";
+ @Getter
+ @Setter
+ private int minimumCata;
GuiCustomPartyFinder guiCustomPartyFinder;
@Override
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyFinder.java b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyFinder.java
index e699b99c..b73a2024 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyFinder.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyFinder.java
@@ -21,8 +21,10 @@ package kr.syeyoung.dungeonsguide.features.impl.party.customgui;
import kr.syeyoung.dungeonsguide.config.guiconfig.GuiConfigV2;
import kr.syeyoung.dungeonsguide.events.WindowUpdateEvent;
import kr.syeyoung.dungeonsguide.features.FeatureRegistry;
+import kr.syeyoung.dungeonsguide.features.impl.discord.invteTooltip.MTooltipInvite;
import kr.syeyoung.dungeonsguide.gui.MPanel;
import kr.syeyoung.dungeonsguide.gui.elements.*;
+import kr.syeyoung.dungeonsguide.party.PartyManager;
import kr.syeyoung.dungeonsguide.utils.RenderUtils;
import lombok.Getter;
import net.minecraft.client.Minecraft;
@@ -58,7 +60,7 @@ public class PanelPartyFinder extends MPanel {
private MButton previous;
private MButton next;
- private MButton settings;
+ private MButton settings, discordInvite;
private int page = 1;
private Map<Integer, PanelPartyListElement> panelPartyListElementMap = new HashMap<>();
@@ -111,6 +113,21 @@ public class PanelPartyFinder extends MPanel {
guiConfigV2.getRootConfigPanel().setCurrentPageAndPushHistory("ROOT."+ FeatureRegistry.PARTYKICKER_CUSTOM.getCategory());
Minecraft.getMinecraft().displayGuiScreen(guiConfigV2);
});
+ discordInvite = new MButton();
+ discordInvite.setText("Invite Discord Friends");
+ discordInvite.setOnActionPerformed(() -> {
+ if (PartyManager.INSTANCE.isAllowAskToJoin()) {
+ MTooltipInvite mTooltipInvite = new MTooltipInvite();
+ mTooltipInvite.setScale( new ScaledResolution(Minecraft.getMinecraft()).getScaleFactor());
+ mTooltipInvite.open(this);
+ } else {
+ MModalMessage mTooltipInvite = new MModalMessage("Error", "You need to have Ask To Join Enabled to use this feature. Run /dg atj to enable ask to join", () -> {});
+ mTooltipInvite.setScale( new ScaledResolution(Minecraft.getMinecraft()).getScaleFactor());
+ mTooltipInvite.open(this);
+ }
+ });
+ discordInvite.setBackground(RenderUtils.blendAlpha(0xFF141414, 0.05f));
+ add(discordInvite);
add(settings);
navigation = new MPanelScaledGUI() {
@Override
@@ -150,6 +167,7 @@ public class PanelPartyFinder extends MPanel {
scrollablePanel.setBounds(new Rectangle(0, navigation.getBounds().y+navigation.getBounds().height, 3*bounds.width/5, bounds.height - (navigation.getBounds().y+navigation.getBounds().height)));
goBack.setBounds(new Rectangle(0,0, fr.FONT_HEIGHT*2+20, fr.FONT_HEIGHT*2+20));
settings.setBounds(new Rectangle(bounds.width - 75, 0, 75, fr.FONT_HEIGHT*2+20));
+ discordInvite.setBounds(new Rectangle(bounds.width-275, 0, 200, fr.FONT_HEIGHT*2+20));
}
@Override
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyFinderSettings.java b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyFinderSettings.java
index 509ee5c5..0d132648 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyFinderSettings.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyFinderSettings.java
@@ -21,6 +21,7 @@ package kr.syeyoung.dungeonsguide.features.impl.party.customgui;
import kr.syeyoung.dungeonsguide.features.FeatureRegistry;
import kr.syeyoung.dungeonsguide.gui.MPanel;
import kr.syeyoung.dungeonsguide.gui.elements.*;
+import kr.syeyoung.dungeonsguide.utils.TextUtils;
import lombok.Getter;
import lombok.Setter;
import net.minecraft.client.Minecraft;
@@ -36,14 +37,17 @@ import net.minecraft.nbt.NBTTagList;
import net.minecraft.util.EnumChatFormatting;
import java.awt.*;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
public class PanelPartyFinderSettings extends MPanelScaledGUI {
private PanelPartyFinder panelPartyFinder;
private MButton refresh = new MButton(), createNew = new MButton(), settings = new MButton();
- private MPassiveLabelAndElement filterCantjoin, filterWhitelistNote, filterBlacklistNote, plaeHighlightNote; private MToggleButton filterCantjoinButton;
- private MTextField filterWhitelist, filterBlacklist, highlightNote;
+ private MPassiveLabelAndElement filterCantjoin, filterWhitelistNote, filterBlacklistNote, plaeHighlightNote, cataLv,blacklistClass; private MToggleButton filterCantjoinButton;
+ private MTextField filterWhitelist, filterBlacklist, highlightNote, blacklistClassTxt;
+ private MIntegerSelectionButton integerSelection;
@Getter @Setter
boolean delistable = false;
@@ -98,21 +102,42 @@ public class PanelPartyFinderSettings extends MPanelScaledGUI {
FeatureRegistry.PARTYKICKER_CUSTOM.setHighlight(str);
}
};
+ blacklistClassTxt = new MTextField() {
+ @Override
+ public void edit(String str) {
+ super.edit(str);
+ FeatureRegistry.PARTYKICKER_CUSTOM.setBlacklistClass(str);
+ panelPartyFinder.onChestUpdate(null);
+ }
+ };
filterWhitelist.setText(FeatureRegistry.PARTYKICKER_CUSTOM.getWhitelist());
filterBlacklist.setText(FeatureRegistry.PARTYKICKER_CUSTOM.getBlacklist());
highlightNote.setText(FeatureRegistry.PARTYKICKER_CUSTOM.getHighlight());
+ blacklistClassTxt.setText(FeatureRegistry.PARTYKICKER_CUSTOM.getBlacklistClass());
filterWhitelistNote = new MPassiveLabelAndElement("Whitelist Note", filterWhitelist);
filterBlacklistNote = new MPassiveLabelAndElement("Blacklist Note", filterBlacklist);
plaeHighlightNote = new MPassiveLabelAndElement("Highlight Note", highlightNote);
+ blacklistClass = new MPassiveLabelAndElement("Blacklist Class", blacklistClassTxt);
filterWhitelistNote.setDivideRatio(0.5);
filterBlacklistNote.setDivideRatio(0.5);
plaeHighlightNote.setDivideRatio(0.5);
+ blacklistClass.setDivideRatio(0.5);
add(filterWhitelistNote);
add(filterBlacklistNote);
add(plaeHighlightNote);
+ add(blacklistClass);
+ }
+ {
+ integerSelection = new MIntegerSelectionButton(FeatureRegistry.PARTYKICKER_CUSTOM.getMinimumCata());
+ integerSelection.setOnUpdate(() -> {
+ FeatureRegistry.PARTYKICKER_CUSTOM.setMinimumCata(integerSelection.getData());
+ panelPartyFinder.onChestUpdate(null);
+ });
+ cataLv = new MPassiveLabelAndElement("Minimum Cata Lv", integerSelection);
+ cataLv.setDivideRatio(0.5); add(cataLv);
}
}
@@ -197,18 +222,25 @@ public class PanelPartyFinderSettings extends MPanelScaledGUI {
@Override
public void onBoundsUpdate() {
Dimension bounds = getEffectiveDimension();
- refresh.setBounds(new Rectangle(5,5,(bounds.width-10)/2,20));
- createNew.setBounds(new Rectangle(bounds.width/2,5,(bounds.width-10)/2,20));
- filterCantjoin.setBounds(new Rectangle(5,30,bounds.width-10,20));
- filterWhitelistNote.setBounds(new Rectangle(5,55,bounds.width-10,20));
- filterBlacklistNote.setBounds(new Rectangle(5,80,bounds.width-10,20));
- plaeHighlightNote.setBounds(new Rectangle(5,105,bounds.width-10,20));
- settings.setBounds(new Rectangle(5,130,bounds.width-10,20));
+ refresh.setBounds(new Rectangle(5,5,(bounds.width-10)/2,15));
+ createNew.setBounds(new Rectangle(bounds.width/2,5,(bounds.width-10)/2,15));
+ filterCantjoin.setBounds(new Rectangle(5,22,bounds.width-10,15));
+ filterWhitelistNote.setBounds(new Rectangle(5,39,bounds.width-10,15));
+ filterBlacklistNote.setBounds(new Rectangle(5,56,bounds.width-10,15));
+ plaeHighlightNote.setBounds(new Rectangle(5,73,bounds.width-10,15));
+ cataLv.setBounds(new Rectangle(5,90,bounds.width-10,15));
+ blacklistClass.setBounds(new Rectangle(5,107,bounds.width-10,15));
+ settings.setBounds(new Rectangle(5,124,bounds.width-10,15));
}
public boolean filter(ItemStack itemStack) {
NBTTagCompound stackTagCompound = itemStack.getTagCompound();
String note = "";
+ int dLV = 0;
+ Set<String> invalidClasses = new HashSet<>();
+ for (String s : blacklistClassTxt.getText().split(",")) {
+ invalidClasses.add(s.toLowerCase());
+ }
if (stackTagCompound.hasKey("display", 10)) {
NBTTagCompound nbttagcompound = stackTagCompound.getCompoundTag("display");
@@ -221,9 +253,17 @@ public class PanelPartyFinderSettings extends MPanelScaledGUI {
if (str.startsWith("§7§7Note:")) {
note = str.substring(12);
}
+ if (str.startsWith("§7Dungeon Level Required: §b")) {
+ dLV = Integer.parseInt(str.substring(28));
+ }
+ if (str.startsWith(" ") && str.contains(":")) {
+ String clazz = TextUtils.stripColor(str).trim().split(" ")[1];
+ if (invalidClasses.contains(clazz.toLowerCase())) return false;
+ }
}
}
}
+ if (integerSelection.getData() >dLV) return false;
if (!filterBlacklist.getText().isEmpty() && note.toLowerCase().contains(filterBlacklist.getText().toLowerCase())) return false;
if (!filterWhitelist.getText().isEmpty() && !note.toLowerCase().contains(filterWhitelist.getText().toLowerCase())) return false;
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyListElement.java b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyListElement.java
index f347c5d0..ba38c15e 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyListElement.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/PanelPartyListElement.java
@@ -106,7 +106,7 @@ public class PanelPartyListElement extends MPanel {
if (cantjoin) {}
else if (clicked) {
color = RenderUtils.blendAlpha(0x141414, 0.10f);
- } else if (lastAbsClip.contains(absMousex, absMousey)) {
+ } else if (lastAbsClip.contains(absMousex, absMousey) && (getTooltipsOpen() == 0 || (mTooltip != null && mTooltip.isOpen()))) {
color = RenderUtils.blendAlpha(0x141414, 0.12f);
}
if (cantjoin) {}
@@ -150,7 +150,7 @@ public class PanelPartyListElement extends MPanel {
fr.drawString(sideNote, 0,0,-1);
GlStateManager.popMatrix();
- if (lastAbsClip.contains(absMousex, absMousey) && (mTooltip == null || !mTooltip.isOpen())) {
+ if (lastAbsClip.contains(absMousex, absMousey) && (mTooltip == null || !mTooltip.isOpen()) && getTooltipsOpen() == 0) {
if (mTooltip != null) mTooltip.close();
List<String> list = itemStack.getTooltip(Minecraft.getMinecraft().thePlayer, Minecraft.getMinecraft().gameSettings.advancedItemTooltips);
for (int i = 0; i < list.size(); ++i) {
@@ -183,7 +183,7 @@ public class PanelPartyListElement extends MPanel {
boolean clicked = false;
@Override
public void mouseClicked(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int mouseButton) {
- if (lastAbsClip.contains(absMouseX, absMouseY)) {
+ if (lastAbsClip.contains(absMouseX, absMouseY)&& (getTooltipsOpen() == 0 || (mTooltip != null && mTooltip.isOpen()))) {
clicked = true;
GuiChest chest = panelPartyFinder.getGuiCustomPartyFinder().getGuiChest();
@@ -198,7 +198,7 @@ public class PanelPartyListElement extends MPanel {
@Override
public void mouseMoved(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0) {
- if (lastAbsClip.contains(absMouseX, absMouseY)) {
+ if (lastAbsClip.contains(absMouseX, absMouseY) && (getTooltipsOpen() == 0 || (mTooltip != null && mTooltip.isOpen()))) {
setCursor(EnumCursor.POINTING_HAND);
}
}