aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemStackBuilder.java11
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java13
2 files changed, 20 insertions, 4 deletions
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 d420d54f..9808cfc7 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemStackBuilder.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemStackBuilder.java
@@ -5,6 +5,7 @@ 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.FireworkRocketItem;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.*;
import net.minecraft.text.Text;
@@ -89,6 +90,16 @@ public class ItemStackBuilder {
enchantments.add(new NbtCompound());
tag.put("Enchantments", enchantments);
}
+
+ // Add firework star color
+ Matcher explosionColorMatcher = Pattern.compile("\\{Explosion:\\{(?:Type:[0-9a-z]+,)?Colors:\\[(?<color>[0-9]+)\\]\\}").matcher(nbttag);
+ if (explosionColorMatcher.find()) {
+ NbtCompound explosion = new NbtCompound();
+
+ explosion.putInt("Type", FireworkRocketItem.Type.SMALL_BALL.getId()); //Forget about the actual ball type because it probably doesn't matter
+ explosion.putIntArray("Colors", new int[] { Integer.parseInt(explosionColorMatcher.group("color")) });
+ tag.put("Explosion", explosion);
+ }
return ItemStack.fromNbt(root);
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
index 149004c4..755e191d 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
@@ -49,7 +49,7 @@ public class Utils {
private static String map = "";
private static long clientWorldJoinTime = 0;
private static boolean sentLocRaw = false;
- private static long lastLocRaw = 0;
+ private static boolean canSendLocRaw = false;
public static boolean isOnHypixel() {
return isOnHypixel;
@@ -293,10 +293,10 @@ public class Utils {
private static void updateLocRaw() {
if (isOnSkyblock) {
long currentTime = System.currentTimeMillis();
- if (!sentLocRaw && currentTime > clientWorldJoinTime + 1000 && currentTime > lastLocRaw + 15000) {
+ if (!sentLocRaw && canSendLocRaw && currentTime > clientWorldJoinTime + 1000) {
MessageScheduler.INSTANCE.sendMessageAfterCooldown("/locraw");
sentLocRaw = true;
- lastLocRaw = currentTime;
+ canSendLocRaw = false;
}
} else {
resetLocRawInfo();
@@ -323,7 +323,11 @@ public class Utils {
if (locRaw.has("map")) {
map = locRaw.get("map").getAsString();
}
- return !sentLocRaw;
+
+ boolean shouldFilter = !sentLocRaw;
+ sentLocRaw = false;
+
+ return shouldFilter;
}
}
return true;
@@ -331,6 +335,7 @@ public class Utils {
private static void resetLocRawInfo() {
sentLocRaw = false;
+ canSendLocRaw = true;
server = "";
gameType = "";
locationRaw = "";