From fe45b4db2fc8e3f26c89df23a988615c7a80cd2e Mon Sep 17 00:00:00 2001 From: Yasin Date: Sat, 10 Jun 2023 00:50:30 +0200 Subject: fix lang files --- .../resources/assets/skyblocker/lang/es_ES.json | 148 ---------------- .../resources/assets/skyblocker/lang/es_es.json | 148 ++++++++++++++++ .../resources/assets/skyblocker/lang/ja_JP.json | 74 -------- .../resources/assets/skyblocker/lang/ja_jp.json | 74 ++++++++ .../resources/assets/skyblocker/lang/ko_KR.json | 189 --------------------- .../resources/assets/skyblocker/lang/ko_kr.json | 189 +++++++++++++++++++++ .../resources/assets/skyblocker/lang/nb_NO.json | 164 ------------------ .../resources/assets/skyblocker/lang/nb_no.json | 164 ++++++++++++++++++ .../resources/assets/skyblocker/lang/nn_NO.json | 16 -- .../resources/assets/skyblocker/lang/nn_no.json | 16 ++ .../resources/assets/skyblocker/lang/tr_TR.json | 71 -------- .../resources/assets/skyblocker/lang/tr_tr.json | 71 ++++++++ 12 files changed, 662 insertions(+), 662 deletions(-) delete mode 100644 src/main/resources/assets/skyblocker/lang/es_ES.json create mode 100644 src/main/resources/assets/skyblocker/lang/es_es.json delete mode 100644 src/main/resources/assets/skyblocker/lang/ja_JP.json create mode 100644 src/main/resources/assets/skyblocker/lang/ja_jp.json delete mode 100644 src/main/resources/assets/skyblocker/lang/ko_KR.json create mode 100644 src/main/resources/assets/skyblocker/lang/ko_kr.json delete mode 100644 src/main/resources/assets/skyblocker/lang/nb_NO.json create mode 100644 src/main/resources/assets/skyblocker/lang/nb_no.json delete mode 100644 src/main/resources/assets/skyblocker/lang/nn_NO.json create mode 100644 src/main/resources/assets/skyblocker/lang/nn_no.json delete mode 100644 src/main/resources/assets/skyblocker/lang/tr_TR.json create mode 100644 src/main/resources/assets/skyblocker/lang/tr_tr.json (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/es_ES.json b/src/main/resources/assets/skyblocker/lang/es_ES.json deleted file mode 100644 index 7c5ea062..00000000 --- a/src/main/resources/assets/skyblocker/lang/es_ES.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "key.categories.skyblocker": "Skyblocker", - "key.hotbarSlotLock": "Bloqueo de Slot (Hotbar)", - "key.wikiLookup": "Búsqueda en la Wiki", - "text.autoconfig.skyblocker.title": "Ajustes de Skyblocker", - "text.autoconfig.skyblocker.category.general": "General", - "text.autoconfig.skyblocker.option.general.bars": "Salud, Mana, Defensa & Barra de XP", - "text.autoconfig.skyblocker.option.general.bars.enableBars": "Habilitar Barras", - "text.autoconfig.skyblocker.option.general.bars.barpositions": "Configurar Posición de Barras", - "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER1": "Capa 1", - "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER2": "Capa 2", - "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "Derecha", - "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "Deshabilitado", - "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "Posición de la Barra de Salud", - "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "Posición de la Barra de Mana", - "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "Posición de la Barra de Defensa", - "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "Posición de la Barra de Experiencia", - "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "Ver la previsualización de la mochila sin sostener Shift", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "Habilitar Precios de NPC", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "Habilitar Precios Promedio de BIN", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "Tipo Promedio", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "Puedes elegir cuantos días de precio promedio sera", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.ONE_DAY": "Precio de 1 día", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.THREE_DAY": "Precio de 3 días", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.BOTH": "Ambos", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "Habilitar el precio mas bajo de BIN", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "Habilitar los precios de compra/venta del Bazar", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "Habilitar Fecha del Museo", - "text.autoconfig.skyblocker.option.general.hitbox": "Cajas de Colisión", - "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "Habilitar la Caja de Colisión de la 1.8 para la tierra de cultivo", - "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "Habilitar la Caja de Colisión de la 1.8 para la palanca", - "skyblocker.itemTooltip.noData": "§cSin Información", - "text.autoconfig.skyblocker.category.richPresence": "Discord Rich Presence", - "text.autoconfig.skyblocker.option.richPresence.info": "Información de Skyblock", - "text.autoconfig.skyblocker.option.richPresence.info.PURSE": "CARTERA", - "text.autoconfig.skyblocker.option.richPresence.info.BITS": "BITS", - "text.autoconfig.skyblocker.option.richPresence.info.LOCATION": "LOCALIZACIÓN", - "text.autoconfig.skyblocker.option.richPresence.cycleMode": "Ciclar Información de Skyblock", - "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "Habilitado", - "text.autoconfig.skyblocker.option.richPresence.customMessage": "Mensaje Personalizado", - "text.autoconfig.skyblocker.category.quickNav": "Navegación Rápida", - "text.autoconfig.skyblocker.option.quickNav.enableQuickNav": "Habilitar Navegación Rápida", - "text.autoconfig.skyblocker.option.quickNav.button1": "Botón 1", - "text.autoconfig.skyblocker.option.quickNav.button2.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button2.uiTitle": "Titulo de la Interfaz", - "text.autoconfig.skyblocker.option.quickNav.button3": "Botón 3", - "text.autoconfig.skyblocker.option.quickNav.button4": "Botón 4", - "text.autoconfig.skyblocker.option.quickNav.button5": "Botón 5", - "text.autoconfig.skyblocker.option.quickNav.button6": "Botón 6", - "text.autoconfig.skyblocker.option.quickNav.button7": "Botón 7", - "text.autoconfig.skyblocker.option.messages.hideImplosion": "Ocultar el mensaje de Implosion", - "text.autoconfig.skyblocker.option.messages.hideCombo": "Ocultar Mensajes de Combos", - "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper.@Tooltip": "Obscurece los cofres que ya han sido abiertos.", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "Habilitar Fondo", - "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Habilitar Navegación Rápida", - "text.autoconfig.skyblocker.option.general.quicknav": "Navegación Rápida", - "text.autoconfig.skyblocker.option.general.itemTooltip": "Información extra de los objetos", - "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §cEl precio en la información en los objetos se actualiza cada 60 segundos. De lo contrario revisa lastest.log", - "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "Este valor no importa si estas ciclando", - "text.autoconfig.skyblocker.option.quickNav.button1.item": "Objeto", - "text.autoconfig.skyblocker.option.quickNav.button1.item.itemName": "Nombre del objeto", - "text.autoconfig.skyblocker.option.quickNav.button1.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button1.uiTitle": "Titulo de la Interfaz", - "text.autoconfig.skyblocker.option.quickNav.button2": "Botón 2", - "text.autoconfig.skyblocker.option.quickNav.button2.item": "Objeto", - "text.autoconfig.skyblocker.option.quickNav.button2.item.itemName": "Nombre del objeto", - "text.autoconfig.skyblocker.option.quickNav.button3.item": "Objeto", - "text.autoconfig.skyblocker.option.quickNav.button3.item.itemName": "Nombre del objeto", - "text.autoconfig.skyblocker.option.messages.hideAds": "Ocultar anuncios del Chat Publico", - "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "Ocultar mensajes del Pad de Teletransporte", - "text.autoconfig.skyblocker.option.messages.hideAutopet": "Ocultar mensajes del Autopet", - "text.autoconfig.skyblocker.option.general.itemList": "Lista de Objetos", - "text.autoconfig.skyblocker.option.general.itemList.enableItemList": "Habilitar la Lista de Objetos", - "text.autoconfig.skyblocker.category.locations": "Localizaciones", - "text.autoconfig.skyblocker.option.locations.dungeons": "Mazmorras", - "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper": "Ayuda con Croesus", - "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "Habilitar Mapa", - "text.autoconfig.skyblocker.option.locations.dungeons.mapScaling": "Escala del Mapa", - "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "Resuelve el Acertijo de \"Los Tres Chiflados\"", - "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "Resuelve el Acertijo del Blaze", - "text.autoconfig.skyblocker.option.locations.dungeons.solveTrivia": "Resuelve el Acertijo de Trivia", - "text.autoconfig.skyblocker.option.locations.dwarvenMines": "Minas Dwarven", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "Habilitar Combustible del Taladro", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Resolver Fetchur", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Interfaz de Dwarven", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "Habilitado", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.x": "X", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", - "text.autoconfig.skyblocker.category.messages": "Mensajes", - "text.autoconfig.skyblocker.option.messages.chatFilterResult.PASS": "Deshabilitado", - "text.autoconfig.skyblocker.option.messages.chatFilterResult.FILTER": "Filtro", - "text.autoconfig.skyblocker.option.messages.chatFilterResult.ACTION_BAR": "Mover a la barra de acción", - "text.autoconfig.skyblocker.option.messages.hideAbility": "Ocultar Mensaje de Enfriamiento (Cooldown)", - "text.autoconfig.skyblocker.option.messages.hideHeal": "Ocultar Mensajes de Curación", - "text.autoconfig.skyblocker.option.messages.hideAOTE": "Ocultar Mensajes de la AOTE", - "text.autoconfig.skyblocker.option.messages.hideMana": "Ocultar los Mensajes del Consumo de Maná de la Barra de Acción", - "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "Da una mejor experiencia con FancyBar", - "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2¡Hay Una nueva versión disponible!", - "skyblocker.update.update_link": " §2§nHas Click Aquí§r", - "skyblocker.update.update_message_end": " §aPara conocer mas sobre las nuevas características.", - "skyblocker.update.hover_text": "Abrir Modrinth", - "text.autoconfig.skyblocker.option.general.enableUpdateNotification": "Notificaciones sobre actualizaciones", - "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2¡Se añadió tu API key automáticamente!", - "skyblocker.updaterepository.failed": "§b[§6Skyblocker§b] §cLa actualización del repositorio local fallo. Elimina los archivos manualmente y reinicia el juego.", - "text.autoconfig.skyblocker.option.quickNav.button11": "Botón 11", - "text.autoconfig.skyblocker.option.quickNav.button9.item.itemName": "Nombre del objeto", - "text.autoconfig.skyblocker.option.quickNav.button3.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button3.uiTitle": "Titulo de la Interfaz", - "text.autoconfig.skyblocker.option.quickNav.button4.item": "Objeto", - "text.autoconfig.skyblocker.option.quickNav.button4.item.itemName": "Nombre del objeto", - "text.autoconfig.skyblocker.option.quickNav.button4.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button4.uiTitle": "Titulo de la Interfaz", - "text.autoconfig.skyblocker.option.quickNav.button5.item": "Objeto", - "text.autoconfig.skyblocker.option.quickNav.button5.item.itemName": "Nombre del objeto", - "text.autoconfig.skyblocker.option.quickNav.button5.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button5.uiTitle": "Titulo de la Interfaz", - "text.autoconfig.skyblocker.option.quickNav.button6.item": "Objeto", - "text.autoconfig.skyblocker.option.quickNav.button6.item.itemName": "Nombre del objeto", - "text.autoconfig.skyblocker.option.quickNav.button6.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button8": "Botón 8", - "text.autoconfig.skyblocker.option.quickNav.button9": "Botón 9", - "text.autoconfig.skyblocker.option.quickNav.button10": "Botón 10", - "text.autoconfig.skyblocker.option.quickNav.button6.uiTitle": "Titulo de la Interfaz", - "text.autoconfig.skyblocker.option.quickNav.button7.item": "Objeto", - "text.autoconfig.skyblocker.option.quickNav.button7.item.itemName": "Nombre del objeto", - "text.autoconfig.skyblocker.option.quickNav.button7.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button7.uiTitle": "Titulo de la Interfaz", - "text.autoconfig.skyblocker.option.quickNav.button8.item": "Objeto", - "text.autoconfig.skyblocker.option.quickNav.button8.item.itemName": "Nombre del objeto", - "text.autoconfig.skyblocker.option.quickNav.button8.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button8.uiTitle": "Titulo de la Interfaz", - "text.autoconfig.skyblocker.option.quickNav.button9.item": "Objeto", - "text.autoconfig.skyblocker.option.quickNav.button9.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button9.uiTitle": "Titulo de la Interfaz", - "text.autoconfig.skyblocker.option.quickNav.button10.item": "Objeto", - "text.autoconfig.skyblocker.option.quickNav.button10.item.itemName": "Nombre del objeto", - "text.autoconfig.skyblocker.option.quickNav.button10.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button10.uiTitle": "Titulo de la Interfaz", - "text.autoconfig.skyblocker.option.quickNav.button11.item": "Objeto", - "text.autoconfig.skyblocker.option.quickNav.button11.item.itemName": "Nombre del objeto", - "text.autoconfig.skyblocker.option.quickNav.button11.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button11.uiTitle": "Titulo de la Interfaz", - "text.autoconfig.skyblocker.option.quickNav.button12": "Botón 12", - "text.autoconfig.skyblocker.option.quickNav.button12.item": "Objeto", - "text.autoconfig.skyblocker.option.quickNav.button12.item.itemName": "Nombre del objeto", - "text.autoconfig.skyblocker.option.quickNav.button12.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button12.uiTitle": "Titulo de la Interfaz" -} diff --git a/src/main/resources/assets/skyblocker/lang/es_es.json b/src/main/resources/assets/skyblocker/lang/es_es.json new file mode 100644 index 00000000..7c5ea062 --- /dev/null +++ b/src/main/resources/assets/skyblocker/lang/es_es.json @@ -0,0 +1,148 @@ +{ + "key.categories.skyblocker": "Skyblocker", + "key.hotbarSlotLock": "Bloqueo de Slot (Hotbar)", + "key.wikiLookup": "Búsqueda en la Wiki", + "text.autoconfig.skyblocker.title": "Ajustes de Skyblocker", + "text.autoconfig.skyblocker.category.general": "General", + "text.autoconfig.skyblocker.option.general.bars": "Salud, Mana, Defensa & Barra de XP", + "text.autoconfig.skyblocker.option.general.bars.enableBars": "Habilitar Barras", + "text.autoconfig.skyblocker.option.general.bars.barpositions": "Configurar Posición de Barras", + "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER1": "Capa 1", + "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER2": "Capa 2", + "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "Derecha", + "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "Deshabilitado", + "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "Posición de la Barra de Salud", + "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "Posición de la Barra de Mana", + "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "Posición de la Barra de Defensa", + "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "Posición de la Barra de Experiencia", + "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "Ver la previsualización de la mochila sin sostener Shift", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "Habilitar Precios de NPC", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "Habilitar Precios Promedio de BIN", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "Tipo Promedio", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "Puedes elegir cuantos días de precio promedio sera", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.ONE_DAY": "Precio de 1 día", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.THREE_DAY": "Precio de 3 días", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.BOTH": "Ambos", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "Habilitar el precio mas bajo de BIN", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "Habilitar los precios de compra/venta del Bazar", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "Habilitar Fecha del Museo", + "text.autoconfig.skyblocker.option.general.hitbox": "Cajas de Colisión", + "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "Habilitar la Caja de Colisión de la 1.8 para la tierra de cultivo", + "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "Habilitar la Caja de Colisión de la 1.8 para la palanca", + "skyblocker.itemTooltip.noData": "§cSin Información", + "text.autoconfig.skyblocker.category.richPresence": "Discord Rich Presence", + "text.autoconfig.skyblocker.option.richPresence.info": "Información de Skyblock", + "text.autoconfig.skyblocker.option.richPresence.info.PURSE": "CARTERA", + "text.autoconfig.skyblocker.option.richPresence.info.BITS": "BITS", + "text.autoconfig.skyblocker.option.richPresence.info.LOCATION": "LOCALIZACIÓN", + "text.autoconfig.skyblocker.option.richPresence.cycleMode": "Ciclar Información de Skyblock", + "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "Habilitado", + "text.autoconfig.skyblocker.option.richPresence.customMessage": "Mensaje Personalizado", + "text.autoconfig.skyblocker.category.quickNav": "Navegación Rápida", + "text.autoconfig.skyblocker.option.quickNav.enableQuickNav": "Habilitar Navegación Rápida", + "text.autoconfig.skyblocker.option.quickNav.button1": "Botón 1", + "text.autoconfig.skyblocker.option.quickNav.button2.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button2.uiTitle": "Titulo de la Interfaz", + "text.autoconfig.skyblocker.option.quickNav.button3": "Botón 3", + "text.autoconfig.skyblocker.option.quickNav.button4": "Botón 4", + "text.autoconfig.skyblocker.option.quickNav.button5": "Botón 5", + "text.autoconfig.skyblocker.option.quickNav.button6": "Botón 6", + "text.autoconfig.skyblocker.option.quickNav.button7": "Botón 7", + "text.autoconfig.skyblocker.option.messages.hideImplosion": "Ocultar el mensaje de Implosion", + "text.autoconfig.skyblocker.option.messages.hideCombo": "Ocultar Mensajes de Combos", + "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper.@Tooltip": "Obscurece los cofres que ya han sido abiertos.", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "Habilitar Fondo", + "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Habilitar Navegación Rápida", + "text.autoconfig.skyblocker.option.general.quicknav": "Navegación Rápida", + "text.autoconfig.skyblocker.option.general.itemTooltip": "Información extra de los objetos", + "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §cEl precio en la información en los objetos se actualiza cada 60 segundos. De lo contrario revisa lastest.log", + "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "Este valor no importa si estas ciclando", + "text.autoconfig.skyblocker.option.quickNav.button1.item": "Objeto", + "text.autoconfig.skyblocker.option.quickNav.button1.item.itemName": "Nombre del objeto", + "text.autoconfig.skyblocker.option.quickNav.button1.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button1.uiTitle": "Titulo de la Interfaz", + "text.autoconfig.skyblocker.option.quickNav.button2": "Botón 2", + "text.autoconfig.skyblocker.option.quickNav.button2.item": "Objeto", + "text.autoconfig.skyblocker.option.quickNav.button2.item.itemName": "Nombre del objeto", + "text.autoconfig.skyblocker.option.quickNav.button3.item": "Objeto", + "text.autoconfig.skyblocker.option.quickNav.button3.item.itemName": "Nombre del objeto", + "text.autoconfig.skyblocker.option.messages.hideAds": "Ocultar anuncios del Chat Publico", + "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "Ocultar mensajes del Pad de Teletransporte", + "text.autoconfig.skyblocker.option.messages.hideAutopet": "Ocultar mensajes del Autopet", + "text.autoconfig.skyblocker.option.general.itemList": "Lista de Objetos", + "text.autoconfig.skyblocker.option.general.itemList.enableItemList": "Habilitar la Lista de Objetos", + "text.autoconfig.skyblocker.category.locations": "Localizaciones", + "text.autoconfig.skyblocker.option.locations.dungeons": "Mazmorras", + "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper": "Ayuda con Croesus", + "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "Habilitar Mapa", + "text.autoconfig.skyblocker.option.locations.dungeons.mapScaling": "Escala del Mapa", + "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "Resuelve el Acertijo de \"Los Tres Chiflados\"", + "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "Resuelve el Acertijo del Blaze", + "text.autoconfig.skyblocker.option.locations.dungeons.solveTrivia": "Resuelve el Acertijo de Trivia", + "text.autoconfig.skyblocker.option.locations.dwarvenMines": "Minas Dwarven", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "Habilitar Combustible del Taladro", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Resolver Fetchur", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Interfaz de Dwarven", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "Habilitado", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.x": "X", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", + "text.autoconfig.skyblocker.category.messages": "Mensajes", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.PASS": "Deshabilitado", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.FILTER": "Filtro", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.ACTION_BAR": "Mover a la barra de acción", + "text.autoconfig.skyblocker.option.messages.hideAbility": "Ocultar Mensaje de Enfriamiento (Cooldown)", + "text.autoconfig.skyblocker.option.messages.hideHeal": "Ocultar Mensajes de Curación", + "text.autoconfig.skyblocker.option.messages.hideAOTE": "Ocultar Mensajes de la AOTE", + "text.autoconfig.skyblocker.option.messages.hideMana": "Ocultar los Mensajes del Consumo de Maná de la Barra de Acción", + "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "Da una mejor experiencia con FancyBar", + "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2¡Hay Una nueva versión disponible!", + "skyblocker.update.update_link": " §2§nHas Click Aquí§r", + "skyblocker.update.update_message_end": " §aPara conocer mas sobre las nuevas características.", + "skyblocker.update.hover_text": "Abrir Modrinth", + "text.autoconfig.skyblocker.option.general.enableUpdateNotification": "Notificaciones sobre actualizaciones", + "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2¡Se añadió tu API key automáticamente!", + "skyblocker.updaterepository.failed": "§b[§6Skyblocker§b] §cLa actualización del repositorio local fallo. Elimina los archivos manualmente y reinicia el juego.", + "text.autoconfig.skyblocker.option.quickNav.button11": "Botón 11", + "text.autoconfig.skyblocker.option.quickNav.button9.item.itemName": "Nombre del objeto", + "text.autoconfig.skyblocker.option.quickNav.button3.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button3.uiTitle": "Titulo de la Interfaz", + "text.autoconfig.skyblocker.option.quickNav.button4.item": "Objeto", + "text.autoconfig.skyblocker.option.quickNav.button4.item.itemName": "Nombre del objeto", + "text.autoconfig.skyblocker.option.quickNav.button4.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button4.uiTitle": "Titulo de la Interfaz", + "text.autoconfig.skyblocker.option.quickNav.button5.item": "Objeto", + "text.autoconfig.skyblocker.option.quickNav.button5.item.itemName": "Nombre del objeto", + "text.autoconfig.skyblocker.option.quickNav.button5.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button5.uiTitle": "Titulo de la Interfaz", + "text.autoconfig.skyblocker.option.quickNav.button6.item": "Objeto", + "text.autoconfig.skyblocker.option.quickNav.button6.item.itemName": "Nombre del objeto", + "text.autoconfig.skyblocker.option.quickNav.button6.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button8": "Botón 8", + "text.autoconfig.skyblocker.option.quickNav.button9": "Botón 9", + "text.autoconfig.skyblocker.option.quickNav.button10": "Botón 10", + "text.autoconfig.skyblocker.option.quickNav.button6.uiTitle": "Titulo de la Interfaz", + "text.autoconfig.skyblocker.option.quickNav.button7.item": "Objeto", + "text.autoconfig.skyblocker.option.quickNav.button7.item.itemName": "Nombre del objeto", + "text.autoconfig.skyblocker.option.quickNav.button7.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button7.uiTitle": "Titulo de la Interfaz", + "text.autoconfig.skyblocker.option.quickNav.button8.item": "Objeto", + "text.autoconfig.skyblocker.option.quickNav.button8.item.itemName": "Nombre del objeto", + "text.autoconfig.skyblocker.option.quickNav.button8.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button8.uiTitle": "Titulo de la Interfaz", + "text.autoconfig.skyblocker.option.quickNav.button9.item": "Objeto", + "text.autoconfig.skyblocker.option.quickNav.button9.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button9.uiTitle": "Titulo de la Interfaz", + "text.autoconfig.skyblocker.option.quickNav.button10.item": "Objeto", + "text.autoconfig.skyblocker.option.quickNav.button10.item.itemName": "Nombre del objeto", + "text.autoconfig.skyblocker.option.quickNav.button10.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button10.uiTitle": "Titulo de la Interfaz", + "text.autoconfig.skyblocker.option.quickNav.button11.item": "Objeto", + "text.autoconfig.skyblocker.option.quickNav.button11.item.itemName": "Nombre del objeto", + "text.autoconfig.skyblocker.option.quickNav.button11.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button11.uiTitle": "Titulo de la Interfaz", + "text.autoconfig.skyblocker.option.quickNav.button12": "Botón 12", + "text.autoconfig.skyblocker.option.quickNav.button12.item": "Objeto", + "text.autoconfig.skyblocker.option.quickNav.button12.item.itemName": "Nombre del objeto", + "text.autoconfig.skyblocker.option.quickNav.button12.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button12.uiTitle": "Titulo de la Interfaz" +} diff --git a/src/main/resources/assets/skyblocker/lang/ja_JP.json b/src/main/resources/assets/skyblocker/lang/ja_JP.json deleted file mode 100644 index 954647c7..00000000 --- a/src/main/resources/assets/skyblocker/lang/ja_JP.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "key.categories.skyblocker": "Skyblocker", - "key.hotbarSlotLock": "ホットバースロットのロック", - "key.wikiLookup": "Wikiのページを開く", - "text.autoconfig.skyblocker.title": "Skyblockerの設定", - "text.autoconfig.skyblocker.category.general": "一般", - "text.autoconfig.skyblocker.option.general.bars": "体力,マナ,ディフェンス,経験値のバー", - "text.autoconfig.skyblocker.option.general.bars.enableBars": "バーを有効にする", - "text.autoconfig.skyblocker.option.general.bars.barpositions": "バーの位置を変える", - "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "体力バーの位置", - "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "マナバーの位置", - "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "ディフェンスバーの位置", - "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "経験値バーの位置", - "text.autoconfig.skyblocker.option.general.quicknav": "クイックナビ", - "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "クイックナビを有効にする", - "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "Shiftキーを押さずにバックパックのプレビューを見る", - "text.autoconfig.skyblocker.option.general.itemTooltip": "アイテムの詳細情報", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "NPC売りの値段を表示する", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "binオークションの平均の値段を表示する", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "平均の取り方", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "何日間の平均の値段を表示するか選べます", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "最安価の表示を表示する", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "バザーでの売り買いの値段を表示する", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "ミュージアムに寄付したか、またその日を表示する", - "text.autoconfig.skyblocker.option.general.hitbox": "ヒットボックス", - "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "バージョン1.8での作物のヒットボックスを使う", - "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "バージョン1.8でのレバーのヒットボックスを使う", - "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b]§cツールチップ上のアイテムの値段は最大60秒ごとに更新されます。されていない場合はlatest.logを確認してください", - "text.autoconfig.skyblocker.category.richPresence": "discordに自分のゲームアクティビティを表示する", - "text.autoconfig.skyblocker.option.richPresence.info": "skyblockの情報", - "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "この値はあなたがサイクリングしている場合は重要ではありません", - "text.autoconfig.skyblocker.option.richPresence.cycleMode": "円状のskyblockの情報", - "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "有効", - "text.autoconfig.skyblocker.option.richPresence.customMessage": "カスタムメッセージ", - "text.autoconfig.skyblocker.option.general.itemList": "アイテムリスト", - "text.autoconfig.skyblocker.option.general.itemList.enableItemList": "アイテムリストを有効にする", - "text.autoconfig.skyblocker.category.locations": "場所", - "text.autoconfig.skyblocker.option.locations.dungeons": "ダンジョン", - "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "ダンジョンのマップ表示を有効にする", - "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "嘘つきを当てるパズルのソルバー", - "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "ブレイズパズルのソルバー", - "text.autoconfig.skyblocker.option.locations.dungeons.solveTrivia": "クイズのソルバー", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals": "F7のターミナルソルバー", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveColor": "select Coloredのソルバー", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveOrder": "Click in Orderのソルバー", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveStartsWith": "Starts Withのソルバー", - "text.autoconfig.skyblocker.option.locations.dwarvenMines": "ドワーフマイン", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "ドリルの燃料表示を有効にする", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Fetchurの要求アイテムの表示", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Puzzler Puzzleのソルバー", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "ドワーフマインでのHUD", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "有効", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "バックグラウンド表示を有効にする", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.x": "X", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", - "text.autoconfig.skyblocker.category.messages": "メッセージ", - "text.autoconfig.skyblocker.option.messages.hideAbility": "アビリティのクールダウンを非表示にする", - "text.autoconfig.skyblocker.option.messages.hideHeal": "回復メッセージを非表示にする", - "text.autoconfig.skyblocker.option.messages.hideAOTE": "AOTEのメッセージを非表示にする", - "text.autoconfig.skyblocker.option.messages.hideImplosion": "Implosionのメッセージを非表示にする", - "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Molten Waveのメッセージを非表示にする", - "text.autoconfig.skyblocker.option.messages.hideAds": "全体チャットの宣伝を非表示にする", - "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "テレポートパッドのメッセージを非表示にする", - "text.autoconfig.skyblocker.option.messages.hideCombo": "Comboのメッセージを非表示にする", - "text.autoconfig.skyblocker.option.messages.hideAutopet": "Autopetのメッセージを非表示にする", - "text.autoconfig.skyblocker.option.messages.hideMana": "マナの使用表示をアクションバーから非表示にする", - "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "FancyBarでより良くできます", - "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2新しいバージョンがあります!", - "skyblocker.update.update_link": " §2§nここをクリック§r", - "skyblocker.update.update_message_end": " §a最新の機能を体験しましょう.", - "skyblocker.update.hover_text": "Modrinthを開く", - "text.autoconfig.skyblocker.option.general.enableUpdateNotification": "アップデート通知", - "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2あなたのAPI keyを設定しました!" -} diff --git a/src/main/resources/assets/skyblocker/lang/ja_jp.json b/src/main/resources/assets/skyblocker/lang/ja_jp.json new file mode 100644 index 00000000..954647c7 --- /dev/null +++ b/src/main/resources/assets/skyblocker/lang/ja_jp.json @@ -0,0 +1,74 @@ +{ + "key.categories.skyblocker": "Skyblocker", + "key.hotbarSlotLock": "ホットバースロットのロック", + "key.wikiLookup": "Wikiのページを開く", + "text.autoconfig.skyblocker.title": "Skyblockerの設定", + "text.autoconfig.skyblocker.category.general": "一般", + "text.autoconfig.skyblocker.option.general.bars": "体力,マナ,ディフェンス,経験値のバー", + "text.autoconfig.skyblocker.option.general.bars.enableBars": "バーを有効にする", + "text.autoconfig.skyblocker.option.general.bars.barpositions": "バーの位置を変える", + "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "体力バーの位置", + "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "マナバーの位置", + "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "ディフェンスバーの位置", + "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "経験値バーの位置", + "text.autoconfig.skyblocker.option.general.quicknav": "クイックナビ", + "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "クイックナビを有効にする", + "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "Shiftキーを押さずにバックパックのプレビューを見る", + "text.autoconfig.skyblocker.option.general.itemTooltip": "アイテムの詳細情報", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "NPC売りの値段を表示する", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "binオークションの平均の値段を表示する", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "平均の取り方", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "何日間の平均の値段を表示するか選べます", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "最安価の表示を表示する", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "バザーでの売り買いの値段を表示する", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "ミュージアムに寄付したか、またその日を表示する", + "text.autoconfig.skyblocker.option.general.hitbox": "ヒットボックス", + "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "バージョン1.8での作物のヒットボックスを使う", + "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "バージョン1.8でのレバーのヒットボックスを使う", + "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b]§cツールチップ上のアイテムの値段は最大60秒ごとに更新されます。されていない場合はlatest.logを確認してください", + "text.autoconfig.skyblocker.category.richPresence": "discordに自分のゲームアクティビティを表示する", + "text.autoconfig.skyblocker.option.richPresence.info": "skyblockの情報", + "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "この値はあなたがサイクリングしている場合は重要ではありません", + "text.autoconfig.skyblocker.option.richPresence.cycleMode": "円状のskyblockの情報", + "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "有効", + "text.autoconfig.skyblocker.option.richPresence.customMessage": "カスタムメッセージ", + "text.autoconfig.skyblocker.option.general.itemList": "アイテムリスト", + "text.autoconfig.skyblocker.option.general.itemList.enableItemList": "アイテムリストを有効にする", + "text.autoconfig.skyblocker.category.locations": "場所", + "text.autoconfig.skyblocker.option.locations.dungeons": "ダンジョン", + "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "ダンジョンのマップ表示を有効にする", + "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "嘘つきを当てるパズルのソルバー", + "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "ブレイズパズルのソルバー", + "text.autoconfig.skyblocker.option.locations.dungeons.solveTrivia": "クイズのソルバー", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals": "F7のターミナルソルバー", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveColor": "select Coloredのソルバー", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveOrder": "Click in Orderのソルバー", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveStartsWith": "Starts Withのソルバー", + "text.autoconfig.skyblocker.option.locations.dwarvenMines": "ドワーフマイン", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "ドリルの燃料表示を有効にする", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Fetchurの要求アイテムの表示", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Puzzler Puzzleのソルバー", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "ドワーフマインでのHUD", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "有効", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "バックグラウンド表示を有効にする", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.x": "X", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", + "text.autoconfig.skyblocker.category.messages": "メッセージ", + "text.autoconfig.skyblocker.option.messages.hideAbility": "アビリティのクールダウンを非表示にする", + "text.autoconfig.skyblocker.option.messages.hideHeal": "回復メッセージを非表示にする", + "text.autoconfig.skyblocker.option.messages.hideAOTE": "AOTEのメッセージを非表示にする", + "text.autoconfig.skyblocker.option.messages.hideImplosion": "Implosionのメッセージを非表示にする", + "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Molten Waveのメッセージを非表示にする", + "text.autoconfig.skyblocker.option.messages.hideAds": "全体チャットの宣伝を非表示にする", + "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "テレポートパッドのメッセージを非表示にする", + "text.autoconfig.skyblocker.option.messages.hideCombo": "Comboのメッセージを非表示にする", + "text.autoconfig.skyblocker.option.messages.hideAutopet": "Autopetのメッセージを非表示にする", + "text.autoconfig.skyblocker.option.messages.hideMana": "マナの使用表示をアクションバーから非表示にする", + "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "FancyBarでより良くできます", + "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2新しいバージョンがあります!", + "skyblocker.update.update_link": " §2§nここをクリック§r", + "skyblocker.update.update_message_end": " §a最新の機能を体験しましょう.", + "skyblocker.update.hover_text": "Modrinthを開く", + "text.autoconfig.skyblocker.option.general.enableUpdateNotification": "アップデート通知", + "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2あなたのAPI keyを設定しました!" +} diff --git a/src/main/resources/assets/skyblocker/lang/ko_KR.json b/src/main/resources/assets/skyblocker/lang/ko_KR.json deleted file mode 100644 index 93930cc1..00000000 --- a/src/main/resources/assets/skyblocker/lang/ko_KR.json +++ /dev/null @@ -1,189 +0,0 @@ -{ - "key.categories.skyblocker": "Skyblocker", - "key.hotbarSlotLock": "슬롯 고정 (핫바)", - "key.wikiLookup": "위키에서 찾기", - "text.autoconfig.skyblocker.title": "Skyblocker 설정", - "text.autoconfig.skyblocker.category.general": "일반", - "text.autoconfig.skyblocker.option.general.bars": "체력, 마나, 방어력 및 경험치 바", - "text.autoconfig.skyblocker.option.general.bars.enableBars": "바 활성화", - "text.autoconfig.skyblocker.option.general.bars.barpositions": "바 위치 조정", - "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER1": "레이어 1", - "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER2": "레이어 2", - "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "우측", - "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "비활성화", - "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "체력바 위치", - "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "마나바 위치", - "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "방어력바 위치", - "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "경험치바 위치", - "text.autoconfig.skyblocker.option.general.quicknav": "즐겨찾기", - "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "즐겨찾기 활성화", - "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "Shift 를 누르지 않고 백팩 미리보기", - "text.autoconfig.skyblocker.option.general.itemTooltip": "아이템 툴팁", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "NPC 가격 활성화", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "평균 BIN 가격 활성화", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "평균 종류", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "얼마나 많은 일수의 평균가를 표시할지 선택합니다", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.ONE_DAY": "1일 평균가", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.THREE_DAY": "3일 평균가", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.BOTH": "둘 다", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "최저 BIN 가격 활성화", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "Bazaar 매매 가격 활성화", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "Museum 과 날짜 활성화", - "text.autoconfig.skyblocker.option.general.hitbox": "히트박스", - "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "1.8 농지 히트박스 활성화", - "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "1.8 레버 히트박스 활성화", - "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §c아이템 가격 툴팁이 최대 60초 이내에 갱신됩니다. 갱신되지 않을 시 latest.log 를 확인하세요.", - "skyblocker.itemTooltip.noData": "§c데이터 없음", - "text.autoconfig.skyblocker.category.richPresence": "디스코드 Rich Presence", - "text.autoconfig.skyblocker.option.richPresence.info": "스카이블록 정보", - "text.autoconfig.skyblocker.option.richPresence.info.PURSE": "PURSE", - "text.autoconfig.skyblocker.option.richPresence.info.BITS": "BITS", - "text.autoconfig.skyblocker.option.richPresence.info.LOCATION": "위치", - "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "이 값은 순환중일 시 중요하지 않습니다", - "text.autoconfig.skyblocker.option.richPresence.cycleMode": "스카이블록 정보 순환", - "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "활성화됨", - "text.autoconfig.skyblocker.option.richPresence.customMessage": "사용자 지정 메시지", - "text.autoconfig.skyblocker.category.quickNav": "즐겨찾기", - "text.autoconfig.skyblocker.option.quickNav.enableQuickNav": "즐겨찾기 활성화", - "text.autoconfig.skyblocker.option.quickNav.button1": "버튼 1", - "text.autoconfig.skyblocker.option.quickNav.button1.render": "렌더", - "text.autoconfig.skyblocker.option.quickNav.button1.item": "아이템", - "text.autoconfig.skyblocker.option.quickNav.button1.item.itemName": "아이템 이름", - "text.autoconfig.skyblocker.option.quickNav.button1.item.count": "아이템 개수", - "text.autoconfig.skyblocker.option.quickNav.button1.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button1.uiTitle": "UI 제목", - "text.autoconfig.skyblocker.option.quickNav.button1.clickEvent": "클릭 이벤트", - "text.autoconfig.skyblocker.option.quickNav.button2": "버튼 2", - "text.autoconfig.skyblocker.option.quickNav.button2.render": "렌더", - "text.autoconfig.skyblocker.option.quickNav.button2.item": "아이템", - "text.autoconfig.skyblocker.option.quickNav.button2.item.itemName": "아이템 이름", - "text.autoconfig.skyblocker.option.quickNav.button2.item.count": "아이템 개수", - "text.autoconfig.skyblocker.option.quickNav.button2.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button2.uiTitle": "UI 제목", - "text.autoconfig.skyblocker.option.quickNav.button2.clickEvent": "클릭 이벤트", - "text.autoconfig.skyblocker.option.quickNav.button3": "버튼 3", - "text.autoconfig.skyblocker.option.quickNav.button3.render": "렌더", - "text.autoconfig.skyblocker.option.quickNav.button3.item": "아이템", - "text.autoconfig.skyblocker.option.quickNav.button3.item.itemName": "아이템 이름", - "text.autoconfig.skyblocker.option.quickNav.button3.item.count": "아이템 개수", - "text.autoconfig.skyblocker.option.quickNav.button3.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button3.uiTitle": "UI 제목", - "text.autoconfig.skyblocker.option.quickNav.button3.clickEvent": "클릭 이벤트", - "text.autoconfig.skyblocker.option.quickNav.button4": "버튼 4", - "text.autoconfig.skyblocker.option.quickNav.button4.render": "렌더", - "text.autoconfig.skyblocker.option.quickNav.button4.item": "아이템", - "text.autoconfig.skyblocker.option.quickNav.button4.item.itemName": "아이템 이름", - "text.autoconfig.skyblocker.option.quickNav.button4.item.count": "아이템 개수", - "text.autoconfig.skyblocker.option.quickNav.button4.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button4.uiTitle": "UI 제목", - "text.autoconfig.skyblocker.option.quickNav.button4.clickEvent": "클릭 이벤트", - "text.autoconfig.skyblocker.option.quickNav.button5": "버튼 5", - "text.autoconfig.skyblocker.option.quickNav.button5.render": "렌더", - "text.autoconfig.skyblocker.option.quickNav.button5.item": "아이템", - "text.autoconfig.skyblocker.option.quickNav.button5.item.itemName": "아이템 이름", - "text.autoconfig.skyblocker.option.quickNav.button5.item.count": "아이템 개수", - "text.autoconfig.skyblocker.option.quickNav.button5.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button5.uiTitle": "UI 제목", - "text.autoconfig.skyblocker.option.quickNav.button5.clickEvent": "클릭 이벤트", - "text.autoconfig.skyblocker.option.quickNav.button6": "버튼 6", - "text.autoconfig.skyblocker.option.quickNav.button6.render": "렌더", - "text.autoconfig.skyblocker.option.quickNav.button6.item": "아이템", - "text.autoconfig.skyblocker.option.quickNav.button6.item.itemName": "아이템 이름", - "text.autoconfig.skyblocker.option.quickNav.button6.item.count": "아이템 개수", - "text.autoconfig.skyblocker.option.quickNav.button6.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button6.uiTitle": "UI 제목", - "text.autoconfig.skyblocker.option.quickNav.button6.clickEvent": "클릭 이벤트", - "text.autoconfig.skyblocker.option.quickNav.button7": "버튼 7", - "text.autoconfig.skyblocker.option.quickNav.button7.render": "렌더", - "text.autoconfig.skyblocker.option.quickNav.button7.item": "아이템", - "text.autoconfig.skyblocker.option.quickNav.button7.item.itemName": "아이템 이름", - "text.autoconfig.skyblocker.option.quickNav.button7.item.count": "아이템 개수", - "text.autoconfig.skyblocker.option.quickNav.button7.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button7.uiTitle": "UI 제목", - "text.autoconfig.skyblocker.option.quickNav.button7.clickEvent": "클릭 이벤트", - "text.autoconfig.skyblocker.option.quickNav.button8": "버튼 8", - "text.autoconfig.skyblocker.option.quickNav.button8.render": "렌더", - "text.autoconfig.skyblocker.option.quickNav.button8.item": "아이템", - "text.autoconfig.skyblocker.option.quickNav.button8.item.itemName": "아이템 이름", - "text.autoconfig.skyblocker.option.quickNav.button8.item.count": "아이템 개수", - "text.autoconfig.skyblocker.option.quickNav.button8.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button8.uiTitle": "UI 제목", - "text.autoconfig.skyblocker.option.quickNav.button8.clickEvent": "클릭 이벤트", - "text.autoconfig.skyblocker.option.quickNav.button9": "버튼 9", - "text.autoconfig.skyblocker.option.quickNav.button9.render": "렌더", - "text.autoconfig.skyblocker.option.quickNav.button9.item": "아이템", - "text.autoconfig.skyblocker.option.quickNav.button9.item.itemName": "아이템 이름", - "text.autoconfig.skyblocker.option.quickNav.button9.item.count": "아이템 개수", - "text.autoconfig.skyblocker.option.quickNav.button9.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button9.uiTitle": "UI 제목", - "text.autoconfig.skyblocker.option.quickNav.button9.clickEvent": "클릭 이벤트", - "text.autoconfig.skyblocker.option.quickNav.button10": "버튼 10", - "text.autoconfig.skyblocker.option.quickNav.button10.render": "렌더", - "text.autoconfig.skyblocker.option.quickNav.button10.item": "아이템", - "text.autoconfig.skyblocker.option.quickNav.button10.item.itemName": "아이템 이름", - "text.autoconfig.skyblocker.option.quickNav.button10.item.count": "아이템 개수", - "text.autoconfig.skyblocker.option.quickNav.button10.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button10.uiTitle": "UI 제목", - "text.autoconfig.skyblocker.option.quickNav.button10.clickEvent": "클릭 이벤트", - "text.autoconfig.skyblocker.option.quickNav.button11": "버튼 11", - "text.autoconfig.skyblocker.option.quickNav.button11.render": "렌더", - "text.autoconfig.skyblocker.option.quickNav.button11.item": "아이템", - "text.autoconfig.skyblocker.option.quickNav.button11.item.itemName": "아이템 이름", - "text.autoconfig.skyblocker.option.quickNav.button11.item.count": "아이템 개수", - "text.autoconfig.skyblocker.option.quickNav.button11.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button11.uiTitle": "UI 제목", - "text.autoconfig.skyblocker.option.quickNav.button11.clickEvent": "클릑 이벤트", - "text.autoconfig.skyblocker.option.quickNav.button12": "버튼 12", - "text.autoconfig.skyblocker.option.quickNav.button12.render": "렌더", - "text.autoconfig.skyblocker.option.quickNav.button12.item": "아이템", - "text.autoconfig.skyblocker.option.quickNav.button12.item.itemName": "아이템 이름", - "text.autoconfig.skyblocker.option.quickNav.button12.item.count": "아이템 개수", - "text.autoconfig.skyblocker.option.quickNav.button12.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button12.uiTitle": "UI 제목", - "text.autoconfig.skyblocker.option.quickNav.button12.clickEvent": "클릭 이벤트", - "text.autoconfig.skyblocker.option.general.itemList": "아이템 목록", - "text.autoconfig.skyblocker.option.general.itemList.enableItemList": "아이템 목록 활성화", - "text.autoconfig.skyblocker.category.locations": "위치", - "text.autoconfig.skyblocker.option.locations.dungeons": "던전", - "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper": "크로이소스 도우미", - "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper.@Tooltip": "이미 열린 상자는 회색으로 표시됩니다.", - "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "지도 활성화", - "text.autoconfig.skyblocker.option.locations.dungeons.mapScaling": "지도 크기", - "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "Three Weirdos 퍼즐 해결", - "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "블레이즈 퍼즐 해결", - "text.autoconfig.skyblocker.option.locations.dungeons.solveTrivia": "Trivia 퍼즐 해결", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals": "터미널 해결", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveColor": "색상 선택 해결", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveOrder": "클릭 순서대로 해결", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveStartsWith": "해결 시작", - "text.autoconfig.skyblocker.option.locations.dwarvenMines": "Dwarven Mines", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "드릴 연료 활성화", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Fetchur 해결", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Puzzler 퍼즐 해결", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Dwarven HUD", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "활성화됨", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "배경 활성화", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.x": "X", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", - "text.autoconfig.skyblocker.category.messages": "메시지", - "text.autoconfig.skyblocker.option.messages.chatFilterResult.PASS": "비활성화됨", - "text.autoconfig.skyblocker.option.messages.chatFilterResult.FILTER": "필터", - "text.autoconfig.skyblocker.option.messages.chatFilterResult.ACTION_BAR": "액션바로 이동", - "text.autoconfig.skyblocker.option.messages.hideAbility": "어빌리티 쿨다운 가리기", - "text.autoconfig.skyblocker.option.messages.hideHeal": "체력 회복 메시지 가리기", - "text.autoconfig.skyblocker.option.messages.hideAOTE": "AOTE 메시지 가리기", - "text.autoconfig.skyblocker.option.messages.hideImplosion": "Implosion 메시지 가리기", - "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Molten Wave 메시지 가리기", - "text.autoconfig.skyblocker.option.messages.hideAds": "전체 채팅에서 광고 가리기", - "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "Teleport Pad 메시지 가리기", - "text.autoconfig.skyblocker.option.messages.hideCombo": "콤보 메시지 가리기", - "text.autoconfig.skyblocker.option.messages.hideAutopet": "Autopet 메시지 가리기", - "text.autoconfig.skyblocker.option.messages.hideMana": "액션바에서 마나 사용 메시지 가리기", - "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "FancyBar 로 더 나은 기능을 사용합니다", - "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2새로운 버전이 사용 가능합니다!", - "skyblocker.update.update_link": " §2§n여기§r", - "skyblocker.update.update_message_end": " §a를 클릭하여 최신 기능에 대해 알아보세요.", - "skyblocker.update.hover_text": "Modrinth 열기", - "text.autoconfig.skyblocker.option.general.enableUpdateNotification": "업데이트 알림", - "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2자동으로 API 키를 설정했습니다!" -} diff --git a/src/main/resources/assets/skyblocker/lang/ko_kr.json b/src/main/resources/assets/skyblocker/lang/ko_kr.json new file mode 100644 index 00000000..93930cc1 --- /dev/null +++ b/src/main/resources/assets/skyblocker/lang/ko_kr.json @@ -0,0 +1,189 @@ +{ + "key.categories.skyblocker": "Skyblocker", + "key.hotbarSlotLock": "슬롯 고정 (핫바)", + "key.wikiLookup": "위키에서 찾기", + "text.autoconfig.skyblocker.title": "Skyblocker 설정", + "text.autoconfig.skyblocker.category.general": "일반", + "text.autoconfig.skyblocker.option.general.bars": "체력, 마나, 방어력 및 경험치 바", + "text.autoconfig.skyblocker.option.general.bars.enableBars": "바 활성화", + "text.autoconfig.skyblocker.option.general.bars.barpositions": "바 위치 조정", + "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER1": "레이어 1", + "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER2": "레이어 2", + "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "우측", + "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "비활성화", + "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "체력바 위치", + "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "마나바 위치", + "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "방어력바 위치", + "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "경험치바 위치", + "text.autoconfig.skyblocker.option.general.quicknav": "즐겨찾기", + "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "즐겨찾기 활성화", + "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "Shift 를 누르지 않고 백팩 미리보기", + "text.autoconfig.skyblocker.option.general.itemTooltip": "아이템 툴팁", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "NPC 가격 활성화", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "평균 BIN 가격 활성화", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "평균 종류", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "얼마나 많은 일수의 평균가를 표시할지 선택합니다", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.ONE_DAY": "1일 평균가", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.THREE_DAY": "3일 평균가", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.BOTH": "둘 다", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "최저 BIN 가격 활성화", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "Bazaar 매매 가격 활성화", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "Museum 과 날짜 활성화", + "text.autoconfig.skyblocker.option.general.hitbox": "히트박스", + "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "1.8 농지 히트박스 활성화", + "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "1.8 레버 히트박스 활성화", + "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §c아이템 가격 툴팁이 최대 60초 이내에 갱신됩니다. 갱신되지 않을 시 latest.log 를 확인하세요.", + "skyblocker.itemTooltip.noData": "§c데이터 없음", + "text.autoconfig.skyblocker.category.richPresence": "디스코드 Rich Presence", + "text.autoconfig.skyblocker.option.richPresence.info": "스카이블록 정보", + "text.autoconfig.skyblocker.option.richPresence.info.PURSE": "PURSE", + "text.autoconfig.skyblocker.option.richPresence.info.BITS": "BITS", + "text.autoconfig.skyblocker.option.richPresence.info.LOCATION": "위치", + "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "이 값은 순환중일 시 중요하지 않습니다", + "text.autoconfig.skyblocker.option.richPresence.cycleMode": "스카이블록 정보 순환", + "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "활성화됨", + "text.autoconfig.skyblocker.option.richPresence.customMessage": "사용자 지정 메시지", + "text.autoconfig.skyblocker.category.quickNav": "즐겨찾기", + "text.autoconfig.skyblocker.option.quickNav.enableQuickNav": "즐겨찾기 활성화", + "text.autoconfig.skyblocker.option.quickNav.button1": "버튼 1", + "text.autoconfig.skyblocker.option.quickNav.button1.render": "렌더", + "text.autoconfig.skyblocker.option.quickNav.button1.item": "아이템", + "text.autoconfig.skyblocker.option.quickNav.button1.item.itemName": "아이템 이름", + "text.autoconfig.skyblocker.option.quickNav.button1.item.count": "아이템 개수", + "text.autoconfig.skyblocker.option.quickNav.button1.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button1.uiTitle": "UI 제목", + "text.autoconfig.skyblocker.option.quickNav.button1.clickEvent": "클릭 이벤트", + "text.autoconfig.skyblocker.option.quickNav.button2": "버튼 2", + "text.autoconfig.skyblocker.option.quickNav.button2.render": "렌더", + "text.autoconfig.skyblocker.option.quickNav.button2.item": "아이템", + "text.autoconfig.skyblocker.option.quickNav.button2.item.itemName": "아이템 이름", + "text.autoconfig.skyblocker.option.quickNav.button2.item.count": "아이템 개수", + "text.autoconfig.skyblocker.option.quickNav.button2.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button2.uiTitle": "UI 제목", + "text.autoconfig.skyblocker.option.quickNav.button2.clickEvent": "클릭 이벤트", + "text.autoconfig.skyblocker.option.quickNav.button3": "버튼 3", + "text.autoconfig.skyblocker.option.quickNav.button3.render": "렌더", + "text.autoconfig.skyblocker.option.quickNav.button3.item": "아이템", + "text.autoconfig.skyblocker.option.quickNav.button3.item.itemName": "아이템 이름", + "text.autoconfig.skyblocker.option.quickNav.button3.item.count": "아이템 개수", + "text.autoconfig.skyblocker.option.quickNav.button3.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button3.uiTitle": "UI 제목", + "text.autoconfig.skyblocker.option.quickNav.button3.clickEvent": "클릭 이벤트", + "text.autoconfig.skyblocker.option.quickNav.button4": "버튼 4", + "text.autoconfig.skyblocker.option.quickNav.button4.render": "렌더", + "text.autoconfig.skyblocker.option.quickNav.button4.item": "아이템", + "text.autoconfig.skyblocker.option.quickNav.button4.item.itemName": "아이템 이름", + "text.autoconfig.skyblocker.option.quickNav.button4.item.count": "아이템 개수", + "text.autoconfig.skyblocker.option.quickNav.button4.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button4.uiTitle": "UI 제목", + "text.autoconfig.skyblocker.option.quickNav.button4.clickEvent": "클릭 이벤트", + "text.autoconfig.skyblocker.option.quickNav.button5": "버튼 5", + "text.autoconfig.skyblocker.option.quickNav.button5.render": "렌더", + "text.autoconfig.skyblocker.option.quickNav.button5.item": "아이템", + "text.autoconfig.skyblocker.option.quickNav.button5.item.itemName": "아이템 이름", + "text.autoconfig.skyblocker.option.quickNav.button5.item.count": "아이템 개수", + "text.autoconfig.skyblocker.option.quickNav.button5.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button5.uiTitle": "UI 제목", + "text.autoconfig.skyblocker.option.quickNav.button5.clickEvent": "클릭 이벤트", + "text.autoconfig.skyblocker.option.quickNav.button6": "버튼 6", + "text.autoconfig.skyblocker.option.quickNav.button6.render": "렌더", + "text.autoconfig.skyblocker.option.quickNav.button6.item": "아이템", + "text.autoconfig.skyblocker.option.quickNav.button6.item.itemName": "아이템 이름", + "text.autoconfig.skyblocker.option.quickNav.button6.item.count": "아이템 개수", + "text.autoconfig.skyblocker.option.quickNav.button6.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button6.uiTitle": "UI 제목", + "text.autoconfig.skyblocker.option.quickNav.button6.clickEvent": "클릭 이벤트", + "text.autoconfig.skyblocker.option.quickNav.button7": "버튼 7", + "text.autoconfig.skyblocker.option.quickNav.button7.render": "렌더", + "text.autoconfig.skyblocker.option.quickNav.button7.item": "아이템", + "text.autoconfig.skyblocker.option.quickNav.button7.item.itemName": "아이템 이름", + "text.autoconfig.skyblocker.option.quickNav.button7.item.count": "아이템 개수", + "text.autoconfig.skyblocker.option.quickNav.button7.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button7.uiTitle": "UI 제목", + "text.autoconfig.skyblocker.option.quickNav.button7.clickEvent": "클릭 이벤트", + "text.autoconfig.skyblocker.option.quickNav.button8": "버튼 8", + "text.autoconfig.skyblocker.option.quickNav.button8.render": "렌더", + "text.autoconfig.skyblocker.option.quickNav.button8.item": "아이템", + "text.autoconfig.skyblocker.option.quickNav.button8.item.itemName": "아이템 이름", + "text.autoconfig.skyblocker.option.quickNav.button8.item.count": "아이템 개수", + "text.autoconfig.skyblocker.option.quickNav.button8.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button8.uiTitle": "UI 제목", + "text.autoconfig.skyblocker.option.quickNav.button8.clickEvent": "클릭 이벤트", + "text.autoconfig.skyblocker.option.quickNav.button9": "버튼 9", + "text.autoconfig.skyblocker.option.quickNav.button9.render": "렌더", + "text.autoconfig.skyblocker.option.quickNav.button9.item": "아이템", + "text.autoconfig.skyblocker.option.quickNav.button9.item.itemName": "아이템 이름", + "text.autoconfig.skyblocker.option.quickNav.button9.item.count": "아이템 개수", + "text.autoconfig.skyblocker.option.quickNav.button9.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button9.uiTitle": "UI 제목", + "text.autoconfig.skyblocker.option.quickNav.button9.clickEvent": "클릭 이벤트", + "text.autoconfig.skyblocker.option.quickNav.button10": "버튼 10", + "text.autoconfig.skyblocker.option.quickNav.button10.render": "렌더", + "text.autoconfig.skyblocker.option.quickNav.button10.item": "아이템", + "text.autoconfig.skyblocker.option.quickNav.button10.item.itemName": "아이템 이름", + "text.autoconfig.skyblocker.option.quickNav.button10.item.count": "아이템 개수", + "text.autoconfig.skyblocker.option.quickNav.button10.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button10.uiTitle": "UI 제목", + "text.autoconfig.skyblocker.option.quickNav.button10.clickEvent": "클릭 이벤트", + "text.autoconfig.skyblocker.option.quickNav.button11": "버튼 11", + "text.autoconfig.skyblocker.option.quickNav.button11.render": "렌더", + "text.autoconfig.skyblocker.option.quickNav.button11.item": "아이템", + "text.autoconfig.skyblocker.option.quickNav.button11.item.itemName": "아이템 이름", + "text.autoconfig.skyblocker.option.quickNav.button11.item.count": "아이템 개수", + "text.autoconfig.skyblocker.option.quickNav.button11.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button11.uiTitle": "UI 제목", + "text.autoconfig.skyblocker.option.quickNav.button11.clickEvent": "클릑 이벤트", + "text.autoconfig.skyblocker.option.quickNav.button12": "버튼 12", + "text.autoconfig.skyblocker.option.quickNav.button12.render": "렌더", + "text.autoconfig.skyblocker.option.quickNav.button12.item": "아이템", + "text.autoconfig.skyblocker.option.quickNav.button12.item.itemName": "아이템 이름", + "text.autoconfig.skyblocker.option.quickNav.button12.item.count": "아이템 개수", + "text.autoconfig.skyblocker.option.quickNav.button12.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button12.uiTitle": "UI 제목", + "text.autoconfig.skyblocker.option.quickNav.button12.clickEvent": "클릭 이벤트", + "text.autoconfig.skyblocker.option.general.itemList": "아이템 목록", + "text.autoconfig.skyblocker.option.general.itemList.enableItemList": "아이템 목록 활성화", + "text.autoconfig.skyblocker.category.locations": "위치", + "text.autoconfig.skyblocker.option.locations.dungeons": "던전", + "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper": "크로이소스 도우미", + "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper.@Tooltip": "이미 열린 상자는 회색으로 표시됩니다.", + "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "지도 활성화", + "text.autoconfig.skyblocker.option.locations.dungeons.mapScaling": "지도 크기", + "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "Three Weirdos 퍼즐 해결", + "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "블레이즈 퍼즐 해결", + "text.autoconfig.skyblocker.option.locations.dungeons.solveTrivia": "Trivia 퍼즐 해결", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals": "터미널 해결", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveColor": "색상 선택 해결", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveOrder": "클릭 순서대로 해결", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveStartsWith": "해결 시작", + "text.autoconfig.skyblocker.option.locations.dwarvenMines": "Dwarven Mines", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "드릴 연료 활성화", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Fetchur 해결", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Puzzler 퍼즐 해결", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Dwarven HUD", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "활성화됨", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "배경 활성화", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.x": "X", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", + "text.autoconfig.skyblocker.category.messages": "메시지", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.PASS": "비활성화됨", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.FILTER": "필터", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.ACTION_BAR": "액션바로 이동", + "text.autoconfig.skyblocker.option.messages.hideAbility": "어빌리티 쿨다운 가리기", + "text.autoconfig.skyblocker.option.messages.hideHeal": "체력 회복 메시지 가리기", + "text.autoconfig.skyblocker.option.messages.hideAOTE": "AOTE 메시지 가리기", + "text.autoconfig.skyblocker.option.messages.hideImplosion": "Implosion 메시지 가리기", + "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Molten Wave 메시지 가리기", + "text.autoconfig.skyblocker.option.messages.hideAds": "전체 채팅에서 광고 가리기", + "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "Teleport Pad 메시지 가리기", + "text.autoconfig.skyblocker.option.messages.hideCombo": "콤보 메시지 가리기", + "text.autoconfig.skyblocker.option.messages.hideAutopet": "Autopet 메시지 가리기", + "text.autoconfig.skyblocker.option.messages.hideMana": "액션바에서 마나 사용 메시지 가리기", + "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "FancyBar 로 더 나은 기능을 사용합니다", + "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2새로운 버전이 사용 가능합니다!", + "skyblocker.update.update_link": " §2§n여기§r", + "skyblocker.update.update_message_end": " §a를 클릭하여 최신 기능에 대해 알아보세요.", + "skyblocker.update.hover_text": "Modrinth 열기", + "text.autoconfig.skyblocker.option.general.enableUpdateNotification": "업데이트 알림", + "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2자동으로 API 키를 설정했습니다!" +} diff --git a/src/main/resources/assets/skyblocker/lang/nb_NO.json b/src/main/resources/assets/skyblocker/lang/nb_NO.json deleted file mode 100644 index 0f96ebb6..00000000 --- a/src/main/resources/assets/skyblocker/lang/nb_NO.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "key.wikiLookup": "Wiki-oppslag", - "text.autoconfig.skyblocker.title": "Skyblocker-innstillinger", - "text.autoconfig.skyblocker.option.general.bars.enableBars": "Aktiver barer", - "text.autoconfig.skyblocker.option.general.bars.barpositions": "Konfigurer barposisjoner", - "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER1": "Lag 1", - "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER2": "Lag 2", - "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "Høyre", - "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "Deaktivert", - "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "Helsebar posisjon", - "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "Mana Bar Posisjon", - "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "Forsvarsbar posisjon", - "text.autoconfig.skyblocker.option.general.quicknav": "Hurtignavigasjon", - "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Aktiver hurtignavigasjon", - "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "Vis forhåndsvisning av ryggsekk uten å holde Shift nede", - "text.autoconfig.skyblocker.option.general.itemTooltip": "Verktøytips for Gjenstad", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "Aktiver NPC-pris", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "Aktiver Avg. BIN Pris", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "Gjennomsnittlig type", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.ONE_DAY": "Pris for 1 dag", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.THREE_DAY": "Pris for 3 dager", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.BOTH": "Begge", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "Aktiver laveste BIN-pris", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "Aktiver Bazaar kjøp/salg Pris", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "Aktiver museum og dato", - "text.autoconfig.skyblocker.option.general.hitbox": "Treffbokser", - "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "Aktiver 1.8 treffboks for avlinger", - "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "Aktiver 1.8 spak Treffboks", - "skyblocker.itemTooltip.noData": "§cIngen data", - "text.autoconfig.skyblocker.category.richPresence": "Discord-rik tilstedeværelse", - "text.autoconfig.skyblocker.option.richPresence.info": "Skyblock-informasjon", - "text.autoconfig.skyblocker.option.richPresence.info.PURSE": "VESKE", - "text.autoconfig.skyblocker.option.richPresence.info.BITS": "BITS", - "text.autoconfig.skyblocker.option.richPresence.info.LOCATION": "PLASSERING", - "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "Denne verdien har ikke noe å si hvis du cycling", - "text.autoconfig.skyblocker.option.richPresence.cycleMode": "Cycle Skyblock Informasjon", - "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "Aktivert", - "text.autoconfig.skyblocker.option.richPresence.customMessage": "Egendefinert melding", - "text.autoconfig.skyblocker.category.quickNav": "Rask navigering", - "text.autoconfig.skyblocker.option.quickNav.enableQuickNav": "Aktiver hurtignavigering", - "text.autoconfig.skyblocker.option.quickNav.button1.render": "Rendering", - "text.autoconfig.skyblocker.option.quickNav.button1.item": "Gjenstand", - "text.autoconfig.skyblocker.option.quickNav.button1.item.count": "Gjenstand Teller", - "text.autoconfig.skyblocker.option.quickNav.button1.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button1.uiTitle": "UI Tittel", - "text.autoconfig.skyblocker.option.quickNav.button1.clickEvent": "Klikk hendelse", - "text.autoconfig.skyblocker.option.quickNav.button2": "Knapp 2", - "text.autoconfig.skyblocker.option.quickNav.button2.render": "Rendering", - "text.autoconfig.skyblocker.option.quickNav.button2.item": "Gjenstand", - "text.autoconfig.skyblocker.option.quickNav.button2.item.itemName": "Gjenstand navn", - "text.autoconfig.skyblocker.option.quickNav.button2.item.count": "Gjenstand Teller", - "text.autoconfig.skyblocker.option.quickNav.button2.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button2.uiTitle": "UI Tittel", - "text.autoconfig.skyblocker.option.quickNav.button2.clickEvent": "Klikk hendelse", - "text.autoconfig.skyblocker.option.quickNav.button3": "Knapp 3", - "text.autoconfig.skyblocker.option.quickNav.button3.item": "Gjenstand", - "text.autoconfig.skyblocker.option.quickNav.button3.item.itemName": "Gjenstand Navn", - "text.autoconfig.skyblocker.option.quickNav.button3.item.count": "Gjenstand Teller", - "text.autoconfig.skyblocker.option.quickNav.button3.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button3.uiTitle": "UI Tittel", - "text.autoconfig.skyblocker.option.quickNav.button3.clickEvent": "Klikk hendelse", - "text.autoconfig.skyblocker.option.quickNav.button4": "Knapp 4", - "text.autoconfig.skyblocker.option.quickNav.button4.render": "Rendering", - "text.autoconfig.skyblocker.option.quickNav.button4.item": "Gjenstand", - "text.autoconfig.skyblocker.option.quickNav.button4.item.itemName": "Gjenstand Navn", - "text.autoconfig.skyblocker.option.quickNav.button4.item.count": "Gjenstand Teller", - "text.autoconfig.skyblocker.option.quickNav.button4.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button4.clickEvent": "Klikk hendelse", - "text.autoconfig.skyblocker.option.quickNav.button5": "Knapp 5", - "text.autoconfig.skyblocker.option.quickNav.button5.render": "Rendering", - "text.autoconfig.skyblocker.option.quickNav.button5.item": "Gjenstand", - "text.autoconfig.skyblocker.option.quickNav.button5.item.itemName": "Gjenstand Navn", - "text.autoconfig.skyblocker.option.quickNav.button5.item.count": "Gjenstand Teller", - "text.autoconfig.skyblocker.option.quickNav.button5.item.nbt": "NBT", - "key.categories.skyblocker": "SkyBlocker", - "key.hotbarSlotLock": "Slot lås (Hotbar)", - "text.autoconfig.skyblocker.category.general": "Generelt", - "text.autoconfig.skyblocker.option.general.bars": "Helse, mana, forsvar og XP-barer", - "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "Experience Bar stilling", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "Du kan velge hvor mange dager med gjennomsnittspris som skal være", - "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §cVareprisinformasjon på verktøytips fornyes om maks 60 sekunder. Hvis ikke, sjekk latest.log", - "text.autoconfig.skyblocker.option.quickNav.button1": "Knapp 1", - "text.autoconfig.skyblocker.option.quickNav.button1.item.itemName": "Gjenstand navn", - "text.autoconfig.skyblocker.option.quickNav.button3.render": "Rendering", - "text.autoconfig.skyblocker.option.quickNav.button4.uiTitle": "UI Tittel", - "text.autoconfig.skyblocker.option.quickNav.button6.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button6.clickEvent": "Klikk hendelse", - "text.autoconfig.skyblocker.option.quickNav.button8.clickEvent": "Klikk hendelse", - "text.autoconfig.skyblocker.option.quickNav.button10.clickEvent": "Klikk hendelse", - "text.autoconfig.skyblocker.option.quickNav.button12.item": "Gjenstand", - "text.autoconfig.skyblocker.option.general.itemList.enableItemList": "Aktiver gjenstad liste", - "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "Løs Blaze-puslespillet", - "text.autoconfig.skyblocker.option.quickNav.button5.uiTitle": "UI Tittel", - "text.autoconfig.skyblocker.option.quickNav.button5.clickEvent": "Klikk hendelse", - "text.autoconfig.skyblocker.option.quickNav.button6": "Knapp 6", - "text.autoconfig.skyblocker.option.quickNav.button6.render": "Rendering", - "text.autoconfig.skyblocker.option.quickNav.button6.item": "Gjenstand", - "text.autoconfig.skyblocker.option.quickNav.button6.item.itemName": "Gjenstand navn", - "text.autoconfig.skyblocker.option.quickNav.button6.item.count": "Gjenstand mengde", - "text.autoconfig.skyblocker.option.quickNav.button6.uiTitle": "UI Tittel", - "text.autoconfig.skyblocker.option.quickNav.button7": "Knapp 7", - "text.autoconfig.skyblocker.option.quickNav.button7.render": "Rendering", - "text.autoconfig.skyblocker.option.quickNav.button7.item": "Gjenstand", - "text.autoconfig.skyblocker.option.quickNav.button7.item.itemName": "Gjenstand navn", - "text.autoconfig.skyblocker.option.quickNav.button7.item.count": "Gjenstand navn", - "text.autoconfig.skyblocker.option.quickNav.button7.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button7.uiTitle": "UI Tittel", - "text.autoconfig.skyblocker.option.quickNav.button7.clickEvent": "Klikk hendelse", - "text.autoconfig.skyblocker.option.quickNav.button8": "Knapp 8", - "text.autoconfig.skyblocker.option.quickNav.button8.render": "Rendering", - "text.autoconfig.skyblocker.option.quickNav.button8.item": "Gjenstand", - "text.autoconfig.skyblocker.option.quickNav.button8.item.itemName": "Gjenstand navn", - "text.autoconfig.skyblocker.option.quickNav.button8.item.count": "Gjenstand navn", - "text.autoconfig.skyblocker.option.quickNav.button8.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button8.uiTitle": "UI Tittel", - "text.autoconfig.skyblocker.option.quickNav.button9": "Knapp 8", - "text.autoconfig.skyblocker.option.quickNav.button9.render": "Rendering", - "text.autoconfig.skyblocker.option.quickNav.button9.item": "Gjenstand", - "text.autoconfig.skyblocker.option.quickNav.button9.item.itemName": "Gjenstand Navn", - "text.autoconfig.skyblocker.option.quickNav.button9.item.count": "Gjenstand navn", - "text.autoconfig.skyblocker.option.quickNav.button9.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button9.uiTitle": "UI Tittel", - "text.autoconfig.skyblocker.option.quickNav.button9.clickEvent": "Klikk hendelse", - "text.autoconfig.skyblocker.option.quickNav.button10": "Knapp 1", - "text.autoconfig.skyblocker.option.quickNav.button10.render": "Rendering", - "text.autoconfig.skyblocker.option.quickNav.button10.item": "Gjenstand", - "text.autoconfig.skyblocker.option.quickNav.button10.item.itemName": "Gjenstand Navn", - "text.autoconfig.skyblocker.option.quickNav.button10.item.count": "Gjenstand Mengde", - "text.autoconfig.skyblocker.option.quickNav.button10.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button10.uiTitle": "UI Tittel", - "text.autoconfig.skyblocker.option.quickNav.button11": "Knapp 1", - "text.autoconfig.skyblocker.option.quickNav.button11.render": "Rendering", - "text.autoconfig.skyblocker.option.quickNav.button11.item": "Gjenstand", - "text.autoconfig.skyblocker.option.quickNav.button11.item.itemName": "Gjenstand Navn", - "text.autoconfig.skyblocker.option.quickNav.button11.item.count": "Gjenstand Mengde", - "text.autoconfig.skyblocker.option.quickNav.button11.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button11.uiTitle": "UI Tittel", - "text.autoconfig.skyblocker.option.quickNav.button11.clickEvent": "Klikk hendelse", - "text.autoconfig.skyblocker.option.quickNav.button12": "Knapp 1", - "text.autoconfig.skyblocker.option.quickNav.button12.render": "Rendering", - "text.autoconfig.skyblocker.option.quickNav.button12.item.itemName": "Gjenstand Navn", - "text.autoconfig.skyblocker.option.quickNav.button12.item.count": "Gjenstand Mengde", - "text.autoconfig.skyblocker.option.quickNav.button12.item.nbt": "NBT", - "text.autoconfig.skyblocker.option.quickNav.button12.uiTitle": "UI Tittel", - "text.autoconfig.skyblocker.option.quickNav.button12.clickEvent": "Klikk hendelse", - "text.autoconfig.skyblocker.option.general.itemList": "Gjenstand liste", - "text.autoconfig.skyblocker.option.locations.dungeons": "Dungeons", - "text.autoconfig.skyblocker.category.locations": "Lokasjoner", - "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper": "Croesus Hjelper", - "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper.@Tooltip": "Grå ut kister som allerede er åpnet.", - "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "Aktiver kart", - "text.autoconfig.skyblocker.option.locations.dungeons.mapScaling": "Kart skalering", - "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "Løs Three Weirdos-puslespillet", - "text.autoconfig.skyblocker.option.locations.dungeons.solveTrivia": "Solve the Blaze puzzle", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals": "Terminalløser", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveColor": "Løsning Velg farget", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveOrder": "Løs klikk i rekkefølge", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveStartsWith": "Løsning starter med", - "text.autoconfig.skyblocker.option.locations.dwarvenMines": "Dverggruver", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "Aktiver Drill Fuel", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Løse Fetchur", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Løs Puzzler Puzzle", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Dverg-HUD" -} diff --git a/src/main/resources/assets/skyblocker/lang/nb_no.json b/src/main/resources/assets/skyblocker/lang/nb_no.json new file mode 100644 index 00000000..0f96ebb6 --- /dev/null +++ b/src/main/resources/assets/skyblocker/lang/nb_no.json @@ -0,0 +1,164 @@ +{ + "key.wikiLookup": "Wiki-oppslag", + "text.autoconfig.skyblocker.title": "Skyblocker-innstillinger", + "text.autoconfig.skyblocker.option.general.bars.enableBars": "Aktiver barer", + "text.autoconfig.skyblocker.option.general.bars.barpositions": "Konfigurer barposisjoner", + "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER1": "Lag 1", + "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER2": "Lag 2", + "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "Høyre", + "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "Deaktivert", + "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "Helsebar posisjon", + "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "Mana Bar Posisjon", + "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "Forsvarsbar posisjon", + "text.autoconfig.skyblocker.option.general.quicknav": "Hurtignavigasjon", + "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Aktiver hurtignavigasjon", + "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "Vis forhåndsvisning av ryggsekk uten å holde Shift nede", + "text.autoconfig.skyblocker.option.general.itemTooltip": "Verktøytips for Gjenstad", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "Aktiver NPC-pris", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "Aktiver Avg. BIN Pris", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "Gjennomsnittlig type", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.ONE_DAY": "Pris for 1 dag", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.THREE_DAY": "Pris for 3 dager", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.BOTH": "Begge", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "Aktiver laveste BIN-pris", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "Aktiver Bazaar kjøp/salg Pris", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "Aktiver museum og dato", + "text.autoconfig.skyblocker.option.general.hitbox": "Treffbokser", + "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "Aktiver 1.8 treffboks for avlinger", + "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "Aktiver 1.8 spak Treffboks", + "skyblocker.itemTooltip.noData": "§cIngen data", + "text.autoconfig.skyblocker.category.richPresence": "Discord-rik tilstedeværelse", + "text.autoconfig.skyblocker.option.richPresence.info": "Skyblock-informasjon", + "text.autoconfig.skyblocker.option.richPresence.info.PURSE": "VESKE", + "text.autoconfig.skyblocker.option.richPresence.info.BITS": "BITS", + "text.autoconfig.skyblocker.option.richPresence.info.LOCATION": "PLASSERING", + "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "Denne verdien har ikke noe å si hvis du cycling", + "text.autoconfig.skyblocker.option.richPresence.cycleMode": "Cycle Skyblock Informasjon", + "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "Aktivert", + "text.autoconfig.skyblocker.option.richPresence.customMessage": "Egendefinert melding", + "text.autoconfig.skyblocker.category.quickNav": "Rask navigering", + "text.autoconfig.skyblocker.option.quickNav.enableQuickNav": "Aktiver hurtignavigering", + "text.autoconfig.skyblocker.option.quickNav.button1.render": "Rendering", + "text.autoconfig.skyblocker.option.quickNav.button1.item": "Gjenstand", + "text.autoconfig.skyblocker.option.quickNav.button1.item.count": "Gjenstand Teller", + "text.autoconfig.skyblocker.option.quickNav.button1.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button1.uiTitle": "UI Tittel", + "text.autoconfig.skyblocker.option.quickNav.button1.clickEvent": "Klikk hendelse", + "text.autoconfig.skyblocker.option.quickNav.button2": "Knapp 2", + "text.autoconfig.skyblocker.option.quickNav.button2.render": "Rendering", + "text.autoconfig.skyblocker.option.quickNav.button2.item": "Gjenstand", + "text.autoconfig.skyblocker.option.quickNav.button2.item.itemName": "Gjenstand navn", + "text.autoconfig.skyblocker.option.quickNav.button2.item.count": "Gjenstand Teller", + "text.autoconfig.skyblocker.option.quickNav.button2.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button2.uiTitle": "UI Tittel", + "text.autoconfig.skyblocker.option.quickNav.button2.clickEvent": "Klikk hendelse", + "text.autoconfig.skyblocker.option.quickNav.button3": "Knapp 3", + "text.autoconfig.skyblocker.option.quickNav.button3.item": "Gjenstand", + "text.autoconfig.skyblocker.option.quickNav.button3.item.itemName": "Gjenstand Navn", + "text.autoconfig.skyblocker.option.quickNav.button3.item.count": "Gjenstand Teller", + "text.autoconfig.skyblocker.option.quickNav.button3.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button3.uiTitle": "UI Tittel", + "text.autoconfig.skyblocker.option.quickNav.button3.clickEvent": "Klikk hendelse", + "text.autoconfig.skyblocker.option.quickNav.button4": "Knapp 4", + "text.autoconfig.skyblocker.option.quickNav.button4.render": "Rendering", + "text.autoconfig.skyblocker.option.quickNav.button4.item": "Gjenstand", + "text.autoconfig.skyblocker.option.quickNav.button4.item.itemName": "Gjenstand Navn", + "text.autoconfig.skyblocker.option.quickNav.button4.item.count": "Gjenstand Teller", + "text.autoconfig.skyblocker.option.quickNav.button4.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button4.clickEvent": "Klikk hendelse", + "text.autoconfig.skyblocker.option.quickNav.button5": "Knapp 5", + "text.autoconfig.skyblocker.option.quickNav.button5.render": "Rendering", + "text.autoconfig.skyblocker.option.quickNav.button5.item": "Gjenstand", + "text.autoconfig.skyblocker.option.quickNav.button5.item.itemName": "Gjenstand Navn", + "text.autoconfig.skyblocker.option.quickNav.button5.item.count": "Gjenstand Teller", + "text.autoconfig.skyblocker.option.quickNav.button5.item.nbt": "NBT", + "key.categories.skyblocker": "SkyBlocker", + "key.hotbarSlotLock": "Slot lås (Hotbar)", + "text.autoconfig.skyblocker.category.general": "Generelt", + "text.autoconfig.skyblocker.option.general.bars": "Helse, mana, forsvar og XP-barer", + "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "Experience Bar stilling", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "Du kan velge hvor mange dager med gjennomsnittspris som skal være", + "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §cVareprisinformasjon på verktøytips fornyes om maks 60 sekunder. Hvis ikke, sjekk latest.log", + "text.autoconfig.skyblocker.option.quickNav.button1": "Knapp 1", + "text.autoconfig.skyblocker.option.quickNav.button1.item.itemName": "Gjenstand navn", + "text.autoconfig.skyblocker.option.quickNav.button3.render": "Rendering", + "text.autoconfig.skyblocker.option.quickNav.button4.uiTitle": "UI Tittel", + "text.autoconfig.skyblocker.option.quickNav.button6.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button6.clickEvent": "Klikk hendelse", + "text.autoconfig.skyblocker.option.quickNav.button8.clickEvent": "Klikk hendelse", + "text.autoconfig.skyblocker.option.quickNav.button10.clickEvent": "Klikk hendelse", + "text.autoconfig.skyblocker.option.quickNav.button12.item": "Gjenstand", + "text.autoconfig.skyblocker.option.general.itemList.enableItemList": "Aktiver gjenstad liste", + "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "Løs Blaze-puslespillet", + "text.autoconfig.skyblocker.option.quickNav.button5.uiTitle": "UI Tittel", + "text.autoconfig.skyblocker.option.quickNav.button5.clickEvent": "Klikk hendelse", + "text.autoconfig.skyblocker.option.quickNav.button6": "Knapp 6", + "text.autoconfig.skyblocker.option.quickNav.button6.render": "Rendering", + "text.autoconfig.skyblocker.option.quickNav.button6.item": "Gjenstand", + "text.autoconfig.skyblocker.option.quickNav.button6.item.itemName": "Gjenstand navn", + "text.autoconfig.skyblocker.option.quickNav.button6.item.count": "Gjenstand mengde", + "text.autoconfig.skyblocker.option.quickNav.button6.uiTitle": "UI Tittel", + "text.autoconfig.skyblocker.option.quickNav.button7": "Knapp 7", + "text.autoconfig.skyblocker.option.quickNav.button7.render": "Rendering", + "text.autoconfig.skyblocker.option.quickNav.button7.item": "Gjenstand", + "text.autoconfig.skyblocker.option.quickNav.button7.item.itemName": "Gjenstand navn", + "text.autoconfig.skyblocker.option.quickNav.button7.item.count": "Gjenstand navn", + "text.autoconfig.skyblocker.option.quickNav.button7.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button7.uiTitle": "UI Tittel", + "text.autoconfig.skyblocker.option.quickNav.button7.clickEvent": "Klikk hendelse", + "text.autoconfig.skyblocker.option.quickNav.button8": "Knapp 8", + "text.autoconfig.skyblocker.option.quickNav.button8.render": "Rendering", + "text.autoconfig.skyblocker.option.quickNav.button8.item": "Gjenstand", + "text.autoconfig.skyblocker.option.quickNav.button8.item.itemName": "Gjenstand navn", + "text.autoconfig.skyblocker.option.quickNav.button8.item.count": "Gjenstand navn", + "text.autoconfig.skyblocker.option.quickNav.button8.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button8.uiTitle": "UI Tittel", + "text.autoconfig.skyblocker.option.quickNav.button9": "Knapp 8", + "text.autoconfig.skyblocker.option.quickNav.button9.render": "Rendering", + "text.autoconfig.skyblocker.option.quickNav.button9.item": "Gjenstand", + "text.autoconfig.skyblocker.option.quickNav.button9.item.itemName": "Gjenstand Navn", + "text.autoconfig.skyblocker.option.quickNav.button9.item.count": "Gjenstand navn", + "text.autoconfig.skyblocker.option.quickNav.button9.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button9.uiTitle": "UI Tittel", + "text.autoconfig.skyblocker.option.quickNav.button9.clickEvent": "Klikk hendelse", + "text.autoconfig.skyblocker.option.quickNav.button10": "Knapp 1", + "text.autoconfig.skyblocker.option.quickNav.button10.render": "Rendering", + "text.autoconfig.skyblocker.option.quickNav.button10.item": "Gjenstand", + "text.autoconfig.skyblocker.option.quickNav.button10.item.itemName": "Gjenstand Navn", + "text.autoconfig.skyblocker.option.quickNav.button10.item.count": "Gjenstand Mengde", + "text.autoconfig.skyblocker.option.quickNav.button10.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button10.uiTitle": "UI Tittel", + "text.autoconfig.skyblocker.option.quickNav.button11": "Knapp 1", + "text.autoconfig.skyblocker.option.quickNav.button11.render": "Rendering", + "text.autoconfig.skyblocker.option.quickNav.button11.item": "Gjenstand", + "text.autoconfig.skyblocker.option.quickNav.button11.item.itemName": "Gjenstand Navn", + "text.autoconfig.skyblocker.option.quickNav.button11.item.count": "Gjenstand Mengde", + "text.autoconfig.skyblocker.option.quickNav.button11.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button11.uiTitle": "UI Tittel", + "text.autoconfig.skyblocker.option.quickNav.button11.clickEvent": "Klikk hendelse", + "text.autoconfig.skyblocker.option.quickNav.button12": "Knapp 1", + "text.autoconfig.skyblocker.option.quickNav.button12.render": "Rendering", + "text.autoconfig.skyblocker.option.quickNav.button12.item.itemName": "Gjenstand Navn", + "text.autoconfig.skyblocker.option.quickNav.button12.item.count": "Gjenstand Mengde", + "text.autoconfig.skyblocker.option.quickNav.button12.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button12.uiTitle": "UI Tittel", + "text.autoconfig.skyblocker.option.quickNav.button12.clickEvent": "Klikk hendelse", + "text.autoconfig.skyblocker.option.general.itemList": "Gjenstand liste", + "text.autoconfig.skyblocker.option.locations.dungeons": "Dungeons", + "text.autoconfig.skyblocker.category.locations": "Lokasjoner", + "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper": "Croesus Hjelper", + "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper.@Tooltip": "Grå ut kister som allerede er åpnet.", + "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "Aktiver kart", + "text.autoconfig.skyblocker.option.locations.dungeons.mapScaling": "Kart skalering", + "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "Løs Three Weirdos-puslespillet", + "text.autoconfig.skyblocker.option.locations.dungeons.solveTrivia": "Solve the Blaze puzzle", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals": "Terminalløser", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveColor": "Løsning Velg farget", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveOrder": "Løs klikk i rekkefølge", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveStartsWith": "Løsning starter med", + "text.autoconfig.skyblocker.option.locations.dwarvenMines": "Dverggruver", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "Aktiver Drill Fuel", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Løse Fetchur", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Løs Puzzler Puzzle", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Dverg-HUD" +} diff --git a/src/main/resources/assets/skyblocker/lang/nn_NO.json b/src/main/resources/assets/skyblocker/lang/nn_NO.json deleted file mode 100644 index cd7ed912..00000000 --- a/src/main/resources/assets/skyblocker/lang/nn_NO.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "key.hotbarSlotLock": "Slotslås (Hotbar)", - "key.wikiLookup": "Wiki Opslag", - "text.autoconfig.skyblocker.title": "Skyblocker Innstillinger", - "text.autoconfig.skyblocker.category.general": "Generelt", - "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER1": "Lag 1", - "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER2": "Lag 2", - "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "Høgre", - "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "Deaktivert", - "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "Helsebar posisjon", - "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "Mana Bar-posisjon", - "key.categories.skyblocker": "SkyBlocker", - "text.autoconfig.skyblocker.option.general.bars": "Liv, mana, forsvar og XP-bar", - "text.autoconfig.skyblocker.option.general.bars.enableBars": "Aktiver bar", - "text.autoconfig.skyblocker.option.general.bars.barpositions": "Konfigurer barposisjoner" -} diff --git a/src/main/resources/assets/skyblocker/lang/nn_no.json b/src/main/resources/assets/skyblocker/lang/nn_no.json new file mode 100644 index 00000000..cd7ed912 --- /dev/null +++ b/src/main/resources/assets/skyblocker/lang/nn_no.json @@ -0,0 +1,16 @@ +{ + "key.hotbarSlotLock": "Slotslås (Hotbar)", + "key.wikiLookup": "Wiki Opslag", + "text.autoconfig.skyblocker.title": "Skyblocker Innstillinger", + "text.autoconfig.skyblocker.category.general": "Generelt", + "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER1": "Lag 1", + "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER2": "Lag 2", + "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "Høgre", + "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "Deaktivert", + "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "Helsebar posisjon", + "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "Mana Bar-posisjon", + "key.categories.skyblocker": "SkyBlocker", + "text.autoconfig.skyblocker.option.general.bars": "Liv, mana, forsvar og XP-bar", + "text.autoconfig.skyblocker.option.general.bars.enableBars": "Aktiver bar", + "text.autoconfig.skyblocker.option.general.bars.barpositions": "Konfigurer barposisjoner" +} diff --git a/src/main/resources/assets/skyblocker/lang/tr_TR.json b/src/main/resources/assets/skyblocker/lang/tr_TR.json deleted file mode 100644 index 1b07aff8..00000000 --- a/src/main/resources/assets/skyblocker/lang/tr_TR.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "Shift'e basmadan sırt çantası ön izlemesini görüntüleyin", - "text.autoconfig.skyblocker.option.general.itemTooltip": "Eşya Açıklamaları", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "NPC fiyatını göster", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "Ort. BIN fiyatını göster", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "Ortalama Türü", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.ONE_DAY": "1 günlük", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.THREE_DAY": "3 günlük", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.BOTH": "İkisi de", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "Pazar alış/satış fiyatını göster", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "Müze ve tarih bilgisini göster", - "text.autoconfig.skyblocker.option.general.hitbox": "Hitbox'lar", - "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §cEşya açıklamasındaki ürün fiyat bilgisi en fazla 60 saniye içinde yenilenecektir. Aksi takdirde latest.log dosyasını kontrol edin", - "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "1.8 tarım hitboxlarını etkinleştir", - "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "1.8 şalter hitboxunu etkinleştir", - "skyblocker.itemTooltip.noData": "§cVeri yok", - "text.autoconfig.skyblocker.category.richPresence": "Discord Özel Durumu", - "text.autoconfig.skyblocker.option.richPresence.info": "Skyblock bilgisi", - "text.autoconfig.skyblocker.option.richPresence.info.PURSE": "Cüzdan", - "text.autoconfig.skyblocker.option.richPresence.info.BITS": "Bit", - "text.autoconfig.skyblocker.option.richPresence.info.LOCATION": "Konum", - "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "Eğer döngüyü açtıysanız bu değer geçersiz kalır", - "text.autoconfig.skyblocker.option.richPresence.cycleMode": "Skyblock bilgilerini döngüye al", - "text.autoconfig.skyblocker.option.richPresence.customMessage": "Özel mesaj", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Dwarven HUD", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Fetchur'un mesajını çöz", - "skyblocker.fishing.reelNow": "Şimdi sarıl!", - "text.autoconfig.skyblocker.option.messages.chatFilterResult.PASS": "Devre dışı", - "text.autoconfig.skyblocker.option.messages.chatFilterResult.FILTER": "Filtrele", - "text.autoconfig.skyblocker.option.messages.hideAbility": "Yetenek bekleme süresini filtrele", - "text.autoconfig.skyblocker.option.messages.chatFilterResult.ACTION_BAR": "Aksiyon barına taşı", - "text.autoconfig.skyblocker.option.messages.hideHeal": "İyileştirme mesajlarını filtrele", - "text.autoconfig.skyblocker.option.messages.hideAOTE": "AOTE mesajlarını filtrele", - "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Molten Wave mesajını filtrele", - "text.autoconfig.skyblocker.option.messages.hideAds": "Genel sohbetteki reklamları filtrele", - "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "Teleport Pad mesajlarını filtrele", - "text.autoconfig.skyblocker.option.messages.hideCombo": "Kombo mesajlarını filtrele", - "text.autoconfig.skyblocker.option.messages.hideAutopet": "Autopet mesajlarını filtrele", - "text.autoconfig.skyblocker.option.messages.hideMana": "Aksiyon barındaki mana tüketimlerini gizle", - "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "FancyBar ile daha iyi bir deneyim sunar", - "text.autoconfig.skyblocker.option.general.enableUpdateNotification": "Güncelleme Bildirimleri", - "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2API anahtarınız otomatik olarak kaydedildi!", - "text.autoconfig.skyblocker.option.general.hideEmptyTooltips": "Menülerdeki boş eşya açıklamalarını gizle", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.x": "X", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "Arka planı göster", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "Etkinleştir", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "Kaç günlük ortalamanın gösterileceğini seçebilirsiniz", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "En düşük BIN fiyatını göster", - "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "Aktif", - "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2Yeni bir sürüm mevcut!", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Puzzler'ın bulmacasını çöz", - "key.hotbarSlotLock": "Slot Kilidi (Araç Çubuğu)", - "key.wikiLookup": "Wiki Araması", - "text.autoconfig.skyblocker.title": "Skyblocker Ayarları", - "text.autoconfig.skyblocker.category.general": "Genel", - "text.autoconfig.skyblocker.option.general.bars": "Can, Mana, Defans ve XP Barları", - "text.autoconfig.skyblocker.option.general.bars.enableBars": "Barları Etkinleştir", - "text.autoconfig.skyblocker.option.general.bars.barpositions": "Bar Konumları", - "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "Devre dışı", - "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "Can barı konumu", - "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "Mana barı konumu", - "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "Defans barı konumu", - "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "Tecrübe barı konumu", - "key.categories.skyblocker": "Skyblocker", - "skyblocker.updaterepository.failed": "§b[§6Skyblocker§b] §cYerel depo güncellenemedi. Dosyaları manuel olarak silip oyunu tekrar başlatın.", - "text.autoconfig.skyblocker.option.general.fishing": "Balık Tutma Yardımcısı", - "text.autoconfig.skyblocker.option.general.fishing.enableFishingHelper": "Balık tutma yardımcısını aktifleştir", - "text.autoconfig.skyblocker.category.messages": "Mesajlar", - "text.autoconfig.skyblocker.option.messages.hideImplosion": "Implosion mesajını filtrele" -} diff --git a/src/main/resources/assets/skyblocker/lang/tr_tr.json b/src/main/resources/assets/skyblocker/lang/tr_tr.json new file mode 100644 index 00000000..1b07aff8 --- /dev/null +++ b/src/main/resources/assets/skyblocker/lang/tr_tr.json @@ -0,0 +1,71 @@ +{ + "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "Shift'e basmadan sırt çantası ön izlemesini görüntüleyin", + "text.autoconfig.skyblocker.option.general.itemTooltip": "Eşya Açıklamaları", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "NPC fiyatını göster", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "Ort. BIN fiyatını göster", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "Ortalama Türü", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.ONE_DAY": "1 günlük", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.THREE_DAY": "3 günlük", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.BOTH": "İkisi de", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "Pazar alış/satış fiyatını göster", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "Müze ve tarih bilgisini göster", + "text.autoconfig.skyblocker.option.general.hitbox": "Hitbox'lar", + "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §cEşya açıklamasındaki ürün fiyat bilgisi en fazla 60 saniye içinde yenilenecektir. Aksi takdirde latest.log dosyasını kontrol edin", + "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "1.8 tarım hitboxlarını etkinleştir", + "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "1.8 şalter hitboxunu etkinleştir", + "skyblocker.itemTooltip.noData": "§cVeri yok", + "text.autoconfig.skyblocker.category.richPresence": "Discord Özel Durumu", + "text.autoconfig.skyblocker.option.richPresence.info": "Skyblock bilgisi", + "text.autoconfig.skyblocker.option.richPresence.info.PURSE": "Cüzdan", + "text.autoconfig.skyblocker.option.richPresence.info.BITS": "Bit", + "text.autoconfig.skyblocker.option.richPresence.info.LOCATION": "Konum", + "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "Eğer döngüyü açtıysanız bu değer geçersiz kalır", + "text.autoconfig.skyblocker.option.richPresence.cycleMode": "Skyblock bilgilerini döngüye al", + "text.autoconfig.skyblocker.option.richPresence.customMessage": "Özel mesaj", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Dwarven HUD", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Fetchur'un mesajını çöz", + "skyblocker.fishing.reelNow": "Şimdi sarıl!", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.PASS": "Devre dışı", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.FILTER": "Filtrele", + "text.autoconfig.skyblocker.option.messages.hideAbility": "Yetenek bekleme süresini filtrele", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.ACTION_BAR": "Aksiyon barına taşı", + "text.autoconfig.skyblocker.option.messages.hideHeal": "İyileştirme mesajlarını filtrele", + "text.autoconfig.skyblocker.option.messages.hideAOTE": "AOTE mesajlarını filtrele", + "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Molten Wave mesajını filtrele", + "text.autoconfig.skyblocker.option.messages.hideAds": "Genel sohbetteki reklamları filtrele", + "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "Teleport Pad mesajlarını filtrele", + "text.autoconfig.skyblocker.option.messages.hideCombo": "Kombo mesajlarını filtrele", + "text.autoconfig.skyblocker.option.messages.hideAutopet": "Autopet mesajlarını filtrele", + "text.autoconfig.skyblocker.option.messages.hideMana": "Aksiyon barındaki mana tüketimlerini gizle", + "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "FancyBar ile daha iyi bir deneyim sunar", + "text.autoconfig.skyblocker.option.general.enableUpdateNotification": "Güncelleme Bildirimleri", + "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2API anahtarınız otomatik olarak kaydedildi!", + "text.autoconfig.skyblocker.option.general.hideEmptyTooltips": "Menülerdeki boş eşya açıklamalarını gizle", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.x": "X", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "Arka planı göster", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "Etkinleştir", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "Kaç günlük ortalamanın gösterileceğini seçebilirsiniz", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "En düşük BIN fiyatını göster", + "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "Aktif", + "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2Yeni bir sürüm mevcut!", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Puzzler'ın bulmacasını çöz", + "key.hotbarSlotLock": "Slot Kilidi (Araç Çubuğu)", + "key.wikiLookup": "Wiki Araması", + "text.autoconfig.skyblocker.title": "Skyblocker Ayarları", + "text.autoconfig.skyblocker.category.general": "Genel", + "text.autoconfig.skyblocker.option.general.bars": "Can, Mana, Defans ve XP Barları", + "text.autoconfig.skyblocker.option.general.bars.enableBars": "Barları Etkinleştir", + "text.autoconfig.skyblocker.option.general.bars.barpositions": "Bar Konumları", + "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "Devre dışı", + "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "Can barı konumu", + "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "Mana barı konumu", + "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "Defans barı konumu", + "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "Tecrübe barı konumu", + "key.categories.skyblocker": "Skyblocker", + "skyblocker.updaterepository.failed": "§b[§6Skyblocker§b] §cYerel depo güncellenemedi. Dosyaları manuel olarak silip oyunu tekrar başlatın.", + "text.autoconfig.skyblocker.option.general.fishing": "Balık Tutma Yardımcısı", + "text.autoconfig.skyblocker.option.general.fishing.enableFishingHelper": "Balık tutma yardımcısını aktifleştir", + "text.autoconfig.skyblocker.category.messages": "Mesajlar", + "text.autoconfig.skyblocker.option.messages.hideImplosion": "Implosion mesajını filtrele" +} -- cgit From 5d7e3a16f76682473ff483d8cdf23e441702cc31 Mon Sep 17 00:00:00 2001 From: Yasin Date: Sat, 10 Jun 2023 01:42:22 +0200 Subject: add new contributor to readme and mod desc. --- FEATURES.md | 16 +++++++++------ README.md | 42 +++++++++++++++++++++++++++++--------- src/main/resources/fabric.mod.json | 2 +- 3 files changed, 43 insertions(+), 17 deletions(-) (limited to 'src/main/resources') diff --git a/FEATURES.md b/FEATURES.md index 1cd95a1e..2224465e 100644 --- a/FEATURES.md +++ b/FEATURES.md @@ -2,14 +2,15 @@ * Hide Messages: Ability Cooldown, Heal, AOTE, Implosion, Molten Wave, Teleport Pad Messages * Dungeon Minimap * Dungeon Puzzle Solver: - * Three Weirdos - * Blaze - * Croesus - * F7 Terminal: Order, Color, Name + * Three Weirdos + * Blaze + * Croesus + * F7 Terminal: Order, Color, Name * Dwarven Mines Solver: Fetchur, Puzzler +* Barn Solver: Treasurehunter, Hungry Hiker * Drill Fuel in Item Durability Bar * Hotbar Slot Lock Keybind (Select the hotbar slot you want to lock/unlock and press the lockbutton) -* price tooltip: npc, bazaar (avg, lbin), ah, museum +* Price tooltip: npc, bazaar (avg, lbin), ah, museum * reparty: write /rp to reparty * Wiki Lookup: press f4 to open the wiki page about the held item * Discord Rich Presence: Allows user to show either their Piggy, Bits, or location. Along with a custom message @@ -20,4 +21,7 @@ hold shift to preview * Update notification * Commission HUD: Dwarven Mines quests -* 1.8 hitbox for lever and farmland \ No newline at end of file +* 1.8 hitbox for lever and farmland +* Custom Tab HUD +* Roughly enough items (REI) Support +* Fishing Helper \ No newline at end of file diff --git a/README.md b/README.md index 59e8a7fa..88720029 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,10 @@ Installation guide is [here](https://github.com/SkyblockerMod/Skyblocker/wiki/in * Croesus * F7 Terminal: Order, Color, Name * Dwarven Mines Solver: Fetchur, Puzzler +* Barn Solver: Treasurehunter, Hungry Hiker * Drill Fuel in Item Durability Bar * Hotbar Slot Lock Keybind (Select the hotbar slot you want to lock/unlock and press the lockbutton) -* price tooltip: npc, bazaar (avg, lbin), ah, museum +* Price tooltip: npc, bazaar (avg, lbin), ah, museum * reparty: write /rp to reparty * Wiki Lookup: press f4 to open the wiki page about the held item * Discord Rich Presence: Allows user to show either their Piggy, Bits, or location. Along with a custom message @@ -40,11 +41,22 @@ Installation guide is [here](https://github.com/SkyblockerMod/Skyblocker/wiki/in * Update notification * Commission HUD: Dwarven Mines quests * 1.8 hitbox for lever and farmland +* Custom Tab HUD +* Roughly enough items (REI) Support +* Fishing Helper ___ +## Commands +| command | option | comment | +|:----------------------------:|:--------------------:|:--------------------------------------| +| /skyblocker config | | open config menu (modMenu not needed) | +| /skyblocker options | | open config menu (modMenu not needed) | +| /skyblocker hud | dwarven / dungeonmap | move dwarven or dungeonmap | + +--- ## Images
@@ -81,18 +93,28 @@ information. | [Zailer43](https://github.com/Zailer43) | [TacoMonkey11](https://github.com/TacoMonkey11) | [KonaeAkira](https://github.com/KonaeAkira) | [Fix3dll](https://github.com/Fix3dll) | | [ADON15c](https://github.com/ADON15c) | [TheColdPot](https://github.com/TheColdPot) | [Julienraptor01](https://github.com/Julienraptor01) | [MiraculixxT](https://github.com/MiraculixxT) | -|:--------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------| -| [ADON15c](https://github.com/ADON15c) | [TheColdPot](https://github.com/TheColdPot) | [Julienraptor01](https://github.com/Julienraptor01) | [ADON15c](https://github.com/MiraculixxT) | +|:--------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------:| +| [ADON15c](https://github.com/ADON15c) | [TheColdPot](https://github.com/TheColdPot) | [Julienraptor01](https://github.com/Julienraptor01) | [MiraculixxT](https://github.com/MiraculixxT) | + +| [catandA](https://github.com/catandA) | [kevinthegreat1](https://github.com/kevinthegreat1) | [AzureAaron](https://github.com/AzureAaron) | [msg-programs](https://github.com/msg-programs) | +|:--------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------:| +| [catandA](https://github.com/catandA) | [kevinthegreat1](https://github.com/kevinthegreat1) | [AzureAaron](https://github.com/AzureAaron) | [msg-programs](https://github.com/msg-programs) | -| [catandA](https://github.com/catandA) | [kevinthegreat1](https://github.com/kevinthegreat1) | [AzureAaron](https://github.com/AzureAaron) | -|:--------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------| -| [catandA](https://github.com/catandA) | [kevinthegreat1](https://github.com/kevinthegreat1) | [AzureAaron](https://github.com/AzureAaron) | +| [lantice3720](https://github.com/lantice3720) | +|:-----------------------------------------------------------------------------------------------------| +| [lantice3720](https://github.com/lantice3720) | ### Translators -German ([LifeIsAParadox](https://github.com/LifeIsAParadox)) \ +German ([LifeIsAParadox](https://github.com/LifeIsAParadox) & [msg-programs](https://github.com/msg-programs)) \ Indonesian ([null2264](https://github.com/null2264)) \ -Russian ([HyperSoop](https://github.com/HyperSoop)) \ +Russian ([HyperSoop](https://github.com/HyperSoop) & [Azuremane](https://github.com/Azuremane)) \ French ([edgarogh](https://github.com/edgarogh) & [Julienraptor01](https://github.com/Julienraptor01)) \ -Japanese ([hirochisan](https://github.com/@irochisan)) \ -Chinese ([catandA](https://github.com/catandA)) +Japanese ([hirochisan](https://github.com/hirochisan)) \ +Chinese ([catandA](https://github.com/catandA)) \ +Korean ([lantice3720](https://github.com/lantice3720)) \ +Spanish ([IngeSebastian](https://github.com/IngeSebastian)) \ +Norwegian Bokmål ([KdGaming0](https://github.com/KdGaming0)) \ +Norwegian Nynorsk ([KdGaming0](https://github.com/KdGaming0)) \ +Turkish ([Fix3dll](https://github.com/Fix3dll)) \ +Chinese (Simplified) ([catandA](https://github.com/catandA) & [PumpkinXD](https://github.com/PumpkinXD)) \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 2044b170..14c1e6f1 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -5,7 +5,7 @@ "name": "Skyblocker", "description": "Hypixel Skyblock Mod", "authors": ["xMrVizzy", "d3dx9", "LifeIsAParadox"], - "contributors": ["ExternalTime", "Zailer43", "TacoMonkey", "KonaeAkira", "Fix3dll", "null2264", "HyperSoop", "edgarogh", "TheColdPot", "Julienraptor01", "ADON15c", "catandA", "kevinthegreat1", "AzureAaron"], + "contributors": ["ExternalTime", "Zailer43", "TacoMonkey", "KonaeAkira", "Fix3dll", "null2264", "HyperSoop", "edgarogh", "TheColdPot", "Julienraptor01", "ADON15c", "catandA", "kevinthegreat1", "AzureAaron", "msg-programs", "lantice3720"], "contact": { "homepage": "https://hysky.de", "sources": "https://github.com/SkyblockerMod/Skyblocker", -- cgit From a1573035470922daf368f74bb2aa1c41431c0c97 Mon Sep 17 00:00:00 2001 From: Yasin Date: Sun, 11 Jun 2023 19:24:51 +0200 Subject: Rename zh_Hant.json to zh_tw.json --- .../resources/assets/skyblocker/lang/zh_Hant.json | 24 ---------------------- .../resources/assets/skyblocker/lang/zh_tw.json | 24 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 24 deletions(-) delete mode 100644 src/main/resources/assets/skyblocker/lang/zh_Hant.json create mode 100644 src/main/resources/assets/skyblocker/lang/zh_tw.json (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/zh_Hant.json b/src/main/resources/assets/skyblocker/lang/zh_Hant.json deleted file mode 100644 index 3613757e..00000000 --- a/src/main/resources/assets/skyblocker/lang/zh_Hant.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "text.autoconfig.skyblocker.title": "Skyblocker設定", - "text.autoconfig.skyblocker.category.general": "一般設定", - "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "血量條位置", - "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "魔力條位置", - "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "防禦條位置", - "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "經驗条位置", - "key.wikiLookup": "查閱Wiki", - "key.hotbarSlotLock": "鎖定快捷欄", - "key.categories.skyblocker": "Skyblocker", - "text.autoconfig.skyblocker.option.messages.hideAOTE": "隱藏終焉之貌的提示訊息", - "text.autoconfig.skyblocker.option.messages.hideAds": "从公頻訊息中隱藏廣告", - "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "隱藏傳送點訊息", - "text.autoconfig.skyblocker.option.messages.hideCombo": "隱藏連殺訊息", - "text.autoconfig.skyblocker.option.messages.hideAutopet": "隱藏自動寵物訊息", - "skyblocker.update.hover_text": "打開Modrinth", - "text.autoconfig.skyblocker.option.general.hideEmptyTooltips": "隱藏選單玻璃物品資訊\"", - "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2已自动設定你的API金鑰!", - "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "快捷欄右側", - "text.autoconfig.skyblocker.option.messages.hideAbility": "隱藏技能冷卻", - "text.autoconfig.skyblocker.option.messages.hideHeal": "隱藏治療訊息", - "text.autoconfig.skyblocker.option.messages.hideMana": "在動作欄中隱藏魔力消耗的提示訊息", - "text.autoconfig.skyblocker.option.general.bars": "血量,魔力,防御以及經驗計量條" -} diff --git a/src/main/resources/assets/skyblocker/lang/zh_tw.json b/src/main/resources/assets/skyblocker/lang/zh_tw.json new file mode 100644 index 00000000..3613757e --- /dev/null +++ b/src/main/resources/assets/skyblocker/lang/zh_tw.json @@ -0,0 +1,24 @@ +{ + "text.autoconfig.skyblocker.title": "Skyblocker設定", + "text.autoconfig.skyblocker.category.general": "一般設定", + "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "血量條位置", + "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "魔力條位置", + "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "防禦條位置", + "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "經驗条位置", + "key.wikiLookup": "查閱Wiki", + "key.hotbarSlotLock": "鎖定快捷欄", + "key.categories.skyblocker": "Skyblocker", + "text.autoconfig.skyblocker.option.messages.hideAOTE": "隱藏終焉之貌的提示訊息", + "text.autoconfig.skyblocker.option.messages.hideAds": "从公頻訊息中隱藏廣告", + "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "隱藏傳送點訊息", + "text.autoconfig.skyblocker.option.messages.hideCombo": "隱藏連殺訊息", + "text.autoconfig.skyblocker.option.messages.hideAutopet": "隱藏自動寵物訊息", + "skyblocker.update.hover_text": "打開Modrinth", + "text.autoconfig.skyblocker.option.general.hideEmptyTooltips": "隱藏選單玻璃物品資訊\"", + "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2已自动設定你的API金鑰!", + "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "快捷欄右側", + "text.autoconfig.skyblocker.option.messages.hideAbility": "隱藏技能冷卻", + "text.autoconfig.skyblocker.option.messages.hideHeal": "隱藏治療訊息", + "text.autoconfig.skyblocker.option.messages.hideMana": "在動作欄中隱藏魔力消耗的提示訊息", + "text.autoconfig.skyblocker.option.general.bars": "血量,魔力,防御以及經驗計量條" +} -- cgit From b28a20421348c3385022deeb3cb1ea0ea74928af Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Thu, 11 May 2023 01:54:39 -0400 Subject: 1.20 Port The game launches successfully without any crashes! --- gradle.properties | 8 +-- .../skyblocker/gui/ContainerSolverManager.java | 13 ++--- .../skyblocker/mixin/DrawContextMixin.java | 60 ++++++++++++++++++++++ .../skyblocker/mixin/HandledScreenMixin.java | 13 +++-- .../xmrvizzy/skyblocker/mixin/InGameHudMixin.java | 32 ++++++------ .../skyblocker/mixin/ItemRendererMixin.java | 60 ---------------------- .../skyblocker/mixin/PlayerListHudMixin.java | 8 +-- .../me/xmrvizzy/skyblocker/mixin/ScreenMixin.java | 24 --------- .../skyblocker/skyblock/BackpackPreview.java | 17 +++--- .../skyblocker/skyblock/FancyStatusBars.java | 37 ++++++------- .../skyblocker/skyblock/dungeon/DungeonMap.java | 8 ++- .../skyblock/dungeon/DungeonMapConfigScreen.java | 12 ++--- .../skyblocker/skyblock/dwarven/DwarvenHud.java | 32 ++++++------ .../skyblock/dwarven/DwarvenHudConfigScreen.java | 11 ++-- .../skyblock/itemlist/ItemListWidget.java | 24 ++++----- .../skyblock/itemlist/ResultButtonWidget.java | 27 ++++++---- .../skyblock/itemlist/SearchResultsWidget.java | 23 +++++---- .../skyblock/quicknav/QuickNavButton.java | 20 ++++---- .../skyblocker/skyblock/tabhud/screens/Screen.java | 5 +- .../skyblocker/skyblock/tabhud/widget/Widget.java | 37 ++++++------- .../tabhud/widget/component/Component.java | 5 +- .../widget/component/IcoFatTextComponent.java | 10 ++-- .../tabhud/widget/component/IcoTextComponent.java | 8 +-- .../widget/component/PlainTextComponent.java | 6 +-- .../tabhud/widget/component/PlayerComponent.java | 11 ++-- .../tabhud/widget/component/ProgressComponent.java | 15 +++--- .../tabhud/widget/component/TableComponent.java | 9 ++-- .../me/xmrvizzy/skyblocker/utils/ToastBuilder.java | 16 +++--- src/main/resources/fabric.mod.json | 4 +- src/main/resources/skyblocker.mixins.json | 6 +-- 30 files changed, 272 insertions(+), 289 deletions(-) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/DrawContextMixin.java delete mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java delete mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java (limited to 'src/main/resources') diff --git a/gradle.properties b/gradle.properties index 64c5e5cd..7b8af977 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,19 +2,19 @@ org.gradle.jvmargs=-Xmx1G -Dfile.encoding=UTF-8 -Duser.language=en -Duser.countr # Fabric Properties (https://fabricmc.net/versions.html) ## 1.19.4 -minecraft_version=1.19.4 -yarn_mappings=1.19.4+build.2 +minecraft_version=1.20-pre1 +yarn_mappings=1.20-pre1+build.4 loader_version=0.14.19 #Fabric api ## 1.19.4 -fabric_api_version=0.81.1+1.19.4 +fabric_api_version=0.80.2+1.20 # Dependencies ## Cloth Api (https://www.curseforge.com/minecraft/mc-mods/cloth-config/files) clothconfig_version=10.0.96 ## Mod Menu (https://www.curseforge.com/minecraft/mc-mods/modmenu/files) -mod_menu_version=6.1.0-rc.4 +mod_menu_version=7.0.0-beta.2 ## REI (https://www.curseforge.com/minecraft/mc-mods/roughly-enough-items/files) rei_version=11.0.597 diff --git a/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java b/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java index e4ff229d..354e7e3a 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java +++ b/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java @@ -8,7 +8,7 @@ import me.xmrvizzy.skyblocker.skyblock.dungeon.terminal.OrderTerminal; import me.xmrvizzy.skyblocker.skyblock.dungeon.terminal.StartsWithTerminal; import me.xmrvizzy.skyblocker.utils.Utils; import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; @@ -24,7 +24,7 @@ import java.util.regex.Pattern; /** * Manager class for {@link ContainerSolver}s like terminal solvers and experiment solvers. To add a new gui solver, extend {@link ContainerSolver} and register it in {@link #ContainerSolverManager()}. */ -public class ContainerSolverManager extends DrawableHelper { +public class ContainerSolverManager { private static final Pattern PLACEHOLDER_PATTERN = Pattern.compile(""); private final ContainerSolver[] solvers; private ContainerSolver currentSolver = null; @@ -43,10 +43,11 @@ public class ContainerSolverManager extends DrawableHelper { public void init() { ScreenEvents.BEFORE_INIT.register((client, screen, scaledWidth, scaledHeight) -> { if (Utils.isOnSkyblock() && screen instanceof GenericContainerScreen genericContainerScreen) { - ScreenEvents.afterRender(screen).register((screen1, matrices, mouseX, mouseY, delta) -> { + ScreenEvents.afterRender(screen).register((screen1, context, mouseX, mouseY, delta) -> { + MatrixStack matrices = context.getMatrices(); matrices.push(); matrices.translate(((HandledScreenAccessor) genericContainerScreen).getX(), ((HandledScreenAccessor) genericContainerScreen).getY(), 300); - onDraw(matrices, genericContainerScreen.getScreenHandler().slots.subList(0, genericContainerScreen.getScreenHandler().getRows() * 9)); + onDraw(context, genericContainerScreen.getScreenHandler().slots.subList(0, genericContainerScreen.getScreenHandler().getRows() * 9)); matrices.pop(); }); onSetScreen(genericContainerScreen); @@ -83,7 +84,7 @@ public class ContainerSolverManager extends DrawableHelper { highlights = null; } - public void onDraw(MatrixStack matrices, List slots) { + public void onDraw(DrawContext context, List slots) { if (currentSolver == null) return; if (highlights == null) @@ -93,7 +94,7 @@ public class ContainerSolverManager extends DrawableHelper { for (ColorHighlight highlight : highlights) { Slot slot = slots.get(highlight.slot()); int color = highlight.color(); - fillGradient(matrices, slot.x, slot.y, slot.x + 16, slot.y + 16, color, color); + context.fillGradient(slot.x, slot.y, slot.x + 16, slot.y + 16, color, color); } RenderSystem.colorMask(true, true, true, true); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/DrawContextMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/DrawContextMixin.java new file mode 100644 index 00000000..ccbeaca2 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/DrawContextMixin.java @@ -0,0 +1,60 @@ +package me.xmrvizzy.skyblocker.mixin; + +import java.awt.Color; +import java.util.regex.Pattern; + +import org.jetbrains.annotations.Nullable; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import com.mojang.blaze3d.systems.RenderSystem; + +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import me.xmrvizzy.skyblocker.utils.ItemUtils; +import me.xmrvizzy.skyblocker.utils.Utils; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.util.math.ColorHelper; + +@Mixin(DrawContext.class) +public abstract class DrawContextMixin { + @Inject(method = "drawItemInSlot(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V", at = @At("HEAD")) + public void skyblocker$renderItemBar(TextRenderer textRenderer, ItemStack stack, int x, int y, @Nullable String countOverride, CallbackInfo ci) { + + if (Utils.isOnSkyblock() && SkyblockerConfig.get().locations.dwarvenMines.enableDrillFuel) { + if (!stack.isEmpty()) { + NbtCompound tag = stack.getNbt(); + if (tag != null && tag.contains("ExtraAttributes")) { + if (tag.getCompound("ExtraAttributes").contains("drill_fuel")) { + float current = 3000.0F; + float max = 3000.0F; + + for (String line : ItemUtils.getTooltipStrings(stack)) { + if (line.contains("Fuel: ")) { + String clear = Pattern.compile("[^0-9 /]").matcher(line).replaceAll("").trim(); + String[] split = clear.split("/"); + current = Integer.parseInt(split[0]); + max = Integer.parseInt(split[1]) * 1000; + break; + } + } + + DrawContext context = ((DrawContext) (Object) this); + + RenderSystem.disableDepthTest(); + float hue = Math.max(0.0F, 1.0F - (max - current) / max); + int width = Math.round(current / max * 13.0F); + Color color = Color.getHSBColor(hue / 3.0F, 1.0F, 1.0F); + context.fill(x + 2, y + 13, x + 15, y + 15, 0xFF000000); + context.fill(x + 2, y + 13, x + 2 + width, y + 14, ColorHelper.Argb.getArgb(color.getAlpha(), color.getRed(), color.getGreen(), color.getBlue())); + RenderSystem.enableDepthTest(); + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java index 2d200a86..30aa1ed2 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java @@ -3,9 +3,10 @@ package me.xmrvizzy.skyblocker.mixin; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.skyblock.BackpackPreview; import me.xmrvizzy.skyblocker.skyblock.item.WikiLookup; +import me.xmrvizzy.skyblocker.utils.Utils; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.screen.slot.Slot; import net.minecraft.text.Text; import org.jetbrains.annotations.Nullable; @@ -36,12 +37,18 @@ public abstract class HandledScreenMixin extends Screen { } @Inject(at = @At("HEAD"), method = "drawMouseoverTooltip", cancellable = true) - public void skyblocker$drawMouseOverTooltip(MatrixStack matrices, int x, int y, CallbackInfo ci) { + public void skyblocker$drawMouseOverTooltip(DrawContext context, int x, int y, CallbackInfo ci) { + //Hide Empty Tooltips + Text stackName = focusedSlot.getStack().getName(); + String strName = stackName.getString(); + if(this.focusedSlot != null && Utils.isOnSkyblock() && SkyblockerConfig.get().general.hideEmptyTooltips && strName.equals(" ")) ci.cancel(); + + //Backpack Preview String title = this.getTitle().getString(); boolean shiftDown = SkyblockerConfig.get().general.backpackPreviewWithoutShift ^ Screen.hasShiftDown(); if (shiftDown && title.equals("Storage") && this.focusedSlot != null) { if (this.focusedSlot.inventory == this.client.player.getInventory()) return; - if (BackpackPreview.renderPreview(matrices, this.focusedSlot.getIndex(), x, y)) ci.cancel(); + if (BackpackPreview.renderPreview(context, this.focusedSlot.getIndex(), x, y)) ci.cancel(); } } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java index e17795ab..335737a1 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java @@ -1,6 +1,5 @@ package me.xmrvizzy.skyblocker.mixin; -import com.mojang.blaze3d.systems.RenderSystem; import me.xmrvizzy.skyblocker.SkyblockerMod; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.skyblock.FancyStatusBars; @@ -10,13 +9,14 @@ import me.xmrvizzy.skyblocker.skyblock.dungeon.DungeonMap; import me.xmrvizzy.skyblocker.utils.Utils; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import net.minecraft.util.Identifier; + import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -26,7 +26,10 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Environment(EnvType.CLIENT) @Mixin(InGameHud.class) -public abstract class InGameHudMixin extends DrawableHelper { +public abstract class InGameHudMixin { + //@Shadow + //@Final + //private static Identifier ICONS = new Identifier("textures/gui/icons.png"); @Unique private static final Identifier SLOT_LOCK = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/slot_lock.png"); @Unique @@ -35,7 +38,7 @@ public abstract class InGameHudMixin extends DrawableHelper { @Unique private final FancyStatusBars statusBars = new FancyStatusBars(); @Unique - private MatrixStack hotbarMatrices; + private DrawContext hotbarContext; @Unique private int hotbarSlotIndex; @@ -62,45 +65,44 @@ public abstract class InGameHudMixin extends DrawableHelper { } @Inject(method = "renderHotbar", at = @At("HEAD")) - public void skyblocker$renderHotbar(float f, MatrixStack matrices, CallbackInfo ci) { + public void skyblocker$renderHotbar(float f, DrawContext context, CallbackInfo ci) { if (Utils.isOnSkyblock()) { - hotbarMatrices = matrices; + hotbarContext = context; hotbarSlotIndex = 0; } } @Inject(method = "renderHotbarItem", at = @At("HEAD")) - public void skyblocker$renderHotbarItem(MatrixStack matrices, int i, int j, float f, PlayerEntity player, ItemStack stack, int seed, CallbackInfo ci) { + public void skyblocker$renderHotbarItem(DrawContext context, int i, int j, float f, PlayerEntity player, ItemStack stack, int seed, CallbackInfo ci) { if (Utils.isOnSkyblock()) { if (HotbarSlotLock.isLocked(hotbarSlotIndex)) { - RenderSystem.setShaderTexture(0, SLOT_LOCK); - DrawableHelper.drawTexture(hotbarMatrices, i, j, 0, 0, 16, 16); + hotbarContext.drawTexture(SLOT_LOCK, i, j, 0, 0, 16, 16); } hotbarSlotIndex++; } } @Inject(method = "renderExperienceBar", at = @At("HEAD"), cancellable = true) - private void skyblocker$renderExperienceBar(MatrixStack matrices, int x, CallbackInfo ci) { + private void skyblocker$renderExperienceBar(DrawContext context, int x, CallbackInfo ci) { if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.bars.enableBars) ci.cancel(); } @Inject(method = "renderStatusBars", at = @At("HEAD"), cancellable = true) - private void skyblocker$renderStatusBars(MatrixStack matrices, CallbackInfo ci) { + private void skyblocker$renderStatusBars(DrawContext context, CallbackInfo ci) { if (!Utils.isOnSkyblock()) return; - if (statusBars.render(matrices, scaledWidth, scaledHeight)) + if (statusBars.render(context, scaledWidth, scaledHeight)) ci.cancel(); if (Utils.isInDungeons() && SkyblockerConfig.get().locations.dungeons.enableMap) - DungeonMap.render(matrices); + DungeonMap.render(context.getMatrices()); - RenderSystem.setShaderTexture(0, GUI_ICONS_TEXTURE); + //RenderSystem.setShaderTexture(0, ICONS); } @Inject(method = "renderMountHealth", at = @At("HEAD"), cancellable = true) - private void skyblocker$renderMountHealth(MatrixStack matrices, CallbackInfo ci) { + private void skyblocker$renderMountHealth(DrawContext context, CallbackInfo ci) { if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.bars.enableBars) ci.cancel(); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java deleted file mode 100644 index 26bafc14..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java +++ /dev/null @@ -1,60 +0,0 @@ -package me.xmrvizzy.skyblocker.mixin; - -import java.awt.Color; -import java.util.regex.Pattern; - -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import com.mojang.blaze3d.systems.RenderSystem; - -import me.xmrvizzy.skyblocker.config.SkyblockerConfig; -import me.xmrvizzy.skyblocker.utils.ItemUtils; -import me.xmrvizzy.skyblocker.utils.Utils; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawableHelper; -import net.minecraft.client.render.item.ItemRenderer; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.util.math.ColorHelper; - -@Mixin(ItemRenderer.class) -public abstract class ItemRendererMixin { - @Inject(method = "renderGuiItemOverlay(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V", at = @At("HEAD")) - public void skyblocker$renderItemBar(MatrixStack matrices, TextRenderer renderer, ItemStack stack, int x, int y, @Nullable String countLabel, CallbackInfo ci) { - - if (Utils.isOnSkyblock() && SkyblockerConfig.get().locations.dwarvenMines.enableDrillFuel) { - if (!stack.isEmpty()) { - NbtCompound tag = stack.getNbt(); - if (tag != null && tag.contains("ExtraAttributes")) { - if (tag.getCompound("ExtraAttributes").contains("drill_fuel")) { - float current = 3000.0F; - float max = 3000.0F; - - for (String line : ItemUtils.getTooltipStrings(stack)) { - if (line.contains("Fuel: ")) { - String clear = Pattern.compile("[^0-9 /]").matcher(line).replaceAll("").trim(); - String[] split = clear.split("/"); - current = Integer.parseInt(split[0]); - max = Integer.parseInt(split[1]) * 1000; - break; - } - } - - RenderSystem.disableDepthTest(); - float hue = Math.max(0.0F, 1.0F - (max - current) / max); - int width = Math.round(current / max * 13.0F); - Color color = Color.getHSBColor(hue / 3.0F, 1.0F, 1.0F); - DrawableHelper.fill(matrices, x + 2, y + 13, x + 15, y + 15, 0xFF000000); - DrawableHelper.fill(matrices, x + 2, y + 13, x + 2 + width, y + 14, ColorHelper.Argb.getArgb(color.getAlpha(), color.getRed(), color.getGreen(), color.getBlue())); - RenderSystem.enableDepthTest(); - } - } - } - } - } -} \ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudMixin.java index b5403ae2..ef65190f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudMixin.java @@ -13,9 +13,9 @@ import me.xmrvizzy.skyblocker.utils.Utils; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.hud.PlayerListHud; import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.scoreboard.Scoreboard; import net.minecraft.scoreboard.ScoreboardObjective; import net.minecraft.text.Text; @@ -27,8 +27,8 @@ public class PlayerListHudMixin { @Shadow private Text footer; - @Inject(at = @At("HEAD"), method = "render(Lnet/minecraft/client/util/math/MatrixStack;ILnet/minecraft/scoreboard/Scoreboard;Lnet/minecraft/scoreboard/ScoreboardObjective;)V", cancellable = true) - public void skyblocker$renderTabHud(MatrixStack ms, int scaledW, Scoreboard sb, ScoreboardObjective sbo, + @Inject(at = @At("HEAD"), method = "render(Lnet/minecraft/client/gui/DrawContext;ILnet/minecraft/scoreboard/Scoreboard;Lnet/minecraft/scoreboard/ScoreboardObjective;)V", cancellable = true) + public void skyblocker$renderTabHud(DrawContext context, int scaledW, Scoreboard sb, ScoreboardObjective sbo, CallbackInfo info) { if (!Utils.isOnSkyblock() @@ -47,7 +47,7 @@ public class PlayerListHudMixin { int h = MinecraftClient.getInstance().getWindow().getScaledHeight(); try { Screen screen = Screen.getCorrect(w, h, footer); - screen.render(ms); + screen.render(context); info.cancel(); } catch (Exception e) { TabHud.LOGGER.error("Drawing default hud. Reason: Screen exception {}", e); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java deleted file mode 100644 index 9389b792..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java +++ /dev/null @@ -1,24 +0,0 @@ -package me.xmrvizzy.skyblocker.mixin; - -import me.xmrvizzy.skyblocker.config.SkyblockerConfig; -import me.xmrvizzy.skyblocker.utils.Utils; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(Screen.class) -public abstract class ScreenMixin { - @Inject(at = @At("HEAD"), method = "renderTooltip(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/item/ItemStack;II)V", cancellable = true) - public void skyblocker$renderTooltip(MatrixStack matrices, ItemStack itemStack, int x, int y, CallbackInfo ci) { - Text stackName = itemStack.getName(); - String strName = stackName.getString(); - if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.hideEmptyTooltips && strName.equals(" ")) { - ci.cancel(); - } - } -} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/BackpackPreview.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/BackpackPreview.java index 4820bc0f..e35ef605 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/BackpackPreview.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/BackpackPreview.java @@ -7,7 +7,7 @@ import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.network.PlayerListEntry; @@ -27,7 +27,7 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -public class BackpackPreview extends DrawableHelper { +public class BackpackPreview { private static final Identifier TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/inventory_background.png"); private static final BackpackPreview instance = new BackpackPreview(); private static final Pattern PROFILE_PATTERN = Pattern.compile("Profile: ([a-zA-Z]+)"); @@ -135,7 +135,7 @@ public class BackpackPreview extends DrawableHelper { } } - public static boolean renderPreview(MatrixStack matrices, int index, int mouseX, int mouseY) { + public static boolean renderPreview(DrawContext context, int index, int mouseX, int mouseY) { if (index >= 9 && index < 18) index -= 9; else if (index >= 27 && index < 45) index -= 18; else return false; @@ -149,12 +149,13 @@ public class BackpackPreview extends DrawableHelper { RenderSystem.disableDepthTest(); RenderSystem.setShaderTexture(0, TEXTURE); - BackpackPreview.drawTexture(matrices, x, y, 0, 0, 176, 7); + context.drawTexture(TEXTURE, x, y, 0, 0, 176, 7); for (int i = 0; i < rows; ++i) - BackpackPreview.drawTexture(matrices, x, y + i * 18 + 7, 0, 7, 176, 18); - BackpackPreview.drawTexture(matrices, x, y + rows * 18 + 7, 0, 25, 176, 7); + context.drawTexture(TEXTURE, x, y + i * 18 + 7, 0, 7, 176, 18); + context.drawTexture(TEXTURE, x, y + rows * 18 + 7, 0, 25, 176, 7); RenderSystem.enableDepthTest(); + MatrixStack matrices = context.getMatrices(); ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer(); TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; for (int i = 9; i < storage[index].size(); ++i) { @@ -162,8 +163,8 @@ public class BackpackPreview extends DrawableHelper { int itemY = y + (i - 9) / 9 * 18 + 8; matrices.push(); matrices.translate(0, 0, 200); - itemRenderer.renderInGui(matrices, storage[index].getStack(i), itemX, itemY); - itemRenderer.renderGuiItemOverlay(matrices, textRenderer, storage[index].getStack(i), itemX, itemY); + context.drawItem(storage[index].getStack(i), itemX, itemY); + context.drawItemInSlot(textRenderer, storage[index].getStack(i), itemX, itemY); matrices.pop(); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java index 05b57410..6af06e6d 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java @@ -1,15 +1,13 @@ package me.xmrvizzy.skyblocker.skyblock; -import com.mojang.blaze3d.systems.RenderSystem; import me.xmrvizzy.skyblocker.SkyblockerMod; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawableHelper; -import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.gui.DrawContext; import net.minecraft.util.Identifier; -public class FancyStatusBars extends DrawableHelper { +public class FancyStatusBars { private static final Identifier BARS = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/bars.png"); private final MinecraftClient client = MinecraftClient.getInstance(); @@ -39,7 +37,7 @@ public class FancyStatusBars extends DrawableHelper { return (100 * value) / max; } - public boolean render(MatrixStack matrices, int scaledWidth, int scaledHeight) { + public boolean render(DrawContext context, int scaledWidth, int scaledHeight) { var player = client.player; if (!SkyblockerConfig.get().general.bars.enableBars || player == null) return false; @@ -72,11 +70,10 @@ public class FancyStatusBars extends DrawableHelper { moveBar(i, configAnchorNum); } - RenderSystem.setShaderTexture(0, BARS); for (var bar : bars) - bar.draw(matrices); + bar.draw(context); for (var bar : bars) - bar.drawText(matrices); + bar.drawText(context); return true; } @@ -143,32 +140,32 @@ public class FancyStatusBars extends DrawableHelper { this.text = val; } - public void draw(MatrixStack matrices) { + public void draw(DrawContext context) { // Dont draw if anchorNum is outside of range if (anchorNum < 0 || anchorNum > 2) return; // Draw the icon for the bar - drawTexture(matrices, anchorsX[anchorNum] + offsetX, anchorsY[anchorNum], 0, v, 9, 9); + context.drawTexture(BARS, anchorsX[anchorNum] + offsetX, anchorsY[anchorNum], 0, v, 9, 9); // Draw the background for the bar - drawTexture(matrices, anchorsX[anchorNum] + offsetX + 10, anchorsY[anchorNum], 10, v, 2, 9); + context.drawTexture(BARS, anchorsX[anchorNum] + offsetX + 10, anchorsY[anchorNum], 10, v, 2, 9); for (int i = 2; i < bar_width - 2; i += 58) - drawTexture(matrices, anchorsX[anchorNum] + offsetX + 10 + i, anchorsY[anchorNum], 12, v, Math.min(58, bar_width - 2 - i), 9); - drawTexture(matrices, anchorsX[anchorNum] + offsetX + 10 + bar_width - 2, anchorsY[anchorNum], 70, v, 2, 9); + context.drawTexture(BARS, anchorsX[anchorNum] + offsetX + 10 + i, anchorsY[anchorNum], 12, v, Math.min(58, bar_width - 2 - i), 9); + context.drawTexture(BARS, anchorsX[anchorNum] + offsetX + 10 + bar_width - 2, anchorsY[anchorNum], 70, v, 2, 9); // Draw the filled part of the bar for (int i = 0; i < fill.length; i++) { int fill_width = this.fill[i] * (bar_width - 2) / 100; if (fill_width >= 1) - drawTexture(matrices, anchorsX[anchorNum] + offsetX + 11, anchorsY[anchorNum], 72 + i*60, v, 1, 9); + context.drawTexture(BARS, anchorsX[anchorNum] + offsetX + 11, anchorsY[anchorNum], 72 + i*60, v, 1, 9); for (int j = 1; j < fill_width - 1; j += 58) - drawTexture(matrices, anchorsX[anchorNum] + offsetX + 11 + j, anchorsY[anchorNum], 73 + i*60, v, Math.min(58, fill_width - 1 - j), 9); + context.drawTexture(BARS, anchorsX[anchorNum] + offsetX + 11 + j, anchorsY[anchorNum], 73 + i*60, v, Math.min(58, fill_width - 1 - j), 9); if (fill_width == bar_width - 2) - drawTexture(matrices, anchorsX[anchorNum] + offsetX + 11 + fill_width - 1, anchorsY[anchorNum], 131 + i*60, v, 1, 9); + context.drawTexture(BARS, anchorsX[anchorNum] + offsetX + 11 + fill_width - 1, anchorsY[anchorNum], 131 + i*60, v, 1, 9); } } - public void drawText(MatrixStack matrices) { + public void drawText(DrawContext context) { // Dont draw if anchorNum is outside of range if (anchorNum < 0 || anchorNum > 2) return; @@ -179,10 +176,10 @@ public class FancyStatusBars extends DrawableHelper { final int[] offsets = new int[]{-1, 1}; for (int i : offsets) { - textRenderer.draw(matrices, text, (float) (x + i), (float) y, 0); - textRenderer.draw(matrices, text, (float) x, (float) (y + i), 0); + context.drawText(textRenderer, text, x + i, y, 0, false); + context.drawText(textRenderer, text, x, y + i, 0, false); } - textRenderer.draw(matrices, text, (float) x, (float) y, text_color); + context.drawText(textRenderer, text, x, y, text_color, false); } } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMap.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMap.java index e5441b5c..2a97d0ee 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMap.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMap.java @@ -2,14 +2,13 @@ package me.xmrvizzy.skyblocker.skyblock.dungeon; import org.apache.commons.lang3.StringUtils; -import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.brigadier.Command; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.MapRenderer; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.util.math.MatrixStack; @@ -50,11 +49,10 @@ public class DungeonMap { } } - public static void renderHUDMap(MatrixStack matrices, int x, int y) { + public static void renderHUDMap(DrawContext context, int x, int y) { float scaling = SkyblockerConfig.get().locations.dungeons.mapScaling; int size = (int) (128 * scaling); - RenderSystem.setShaderTexture(0, MAP_BACKGROUND); - DrawableHelper.drawTexture(matrices, x, y, 0, 0, size, size, size, size); + context.drawTexture(MAP_BACKGROUND, x, y, 0, 0, size, size, size, size); } public static void init() { diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java index 8fba6a7a..ffd7a8b6 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java @@ -5,8 +5,8 @@ import java.awt.Color; import me.shedaniel.autoconfig.AutoConfig; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.utils.RenderUtils; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; public class DungeonMapConfigScreen extends Screen { @@ -19,11 +19,11 @@ public class DungeonMapConfigScreen extends Screen { } @Override - public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { - super.render(matrices, mouseX, mouseY, delta); - renderBackground(matrices); - DungeonMap.renderHUDMap(matrices, hudX, hudY); - drawCenteredTextWithShadow(matrices, textRenderer, "Right Click To Reset Position", width / 2, height / 2, Color.GRAY.getRGB()); + public void render(DrawContext context, int mouseX, int mouseY, float delta) { + super.render(context, mouseX, mouseY, delta); + renderBackground(context); + DungeonMap.renderHUDMap(context, hudX, hudY); + context.drawCenteredTextWithShadow(textRenderer, "Right Click To Reset Position", width / 2, height / 2, Color.GRAY.getRGB()); } @Override diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java index 15f9e58b..122f6c6c 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java @@ -6,7 +6,7 @@ import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; import net.minecraft.util.Formatting; @@ -49,35 +49,35 @@ public class DwarvenHud { return 1; }))))); - HudRenderCallback.EVENT.register((matrixStack, tickDelta) -> { + HudRenderCallback.EVENT.register((context, tickDelta) -> { if (!SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enabled || client.options.playerListKey.isPressed() || client.player == null || commissionList.isEmpty()) { return; } - render(matrixStack, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.x, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.y, commissionList); + render(context, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.x, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.y, commissionList); }); } - public static void render(MatrixStack matrixStack, int hudX, int hudY, List commissions) { + public static void render(DrawContext context, int hudX, int hudY, List commissions) { switch(SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.style) { - case SIMPLE -> renderSimple(matrixStack, hudX, hudY, commissions); - case FANCY -> renderFancy(matrixStack, hudX, hudY, commissions); - case CLASSIC -> renderClassic(matrixStack, hudX, hudY, commissions); + case SIMPLE -> renderSimple(context, hudX, hudY, commissions); + case FANCY -> renderFancy(context, hudX, hudY, commissions); + case CLASSIC -> renderClassic(context, hudX, hudY, commissions); } } - public static void renderClassic(MatrixStack matrixStack, int hudX, int hudY, List commissions) { + public static void renderClassic(DrawContext context, int hudX, int hudY, List commissions) { if (SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground) { - DrawableHelper.fill(matrixStack, hudX, hudY, hudX + 200, hudY + (20 * commissions.size()), 0x64000000); + context.fill(hudX, hudY, hudX + 200, hudY + (20 * commissions.size()), 0x64000000); } int y = 0; for (Commission commission : commissions) { - client.textRenderer - .drawWithShadow(matrixStack, + context + .drawTextWithShadow(client.textRenderer, Text.literal(commission.commission + ": ") .styled(style -> style.withColor(Formatting.AQUA)) .append(Text.literal(commission.progression) @@ -87,18 +87,18 @@ public class DwarvenHud { } } - public static void renderSimple(MatrixStack matrixStack, int hudX, int hudY, List commissions) { + public static void renderSimple(DrawContext context, int hudX, int hudY, List commissions) { CommsWidget cw = new CommsWidget(commissions, false); cw.setX(hudX); cw.setY(hudY); - cw.render(matrixStack, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground); + cw.render(context, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground); } - public static void renderFancy(MatrixStack matrixStack, int hudX, int hudY, List commissions) { + public static void renderFancy(DrawContext context, int hudX, int hudY, List commissions) { CommsWidget cw = new CommsWidget(commissions, true); cw.setX(hudX); cw.setY(hudY); - cw.render(matrixStack, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground); + cw.render(context, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground); } public static void update() { @@ -121,4 +121,4 @@ public class DwarvenHud { // steamroller tactics to get visibility from outside classes (CommsWidget) public static record Commission(String commission, String progression){} -} +} \ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java index 2d0ba892..f91ed921 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java @@ -3,6 +3,7 @@ package me.xmrvizzy.skyblocker.skyblock.dwarven; import me.shedaniel.autoconfig.AutoConfig; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.utils.RenderUtils; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; @@ -19,11 +20,11 @@ public class DwarvenHudConfigScreen extends Screen { } @Override - public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { - super.render(matrices, mouseX, mouseY, delta); - renderBackground(matrices); - DwarvenHud.render(matrices, hudX, hudY, List.of(new DwarvenHud.Commission("Test Commission 1", "1%"), new DwarvenHud.Commission("Test Commission 2", "2%"))); - drawCenteredTextWithShadow(matrices, textRenderer, "Right Click To Reset Position", width / 2, height / 2, Color.GRAY.getRGB()); + public void render(DrawContext context, int mouseX, int mouseY, float delta) { + super.render(context, mouseX, mouseY, delta); + renderBackground(context); + DwarvenHud.render(context, hudX, hudY, List.of(new DwarvenHud.Commission("Test Commission 1", "1%"), new DwarvenHud.Commission("Test Commission 2", "2%"))); + context.drawCenteredTextWithShadow(textRenderer, "Right Click To Reset Position", width / 2, height / 2, Color.GRAY.getRGB()); } @Override diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java index d9acc75c..99715e29 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java @@ -5,12 +5,11 @@ import me.xmrvizzy.skyblocker.mixin.RecipeBookWidgetAccessor; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.Drawable; -import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.Selectable; import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget; import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.client.render.GameRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.screen.AbstractRecipeScreenHandler; import net.minecraft.text.Text; @@ -46,27 +45,26 @@ public class ItemListWidget extends RecipeBookWidget implements Drawable, Select } @Override - public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { + public void render(DrawContext context, int mouseX, int mouseY, float delta) { if (this.isOpen()) { - matrices.push(); + MatrixStack matrices = context.getMatrices(); + matrices.push(); matrices.translate(0.0D, 0.0D, 100.0D); - RenderSystem.setShader(GameRenderer::getPositionTexProgram); - RenderSystem.setShaderTexture(0, TEXTURE); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); this.searchField = ((RecipeBookWidgetAccessor)this).getSearchField(); int i = (this.parentWidth - 147) / 2 - this.leftOffset; int j = (this.parentHeight - 166) / 2; - DrawableHelper.drawTexture(matrices, i, j, 1, 1, 147, 166); + context.drawTexture(TEXTURE, i, j, 1, 1, 147, 166); this.searchField = ((RecipeBookWidgetAccessor)this).getSearchField(); if (!ItemRegistry.filesImported && !this.searchField.isFocused() && this.searchField.getText().isEmpty()) { Text hintText = (Text.literal("Loading...")).formatted(Formatting.ITALIC).formatted(Formatting.GRAY); - drawTextWithShadow(matrices, this.client.textRenderer, hintText, i + 25, j + 14, -1); + context.drawTextWithShadow(this.client.textRenderer, hintText, i + 25, j + 14, -1); } else if (!this.searchField.isFocused() && this.searchField.getText().isEmpty()) { Text hintText = (Text.translatable("gui.recipebook.search_hint")).formatted(Formatting.ITALIC).formatted(Formatting.GRAY); - drawTextWithShadow(matrices, this.client.textRenderer, hintText, i + 25, j + 14, -1); + context.drawTextWithShadow(this.client.textRenderer, hintText, i + 25, j + 14, -1); } else { - this.searchField.render(matrices, mouseX, mouseY, delta); + this.searchField.render(context, mouseX, mouseY, delta); } if (ItemRegistry.filesImported){ if (results == null) { @@ -75,16 +73,16 @@ public class ItemListWidget extends RecipeBookWidget implements Drawable, Select this.results = new SearchResultsWidget(this.client, x, y); } this.updateSearchResult(); - this.results.render(matrices, mouseX, mouseY, delta); + this.results.render(context, mouseX, mouseY, delta); } matrices.pop(); } } @Override - public void drawTooltip(MatrixStack matrices, int x, int y, int mouseX, int mouseY) { + public void drawTooltip(DrawContext context, int x, int y, int mouseX, int mouseY) { if (this.isOpen() && ItemRegistry.filesImported && results != null) { - this.results.drawTooltip(matrices, mouseX, mouseY); + this.results.drawTooltip(context, mouseX, mouseY); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ResultButtonWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ResultButtonWidget.java index 41e5469d..8b0fe91d 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ResultButtonWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ResultButtonWidget.java @@ -1,17 +1,21 @@ package me.xmrvizzy.skyblocker.skyblock.itemlist; import java.util.List; +import java.util.function.Function; +import java.util.ArrayList; +import com.google.common.collect.Lists; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; import net.minecraft.client.gui.widget.ClickableWidget; import net.minecraft.client.render.GameRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.text.OrderedText; import net.minecraft.text.Text; import net.minecraft.util.Identifier; @@ -36,23 +40,26 @@ public class ResultButtonWidget extends ClickableWidget { } @Override - public void renderButton(MatrixStack matrices, int mouseX, int mouseY, float delta) { + public void renderButton(DrawContext context, int mouseX, int mouseY, float delta) { MinecraftClient client = MinecraftClient.getInstance(); - RenderSystem.setShader(GameRenderer::getPositionTexProgram); - RenderSystem.setShaderTexture(0, BACKGROUND_TEXTURE); // this.drawTexture(matrices, this.x, this.y, 29, 206, this.width, this.height); - DrawableHelper.drawTexture(matrices, this.getX(), this.getY(), 29, 206, this.getWidth(), this.getHeight()); + context.drawTexture(BACKGROUND_TEXTURE, this.getX(), this.getY(), 29, 206, this.getWidth(), this.getHeight()); // client.getItemRenderer().renderInGui(this.itemStack, this.x + 4, this.y + 4); - client.getItemRenderer().renderInGui(matrices, this.itemStack, this.getX() + 4, this.getY() + 4); + context.drawItem(this.itemStack, this.getX() + 4, this.getY() + 4); // client.getItemRenderer().renderGuiItemOverlay(client.textRenderer, itemStack, this.x + 4, this.y + 4); - client.getItemRenderer().renderGuiItemOverlay(matrices, client.textRenderer, itemStack, this.getX() + 4, this.getY() + 4); + context.drawItemInSlot(client.textRenderer, itemStack, this.getX() + 4, this.getY() + 4); } - public void renderTooltip(MatrixStack matrices, int mouseX, int mouseY) { + public void renderTooltip(DrawContext context, int mouseX, int mouseY) { MinecraftClient client = MinecraftClient.getInstance(); - List tooltip = client.currentScreen.getTooltipFromItem(this.itemStack); + List tooltip = client.currentScreen.getTooltipFromItem(client, this.itemStack); + List orderedTooltip = new ArrayList<>(); + + for(int i = 0; i < tooltip.size(); i++) orderedTooltip.add(tooltip.get(i).asOrderedText()); + // TODO : add null check with log error - client.currentScreen.renderTooltip(matrices, tooltip, mouseX, mouseY); + client.currentScreen.setTooltip(orderedTooltip); + client.currentScreen.renderWithTooltip(context, mouseX, mouseY, mouseY); } @Override diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java index ce53112b..058495a2 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java @@ -2,6 +2,8 @@ package me.xmrvizzy.skyblocker.skyblock.itemlist; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.Drawable; import net.minecraft.client.gui.widget.ToggleButtonWidget; import net.minecraft.client.util.math.MatrixStack; @@ -106,32 +108,33 @@ public class SearchResultsWidget implements Drawable { this.nextPageButton.active = this.currentPage < this.pageCount - 1; } - public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { + public void render(DrawContext context, int mouseX, int mouseY, float delta) { + TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; RenderSystem.disableDepthTest(); if (this.displayRecipes) { String craftText = this.recipeResults.get(this.currentPage).craftText; - this.client.textRenderer.drawWithShadow(matrices, craftText, this.parentX + 11, this.parentY + 31, 0xffffffff); + context.drawTextWithShadow(textRenderer, craftText, this.parentX + 11, this.parentY + 31, 0xffffffff); Text resultText = this.recipeResults.get(this.currentPage).result.getName(); - this.client.textRenderer.drawWithShadow(matrices, resultText, this.parentX + 11, this.parentY + 43, 0xffffffff); - this.client.textRenderer.drawWithShadow(matrices, "▶", this.parentX + 96, this.parentY + 90, 0xaaffffff); + context.drawTextWithShadow(textRenderer, resultText, this.parentX + 11, this.parentY + 43, 0xffffffff); + context.drawTextWithShadow(textRenderer, "▶", this.parentX + 96, this.parentY + 90, 0xaaffffff); } for (ResultButtonWidget button : resultButtons) - button.render(matrices, mouseX, mouseY, delta); + button.render(context, mouseX, mouseY, delta); if (this.pageCount > 1) { String string = (this.currentPage + 1) + "/" + this.pageCount; int dx = this.client.textRenderer.getWidth(string) / 2; - this.client.textRenderer.draw(matrices, string, this.parentX - dx + 73, this.parentY + 141, -1); + context.drawText(textRenderer, string, this.parentX - dx + 73, this.parentY + 141, -1, false); } - if (this.prevPageButton.active) this.prevPageButton.render(matrices, mouseX, mouseY, delta); - if (this.nextPageButton.active) this.nextPageButton.render(matrices, mouseX, mouseY, delta); + if (this.prevPageButton.active) this.prevPageButton.render(context, mouseX, mouseY, delta); + if (this.nextPageButton.active) this.nextPageButton.render(context, mouseX, mouseY, delta); RenderSystem.enableDepthTest(); } - public void drawTooltip(MatrixStack matrices, int mouseX, int mouseY) { + public void drawTooltip(DrawContext context, int mouseX, int mouseY) { RenderSystem.disableDepthTest(); for (ResultButtonWidget button : resultButtons) if (button.isMouseOver(mouseX, mouseY)) - button.renderTooltip(matrices, mouseX, mouseY); + button.renderTooltip(context, mouseX, mouseY); RenderSystem.enableDepthTest(); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java index 7269840a..c02463a3 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java @@ -7,7 +7,7 @@ import me.xmrvizzy.skyblocker.mixin.HandledScreenAccessor; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; @@ -64,41 +64,41 @@ public class QuickNavButton extends ClickableWidget { } @Override - public void renderButton(MatrixStack matrices, int mouseX, int mouseY, float delta) { + public void renderButton(DrawContext context, int mouseX, int mouseY, float delta) { this.updateCoordinates(); - RenderSystem.setShaderTexture(0, BUTTON_TEXTURE); + MatrixStack matrices = context.getMatrices(); RenderSystem.disableDepthTest(); // render button background if (!this.toggled) { if (this.index >= 6) // this.drawTexture(matrices, this.x, this.y + 4, this.u, this.v + 4, this.width, this.height - 4); - DrawableHelper.drawTexture(matrices, this.getX(), this.getY() + 4, this.u, this.v + 4, this.width, this.height - 4); + context.drawTexture(BUTTON_TEXTURE, this.getX(), this.getY() + 4, this.u, this.v + 4, this.width, this.height - 4); else // this.drawTexture(matrices, this.x, this.y, this.u, this.v, this.width, this.height - 4); - DrawableHelper.drawTexture(matrices, this.getX(), this.getY() - 2, this.u, this.v, this.width, this.height - 4); + context.drawTexture(BUTTON_TEXTURE, this.getX(), this.getY() - 2, this.u, this.v, this.width, this.height - 4); // } else this.drawTexture(matrices, this.x, this.y, this.u, this.v, this.width, this.height); } else { matrices.push(); //Move the top buttons 2 pixels up if they're selected if (this.index < 6) matrices.translate(0f, -2f, 0f); - DrawableHelper.drawTexture(matrices, this.getX(), this.getY(), this.u, this.v, this.width, this.height); + context.drawTexture(BUTTON_TEXTURE, this.getX(), this.getY(), this.u, this.v, this.width, this.height); matrices.pop(); } // render button icon if (!this.toggled) { if (this.index >= 6) // CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 6); - CLIENT.getItemRenderer().renderInGui(matrices, this.icon,this.getX() + 5, this.getY() + 6); + context.drawItem(this.icon,this.getX() + 5, this.getY() + 6); else // CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 9); - CLIENT.getItemRenderer().renderInGui(matrices, this.icon,this.getX() + 5, this.getY() + 7); + context.drawItem(this.icon,this.getX() + 5, this.getY() + 7); } else { if (this.index >= 6) // CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 9); - CLIENT.getItemRenderer().renderInGui(matrices, this.icon,this.getX() + 5, this.getY() + 9); + context.drawItem(this.icon,this.getX() + 5, this.getY() + 9); else // CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 6); - CLIENT.getItemRenderer().renderInGui(matrices, this.icon,this.getX() + 5, this.getY() + 6); + context.drawItem(this.icon,this.getX() + 5, this.getY() + 6); } RenderSystem.enableDepthTest(); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/Screen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/Screen.java index 43b7f956..2ed15f27 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/Screen.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/Screen.java @@ -23,6 +23,7 @@ import me.xmrvizzy.skyblocker.skyblock.tabhud.screens.playerList.HomePlayerScree import me.xmrvizzy.skyblocker.skyblock.tabhud.screens.playerList.PlayerListScreen; import me.xmrvizzy.skyblocker.skyblock.tabhud.util.PlayerLocator; import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.Widget; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; @@ -98,9 +99,9 @@ public class Screen { } } - public void render(MatrixStack ms) { + public void render(DrawContext context) { for (Widget w : widgets) { - w.render(ms); + w.render(context); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/Widget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/Widget.java index 6b96c151..33f77933 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/Widget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/Widget.java @@ -10,7 +10,7 @@ import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component.Component; import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component.IcoTextComponent; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; import net.minecraft.text.MutableText; @@ -103,14 +103,15 @@ public abstract class Widget { /** * Draw this widget with a background */ - public final void render(MatrixStack ms) { - this.render(ms, true); + public final void render(DrawContext context) { + this.render(context, true); } /** * Draw this widget, possibly with a background */ - public final void render(MatrixStack ms, boolean hasBG) { + public final void render(DrawContext context, boolean hasBG) { + MatrixStack ms = context.getMatrices(); // not sure if this is the way to go, but it fixes Z-layer issues // like blocks being rendered behind the BG and the hotbar clipping into things @@ -123,9 +124,9 @@ public abstract class Widget { // move above other UI elements ms.translate(0, 0, 200); if (hasBG) { - DrawableHelper.fill(ms, x + 1, y, x + w - 1, y + h, COL_BG_BOX); - DrawableHelper.fill(ms, x, y + 1, x + 1, y + h - 1, COL_BG_BOX); - DrawableHelper.fill(ms, x + w - 1, y + 1, x + w, y + h - 1, COL_BG_BOX); + context.fill(x + 1, y, x + w - 1, y + h, COL_BG_BOX); + context.fill(x, y + 1, x + 1, y + h - 1, COL_BG_BOX); + context.fill(x + w - 1, y + 1, x + w, y + h - 1, COL_BG_BOX); } // move above background (if exists) ms.translate(0, 0, 100); @@ -133,19 +134,19 @@ public abstract class Widget { int strHeightHalf = Widget.txtRend.fontHeight / 2; int strAreaWidth = Widget.txtRend.getWidth(title) + 4; - txtRend.draw(ms, title, x + 8, y + 2, this.color); + context.drawText(txtRend, title, x + 8, y + 2, this.color, false); - this.drawHLine(ms, x + 2, y + 1 + strHeightHalf, 4); - this.drawHLine(ms, x + 2 + strAreaWidth + 4, y + 1 + strHeightHalf, w - 4 - 4 - strAreaWidth); - this.drawHLine(ms, x + 2, y + h - 2, w - 4); + this.drawHLine(context, x + 2, y + 1 + strHeightHalf, 4); + this.drawHLine(context, x + 2 + strAreaWidth + 4, y + 1 + strHeightHalf, w - 4 - 4 - strAreaWidth); + this.drawHLine(context, x + 2, y + h - 2, w - 4); - this.drawVLine(ms, x + 1, y + 2 + strHeightHalf, h - 4 - strHeightHalf); - this.drawVLine(ms, x + w - 2, y + 2 + strHeightHalf, h - 4 - strHeightHalf); + this.drawVLine(context, x + 1, y + 2 + strHeightHalf, h - 4 - strHeightHalf); + this.drawVLine(context, x + w - 2, y + 2 + strHeightHalf, h - 4 - strHeightHalf); int yOffs = y + BORDER_SZE_N; for (Component c : components) { - c.render(ms, x + BORDER_SZE_W, yOffs); + c.render(context, x + BORDER_SZE_W, yOffs); yOffs += c.getHeight() + Component.PAD_L; } // pop manipulations above @@ -153,12 +154,12 @@ public abstract class Widget { RenderSystem.disableDepthTest(); } - private void drawHLine(MatrixStack ms, int xpos, int ypos, int width) { - DrawableHelper.fill(ms, xpos, ypos, xpos + width, ypos + 1, this.color); + private void drawHLine(DrawContext context, int xpos, int ypos, int width) { + context.fill(xpos, ypos, xpos + width, ypos + 1, this.color); } - private void drawVLine(MatrixStack ms, int xpos, int ypos, int height) { - DrawableHelper.fill(ms, xpos, ypos, xpos + 1, ypos + height, this.color); + private void drawVLine(DrawContext context, int xpos, int ypos, int height) { + context.fill(xpos, ypos, xpos + 1, ypos + height, this.color); } /** diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/Component.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/Component.java index 671b1f41..850cb3d2 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/Component.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/Component.java @@ -2,8 +2,8 @@ package me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.item.ItemRenderer; -import net.minecraft.client.util.math.MatrixStack; /** * Abstract base class for a component that may be added to a Widget. @@ -15,12 +15,11 @@ public abstract class Component { public static final int PAD_L = 4; static TextRenderer txtRend = MinecraftClient.getInstance().textRenderer; - static ItemRenderer itmRend = MinecraftClient.getInstance().getItemRenderer(); // these should always be the content dimensions without any padding. int width, height; - public abstract void render(MatrixStack ms, int x, int y); + public abstract void render(DrawContext context, int x, int y); public int getWidth() { return this.width; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoFatTextComponent.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoFatTextComponent.java index f845eba5..afd05c26 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoFatTextComponent.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoFatTextComponent.java @@ -1,7 +1,7 @@ package me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component; import me.xmrvizzy.skyblocker.skyblock.tabhud.util.Ico; -import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.gui.DrawContext; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import net.minecraft.util.Formatting; @@ -36,10 +36,10 @@ public class IcoFatTextComponent extends Component { } @Override - public void render(MatrixStack ms, int x, int y) { - itmRend.renderGuiItemIcon(ms, ico, x, y + ICO_OFFS); - txtRend.draw(ms, line1, x + ICO_DIM + PAD_L, y, 0xffffffff); - txtRend.draw(ms, line2, x + ICO_DIM + PAD_L, y + txtRend.fontHeight + PAD_S, 0xffffffff); + public void render(DrawContext context, int x, int y) { + context.drawItem(ico, x, y + ICO_OFFS); + context.drawText(txtRend, line1, x + ICO_DIM + PAD_L, y, 0xffffffff, false); + context.drawText(txtRend, line2, x + ICO_DIM + PAD_L, y + txtRend.fontHeight + PAD_S, 0xffffffff, false); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoTextComponent.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoTextComponent.java index 7a495a13..7ab92dd5 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoTextComponent.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoTextComponent.java @@ -1,7 +1,7 @@ package me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component; import me.xmrvizzy.skyblocker.skyblock.tabhud.util.Ico; -import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.gui.DrawContext; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import net.minecraft.util.Formatting; @@ -32,9 +32,9 @@ public class IcoTextComponent extends Component { } @Override - public void render(MatrixStack ms, int x, int y) { - itmRend.renderGuiItemIcon(ms, ico, x, y); - txtRend.draw(ms, text, x + ICO_DIM + PAD_L, y + 5, 0xffffffff); + public void render(DrawContext context, int x, int y) { + context.drawItem(ico, x, y); + context.drawText(txtRend, text, x + ICO_DIM + PAD_L, y + 5, 0xffffffff, false); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlainTextComponent.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlainTextComponent.java index 265d11f1..34e0268b 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlainTextComponent.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlainTextComponent.java @@ -1,6 +1,6 @@ package me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component; -import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.gui.DrawContext; import net.minecraft.text.Text; import net.minecraft.util.Formatting; @@ -23,8 +23,8 @@ public class PlainTextComponent extends Component { } @Override - public void render(MatrixStack ms, int x, int y) { - txtRend.draw(ms, text, x + PAD_S, y, 0xffffffff); + public void render(DrawContext context, int x, int y) { + context.drawText(txtRend, text, x + PAD_S, y, 0xffffffff, false); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java index 18859080..fd66ec73 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java @@ -1,10 +1,8 @@ package me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component; -import com.mojang.blaze3d.systems.RenderSystem; - +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.PlayerSkinDrawer; import net.minecraft.client.network.PlayerListEntry; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; /** @@ -27,10 +25,9 @@ public class PlayerComponent extends Component { } @Override - public void render(MatrixStack ms, int x, int y) { - RenderSystem.setShaderTexture(0, tex); - PlayerSkinDrawer.draw(ms, x, y, SKIN_ICO_DIM); - txtRend.draw(ms, name, x + SKIN_ICO_DIM + PAD_S, y, 0xffffffff); + public void render(DrawContext context, int x, int y) { + PlayerSkinDrawer.draw(context, tex, x, y, SKIN_ICO_DIM); + context.drawText(txtRend, name, x + SKIN_ICO_DIM + PAD_S, y, 0xffffffff, false); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/ProgressComponent.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/ProgressComponent.java index b9ebc0e9..a7cc8d12 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/ProgressComponent.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/ProgressComponent.java @@ -1,8 +1,7 @@ package me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component; import me.xmrvizzy.skyblocker.skyblock.tabhud.util.Ico; -import net.minecraft.client.gui.DrawableHelper; -import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.gui.DrawContext; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import net.minecraft.util.Formatting; @@ -55,16 +54,16 @@ public class ProgressComponent extends Component { } @Override - public void render(MatrixStack ms, int x, int y) { - itmRend.renderGuiItemIcon(ms, ico, x, y + ICO_OFFS); - txtRend.draw(ms, desc, x + ICO_DIM + PAD_L, y, 0xffffffff); + public void render(DrawContext context, int x, int y) { + context.drawItem(ico, x, y + ICO_OFFS); + context.drawText(txtRend, desc, x + ICO_DIM + PAD_L, y, 0xffffffff, false); int barX = x + ICO_DIM + PAD_L; int barY = y + txtRend.fontHeight + PAD_S; int endOffsX = ((int) (this.barW * (this.pcnt / 100f))); - DrawableHelper.fill(ms, barX + endOffsX, barY, barX + this.barW, barY + BAR_HEIGHT, COL_BG_BAR); - DrawableHelper.fill(ms, barX, barY, barX + endOffsX, barY + BAR_HEIGHT, + context.fill(barX + endOffsX, barY, barX + this.barW, barY + BAR_HEIGHT, COL_BG_BAR); + context.fill(barX, barY, barX + endOffsX, barY + BAR_HEIGHT, this.color); - txtRend.drawWithShadow(ms, bar, barX + 3, barY + 2, 0xffffffff); + context.drawTextWithShadow(txtRend, bar, barX + 3, barY + 2, 0xffffffff); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/TableComponent.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/TableComponent.java index 5d49be2c..30287dc0 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/TableComponent.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/TableComponent.java @@ -1,7 +1,6 @@ package me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component; -import net.minecraft.client.gui.DrawableHelper; -import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.gui.DrawContext; /** * Meta-Component that consists of a grid of other components @@ -38,11 +37,11 @@ public class TableComponent extends Component { } @Override - public void render(MatrixStack ms, int xpos, int ypos) { + public void render(DrawContext context, int xpos, int ypos) { for (int x = 0; x < cols; x++) { for (int y = 0; y < rows; y++) { if (comps[x][y] != null) { - comps[x][y].render(ms, xpos + (x * cellW), ypos + y * cellH); + comps[x][y].render(context, xpos + (x * cellW), ypos + y * cellH); } } // add a line before the col if we're not drawing the first one @@ -51,7 +50,7 @@ public class TableComponent extends Component { int lineX2 = xpos + (x * cellW) - PAD_S; int lineY1 = ypos + 1; int lineY2 = ypos + this.height - PAD_S - 1; // not sure why but it looks correct - DrawableHelper.fill(ms, lineX1, lineY1, lineX2, lineY2, this.color); + context.fill(lineX1, lineY1, lineX2, lineY2, this.color); } } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java b/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java index 7a0ad754..919975b0 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java @@ -3,11 +3,10 @@ package me.xmrvizzy.skyblocker.utils; import com.mojang.blaze3d.systems.RenderSystem; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.client.gui.DrawableHelper; -import net.minecraft.client.render.GameRenderer; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.toast.Toast; import net.minecraft.client.toast.ToastManager; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; @Environment(value= EnvType.CLIENT) @@ -21,14 +20,13 @@ public class ToastBuilder implements Toast { } @Override - public Toast.Visibility draw(MatrixStack matrices, ToastManager manager, long startTime) { - RenderSystem.setShader(GameRenderer::getPositionTexProgram); - RenderSystem.setShaderTexture(0, TEXTURE); + public Toast.Visibility draw(DrawContext context, ToastManager manager, long startTime) { + TextRenderer textRenderer = manager.getClient().textRenderer; RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - DrawableHelper.drawTexture(matrices, 0, 0, 0, 0, this.getWidth(), this.getHeight()); - manager.getClient().textRenderer.draw(matrices, title, 7.0f, 7.0f, -11534256); - manager.getClient().textRenderer.draw(matrices, description, 7.0f, 18.0f, -16777216); + context.drawTexture(TEXTURE, 0, 0, 0, 0, this.getWidth(), this.getHeight()); + context.drawText(textRenderer, title, 7, 7, -11534256, false); + context.drawText(textRenderer, description, 7, 18, -16777216, false); return startTime >= 3000L ? Toast.Visibility.HIDE : Toast.Visibility.SHOW; } } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 14c1e6f1..b407b737 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -30,9 +30,9 @@ ], "depends": { "fabricloader": ">=0.14.19", - "fabric-api": ">=0.81.0+1.19.4", + "fabric-api": ">=0.80.2+1.20", "cloth-config2": "*", - "minecraft": "~1.19.4" + "minecraft": "~1.20-beta.1" }, "custom": { "modmenu": { diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json index 6fa2596a..f8b39c93 100644 --- a/src/main/resources/skyblocker.mixins.json +++ b/src/main/resources/skyblocker.mixins.json @@ -6,20 +6,18 @@ "AccessorWorldRenderer", "ClientPlayerEntityMixin", "ClientPlayNetworkHandlerMixin", + "DrawContextMixin", "FarmlandBlockMixin", "GenericContainerScreenHandlerMixin", "HandledScreenAccessor", "HandledScreenMixin", "InGameHudMixin", "InventoryScreenMixin", - "ItemRendererMixin", "LeverBlockMixin", "MinecraftClientMixin", - "RecipeBookWidgetAccessor", - "HandledScreenAccessor", "PlayerListHudAccessor", "PlayerListHudMixin", - "ScreenMixin" + "RecipeBookWidgetAccessor" ], "injectors": { "defaultRequire": 1 -- cgit From 866e3a036fadd35032917a66894a7a656fbbead5 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Wed, 17 May 2023 23:24:00 -0400 Subject: 1.20-pre2 --- gradle.properties | 6 +++--- src/main/resources/fabric.mod.json | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/main/resources') diff --git a/gradle.properties b/gradle.properties index 7b8af977..a905e0d5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,13 +2,13 @@ org.gradle.jvmargs=-Xmx1G -Dfile.encoding=UTF-8 -Duser.language=en -Duser.countr # Fabric Properties (https://fabricmc.net/versions.html) ## 1.19.4 -minecraft_version=1.20-pre1 -yarn_mappings=1.20-pre1+build.4 +minecraft_version=1.20-pre2 +yarn_mappings=1.20-pre2+build.1 loader_version=0.14.19 #Fabric api ## 1.19.4 -fabric_api_version=0.80.2+1.20 +fabric_api_version=0.81.2+1.20 # Dependencies ## Cloth Api (https://www.curseforge.com/minecraft/mc-mods/cloth-config/files) diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index b407b737..f9089c9a 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -30,9 +30,9 @@ ], "depends": { "fabricloader": ">=0.14.19", - "fabric-api": ">=0.80.2+1.20", + "fabric-api": ">=0.81.2+1.20", "cloth-config2": "*", - "minecraft": "~1.20-beta.1" + "minecraft": "~1.20-beta.2" }, "custom": { "modmenu": { -- cgit From c108bf1e72f52b011db493bd452022a7ae8901fc Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Sat, 20 May 2023 12:48:53 -0400 Subject: 1.20-pre4 --- gradle.properties | 4 ++-- src/main/resources/fabric.mod.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src/main/resources') diff --git a/gradle.properties b/gradle.properties index a905e0d5..29e15b0b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,8 +2,8 @@ org.gradle.jvmargs=-Xmx1G -Dfile.encoding=UTF-8 -Duser.language=en -Duser.countr # Fabric Properties (https://fabricmc.net/versions.html) ## 1.19.4 -minecraft_version=1.20-pre2 -yarn_mappings=1.20-pre2+build.1 +minecraft_version=1.20-pre4 +yarn_mappings=1.20-pre4+build.3 loader_version=0.14.19 #Fabric api diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index f9089c9a..80588b7e 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -32,7 +32,7 @@ "fabricloader": ">=0.14.19", "fabric-api": ">=0.81.2+1.20", "cloth-config2": "*", - "minecraft": "~1.20-beta.2" + "minecraft": "~1.20-beta.4" }, "custom": { "modmenu": { -- cgit From 0a07a44eab9b65dd2fe5d2e3b69b6122b4cddd68 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Sat, 27 May 2023 04:15:00 -0400 Subject: 1.20-pre6 --- gradle.properties | 8 ++++---- src/main/resources/fabric.mod.json | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src/main/resources') diff --git a/gradle.properties b/gradle.properties index 29e15b0b..f5f10ba5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,13 +2,13 @@ org.gradle.jvmargs=-Xmx1G -Dfile.encoding=UTF-8 -Duser.language=en -Duser.countr # Fabric Properties (https://fabricmc.net/versions.html) ## 1.19.4 -minecraft_version=1.20-pre4 -yarn_mappings=1.20-pre4+build.3 -loader_version=0.14.19 +minecraft_version=1.20-pre6 +yarn_mappings=1.20-pre6+build.2 +loader_version=0.14.21 #Fabric api ## 1.19.4 -fabric_api_version=0.81.2+1.20 +fabric_api_version=0.82.1+1.20 # Dependencies ## Cloth Api (https://www.curseforge.com/minecraft/mc-mods/cloth-config/files) diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 80588b7e..fa0c44d8 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -29,10 +29,10 @@ "skyblocker.mixins.json" ], "depends": { - "fabricloader": ">=0.14.19", - "fabric-api": ">=0.81.2+1.20", + "fabricloader": ">=0.14.21", + "fabric-api": ">=0.82.1.20", "cloth-config2": "*", - "minecraft": "~1.20-beta.4" + "minecraft": "~1.20-beta.6" }, "custom": { "modmenu": { -- cgit From ddf96fa87a28c8f2d664a31d0c5ffdaffc14f8c4 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Mon, 5 Jun 2023 00:15:43 -0400 Subject: Trails and Talesify things! --- README.md | 2 +- gradle.properties | 10 +++++----- src/main/resources/fabric.mod.json | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src/main/resources') diff --git a/README.md b/README.md index 00a172d5..e5a78047 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![Discord](https://img.shields.io/discord/879732108745125969?logo=discord&labelColor=cecece&color=7289DA&label=)](https://discord.com/invite/aNNJHQykck) [![modrinth statistic](https://img.shields.io/badge/buy%20me%20coffee-skyblocker?color=434B57&logo=kofi)](https://ko-fi.com/wohlhabend) -Hypixel Skyblock Mod for Minecraft 1.17.x + 1.18.x + 1.19.x +Hypixel Skyblock Mod for Minecraft 1.17.x + 1.18.x + 1.19.x + 1.20 Installation guide is [here](https://github.com/SkyblockerMod/Skyblocker/wiki/installation) diff --git a/gradle.properties b/gradle.properties index f5f10ba5..556932c1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,14 +1,14 @@ org.gradle.jvmargs=-Xmx1G -Dfile.encoding=UTF-8 -Duser.language=en -Duser.country=US # Fabric Properties (https://fabricmc.net/versions.html) -## 1.19.4 -minecraft_version=1.20-pre6 -yarn_mappings=1.20-pre6+build.2 +## 1.20 +minecraft_version=1.20-rc1 +yarn_mappings=1.20-rc1+build.2 loader_version=0.14.21 #Fabric api -## 1.19.4 -fabric_api_version=0.82.1+1.20 +## 1.20 +fabric_api_version=0.83.0+1.20 # Dependencies ## Cloth Api (https://www.curseforge.com/minecraft/mc-mods/cloth-config/files) diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index fa0c44d8..661bfda5 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -30,9 +30,9 @@ ], "depends": { "fabricloader": ">=0.14.21", - "fabric-api": ">=0.82.1.20", + "fabric-api": ">=0.83.0+1.20", "cloth-config2": "*", - "minecraft": "~1.20-beta.6" + "minecraft": "~1.20-rc.1" }, "custom": { "modmenu": { -- cgit From afe72f1857428dfdf7d9788992b5ff1b518c8a9c Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Wed, 7 Jun 2023 12:03:54 -0400 Subject: 1.20 --- gradle.properties | 6 +++--- src/main/resources/fabric.mod.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src/main/resources') diff --git a/gradle.properties b/gradle.properties index 556932c1..3d1c4190 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,8 +2,8 @@ org.gradle.jvmargs=-Xmx1G -Dfile.encoding=UTF-8 -Duser.language=en -Duser.countr # Fabric Properties (https://fabricmc.net/versions.html) ## 1.20 -minecraft_version=1.20-rc1 -yarn_mappings=1.20-rc1+build.2 +minecraft_version=1.20 +yarn_mappings=1.20+build.1 loader_version=0.14.21 #Fabric api @@ -12,7 +12,7 @@ fabric_api_version=0.83.0+1.20 # Dependencies ## Cloth Api (https://www.curseforge.com/minecraft/mc-mods/cloth-config/files) -clothconfig_version=10.0.96 +clothconfig_version=11.0.98 ## Mod Menu (https://www.curseforge.com/minecraft/mc-mods/modmenu/files) mod_menu_version=7.0.0-beta.2 ## REI (https://www.curseforge.com/minecraft/mc-mods/roughly-enough-items/files) diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 661bfda5..ead46adc 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -32,7 +32,7 @@ "fabricloader": ">=0.14.21", "fabric-api": ">=0.83.0+1.20", "cloth-config2": "*", - "minecraft": "~1.20-rc.1" + "minecraft": "~1.20" }, "custom": { "modmenu": { -- cgit From 027426aacac048b85cd310e9e3d4101e0156a917 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Mon, 22 May 2023 20:30:12 -0400 Subject: Add Fairy Souls Helper --- build.gradle | 3 + gradle.properties | 2 + .../java/me/xmrvizzy/skyblocker/SkyblockerMod.java | 22 +-- .../skyblocker/config/SkyblockerConfig.java | 8 + .../accessor/BeaconBlockEntityRendererInvoker.java | 16 ++ .../xmrvizzy/skyblocker/skyblock/FairySouls.java | 184 +++++++++++++++++++++ .../skyblocker/skyblock/api/RepositoryUpdate.java | 62 ------- .../skyblocker/skyblock/dungeon/LividColor.java | 3 +- .../skyblocker/skyblock/itemlist/ItemRegistry.java | 75 ++------- .../skyblock/itemlist/ItemStackBuilder.java | 5 +- .../java/me/xmrvizzy/skyblocker/utils/NEURepo.java | 90 ++++++++++ .../me/xmrvizzy/skyblocker/utils/RenderHelper.java | 30 ++++ .../java/me/xmrvizzy/skyblocker/utils/Utils.java | 91 +++++++++- .../resources/assets/skyblocker/lang/en_us.json | 6 +- 14 files changed, 454 insertions(+), 143 deletions(-) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/BeaconBlockEntityRendererInvoker.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/FairySouls.java delete mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/api/RepositoryUpdate.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/utils/NEURepo.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/utils/RenderHelper.java (limited to 'src/main/resources') diff --git a/build.gradle b/build.gradle index 4d2dc8ef..83da3489 100644 --- a/build.gradle +++ b/build.gradle @@ -60,6 +60,9 @@ dependencies { // https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit used pull data from the NEU item repo include(implementation("org.eclipse.jgit:org.eclipse.jgit:6.4.0.202211300538-r")) + // Renderer (https://github.com/0x3C50/Renderer) + include modImplementation("com.github.0x3C50:Renderer:${project.renderer_version}") + include(modImplementation ("meteordevelopment:discord-ipc:1.1")) } diff --git a/gradle.properties b/gradle.properties index 14a4fffc..d90dc6f2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,6 +17,8 @@ clothconfig_version=11.0.99 mod_menu_version=7.0.1 ## REI (https://www.curseforge.com/minecraft/mc-mods/roughly-enough-items/files) rei_version=12.0.625 +## Renderer (https://github.com/0x3C50/Renderer) +renderer_version = master-SNAPSHOT # Mod Properties mod_version = 1.10.0 diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java index 189ecca3..04ab384f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java +++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java @@ -1,14 +1,12 @@ package me.xmrvizzy.skyblocker; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import me.xmrvizzy.skyblocker.chat.ChatMessageListener; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.discord.DiscordRPCManager; import me.xmrvizzy.skyblocker.gui.ContainerSolverManager; -import me.xmrvizzy.skyblocker.skyblock.BackpackPreview; -import me.xmrvizzy.skyblocker.skyblock.FishingHelper; -import me.xmrvizzy.skyblocker.skyblock.HotbarSlotLock; -import me.xmrvizzy.skyblocker.skyblock.StatusBarTracker; -import me.xmrvizzy.skyblocker.skyblock.api.RepositoryUpdate; +import me.xmrvizzy.skyblocker.skyblock.*; import me.xmrvizzy.skyblocker.skyblock.api.StatsCommand; import me.xmrvizzy.skyblocker.skyblock.dungeon.DungeonBlaze; import me.xmrvizzy.skyblocker.skyblock.dungeon.DungeonMap; @@ -20,14 +18,14 @@ import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemRegistry; import me.xmrvizzy.skyblocker.skyblock.quicknav.QuickNav; import me.xmrvizzy.skyblocker.skyblock.tabhud.TabHud; import me.xmrvizzy.skyblocker.skyblock.tabhud.util.PlayerListMgr; -import me.xmrvizzy.skyblocker.utils.MessageScheduler; -import me.xmrvizzy.skyblocker.utils.Scheduler; -import me.xmrvizzy.skyblocker.utils.UpdateChecker; -import me.xmrvizzy.skyblocker.utils.Utils; +import me.xmrvizzy.skyblocker.utils.*; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.MinecraftClient; +import java.nio.file.Path; + /** * Main class for Skyblocker which initializes features, registers events, and * manages ticks. This class will be instantiated by Fabric. Do not instantiate @@ -35,6 +33,8 @@ import net.minecraft.client.MinecraftClient; */ public class SkyblockerMod implements ClientModInitializer { public static final String NAMESPACE = "skyblocker"; + public static final Path CONFIG_DIR = FabricLoader.getInstance().getConfigDir().resolve(NAMESPACE); + public static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); private static SkyblockerMod INSTANCE; @SuppressWarnings("deprecation") @@ -63,12 +63,13 @@ public class SkyblockerMod implements ClientModInitializer { @Override public void onInitializeClient() { ClientTickEvents.END_CLIENT_TICK.register(this::tick); + Utils.init(); HotbarSlotLock.init(); SkyblockerConfig.init(); PriceInfoTooltip.init(); WikiLookup.init(); ItemRegistry.init(); - RepositoryUpdate.init(); + NEURepo.init(); BackpackPreview.init(); QuickNav.init(); StatsCommand.init(); @@ -78,6 +79,7 @@ public class SkyblockerMod implements ClientModInitializer { DiscordRPCManager.init(); LividColor.init(); FishingHelper.init(); + FairySouls.init(); TabHud.init(); containerSolverManager.init(); DungeonMap.init(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index b1bc2001..f296e487 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -150,6 +150,10 @@ public class SkyblockerConfig implements ConfigData { @ConfigEntry.Gui.CollapsibleObject() public Fishing fishing = new Fishing(); + @ConfigEntry.Category("fairySouls") + @ConfigEntry.Gui.CollapsibleObject() + public FairySouls fairySouls = new FairySouls(); + @ConfigEntry.Category("itemList") @ConfigEntry.Gui.CollapsibleObject() public ItemList itemList = new ItemList(); @@ -219,6 +223,10 @@ public class SkyblockerConfig implements ConfigData { public boolean enableFishingHelper = true; } + public static class FairySouls { + public boolean enableFairySouls = true; + } + public static class Hitbox { public boolean oldFarmlandHitbox = true; public boolean oldLeverHitbox = false; diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/BeaconBlockEntityRendererInvoker.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/BeaconBlockEntityRendererInvoker.java new file mode 100644 index 00000000..ff7c7cbc --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/BeaconBlockEntityRendererInvoker.java @@ -0,0 +1,16 @@ +package me.xmrvizzy.skyblocker.mixin.accessor; + +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.block.entity.BeaconBlockEntityRenderer; +import net.minecraft.client.util.math.MatrixStack; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + +@Mixin(BeaconBlockEntityRenderer.class) +public interface BeaconBlockEntityRendererInvoker { + @SuppressWarnings("unused") + @Invoker("renderBeam") + static void renderBeam(MatrixStack matrices, VertexConsumerProvider vertexConsumers, float tickDelta, long worldTime, int yOffset, int maxY, float[] color) { + throw new IllegalStateException("Mixin invoker failed to apply."); + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FairySouls.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FairySouls.java new file mode 100644 index 00000000..4480c5e1 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FairySouls.java @@ -0,0 +1,184 @@ +package me.xmrvizzy.skyblocker.skyblock; + +import com.google.common.collect.ImmutableSet; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import me.xmrvizzy.skyblocker.SkyblockerMod; +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import me.xmrvizzy.skyblocker.utils.NEURepo; +import me.xmrvizzy.skyblocker.utils.RenderHelper; +import me.xmrvizzy.skyblocker.utils.Utils; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; +import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents; +import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents; +import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; +import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents; +import net.minecraft.client.MinecraftClient; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.text.Text; +import net.minecraft.util.DyeColor; +import net.minecraft.util.math.BlockPos; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.*; +import java.util.*; +import java.util.concurrent.CompletableFuture; + +import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal; + +public class FairySouls { + private static final Logger LOGGER = LoggerFactory.getLogger(FairySouls.class); + private static CompletableFuture fairySoulsLoaded; + private static final Map> fairySouls = new HashMap<>(); + private static final Map>> foundFairies = new HashMap<>(); + + public static void init() { + fairySoulsLoaded = NEURepo.runAsyncAfterLoad(() -> { + try { + BufferedReader reader = new BufferedReader(new FileReader(NEURepo.LOCAL_REPO_DIR.resolve("constants").resolve("fairy_souls.json").toFile())); + for (Map.Entry fairySoulJson : JsonParser.parseReader(reader).getAsJsonObject().asMap().entrySet()) { + if (fairySoulJson.getKey().equals("//") || fairySoulJson.getKey().equals("Max Souls")) { + continue; + } + ImmutableSet.Builder fairySoulsForLocation = ImmutableSet.builder(); + for (JsonElement fairySoul : fairySoulJson.getValue().getAsJsonArray().asList()) { + fairySoulsForLocation.add(parseBlockPos(fairySoul)); + } + fairySouls.put(fairySoulJson.getKey(), fairySoulsForLocation.build()); + } + reader = new BufferedReader(new FileReader(SkyblockerMod.CONFIG_DIR.resolve("found_fairy_souls.json").toFile())); + for (Map.Entry foundFairiesForProfileJson : JsonParser.parseReader(reader).getAsJsonObject().asMap().entrySet()) { + Map> foundFairiesForProfile = new HashMap<>(); + for (Map.Entry foundFairiesForLocationJson : foundFairiesForProfileJson.getValue().getAsJsonObject().asMap().entrySet()) { + Set foundFairiesForLocation = new HashSet<>(); + for (JsonElement foundFairy : foundFairiesForLocationJson.getValue().getAsJsonArray().asList()) { + foundFairiesForLocation.add(parseBlockPos(foundFairy)); + } + foundFairiesForProfile.put(foundFairiesForLocationJson.getKey(), foundFairiesForLocation); + } + foundFairies.put(foundFairiesForProfileJson.getKey(), foundFairiesForProfile); + } + reader.close(); + } catch (IOException e) { + e.printStackTrace(); + LOGGER.error("Failed to load found fairy souls."); + } catch (Exception e) { + e.printStackTrace(); + } + }); + ClientLifecycleEvents.CLIENT_STOPPING.register(FairySouls::saveFoundFairySouls); + WorldRenderEvents.AFTER_TRANSLUCENT.register(FairySouls::render); + ClientReceiveMessageEvents.GAME.register(FairySouls::onChatMessage); + ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(literal(SkyblockerMod.NAMESPACE) + .then(literal("fairySouls") + .then(literal("markAllInCurrentIslandFound").executes(context -> { + FairySouls.markAllFairiesFound(); + context.getSource().sendFeedback(Text.translatable("skyblocker.fairySouls.markAllFound")); + return 1; + })) + .then(literal("markAllInCurrentIslandMissing").executes(context -> { + FairySouls.markAllFairiesNotFound(); + context.getSource().sendFeedback(Text.translatable("skyblocker.fairySouls.markAllMissing")); + return 1; + }))))); + } + + private static BlockPos parseBlockPos(JsonElement posJson) { + String[] posArray = posJson.getAsString().split(","); + return new BlockPos(Integer.parseInt(posArray[0]), Integer.parseInt(posArray[1]), Integer.parseInt(posArray[2])); + } + + public static void saveFoundFairySouls(MinecraftClient client) { + try { + BufferedWriter writer = new BufferedWriter(new FileWriter(SkyblockerMod.CONFIG_DIR.resolve("found_fairy_souls.json").toFile())); + JsonObject foundFairiesJson = new JsonObject(); + for (Map.Entry>> foundFairiesForProfile : foundFairies.entrySet()) { + JsonObject foundFairiesForProfileJson = new JsonObject(); + for (Map.Entry> foundFairiesForLocation : foundFairiesForProfile.getValue().entrySet()) { + JsonArray foundFairiesForLocationJson = new JsonArray(); + for (BlockPos foundFairy : foundFairiesForLocation.getValue()) { + foundFairiesForLocationJson.add(foundFairy.getX() + "," + foundFairy.getY() + "," + foundFairy.getZ()); + } + foundFairiesForProfileJson.add(foundFairiesForLocation.getKey(), foundFairiesForLocationJson); + } + foundFairiesJson.add(foundFairiesForProfile.getKey(), foundFairiesForProfileJson); + } + SkyblockerMod.GSON.toJson(foundFairiesJson, writer); + writer.close(); + } catch (IOException e) { + LOGGER.error("Failed to write found fairy souls to file."); + } + } + + public static void render(WorldRenderContext context) { + if (!SkyblockerConfig.get().general.fairySouls.enableFairySouls) { + return; + } + if (!fairySoulsLoaded.isDone()) { + LOGGER.warn("Fairy souls are not loaded yet."); + return; + } + if (!fairySouls.containsKey(Utils.getLocationRaw())) { + return; + } + for (BlockPos fairySoul : fairySouls.get(Utils.getLocationRaw())) { + float[] colorComponents = isFairySoulNotFound(fairySoul) ? DyeColor.GREEN.getColorComponents() : DyeColor.RED.getColorComponents(); + RenderHelper.renderFilledThroughWallsWithBeaconBeam(context, fairySoul, colorComponents, 0.5F); + } + } + + private static boolean isFairySoulNotFound(BlockPos fairySoul) { + Map> foundFairiesForProfile = foundFairies.get(Utils.getProfile()); + if (foundFairiesForProfile == null) { + return true; + } + Set foundFairiesForProfileAndLocation = foundFairiesForProfile.get(Utils.getLocationRaw()); + if (foundFairiesForProfileAndLocation == null) { + return true; + } + return !foundFairiesForProfileAndLocation.contains(fairySoul); + } + + public static void onChatMessage(Text text, boolean overlay) { + String message = text.getString(); + if (message.equals("You have already found that Fairy Soul!") || message.equals("SOUL! You found a Fairy Soul!")) { + markClosestFairyFound(); + } + } + + private static void markClosestFairyFound() { + PlayerEntity player = MinecraftClient.getInstance().player; + if (player == null) { + LOGGER.warn("Failed to mark closest fairy soul as found because player is null."); + return; + } + fairySouls.get(Utils.getLocationRaw()).stream().filter(FairySouls::isFairySoulNotFound).min(Comparator.comparingDouble(fairySoul -> fairySoul.getSquaredDistance(player.getPos()))).ifPresent(fairySoul -> { + initializeFoundFairiesForCurrentProfileAndLocation(); + foundFairies.get(Utils.getProfile()).get(Utils.getLocationRaw()).add(fairySoul); + }); + } + + public static void markAllFairiesFound() { + initializeFoundFairiesForCurrentProfileAndLocation(); + foundFairies.get(Utils.getProfile()).get(Utils.getLocationRaw()).addAll(fairySouls.get(Utils.getLocationRaw())); + } + + public static void markAllFairiesNotFound() { + Map> foundFairiesForProfile = foundFairies.get(Utils.getProfile()); + if (foundFairiesForProfile != null) { + foundFairiesForProfile.remove(Utils.getLocationRaw()); + } + } + + private static void initializeFoundFairiesForCurrentProfileAndLocation() { + initializeFoundFairiesForProfileAndLocation(Utils.getProfile(), Utils.getLocationRaw()); + } + + private static void initializeFoundFairiesForProfileAndLocation(String profile, String location) { + foundFairies.computeIfAbsent(profile, profileKey -> new HashMap<>()); + foundFairies.get(profile).computeIfAbsent(location, locationKey -> new HashSet<>()); + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/RepositoryUpdate.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/RepositoryUpdate.java deleted file mode 100644 index e08cb1c0..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/RepositoryUpdate.java +++ /dev/null @@ -1,62 +0,0 @@ -package me.xmrvizzy.skyblocker.skyblock.api; - -import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemRegistry; -import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; -import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; -import net.minecraft.client.MinecraftClient; -import net.minecraft.text.Text; - -import java.io.File; -import java.nio.file.Files; -import java.util.concurrent.CompletableFuture; - -public class RepositoryUpdate { - public static final MinecraftClient client = MinecraftClient.getInstance(); - - /** - * Adds command to update repository manually from ingame. - *

- * TODO A button could be added to the settings menu that will trigger this command. - */ - public static void init(){ - ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register( - ClientCommandManager.literal("skyblocker") - .then(ClientCommandManager.literal("updaterepository") - .executes(context -> { - updateRepository(); - return 1; - }) - ) - ) - ); - - } - - public static void updateRepository() { - CompletableFuture.runAsync(() -> { - try { - ItemRegistry.filesImported = false; - File dir = ItemRegistry.LOCAL_ITEM_REPO_DIR.toFile(); - recursiveDelete(dir); - } catch (Exception ex) { - if (client.player != null) - client.player.sendMessage( - Text.translatable("skyblocker.updaterepository.failed") - , false - ); - return; - } - - ItemRegistry.init(); - }); - } - - private static void recursiveDelete(File dir) { - if (dir.isDirectory() && !Files.isSymbolicLink(dir.toPath())) { - for (File child : dir.listFiles()) { - recursiveDelete(child); - } - } - dir.delete(); - } -} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/LividColor.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/LividColor.java index 276a41b6..4701c485 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/LividColor.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/LividColor.java @@ -11,11 +11,10 @@ public class LividColor { private static int tenTicks = 0; public static void init() { - ClientReceiveMessageEvents.ALLOW_GAME.register((message, overlay) -> { + ClientReceiveMessageEvents.GAME.register((message, overlay) -> { if (SkyblockerConfig.get().locations.dungeons.lividColor.enableLividColor && message.getString().equals("[BOSS] Livid: I respect you for making it to here, but I'll be your undoing.")) { tenTicks = 8; } - return true; }); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java index d9f3b473..13ca356a 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java @@ -2,32 +2,23 @@ package me.xmrvizzy.skyblocker.skyblock.itemlist; import com.google.gson.JsonObject; import com.google.gson.JsonParser; - -import me.xmrvizzy.skyblocker.skyblock.api.RepositoryUpdate; -import net.fabricmc.loader.api.FabricLoader; +import me.xmrvizzy.skyblocker.utils.NEURepo; import net.minecraft.client.MinecraftClient; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.text.Text; -import org.eclipse.jgit.api.Git; -import org.eclipse.jgit.api.PullResult; -import org.eclipse.jgit.errors.RepositoryNotFoundException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.*; -import java.util.concurrent.CompletableFuture; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class ItemRegistry { - private static final Logger LOGGER = LoggerFactory.getLogger(ItemRegistry.class); - protected static final String REMOTE_ITEM_REPO = "https://github.com/NotEnoughUpdates/NotEnoughUpdates-REPO"; - public static final Path LOCAL_ITEM_REPO_DIR = FabricLoader.getInstance().getConfigDir().resolve("skyblocker/item-repo"); - - protected static final Path ITEM_LIST_DIR = LOCAL_ITEM_REPO_DIR.resolve("items"); + protected static final Path ITEM_LIST_DIR = NEURepo.LOCAL_REPO_DIR.resolve("items"); protected static final List items = new ArrayList<>(); protected static final Map itemsMap = new HashMap<>(); @@ -36,52 +27,8 @@ public class ItemRegistry { public static boolean filesImported = false; public static void init() { - CompletableFuture.runAsync(ItemRegistry::updateItemRepo) - .whenComplete((result, ex) -> { - if (ex == null) { - ItemStackBuilder.init(); - importItemFiles(); - } - else { - LOGGER.error("[Skyblocker-ItemRegistry] " + ex); - } - }); - } - - private static void updateItemRepo() { - Git git; - if (!Files.isDirectory(LOCAL_ITEM_REPO_DIR)) { - try { - git = Git.cloneRepository() - .setURI(REMOTE_ITEM_REPO) - .setDirectory(LOCAL_ITEM_REPO_DIR.toFile()) - .setBranchesToClone(List.of("refs/heads/master")) - .setBranch("refs/heads/master") - .call(); - git.close(); - LOGGER.info("[Skyblocker Repository Update] Repository updated."); - } catch (Exception e) { - e.printStackTrace(); - } - } else { - try { - git = Git.open(LOCAL_ITEM_REPO_DIR.toFile()); - PullResult pull = git.pull().setRebase(true).call(); - git.close(); - - if (pull.getRebaseResult() == null) { - LOGGER.info("[Skyblocker Repository Update] No update result"); - } else if (pull.getRebaseResult().getStatus().isSuccessful()) { - LOGGER.info("[Skyblocker Repository Update] Status: " + pull.getRebaseResult().getStatus().name()); - } else if (!pull.getRebaseResult().getStatus().isSuccessful()) { - LOGGER.warn("[Skyblocker Repository Update] Status: " + pull.getRebaseResult().getStatus().name()); - } - } catch (RepositoryNotFoundException e) { - RepositoryUpdate.updateRepository(); - } catch (Exception e) { - e.printStackTrace(); - } - } + NEURepo.runAsyncAfterLoad(ItemStackBuilder::loadPetNums); + NEURepo.runAsyncAfterLoad(ItemRegistry::importItemFiles); } private static void importItemFiles() { @@ -119,8 +66,7 @@ public class ItemRegistry { if (lhsFamilyName.equals(rhsFamilyName)) { if (lhsInternalName.length() != rhsInternalName.length()) return lhsInternalName.length() - rhsInternalName.length(); - else - return lhsInternalName.compareTo(rhsInternalName); + else return lhsInternalName.compareTo(rhsInternalName); } return lhsFamilyName.compareTo(rhsFamilyName); }); @@ -147,8 +93,7 @@ public class ItemRegistry { public static List getRecipes(String internalName) { List result = new ArrayList<>(); for (SkyblockCraftingRecipe recipe : recipes) - if (getInternalName(recipe.result).equals(internalName)) - result.add(recipe); + if (getInternalName(recipe.result).equals(internalName)) result.add(recipe); for (SkyblockCraftingRecipe recipe : recipes) for (ItemStack ingredient : recipe.grid) if (!ingredient.getItem().equals(Items.AIR) && getInternalName(ingredient).equals(internalName)) { diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemStackBuilder.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemStackBuilder.java index b2d909a8..d420d54f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemStackBuilder.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemStackBuilder.java @@ -4,6 +4,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import me.xmrvizzy.skyblocker.utils.NEURepo; import net.minecraft.item.ItemStack; import net.minecraft.nbt.*; import net.minecraft.text.Text; @@ -16,10 +17,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class ItemStackBuilder { - private final static Path PETNUMS_PATH = ItemRegistry.LOCAL_ITEM_REPO_DIR.resolve("constants/petnums.json"); + private final static Path PETNUMS_PATH = NEURepo.LOCAL_REPO_DIR.resolve("constants/petnums.json"); private static JsonObject petNums; - public static void init() { + public static void loadPetNums() { try { petNums = JsonParser.parseString(Files.readString(PETNUMS_PATH)).getAsJsonObject(); } catch (Exception e) { diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/NEURepo.java b/src/main/java/me/xmrvizzy/skyblocker/utils/NEURepo.java new file mode 100644 index 00000000..027cfa7a --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/NEURepo.java @@ -0,0 +1,90 @@ +package me.xmrvizzy.skyblocker.utils; + +import me.xmrvizzy.skyblocker.SkyblockerMod; +import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemRegistry; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; +import net.minecraft.client.MinecraftClient; +import net.minecraft.text.Text; +import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.errors.RepositoryNotFoundException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.concurrent.CompletableFuture; + +public class NEURepo { + private static final Logger LOGGER = LoggerFactory.getLogger(NEURepo.class); + public static final String REMOTE_REPO_URL = "https://github.com/NotEnoughUpdates/NotEnoughUpdates-REPO.git"; + public static final Path LOCAL_REPO_DIR = SkyblockerMod.CONFIG_DIR.resolve("item-repo"); + private static final CompletableFuture REPO_INITIALIZED = initRepository(); + + /** + * Adds command to update repository manually from ingame. + *

+ * TODO A button could be added to the settings menu that will trigger this command. + */ + public static void init() { + ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> + dispatcher.register(ClientCommandManager.literal(SkyblockerMod.NAMESPACE) + .then(ClientCommandManager.literal("updaterepository").executes(context -> { + deleteAndDownloadRepository(); + return 1; + })))); + } + + public static CompletableFuture initRepository() { + return CompletableFuture.runAsync(() -> { + try { + if (Files.isDirectory(NEURepo.LOCAL_REPO_DIR)) { + try (Git localRepo = Git.open(NEURepo.LOCAL_REPO_DIR.toFile())) { + localRepo.pull().setRebase(true).call(); + LOGGER.info("[Skyblocker] NEU Repository Updated"); + } + } else { + Git.cloneRepository().setURI(REMOTE_REPO_URL).setDirectory(NEURepo.LOCAL_REPO_DIR.toFile()).setBranchesToClone(List.of("refs/heads/master")).setBranch("refs/heads/master").call().close(); + LOGGER.info("[Skyblocker] NEU Repository Downloaded"); + } + } catch (RepositoryNotFoundException e) { + LOGGER.warn("Local NEU Repository not found or corrupted, downloading new one", e); + deleteAndDownloadRepository(); + } catch (Exception e) { + LOGGER.error("Encountered unknown exception while initializing NEU Repository", e); + } + }); + } + + public static void deleteAndDownloadRepository() { + CompletableFuture.runAsync(() -> { + try { + ItemRegistry.filesImported = false; + File dir = NEURepo.LOCAL_REPO_DIR.toFile(); + recursiveDelete(dir); + } catch (Exception ex) { + if (MinecraftClient.getInstance().player != null) + MinecraftClient.getInstance().player.sendMessage(Text.translatable("skyblocker.updaterepository.failed"), false); + return; + } + initRepository(); + }); + } + + @SuppressWarnings("ResultOfMethodCallIgnored") + private static void recursiveDelete(File dir) { + File[] children; + if (dir.isDirectory() && !Files.isSymbolicLink(dir.toPath()) && (children = dir.listFiles()) != null) { + for (File child : children) { + recursiveDelete(child); + } + } + dir.delete(); + } + + public static CompletableFuture runAsyncAfterLoad(Runnable runnable) { + return REPO_INITIALIZED.thenRunAsync(runnable); + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/RenderHelper.java b/src/main/java/me/xmrvizzy/skyblocker/utils/RenderHelper.java new file mode 100644 index 00000000..79308dc3 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/RenderHelper.java @@ -0,0 +1,30 @@ +package me.xmrvizzy.skyblocker.utils; + +import me.x150.renderer.render.Renderer3d; +import me.xmrvizzy.skyblocker.mixin.accessor.BeaconBlockEntityRendererInvoker; +import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; +import net.minecraft.client.render.block.entity.BeaconBlockEntityRenderer; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; + +import java.awt.*; + +public class RenderHelper { + public static void renderFilledThroughWallsWithBeaconBeam(WorldRenderContext context, BlockPos pos, float[] colorComponents, float alpha) { + renderFilledThroughWalls(context, pos, colorComponents, alpha); + renderBeaconBeam(context, pos, colorComponents); + } + + public static void renderFilledThroughWalls(WorldRenderContext context, BlockPos pos, float[] colorComponents, float alpha) { + Renderer3d.renderThroughWalls(); + Renderer3d.renderFilled(context.matrixStack(), new Color(colorComponents[0], colorComponents[1], colorComponents[2], alpha), Vec3d.of(pos), new Vec3d(1, 1, 1)); + Renderer3d.stopRenderThroughWalls(); + } + + public static void renderBeaconBeam(WorldRenderContext context, BlockPos pos, float[] colorComponents) { + context.matrixStack().push(); + context.matrixStack().translate(pos.getX() - context.camera().getPos().x, pos.getY() - context.camera().getPos().y, pos.getZ() - context.camera().getPos().z); + BeaconBlockEntityRendererInvoker.renderBeam(context.matrixStack(), context.consumers(), context.tickDelta(), context.world().getTime(), 0, BeaconBlockEntityRenderer.MAX_BEAM_HEIGHT, colorComponents); + context.matrixStack().pop(); + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java index a4e403fc..40c96660 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java @@ -1,13 +1,21 @@ package me.xmrvizzy.skyblocker.utils; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import me.xmrvizzy.skyblocker.SkyblockerMod; import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip; import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback; +import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.networking.v1.PacketSender; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.scoreboard.Scoreboard; import net.minecraft.scoreboard.ScoreboardObjective; import net.minecraft.scoreboard.ScoreboardPlayerScore; import net.minecraft.scoreboard.Team; +import net.minecraft.text.Text; import net.minecraft.util.Formatting; import java.util.ArrayList; @@ -21,6 +29,14 @@ public class Utils { private static boolean isOnSkyblock = false; private static boolean isInDungeons = false; private static boolean isInjected = false; + private static String profile = ""; + private static String server = ""; + private static String gameType = ""; + private static String locationRaw = ""; + private static String map = ""; + private static long clientWorldJoinTime = 0; + private static boolean sentLocRaw = false; + private static long lastLocRaw = 0; public static boolean isOnSkyblock() { return isOnSkyblock; @@ -34,6 +50,31 @@ public class Utils { return isInjected; } + public static String getProfile() { + return profile; + } + + public static String getServer() { + return server; + } + + public static String getGameType() { + return gameType; + } + + public static String getLocationRaw() { + return locationRaw; + } + + public static String getMap() { + return map; + } + + public static void init() { + ClientPlayConnectionEvents.JOIN.register(Utils::onClientWorldJoin); + ClientReceiveMessageEvents.ALLOW_GAME.register(Utils::onChatMessage); + } + public static void sbChecker() { MinecraftClient client = MinecraftClient.getInstance(); List sidebar; @@ -61,13 +102,14 @@ public class Utils { SkyblockEvents.LEAVE.invoker().onSkyblockLeave(); } isInDungeons = isOnSkyblock && string.contains("The Catacombs"); + updateLocRaw(); } public static String getLocation() { String location = null; List sidebarLines = getSidebar(); try { - if( sidebarLines != null) { + if (sidebarLines != null) { for (String sidebarLine : sidebarLines) { if (sidebarLine.contains("⏣")) location = sidebarLine; } @@ -149,4 +191,51 @@ public class Utils { return null; } } + + public static void onClientWorldJoin(ClientPlayNetworkHandler handler, PacketSender sender, MinecraftClient client) { + clientWorldJoinTime = System.currentTimeMillis(); + resetLocRawInfo(); + } + + private static void updateLocRaw() { + if (isOnSkyblock) { + long currentTime = System.currentTimeMillis(); + if (!sentLocRaw && currentTime > clientWorldJoinTime + 1000 && currentTime > lastLocRaw + 15000) { + SkyblockerMod.getInstance().messageScheduler.sendMessageAfterCooldown("/locraw"); + sentLocRaw = true; + lastLocRaw = currentTime; + } + } else { + resetLocRawInfo(); + } + } + + public static boolean onChatMessage(Text text, boolean overlay) { + String message = text.getString(); + if (message.startsWith("{\"server\":") && message.endsWith("}")) { + JsonObject locRaw = JsonParser.parseString(message).getAsJsonObject(); + if (locRaw.has("server")) { + server = locRaw.get("server").getAsString(); + if (locRaw.has("gameType")) { + gameType = locRaw.get("gameType").getAsString(); + } + if (locRaw.has("mode")) { + locationRaw = locRaw.get("mode").getAsString(); + } + if (locRaw.has("map")) { + map = locRaw.get("map").getAsString(); + } + return !sentLocRaw; + } + } + return true; + } + + private static void resetLocRawInfo() { + sentLocRaw = false; + server = ""; + gameType = ""; + locationRaw = ""; + map = ""; + } } \ No newline at end of file diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 858507fe..b40dd52e 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -22,6 +22,8 @@ "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "Experience Bar Position", "text.autoconfig.skyblocker.option.general.fishing": "Fishing Helper", "text.autoconfig.skyblocker.option.general.fishing.enableFishingHelper": "Enable Fishing Helper", + "text.autoconfig.skyblocker.option.general.fairySouls": "Fairy Souls Helper", + "text.autoconfig.skyblocker.option.general.fairySouls.enableFairySoulsHelper": "Enable Fairy Souls Helper", "text.autoconfig.skyblocker.option.general.quicknav": "Quicknav", "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Enable Quicknav", "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "View backpack preview without holding Shift", @@ -222,5 +224,7 @@ "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2Automatically set your API key!", - "skyblocker.fishing.reelNow": "Reel in now!" + "skyblocker.fishing.reelNow": "Reel in now!", + "skyblocker.fairySouls.markAllFound": "Marked all fairy souls in the current island as found", + "skyblocker.fairySouls.markAllMissing": "Marked all fairy souls in the current island as missing" } -- cgit From 131d3afe215d1236a46c209569f6b4b0c5bb493e Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Thu, 25 May 2023 17:47:49 -0400 Subject: Add BeaconBlockEntityRendererInvoker to skyblocker.mixins.json --- src/main/resources/skyblocker.mixins.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/main/resources') diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json index f8b39c93..253e42d7 100644 --- a/src/main/resources/skyblocker.mixins.json +++ b/src/main/resources/skyblocker.mixins.json @@ -17,7 +17,8 @@ "MinecraftClientMixin", "PlayerListHudAccessor", "PlayerListHudMixin", - "RecipeBookWidgetAccessor" + "RecipeBookWidgetAccessor", + "accessor.BeaconBlockEntityRendererInvoker" ], "injectors": { "defaultRequire": 1 -- cgit From d4f787a86da7cada1b02463ee137a2aab334c590 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Sat, 17 Jun 2023 17:41:12 +0800 Subject: Add English localization --- src/main/resources/assets/skyblocker/lang/en_us.json | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index b40dd52e..f2eec8fd 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -20,6 +20,10 @@ "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "Mana Bar Position", "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "Defence Bar Position", "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "Experience Bar Position", + "text.autoconfig.skyblocker.option.general.experiments": "Experiments Solver", + "text.autoconfig.skyblocker.option.general.experiments.enableChronomatronSolver": "Enable Chronomatron Solver", + "text.autoconfig.skyblocker.option.general.experiments.enableSuperpairsSolver": "Enable Superpairs Solver", + "text.autoconfig.skyblocker.option.general.experiments.enableUltrasequencerSolver": "Enable Ultrasequencer Solver", "text.autoconfig.skyblocker.option.general.fishing": "Fishing Helper", "text.autoconfig.skyblocker.option.general.fishing.enableFishingHelper": "Enable Fishing Helper", "text.autoconfig.skyblocker.option.general.fairySouls": "Fairy Souls Helper", -- cgit