aboutsummaryrefslogtreecommitdiff
path: root/features/streamsGUI/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'features/streamsGUI/index.js')
-rw-r--r--features/streamsGUI/index.js136
1 files changed, 136 insertions, 0 deletions
diff --git a/features/streamsGUI/index.js b/features/streamsGUI/index.js
new file mode 100644
index 0000000..0277eb4
--- /dev/null
+++ b/features/streamsGUI/index.js
@@ -0,0 +1,136 @@
+/// <reference types="../../../CTAutocomplete" />
+/// <reference lib="es2015" />
+import SoopyTextElement from "../../../guimanager/GuiElement/SoopyTextElement";
+import Feature from "../../featureClass/class";
+import GuiPage from "../soopyGui/GuiPage";
+// import SoopyBoxElement from "../../../guimanager/GuiElement/SoopyBoxElement";
+// import SoopyMarkdownElement from "../../../guimanager/GuiElement/SoopyMarkdownElement";
+// import SoopyImageElement from "../../../guimanager/GuiElement/SoopyImageElement";
+// import SoopyGuiElement from "../../../guimanager/GuiElement/SoopyGuiElement";
+// import SoopyMouseClickEvent from "../../../guimanager/EventListener/SoopyMouseClickEvent";
+
+class StreamsGui extends Feature {
+ constructor() {
+ super()
+ }
+
+ onEnable(){
+ this.initVariables()
+
+ // this.GuiPage = new StreamPage()
+ }
+
+ initVariables(){
+ this.GuiPage = undefined
+ }
+
+ onDisable(){
+ this.initVariables()
+ }
+}
+
+/*
+class StreamPage extends GuiPage {
+ constructor(){
+ super(7)
+
+ this.name = "Skyblock Streams"
+
+ this.pages = [this.newPage()]
+
+
+ this.pages[0].addChild(new SoopyTextElement().setText("§0Skyblock Streams").setMaxTextScale(3).setLocation(0.1, 0.05, 0.8, 0.1))
+
+ this.streamsBox = new SoopyGuiElement().setLocation(0.1, 0.15, 0.8, 0.85)
+
+ this.streamsBox.setScrollable(true)
+
+ this.pages[0].addChild(this.streamsBox)
+
+ this.finaliseLoading()
+ }
+
+ updateStreams(){
+ let streams = JSON.parse(FileLib.getUrlContent("http://soopymc.my.to/api/skyblockstreams"))
+
+ this.streamsBox.clearChildren()
+
+ let y = 0
+
+ Object.keys(streams.twitch).forEach((channel, i)=>{
+ let stream = streams.twitch[channel]
+
+ if(i%2===0){
+ this.streamsBox.addChild(new StreamElement().setStream(stream, true).setLocation(0, y, 0.45, 0.55).setStreamPage(this))
+ }
+ if(i%2===1){
+ this.streamsBox.addChild(new StreamElement().setStream(stream, true).setLocation(0.55, y, 0.45, 0.55).setStreamPage(this))
+ y+= 0.6
+ }
+ })
+ }
+
+ openStreamSidebar(data){
+ let sidebar = new SoopyGuiElement().setLocation(0,0,1,1)
+
+ this.openSidebarPage(sidebar)
+
+
+ }
+
+ onOpen(){
+ new Thread(()=>{
+ this.updateStreams()
+ }).start()
+ }
+}
+
+class StreamElement extends SoopyBoxElement {
+ constructor(){
+ super()
+
+ this.streamData = undefined
+
+ this.channelElement = new SoopyTextElement().setLocation(0.1,0.025,0.8,0.1).setMaxTextScale(10)
+
+ this.channelImg = new SoopyImageElement().setLocation(0.1,0.125,0.8,0.2).loadHeightFromImage()
+
+ this.titleElement = new SoopyMarkdownElement().setLocation(0.1,0.45,0.8,0.1)
+
+ this.channelImg.onImageHeightChange(()=>{
+ this.titleElement.location.location.y.set(0.15+this.channelImg.location.size.y.get())
+ },this)
+
+ this.streamPage = undefined
+
+ this.addEvent(new SoopyMouseClickEvent().setHandler(()=>{
+ this.streamPage.openStreamSidebar(this.streamData)
+ }))
+
+ this.addChild(this.channelElement)
+ this.addChild(this.titleElement)
+ this.addChild(this.channelImg)
+ }
+
+ setStream(stream, twitch){
+ this.streamData = stream
+
+ this.titleElement.setText(stream.title)
+
+ this.channelElement.setText((twitch ? "§0"+stream.user_name : "§0"+stream.channelTitle) + (twitch?"&7 - " + stream.viewer_count + " viewers":""))
+
+ this.channelImg.setImage(twitch ? `https://static-cdn.jtvnw.net/previews-ttv/live_user_${stream.user_login}-640x360.jpg` : stream.thumbnails.high.url)
+
+ return this
+ }
+
+ setStreamPage(page){
+ this.streamPage = page
+
+ return this
+ }
+}*/
+
+module.exports = {
+ class: new StreamsGui()
+} \ No newline at end of file