diff options
| author | syeyoung <cyong06@naver.com> | 2021-08-11 15:43:43 +0900 |
|---|---|---|
| committer | syeyoung <cyong06@naver.com> | 2021-08-11 15:43:43 +0900 |
| commit | 21ec99c3e45e4557e228d026c148207b1227c14b (patch) | |
| tree | 6b9972492da511c351cc07a9d215dd3b0ab77def /src/main/java/kr/syeyoung/dungeonsguide/features/impl/party | |
| parent | a48cb5c96e16fae589cb7d4f09146a17b3787924 (diff) | |
| download | Skyblock-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')
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); } } |
