aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Krainev <xmrvizzy@ya.ru>2021-01-04 02:04:35 +0500
committerAlexey Krainev <xmrvizzy@ya.ru>2021-01-04 02:04:35 +0500
commit83918b58ef710f5e425ff6b5577f43382921300f (patch)
treedc28677ffd6088c629afd4ca2de6b48b82680817
parent86f99ac522624f6e99f45bb252c51cc6935658e0 (diff)
downloadSkyblocker-83918b58ef710f5e425ff6b5577f43382921300f.tar.gz
Skyblocker-83918b58ef710f5e425ff6b5577f43382921300f.tar.bz2
Skyblocker-83918b58ef710f5e425ff6b5577f43382921300f.zip
v1.0.1
-rw-r--r--build.gradle3
-rw-r--r--gradle.properties2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java12
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java48
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java124
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json9
-rw-r--r--src/main/resources/assets/skyblocker/lang/ru_ru.json9
-rw-r--r--src/main/resources/fabric.mod.json4
9 files changed, 142 insertions, 71 deletions
diff --git a/build.gradle b/build.gradle
index 15c18c00..721bdc7f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -22,9 +22,6 @@ dependencies {
// Fabric API
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
- // StopModReposts
- include "org.stopmodreposts:Splash-Screen-Mod-Fabric:1.0.1"
-
// Cloth API
include "me.shedaniel.cloth:config-2:4.8.3"
modApi("me.shedaniel.cloth:config-2:4.8.3") {
diff --git a/gradle.properties b/gradle.properties
index fa78f16d..1643f0ee 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -7,6 +7,6 @@ loader_version=0.10.8
fabric_api_version=0.28.3+1.16
# Mod Properties
-mod_version = 1.0.0
+mod_version = 1.0.1
maven_group = me.xmrvizzy
archives_base_name = skyblocker
diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
index 65d207c1..8fb35a60 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
@@ -1,7 +1,7 @@
package me.xmrvizzy.skyblocker;
-import net.fabricmc.api.ClientModInitializer;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import net.fabricmc.api.ClientModInitializer;
public class SkyblockerMod implements ClientModInitializer {
public static final String NAMESPACE = "skyblocker";
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
index cc3131b2..d38d04a6 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
@@ -17,6 +17,10 @@ public class SkyblockerConfig implements ConfigData {
@ConfigEntry.Gui.TransitiveObject
public Bars bars = new Bars();
+ @ConfigEntry.Category("dungeons")
+ @ConfigEntry.Gui.TransitiveObject
+ public Dungeons dungeons = new Dungeons();
+
@ConfigEntry.Category("messages")
@ConfigEntry.Gui.TransitiveObject
public Messages messages = new Messages();
@@ -36,11 +40,17 @@ public class SkyblockerConfig implements ConfigData {
public int manaColor = 0x55ffff;
}
+ public static class Dungeons {
+ public boolean enableMap = false;
+ public boolean solveThreeWeirdos = false;
+ }
+
public static class Messages {
public boolean hideAbility = false;
public boolean hideHeal = false;
public boolean hideAOTE = false;
- public boolean hideMidasStaff = false;
+ public boolean hideImplosion = false;
+ public boolean hideMoltenWave = false;
}
public static void init() {
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java
index f6975243..4851325a 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java
@@ -1,39 +1,61 @@
package me.xmrvizzy.skyblocker.mixin;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.hud.ChatHudListener;
import net.minecraft.network.MessageType;
import net.minecraft.text.Text;
+import net.minecraft.util.Formatting;
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.ModifyVariable;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.UUID;
@Mixin(ChatHudListener.class)
public class ChatHudListenerMixin {
+ private static String[] threeWeirdos = {
+ "The reward is not in my chest!",
+ "At least one of them is lying, and the reward is not in",
+ "My chest doesn't have the reward. We are all telling the truth.",
+ "My chest has the reward and I'm telling the truth!",
+ "The reward isn't in any of our chests.",
+ "Both of them are telling the truth. Also,"
+ };
+
+ @ModifyVariable(method = "onChatMessage(Lnet/minecraft/network/MessageType;Lnet/minecraft/text/Text;Ljava/util/UUID;)V", at = @At("HEAD"), ordinal = 0)
+ public Text modifyMessage(Text message) {
+ String msg = message.getString();
+
+ if (SkyblockerConfig.get().dungeons.solveThreeWeirdos && msg.contains("[NPC]")) {
+ for (String s : threeWeirdos) {
+ if (msg.contains(s)) {
+ return Text.of(msg.replaceFirst("§c", "§a"));
+ }
+ }
+ }
+
+ return message;
+ }
+
@Inject(method = "onChatMessage", at = @At("HEAD"), cancellable = true)
- public void onChatMessage(MessageType messageType, Text message, UUID senderUuid, CallbackInfo ci) {
- // Ability Cooldown
- if (SkyblockerConfig.get().messages.hideAbility && message.getString().contains("This ability is currently on cooldown for ") || message.getString().contains("No more charges, next one in ")) {
+ public void onMessage(MessageType messageType, Text message, UUID senderUuid, CallbackInfo ci) {
+ if (SkyblockerConfig.get().messages.hideAbility && message.getString().contains("This ability is currently on cooldown for ") || message.getString().contains("No more charges, next one in "))
ci.cancel();
- }
- // Heal Message
- if (SkyblockerConfig.get().messages.hideHeal && message.getString().contains("You healed ") && message.getString().contains(" health!") || message.getString().contains(" healed you for ")) {
+ if (SkyblockerConfig.get().messages.hideHeal && message.getString().contains("You healed ") && message.getString().contains(" health!") || message.getString().contains(" healed you for "))
ci.cancel();
- }
- // AOTE
- if (SkyblockerConfig.get().messages.hideAOTE && message.getString().contains("There are blocks in the way!")) {
+ if (SkyblockerConfig.get().messages.hideAOTE && message.getString().contains("There are blocks in the way!"))
ci.cancel();
- }
- // Midas Staff
- if (SkyblockerConfig.get().messages.hideMidasStaff && message.getString().contains("Your Molten Wave hit ")) {
+ if (SkyblockerConfig.get().messages.hideImplosion && message.getString().contains("Your Implosion hit "))
+ ci.cancel();
+
+ if (SkyblockerConfig.get().messages.hideMoltenWave && message.getString().contains("Your Molten Wave hit "))
ci.cancel();
- }
}
} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java
index faa80e2b..65acd522 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java
@@ -1,13 +1,22 @@
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.utils.Utils;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawableHelper;
+import net.minecraft.client.gui.MapRenderer;
import net.minecraft.client.gui.hud.InGameHud;
+import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.util.math.MatrixStack;
+import net.minecraft.item.FilledMapItem;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.map.MapState;
+import net.minecraft.nbt.CompoundTag;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Final;
@@ -17,9 +26,6 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-import me.xmrvizzy.skyblocker.SkyblockerMod;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-import me.xmrvizzy.skyblocker.utils.Utils;
import java.awt.*;
@@ -76,41 +82,15 @@ public abstract class InGameHudMixin extends DrawableHelper {
@Inject(method = "renderStatusBars", at = @At("HEAD"), cancellable = true)
private void renderStatusBars(MatrixStack matrices, CallbackInfo ci) {
- if (Utils.isSkyblock() && SkyblockerConfig.get().bars.enableBars) {
- ci.cancel();
-
- this.client.getTextureManager().bindTexture(ICONS);
- this.client.getProfiler().push("skyblockBars");
- {
- int left = this.scaledWidth / 2 - 91;
- int hpWidth = getWidth(hpCurrent, hpMax);
- int manaWidth = getWidth(manaCurrent, manaMax);
-
- if (hpColor.equals("§6") && SkyblockerConfig.get().bars.enableAbsorption) {
- renderBar(matrices, left, hpWidth, SkyblockerConfig.get().bars.absorbedHealthColor);
- } else {
- renderBar(matrices, left, hpWidth, SkyblockerConfig.get().bars.healthColor);
- }
- renderBar(matrices, left + 71 + 40, manaWidth, SkyblockerConfig.get().bars.manaColor);
+ if (Utils.isSkyblock()) {
+ if (SkyblockerConfig.get().dungeons.enableMap) {
+ renderDungeonMap(matrices);
}
- this.client.getProfiler().pop();
-
- this.client.getProfiler().push("skyblockTexts");
- {
- int left = this.scaledWidth / 2 - 90;
- String hpText = hpCurrent + "/" + hpMax;
- String manaText = manaCurrent + "/" + manaMax;
- int hpOffset = (71 - this.getFontRenderer().getWidth(hpText)) / 2;
- int manaOffset = (71 - this.getFontRenderer().getWidth(manaText)) / 2;
-
- if (hpColor.equals("§6") && SkyblockerConfig.get().bars.enableAbsorption) {
- renderText(matrices, hpText, left + hpOffset, SkyblockerConfig.get().bars.absorbedHealthColor);
- } else {
- renderText(matrices, hpText, left + hpOffset, SkyblockerConfig.get().bars.healthColor);
- }
- renderText(matrices, manaText, left + 71 + 40 + manaOffset, SkyblockerConfig.get().bars.manaColor);
+
+ if (SkyblockerConfig.get().bars.enableBars) {
+ ci.cancel();
+ renderBars(matrices);
}
- this.client.getProfiler().pop();
this.client.getTextureManager().bindTexture(DrawableHelper.GUI_ICONS_TEXTURE);
}
@@ -123,18 +103,59 @@ public abstract class InGameHudMixin extends DrawableHelper {
}
}
- private int getWidth(int current, int max) {
- int width = 0;
- if (current != 0) {
- if (current > max) {
- width = 71;
+
+ private void renderDungeonMap(MatrixStack matrices) {
+ ItemStack item = this.client.player.inventory.main.get(8);
+ CompoundTag tag = item.getTag();
+
+ if (tag != null && tag.contains("map")) {
+ VertexConsumerProvider.Immediate vertices = this.client.getBufferBuilders().getEffectVertexConsumers();
+ MapRenderer map = this.client.gameRenderer.getMapRenderer();
+ MapState state = FilledMapItem.getMapState(item, this.client.world);
+
+ if (state == null) return;
+ matrices.push();
+ matrices.translate(2, 2, 0);
+ matrices.scale(1, 1, 0);
+ map.draw(matrices, vertices, state, false, 15728880);
+ vertices.draw();
+ matrices.pop();
+ }
+ }
+
+ private void renderBars(MatrixStack matrices) {
+ this.client.getTextureManager().bindTexture(ICONS);
+ this.client.getProfiler().push("skyblockBars");
+ {
+ int left = this.scaledWidth / 2 - 91;
+ int hpWidth = getWidth(hpCurrent, hpMax);
+ int manaWidth = getWidth(manaCurrent, manaMax);
+
+ if (hpColor.equals("§6") && SkyblockerConfig.get().bars.enableAbsorption) {
+ renderBar(matrices, left, hpWidth, SkyblockerConfig.get().bars.absorbedHealthColor);
} else {
- width = current * 71 / max;
+ renderBar(matrices, left, hpWidth, SkyblockerConfig.get().bars.healthColor);
}
- } else {
- width = 0;
+ renderBar(matrices, left + 71 + 40, manaWidth, SkyblockerConfig.get().bars.manaColor);
}
- return width;
+ this.client.getProfiler().pop();
+
+ this.client.getProfiler().push("skyblockTexts");
+ {
+ int left = this.scaledWidth / 2 - 90;
+ String hpText = hpCurrent + "/" + hpMax;
+ String manaText = manaCurrent + "/" + manaMax;
+ int hpOffset = (71 - this.getFontRenderer().getWidth(hpText)) / 2;
+ int manaOffset = (71 - this.getFontRenderer().getWidth(manaText)) / 2;
+
+ if (hpColor.equals("§6") && SkyblockerConfig.get().bars.enableAbsorption) {
+ renderText(matrices, hpText, left + hpOffset, SkyblockerConfig.get().bars.absorbedHealthColor);
+ } else {
+ renderText(matrices, hpText, left + hpOffset, SkyblockerConfig.get().bars.healthColor);
+ }
+ renderText(matrices, manaText, left + 71 + 40 + manaOffset, SkyblockerConfig.get().bars.manaColor);
+ }
+ this.client.getProfiler().pop();
}
private void renderBar(MatrixStack matrices, int left, int filled, int color) {
@@ -163,4 +184,17 @@ public abstract class InGameHudMixin extends DrawableHelper {
this.getFontRenderer().draw(matrices, str, (float) left, (float) top, color);
}
+ private int getWidth(int current, int max) {
+ int width = 0;
+ if (current != 0) {
+ if (current > max) {
+ width = 71;
+ } else {
+ width = current * 71 / max;
+ }
+ } else {
+ width = 0;
+ }
+ return width;
+ }
} \ 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 cbd23bb1..ec67ccf3 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -2,7 +2,7 @@
"text.autoconfig.skyblocker.title": "Skyblocker Settings",
"text.autoconfig.skyblocker.category.general": "General",
- "text.autoconfig.skyblocker.option.general.apiKey": "Hypixel API Key",
+ "text.autoconfig.skyblocker.option.general.apiKey": "Hypixel API Key (WIP)",
"text.autoconfig.skyblocker.category.bars": "Bars",
"text.autoconfig.skyblocker.option.bars.enableBars": "Enable Health & Mana Bars",
@@ -11,9 +11,14 @@
"text.autoconfig.skyblocker.option.bars.healthColor": "Health Color",
"text.autoconfig.skyblocker.option.bars.manaColor": "Mana Color",
+ "text.autoconfig.skyblocker.category.dungeons": "Dungeons",
+ "text.autoconfig.skyblocker.option.dungeons.enableMap": "Enable Map",
+ "text.autoconfig.skyblocker.option.dungeons.solveThreeWeirdos": "Solve Three Weirdos Puzzle",
+
"text.autoconfig.skyblocker.category.messages": "Messages",
"text.autoconfig.skyblocker.option.messages.hideAbility": "Hide Ability Cooldown",
"text.autoconfig.skyblocker.option.messages.hideHeal": "Hide Heal Messages",
"text.autoconfig.skyblocker.option.messages.hideAOTE": "Hide AOTE Messages",
- "text.autoconfig.skyblocker.option.messages.hideMidasStaff": "Hide Midas Staff Messages"
+ "text.autoconfig.skyblocker.option.messages.hideImplosion": "Hide Implosion Message",
+ "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Hide Molten Wave Message"
} \ No newline at end of file
diff --git a/src/main/resources/assets/skyblocker/lang/ru_ru.json b/src/main/resources/assets/skyblocker/lang/ru_ru.json
index efb6b5d8..7e82bf50 100644
--- a/src/main/resources/assets/skyblocker/lang/ru_ru.json
+++ b/src/main/resources/assets/skyblocker/lang/ru_ru.json
@@ -2,7 +2,7 @@
"text.autoconfig.skyblocker.title": "Настройки Skyblocker",
"text.autoconfig.skyblocker.category.general": "Основные",
- "text.autoconfig.skyblocker.option.general.apiKey": "Hypixel API-ключ",
+ "text.autoconfig.skyblocker.option.general.apiKey": "Hypixel API-ключ (В РАЗРАБОТКЕ)",
"text.autoconfig.skyblocker.category.bars": "Бары",
"text.autoconfig.skyblocker.option.bars.enableBars": "Включить бары здоровья и маны",
@@ -11,9 +11,14 @@
"text.autoconfig.skyblocker.option.bars.healthColor": "Цвет здоровья",
"text.autoconfig.skyblocker.option.bars.manaColor": "Цвет маны",
+ "text.autoconfig.skyblocker.category.dungeons": "Подземелья",
+ "text.autoconfig.skyblocker.option.dungeons.enableMap": "Включить карту",
+ "text.autoconfig.skyblocker.option.dungeons.solveThreeWeirdos": "Решить загадку \"Три чудака\"",
+
"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.hideMidasStaff": "Скрыть сообщения от \"Midas Staff\""
+ "text.autoconfig.skyblocker.option.messages.hideImplosion": "Скрыть сообщение \"Implosion\"",
+ "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Скрыть сообщение \"Molten Wave\""
} \ No newline at end of file
diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json
index 8f178ef9..53050b9e 100644
--- a/src/main/resources/fabric.mod.json
+++ b/src/main/resources/fabric.mod.json
@@ -27,8 +27,6 @@
"fabric": "*"
},
"custom": {
- "modmenu:clientsideOnly": true,
- "stopmodreposts:showToast": true,
- "stopmodreposts:showButton": true
+ "modmenu:clientsideOnly": true
}
}