aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvicisacat <victor.branchu@gmail.com>2024-04-20 21:08:48 +0200
committerviciscat <51047087+viciscat@users.noreply.github.com>2024-06-02 13:26:45 +0200
commitcc4823e3646573d052ea36fef1ce6d9f9e9b90fd (patch)
treed10abc3836a2f4af81dde88a4f2c2543bb6d684d /src
parent4e82c974a7217824eab084fe43ce4385b6aae52d (diff)
downloadSkyblocker-cc4823e3646573d052ea36fef1ce6d9f9e9b90fd.tar.gz
Skyblocker-cc4823e3646573d052ea36fef1ce6d9f9e9b90fd.tar.bz2
Skyblocker-cc4823e3646573d052ea36fef1ce6d9f9e9b90fd.zip
some more progress
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hysky/skyblocker/SkyblockerMod.java1
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/events/EventNotifications.java (renamed from src/main/java/de/hysky/skyblocker/skyblock/EventNotifications.java)5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java76
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json2
-rw-r--r--src/main/resources/assets/skyblocker/textures/gui/sprites/notification.pngbin0 -> 157 bytes
-rw-r--r--src/main/resources/assets/skyblocker/textures/gui/sprites/notification.png.mcmeta10
6 files changed, 91 insertions, 3 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
index abf09032..19eb395a 100644
--- a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
+++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
@@ -26,6 +26,7 @@ import de.hysky.skyblocker.skyblock.end.EnderNodes;
import de.hysky.skyblocker.skyblock.end.TheEnd;
import de.hysky.skyblocker.skyblock.entity.MobBoundingBoxes;
import de.hysky.skyblocker.skyblock.fancybars.FancyStatusBars;
+import de.hysky.skyblocker.skyblock.events.EventNotifications;
import de.hysky.skyblocker.skyblock.garden.FarmingHud;
import de.hysky.skyblocker.skyblock.garden.LowerSensitivity;
import de.hysky.skyblocker.skyblock.garden.VisitorHelper;
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/EventNotifications.java b/src/main/java/de/hysky/skyblocker/skyblock/events/EventNotifications.java
index 5f3bae90..1d5761a5 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/EventNotifications.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/events/EventNotifications.java
@@ -1,4 +1,4 @@
-package de.hysky.skyblocker.skyblock;
+package de.hysky.skyblocker.skyblock.events;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
@@ -51,7 +51,7 @@ public class EventNotifications {
for (Map.Entry<String, LinkedList<SkyblockEvent>> entry : events.entrySet()) {
entry.getValue().sort(Comparator.comparingLong(SkyblockEvent::start)); // Sort just in case it's not in order for some reason in API
- LOGGER.info("Next {} is at {}", entry.getKey(), entry.getValue().peekFirst());
+ //LOGGER.info("Next {} is at {}", entry.getKey(), entry.getValue().peekFirst());
}
});
}
@@ -60,7 +60,6 @@ public class EventNotifications {
private static void timeUpdate() {
long newTime = System.currentTimeMillis() / 1000;
- LOGGER.info(String.valueOf(newTime));
for (Map.Entry<String, LinkedList<SkyblockEvent>> entry : events.entrySet()) {
LinkedList<SkyblockEvent> nextEvents = entry.getValue();
SkyblockEvent skyblockEvent = nextEvents.peekFirst();
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java b/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java
new file mode 100644
index 00000000..4a0d139b
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java
@@ -0,0 +1,76 @@
+package de.hysky.skyblocker.skyblock.events;
+
+import de.hysky.skyblocker.SkyblockerMod;
+import net.minecraft.client.MinecraftClient;
+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.item.ItemStack;
+import net.minecraft.screen.ScreenTexts;
+import net.minecraft.text.MutableText;
+import net.minecraft.text.OrderedText;
+import net.minecraft.text.Text;
+import net.minecraft.util.Colors;
+import net.minecraft.util.Formatting;
+import net.minecraft.util.Identifier;
+
+import java.util.List;
+
+public class EventToast implements Toast {
+ private static final Identifier TEXTURE = new Identifier(SkyblockerMod.NAMESPACE, "notification");
+
+ private final long eventStartTime;
+
+ private final List<OrderedText> message;
+ private final ItemStack icon;
+
+ public EventToast(long eventStartTime, String name, ItemStack icon) {
+ this.eventStartTime = eventStartTime;
+ MutableText formatted = Text.translatable("skyblocker.events.startsSoon", Text.literal(name).formatted(Formatting.YELLOW)).formatted(Formatting.WHITE);
+ message = MinecraftClient.getInstance().textRenderer.wrapLines(formatted, 200);
+ this.icon = icon;
+
+ }
+ @Override
+ public Visibility draw(DrawContext context, ToastManager manager, long startTime) {
+ context.drawGuiTexture(TEXTURE, 0, 0, getWidth(), getHeight());
+
+ long currentTime = System.currentTimeMillis() / 1000;
+ int timeTillEvent = (int) (eventStartTime - currentTime);
+
+ int seconds = timeTillEvent % 60;
+ int minutes = (timeTillEvent/60) % 60;
+ int hours = (timeTillEvent/3600) % 24;
+
+ MutableText time = Text.empty();
+ if (hours > 0) {
+ time.append(hours + "h").append(" ");
+ }
+ if (hours > 0 || minutes > 0) {
+ time.append(minutes + "m").append(" ");
+ }
+ time.append(seconds + "s");
+
+ int y = 4;
+ TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
+ for (OrderedText orderedText : message) {
+ context.drawText(textRenderer, orderedText, 30, y, Colors.WHITE, false);
+ y += textRenderer.fontHeight;
+ }
+ context.drawText(textRenderer, time, 30, y, Colors.LIGHT_YELLOW, false);
+
+ context.drawItemWithoutEntity(icon, 8, getHeight()/2 - 8);
+ return startTime > 5_000 ? Visibility.HIDE: Visibility.SHOW;
+ }
+
+ @Override
+ public int getWidth() {
+ return 200 + 30 + 5;
+ }
+
+ @Override
+ public int getHeight() {
+ return 8 + 9 + message.size()*9;
+ }
+}
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index 57abdc46..8b549ac7 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -761,6 +761,8 @@
"skyblocker.itemProtection.noItemUuid": "§cYou must be holding an item that has a uuid in order to protect it!",
"skyblocker.itemProtection.unableToProtect": "§cUnable to protect this item :( (Are you in skyblock?, are you holding an item?)",
+ "skyblocker.events.startsSoon": "%s starts soon!",
+
"skyblocker.tips.enabled": "§aEnabled Tips.",
"skyblocker.tips.disabled": "§cDisabled Tips.",
"skyblocker.tips.clickEnable": "§a[Click to Enable Tips]",
diff --git a/src/main/resources/assets/skyblocker/textures/gui/sprites/notification.png b/src/main/resources/assets/skyblocker/textures/gui/sprites/notification.png
new file mode 100644
index 00000000..8f272cd7
--- /dev/null
+++ b/src/main/resources/assets/skyblocker/textures/gui/sprites/notification.png
Binary files differ
diff --git a/src/main/resources/assets/skyblocker/textures/gui/sprites/notification.png.mcmeta b/src/main/resources/assets/skyblocker/textures/gui/sprites/notification.png.mcmeta
new file mode 100644
index 00000000..c514d54c
--- /dev/null
+++ b/src/main/resources/assets/skyblocker/textures/gui/sprites/notification.png.mcmeta
@@ -0,0 +1,10 @@
+{
+ "gui": {
+ "scaling": {
+ "type": "nine_slice",
+ "width": 160,
+ "height": 32,
+ "border": 4
+ }
+ }
+} \ No newline at end of file