diff options
Diffstat (limited to 'features/suggestionsGui/index.js')
-rw-r--r-- | features/suggestionsGui/index.js | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/features/suggestionsGui/index.js b/features/suggestionsGui/index.js deleted file mode 100644 index 919d76c..0000000 --- a/features/suggestionsGui/index.js +++ /dev/null @@ -1,219 +0,0 @@ -/// <reference types="../../../CTAutocomplete" /> -/// <reference lib="es2015" /> -import SoopyTextElement from "../../../guimanager/GuiElement/SoopyTextElement"; -import Feature from "../../featureClass/class"; -import GuiPage from "../soopyGui/GuiPage"; -import BoxWithLoading from "../../../guimanager/GuiElement/BoxWithLoading"; -import BoxWithTextAndDescription from "../../../guimanager/GuiElement/BoxWithTextAndDescription"; -import SoopyGuiElement from "../../../guimanager/GuiElement/SoopyGuiElement"; -import PasswordInput from "../../../guimanager/GuiElement/PasswordInput"; -import SoopyKeyPressEvent from "../../../guimanager/EventListener/SoopyKeyPressEvent"; -import { numberWithCommas } from "../../utils/numberUtils"; -import { firstLetterWordCapital } from "../../utils/stringUtils"; -import SoopyBoxElement from "../../../guimanager/GuiElement/SoopyBoxElement"; -import SoopyMarkdownElement from "../../../guimanager/GuiElement/SoopyMarkdownElement"; -import SoopyMouseClickEvent from "../../../guimanager/EventListener/SoopyMouseClickEvent"; -import ButtonWithArrow from "../../../guimanager/GuiElement/ButtonWithArrow"; -import Dropdown from "../../../guimanager/GuiElement/Dropdown"; -import SoopyContentChangeEvent from "../../../guimanager/EventListener/SoopyContentChangeEvent"; -import { fetch } from "../../utils/networkUtils"; - -let allowed = new Set(["dc8c39647b294e03ae9ed13ebd65dd29", "83c5626ede2d4754b86064d558809615"]) - -class SuggestionGui extends Feature { - constructor() { - super() - } - - onEnable() { - this.initVariables() - - this.GuiPage = new SuggestionPage() - - } - - initVariables() { - this.GuiPage = undefined - } - - onDisable() { - this.initVariables() - } -} - - -class SuggestionPage extends GuiPage { - constructor() { - super(7) - - this.name = "Suggestions" - - this.pages = [this.newPage()] - - this.password = "" - - if (allowed.has(Player.getUUID().toString().replace(/-/g, ""))) { - let elm = new PasswordInput().setPlaceholder("Suggestions").setLocation(0.125, 0.05, 0.3, 0.1) - this.pages[0].addChild(elm) - - elm.addEvent(new SoopyKeyPressEvent().setHandler((key, keyId) => { - if (elm.text.selected && keyId === 28) { - this.password = elm.text.text - elm.setText("") - elm.text.selected = false - } - })) - } else { - this.pages[0].addChild(new SoopyTextElement().setText("§0Suggestions").setMaxTextScale(3).setLocation(0.125, 0.05, 0.3, 0.1)) - } - - let button = new ButtonWithArrow().setText("§0Suggest feature (Opens in browser)").setLocation(0.45, 0.05, 0.5, 0.1) - this.pages[0].addChild(button) - - button.addEvent(new SoopyMouseClickEvent().setHandler(() => { - java.awt.Desktop.getDesktop().browse( - new java.net.URI("https://soopy.dev/soopyv2suggestion?uuid=" + Player.getUUID().toString().replace(/-/g, "")) - ); - })) - - this.suggestionElements = {} - - this.suggestionsArea = new SoopyGuiElement().setLocation(0.05, 0.2, 0.9, 0.8).setScrollable(true) - this.pages[0].addChild(this.suggestionsArea) - - - fetch("http://soopy.dev/api/soopyv2/suggestionTags.json").json(data => { - this.tags = data - }) - - this.finaliseLoading() - } - - loadSuggestionPage() { - - fetch("http://soopy.dev/api/soopyv2/suggestion/new").json(data => { - this.suggestionElements = {} - this.suggestionsArea.clearChildren() - - let i = 0 - - data.suggestions.forEach((suggestion) => { - - if (suggestion.status === "pending_review" || suggestion.status === "closed") { - if (suggestion.uuid !== Player.getUUID().toString().replace(/-/g, "") && !allowed.has(Player.getUUID().toString().replace(/-/g, ""))) return - } - - let box = new SoopyBoxElement().setLocation(0, 0.175 * i, 1, 0.15).setLore(["Click for more information + vote buttons"]) - this.suggestionsArea.addChild(box) - - let title = new SoopyTextElement().setText("§0" + suggestion.title + " §7(" + this.tags.suggestionTags[suggestion.tag] + ")").setMaxTextScale(2).setLocation(0, 0, 0.8, 1) - box.addChild(title) - - let popularity = new SoopyTextElement().setText("§0Opinion: " + numberWithCommas(suggestion.likes - suggestion.dislikes)).setMaxTextScale(2).setLocation(0.85, 0, 0.1, 1) - box.addChild(popularity) - - this.suggestionElements[suggestion._id] = { - title: title, - popularity: popularity - } - - box.addEvent(new SoopyMouseClickEvent().setHandler(() => { - this.loadSuggestion(suggestion._id) - })) - - i++ - }); - }) - } - - loadSuggestion(id) { - fetch("http://soopy.dev/api/soopyv2/suggestion/" + id + "/user/" + Player.getUUID().toString().replace(/-/g, "")).json(data => { - let sideBarElm = new SoopyGuiElement().setLocation(0, 0, 1, 1).setScrollable(true) - if (!data.success) { - sideBarElm.addChild(new SoopyTextElement().setText("§cError loading suggestion").setMaxTextScale(3).setLocation(0.5, 0.5, 0.5, 0.5)) - this.openSidebarPage(sideBarElm) - return - } - - this.suggestionElements[id].title.setText("§0" + data.suggestion.title + " §7(" + this.tags.suggestionTags[data.suggestion.tag] + ")") - this.suggestionElements[id].popularity.setText("§0Opinion: " + numberWithCommas(data.suggestion.likes - data.suggestion.dislikes)) - - - let title = new SoopyTextElement().setText("§0" + data.suggestion.title + " §7(" + this.tags.suggestionTags[data.suggestion.tag] + ")").setMaxTextScale(2).setLocation(0.05, 0.05, 0.9, 0.1) - sideBarElm.addChild(title) - - if (!allowed.has(Player.getUUID().toString().replace(/-/g, ""))) { - let suggestor = new SoopyTextElement().setText("§7Suggested by " + data.suggestion.username + " | Status: " + this.tags.statusTags[data.suggestion.status]).setMaxTextScale(1).setLocation(0.05, 0.15, 0.9, 0.05) - sideBarElm.addChild(suggestor) - } else { - let suggestor = new SoopyTextElement().setText("§7Suggested by " + data.suggestion.username + " | Status: ").setMaxTextScale(1).setLocation(0.05, 0.15, 0.6, 0.05) - sideBarElm.addChild(suggestor) - - let drop = new Dropdown().setLocation(0.65, 0.13, 0.3, 0.09).setOptions({ ...this.tags.statusTags, "delete": "Delete" }).setSelectedOption(data.suggestion.status) - sideBarElm.addChild(drop) - - drop.addEvent(new SoopyContentChangeEvent().setHandler((newVal) => { - if (newVal === "delete") { - fetch("http://soopy.dev/api/soopyv2/suggestion/" + id + "/delete/" + this.password).async() - - this.loadSuggestionPage() - this.closeSidebarPage() - return - } - fetch("http://soopy.dev/api/soopyv2/suggestion/" + id + "/status/" + newVal + "/" + this.password).async() - - this.loadSuggestion(id) - })) - } - - let likesText = new SoopyTextElement().setText("§0Dislikes: " + numberWithCommas(data.suggestion.dislikes) + " Likes: " + numberWithCommas(data.suggestion.likes)).setMaxTextScale(1).setLocation(0.35, 0.225, 0.3, 0.1) - sideBarElm.addChild(likesText) - if (!data.suggestion.hasDisliked) { - let dislikeButton = new ButtonWithArrow().setDirectionRight(false).setText("§cDislike").setLocation(0.05, 0.225, 0.275, 0.1) - sideBarElm.addChild(dislikeButton) - dislikeButton.addEvent(new SoopyMouseClickEvent().setHandler(() => { - this.voteSuggestion(id, "dislike") - })) - } else { - let dislikeButton = new ButtonWithArrow().setDirectionRight(false).setText("§cUndislike").setLocation(0.05, 0.225, 0.275, 0.1) - sideBarElm.addChild(dislikeButton) - dislikeButton.addEvent(new SoopyMouseClickEvent().setHandler(() => { - this.voteSuggestion(id, "clear") - })) - } - if (!data.suggestion.hasLiked) { - let likeButton = new ButtonWithArrow().setText("§aLike").setLocation(0.675, 0.225, 0.275, 0.1) - sideBarElm.addChild(likeButton) - likeButton.addEvent(new SoopyMouseClickEvent().setHandler(() => { - this.voteSuggestion(id, "like") - })) - } else { - let likeButton = new ButtonWithArrow().setText("§aUnlike").setLocation(0.675, 0.225, 0.275, 0.1) - sideBarElm.addChild(likeButton) - likeButton.addEvent(new SoopyMouseClickEvent().setHandler(() => { - this.voteSuggestion(id, "clear") - })) - } - - - let description = new SoopyMarkdownElement().setText(data.suggestion.description).setLocation(0.05, 0.325, 0.9, 0.6) - sideBarElm.addChild(description) - - this.openSidebarPage(sideBarElm) - }) - } - - voteSuggestion(id, type) { - fetch("http://soopy.dev/api/soopyv2/suggestion/" + id + "/vote/" + (type) + "/" + Player.getUUID().toString().replace(/-/g, "")).async() - - this.loadSuggestion(id) - } - - onOpen() { - this.loadSuggestionPage() - } -} - -module.exports = { - class: new SuggestionGui() -}
\ No newline at end of file |