Skip to content

Commit

Permalink
TIMERRRR
Browse files Browse the repository at this point in the history
Also cleaned up alot
  • Loading branch information
Tripp1e committed Feb 5, 2024
1 parent a56d17c commit d2f8ef3
Show file tree
Hide file tree
Showing 9 changed files with 192 additions and 80 deletions.
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ repositories {
mavenCentral()
maven { url "https://maven.isxander.dev/releases" }
maven { url "https://maven.terraformersmc.com/releases" }
maven { url "https://server.bbkr.space/artifactory/libs-release" }

//Lodestone
//maven { url "https://jitpack.io" }
Expand All @@ -35,6 +36,7 @@ dependencies {

modImplementation "dev.isxander.yacl:yet-another-config-lib-fabric:${project.yacl_version}"
modImplementation "com.terraformersmc:modmenu:${project.mod_menu_version}"
//modImplementation include("io.github.cottonmc:LibGui:$project.lib_gui_version")

//Lodestone
//modImplementation include ("com.github.cph101:Lodestonelib-fabric:${project.lodestone_version}")
Expand Down
3 changes: 2 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,5 @@ archives_base_name=isleshelper
# Dependencies
fabric_version=0.95.1+1.20.4
yacl_version=3.3.2+1.20.4
mod_menu_version=9.0.0
mod_menu_version=9.0.0
lib_gui_version=9.2.2+1.20.2
42 changes: 42 additions & 0 deletions src/main/java/com/tripp1e/isleshelper/Events.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.tripp1e.isleshelper;

import com.tripp1e.isleshelper.bossrush.Frog;
import com.tripp1e.isleshelper.bossrush.General;
import com.tripp1e.isleshelper.config.ConfigManager;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
import net.minecraft.client.MinecraftClient;
import net.minecraft.util.math.ColorHelper;

public class Events {
public static void hudRenderCallback() {
HudRenderCallback.EVENT.register((drawContext, tickDelta) -> {
if (Utils.getWorld() == null) return;

//Timer
int x = ConfigManager.get().general.generalX;
int y = ConfigManager.get().general.generalY;
int color = ColorHelper.Argb.getArgb(255, 255, 255, 255);

if (Utils.isInBoss()) drawContext.drawTextWithShadow(MinecraftClient.getInstance().textRenderer, General.deltaTime, x, y, color);
}
);
}

public static void startClientTick() {
ClientTickEvents.START_CLIENT_TICK.register(client -> {
if (Utils.getWorld() == null) return;

//General
if (ConfigManager.get().general.generalTeammateDeathMessage) General.teamDeathNotify();
if (ConfigManager.get().general.generalOnlyPartyChats) General.onlyPartyMessages();
if (ConfigManager.get().general.generalTimerEnabled) General.timer();

//Frog
if (Utils.getBoss().equals("frog")) {
if (ConfigManager.get().general.frogStomachWarning) Frog.stomachExplodeWarn();
}
});
}

}
26 changes: 3 additions & 23 deletions src/main/java/com/tripp1e/isleshelper/IslesHelperClient.java
Original file line number Diff line number Diff line change
@@ -1,42 +1,22 @@
package com.tripp1e.isleshelper;

import com.tripp1e.isleshelper.bossrush.Frog;
import com.tripp1e.isleshelper.bossrush.General;
import com.tripp1e.isleshelper.config.ConfigManager;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class IslesHelperClient implements ClientModInitializer {
public static String MOD_ID = "isleshelper";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);

@Override
public void onInitializeClient() {
LOGGER.info("Jesser where is the cocainer");
tick();
ConfigManager.init();
}


//Runs every tick
private void tick() {
ClientTickEvents.START_CLIENT_TICK.register(client -> {
if (client.player != null && client.world != null && client.world.isClient) {
//General
if (ConfigManager.get().general.generalTeammateDeathMessage) General.teamDeathNotify();
if (ConfigManager.get().general.generalOnlyPartyChats) General.onlyPartyMessages();

//Frog
if (client.world.getRegistryKey().getValue().toString().contains("frog")) {
if (ConfigManager.get().general.frogStomachWarning) Frog.stomachExplodeWarn();
}
}
});
ClientTickEvents.END_CLIENT_TICK.register(client -> {
if (ConfigManager.get().general.generalOnlyPartyChats) General.onlyPartyMessages();
});
Events.hudRenderCallback();
Events.startClientTick();
}

}
51 changes: 44 additions & 7 deletions src/main/java/com/tripp1e/isleshelper/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,66 @@

import dev.isxander.yacl3.api.Option;
import dev.isxander.yacl3.api.controller.BooleanControllerBuilder;
import dev.isxander.yacl3.api.controller.IntegerSliderControllerBuilder;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.hud.InGameHud;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.text.Text;
import net.minecraft.world.World;

import java.util.Arrays;
import java.util.List;

public class Utils{

public static PlayerEntity getPlayer() {
return MinecraftClient.getInstance().player;
public static PlayerEntity getPlayer() {return MinecraftClient.getInstance().player;}
public static World getWorld() {return MinecraftClient.getInstance().world;}
public static InGameHud getHUD() {return MinecraftClient.getInstance().inGameHud;}
public static List<String> bosses = Arrays.asList("reaper", "queen", "nanook", "frog", "turtle", "dragon");

public static String getBoss() {
return bosses.stream()
.filter(e -> getWorld().getRegistryKey().getValue().toString().contains(e))
.findFirst().orElse("none");
}

public static String getBossType() {
String registryValue = getWorld().getRegistryKey().getValue().toString();
return registryValue.contains("rookie") ? "rookie" : (registryValue.contains("expert") ? "expert" : "other");
}
public static World getWorld() {
return MinecraftClient.getInstance().world;

public static boolean isInBoss() {
return bosses.stream()
.anyMatch(e -> getWorld().getRegistryKey().getValue().toString().contains(e));
}

public static void sendTitle(String title, int fade, int stay, int leave) {
MinecraftClient instance = MinecraftClient.getInstance();
instance.inGameHud.setTitleTicks(fade, stay, leave);
instance.inGameHud.setTitle(Text.of(title));
getHUD().setTitleTicks(fade, stay, leave);
getHUD().setTitle(Text.of(title));
}

public static BooleanControllerBuilder createBooleanController(Option<Boolean> opt) {
return BooleanControllerBuilder.create(opt).yesNoFormatter().coloured(true);
}
public static IntegerSliderControllerBuilder createIntegerController(Option<Integer> opt, int min, int max) {
return IntegerSliderControllerBuilder.create(opt).step(1).range(min, max);
}

// May come in handy sometime

//if(Utils.isInBoss()) {
//WorldRenderEvents.START.register(context -> {
// MatrixStack matrices = context.matrixStack();

//VertexConsumerProvider consumers = context.consumers();

// String text = String.valueOf(deltaTime/1000D);
// getHUD().getTextRenderer().draw("TESTESTTESTTESTTESTTESTTEST", ConfigManager.get().general.generalX, ConfigManager.get().general.generalY, 0xFFFFF, true, matrices.peek().getPositionMatrix(), consumers, TextRenderer.TextLayerType.NORMAL, -67108864, LightmapTextureManager.MAX_LIGHT_COORDINATE);


// matrices.pop();
//});
//}


}
12 changes: 10 additions & 2 deletions src/main/java/com/tripp1e/isleshelper/bossrush/General.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@

public class General {

public static void teamDeathNotify(){

public static void teamDeathNotify() {
ServerEntityEvents.ENTITY_LOAD.register((entity, world) -> {
if (entity instanceof ArmorStandEntity && entity.getCustomName() != null
&& entity.getCustomName().toString().toLowerCase().contains("downed"))
Expand All @@ -16,9 +17,16 @@ public static void teamDeathNotify(){
});
}

public static void onlyPartyMessages(){
public static void onlyPartyMessages() {
ClientReceiveMessageEvents.ALLOW_CHAT.register((message, a, b, c, d) -> message.toString().toLowerCase().startsWith("party"));
}

private static double startTime = System.currentTimeMillis();
public static String deltaTime = "0";
public static void timer() {
double currentTime = System.currentTimeMillis();
if (!Utils.isInBoss()) startTime = currentTime;
deltaTime = (currentTime -startTime)/1000D + "";
}

}
13 changes: 10 additions & 3 deletions src/main/java/com/tripp1e/isleshelper/config/ConfigManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@


import com.tripp1e.isleshelper.IslesHelperClient;
import com.tripp1e.isleshelper.config.categories.GeneralCategory;
import com.tripp1e.isleshelper.config.categories.BossRushCategory;
import com.tripp1e.isleshelper.mixin.HandledScreenAccessor;
import dev.isxander.yacl3.api.YetAnotherConfigLib;
import dev.isxander.yacl3.config.v2.api.ConfigClassHandler;
Expand All @@ -28,11 +28,10 @@ public class ConfigManager {
// Utils
private static final Path PATH = FabricLoader.getInstance().getConfigDir().resolve("isleshelper.json");
public static ConfigManager get() {return HANDLER.instance();}
public static void save() {HANDLER.save();}
public static Screen createGUI(Screen parent) {
return YetAnotherConfigLib.create(ConfigManager.HANDLER, (defaults, config, builder) -> builder
.title(Text.of("IslesHelper Config"))
.category(GeneralCategory.create(defaults, config))).generateScreen(parent);
.category(BossRushCategory.create(defaults, config))).generateScreen(parent);
}

// Init
Expand Down Expand Up @@ -69,6 +68,14 @@ public static class General {
@SerialEntry
public boolean generalOnlyPartyChats = true;

//Timer
@SerialEntry
public boolean generalTimerEnabled = true;
@SerialEntry
public int generalX = 50;
@SerialEntry
public int generalY = 100;

//Frog
@SerialEntry
public boolean frogStomachWarning = true;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package com.tripp1e.isleshelper.config.categories;

import com.tripp1e.isleshelper.Utils;
import com.tripp1e.isleshelper.config.ConfigManager;
import dev.isxander.yacl3.api.ConfigCategory;
import dev.isxander.yacl3.api.Option;
import dev.isxander.yacl3.api.OptionGroup;
import net.minecraft.text.Text;

public class BossRushCategory {

public static ConfigCategory create(ConfigManager defaults, ConfigManager config) {
return ConfigCategory.createBuilder()
.name(Text.of("Boss Rush Options"))

.option(Option.<Boolean>createBuilder()
.name(Text.of("Notify when Teammate died"))
.binding(defaults.general.generalTeammateDeathMessage,
() -> config.general.generalTeammateDeathMessage,
newValue -> config.general.generalTeammateDeathMessage = newValue)
.controller(Utils::createBooleanController)
.build())

.option(Option.<Boolean>createBuilder()
.name(Text.of("Only receive Messages from your Party"))
.binding(defaults.general.generalOnlyPartyChats,
() -> config.general.generalOnlyPartyChats,
newValue -> config.general.generalOnlyPartyChats = newValue)
.controller(Utils::createBooleanController)
.build())

.group(OptionGroup.createBuilder()
.name(Text.of("Timer Options"))
.collapsed(true)

.option(Option.<Boolean>createBuilder()
.name(Text.of("Time Bossrush Runs?"))
.binding(defaults.general.generalOnlyPartyChats,
() -> config.general.generalOnlyPartyChats,
newValue -> config.general.generalOnlyPartyChats = newValue)
.controller(Utils::createBooleanController)
.build())

.option(Option.<Integer>createBuilder()
.name(Text.of("X of Timer"))
.binding(defaults.general.generalX,
() -> config.general.generalX,
newValue -> config.general.generalX = newValue)
.controller(opt->Utils.createIntegerController(opt, 0, 1000))
.build())

.option(Option.<Integer>createBuilder()
.name(Text.of("Y of Timer"))
.binding(defaults.general.generalY,
() -> config.general.generalY,
newValue -> config.general.generalY = newValue)
.controller(opt->Utils.createIntegerController(opt, 0, 500))
.build())
.build())

.group(OptionGroup.createBuilder()
.name(Text.of("Frog Options"))
.collapsed(true)

.option(Option.<Boolean>createBuilder()
.name(Text.of("Warn about explosions in the frog's stomach"))
.binding(defaults.general.frogStomachWarning,
() -> config.general.frogStomachWarning,
newValue -> config.general.frogStomachWarning = newValue)
.controller(Utils::createBooleanController)
.build())

.build())
.build();


}

}

This file was deleted.

0 comments on commit d2f8ef3

Please sign in to comment.