Skip to content
Draft
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
5d7bf8e
Reworked LazerTimer
7azeemm Dec 12, 2025
6e54271
Made `muteEndermanSounds` true by default
7azeemm Dec 12, 2025
b3070e1
Option to hide miniboss spawn message in chat
7azeemm Dec 13, 2025
4d99e7a
Boss kill time is now sent on boss death instead of relying on chat m…
7azeemm Dec 13, 2025
7e11fff
Fixed sound alert volume being too low and changed title alert to min…
7azeemm Dec 13, 2025
78ebebd
made new personal best shows in titleContainer
7azeemm Dec 13, 2025
1952562
Added option for showing miniboss name in alert
7azeemm Dec 13, 2025
8456088
Unclaimed slayer lvl rewards highlighter
7azeemm Dec 13, 2025
425c59e
Fixed Bossbar not removed after boss kill
7azeemm Dec 13, 2025
b5f2094
Simplified few things
7azeemm Dec 13, 2025
83bc3ea
Mute blaze sounds feature
7azeemm Dec 14, 2025
a71958a
Fixed Quest Detection
7azeemm Dec 14, 2025
7244829
Cached slayers info
7azeemm Dec 15, 2025
e0db514
Slayer HUD now uses slayer's custom head texture instead of mob drop …
7azeemm Dec 15, 2025
14bb8ad
Improved Miniboss detection performance and Fixed alerting for higher…
7azeemm Dec 15, 2025
263b48d
Improvements to Boss Detection and other stuff
7azeemm Dec 16, 2025
c0f0203
Added option to mute wolf sounds
7azeemm Dec 16, 2025
0c81d6b
Separated BossFight and SlayerQuest so player can select other people…
7azeemm Dec 17, 2025
78d7ebf
Option to hide Sven Pup's nametag
7azeemm Dec 17, 2025
d7c6490
Added Highlight Color option and Fixed Hitbox wasn't working, also `a…
7azeemm Dec 17, 2025
99ad765
Added hide hellion shield filter
7azeemm Dec 17, 2025
6329bcb
Added Timer to BeaconHighlighter
7azeemm Dec 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public static class TheEnd {

public boolean waypoint = true;

public boolean muteEndermanSounds = false;
public boolean muteEndermanSounds = true;

public int x = 10;

Expand Down
20 changes: 4 additions & 16 deletions src/main/java/de/hysky/skyblocker/mixins/EntityMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.player.PlayerEntity;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
Expand All @@ -33,9 +32,6 @@ public abstract class EntityMixin {
@Shadow
public abstract EntityType<?> getType();

@Shadow
public abstract @Nullable Entity getVehicle();

@Shadow
public abstract boolean isInvisible();

Expand All @@ -52,9 +48,8 @@ private boolean modifyStartRidingReturnValue(boolean originalReturnValue, Entity
&& this.getType() == EntityType.ENDERMAN
&& entity.getType() == EntityType.ARMOR_STAND) {
Entity slayer = SlayerManager.getSlayerBoss();
if (slayer != null && slayer.getUuid().equals(getUuid()) && !LazerTimer.isRiding()) {
LazerTimer.resetTimer();
LazerTimer.setRiding(true);
if (slayer != null && slayer.getUuid().equals(getUuid()) && !LazerTimer.isActive()) {
LazerTimer.activate();
}
}
}
Expand All @@ -64,15 +59,8 @@ private boolean modifyStartRidingReturnValue(boolean originalReturnValue, Entity
@Inject(method = "tick", at = @At("TAIL"))
private void onTick(CallbackInfo ci) {
if (this.getType() == EntityType.ENDERMAN && SkyblockerConfigManager.get().slayers.endermanSlayer.lazerTimer && SlayerManager.isInSlayerType(SlayerType.VOIDGLOOM)) {
if (SlayerManager.getSlayerBoss() != null && getUuid().equals(SlayerManager.getSlayerBoss().getUuid())) {
if (LazerTimer.isRiding()) {
if (getVehicle() == null) {
if (LazerTimer.remainingTime > 5.0) return;
LazerTimer.setRiding(false);
} else {
LazerTimer.updateTimer();
}
}
if (SlayerManager.getSlayerBoss() != null && getUuid().equals(SlayerManager.getSlayerBoss().getUuid()) && LazerTimer.isActive()) {
LazerTimer.tick();
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,50 +9,42 @@
import net.minecraft.util.Formatting;

public class LazerTimer {
public static double remainingTime = 0;
private static boolean isRiding = false;
private static long lastPhaseTime;
private static double remainingTime;
private static boolean active;

@Init
public static void init() {
WorldRenderExtractionCallback.EVENT.register(LazerTimer::extractRendering);
}

public static void updateTimer() {
if (isRiding) {
if (!SlayerManager.isBossSpawned()) {
isRiding = false;
return;
}
public static void tick() {
remainingTime -= 0.05;

remainingTime -= 0.05;
if (remainingTime <= 0) {
isRiding = false;
}
if (remainingTime <= 0 || !SlayerManager.isBossSpawned()) {
active = false;
}
}

public static void resetTimer() {
remainingTime = 8.0;
}

public static boolean isRiding() {
return isRiding;
}

public static void setRiding(boolean riding) {
isRiding = riding;
public static void activate() {
if (System.currentTimeMillis() - lastPhaseTime >= 10000) {
lastPhaseTime = System.currentTimeMillis();
remainingTime = 8;
active = true;
}
}

private static void extractRendering(PrimitiveCollector collector) {
if (isRiding) {
if (active) {
Entity boss = SlayerManager.getSlayerBoss();
if (boss != null) {
String timeText = String.format("%.2fs", remainingTime);
Text renderText = Text.literal("Lazer: ").formatted(Formatting.WHITE)
.append(Text.literal(timeText).formatted(Formatting.GREEN).formatted(Formatting.BOLD));

collector.submitText(renderText, boss.getEntityPos().add(0, 2, 0), true);
Text text = Text.literal(String.format("%.1fs", remainingTime)).formatted(Formatting.AQUA);
collector.submitText(text, boss.getEntityPos().add(0, 1.5, 0), 3, true);
}
}
}

public static boolean isActive() {
return active;
}
}
Loading