Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
6d2e4cc
init
JTXOfficial Sep 29, 2025
b1705ea
right click settings on mod fixed
JTXOfficial Sep 29, 2025
5d45463
added on/off switch in all mod settings
JTXOfficial Sep 29, 2025
2fea14d
Added coordinates feature
JTXOfficial Sep 29, 2025
d696300
Fixed saving/loading mod settings
JTXOfficial Sep 29, 2025
9505c65
Added ping feature
JTXOfficial Sep 29, 2025
ab4fefe
Fixed saving/loading for enable/disable
JTXOfficial Sep 29, 2025
96a926e
Fixed sizing in mod settings
JTXOfficial Oct 1, 2025
3528bed
Sprint Toggle feature added
JTXOfficial Oct 1, 2025
3cca5e4
Complete GUI system overhaul with custom framework and extensive feat…
JTXOfficial Oct 18, 2025
bc0a9c1
feat: CPS counter
JTXOfficial Oct 18, 2025
44caa26
feat: BreadCrumbs
JTXOfficial Oct 18, 2025
75407ea
feat: search bar for mods
JTXOfficial Oct 18, 2025
b24ef01
feat: Changed minecraft title
JTXOfficial Oct 18, 2025
a137ffe
fix: Moved top category bar a bit
JTXOfficial Oct 18, 2025
94fd870
feat: ExplosionBox mod
JTXOfficial Oct 18, 2025
d803a50
fix: wording in SprintToggle and BreadCrumbs
JTXOfficial Oct 18, 2025
35315c1
feat: Spotify mod
JTXOfficial Oct 21, 2025
67cd853
feat: Groups
JTXOfficial Oct 24, 2025
8d3da92
fix: Group authentication
JTXOfficial Oct 24, 2025
30916d9
fix: event handler for groups
JTXOfficial Oct 26, 2025
16478b4
feat: Direction Hud
JTXOfficial Oct 31, 2025
fdf4561
stuff
JTXOfficial Nov 3, 2025
a5905ab
fix: Direction Hud idicator
JTXOfficial Nov 10, 2025
6f35622
add: temp cosmetic page
JTXOfficial Nov 10, 2025
79f4d9b
feat: Logo tag rendering
JTXOfficial Nov 12, 2025
6057bbf
fix: Font rendering
JTXOfficial Nov 12, 2025
79fbcbb
feat: MiniMap added
JTXOfficial Nov 14, 2025
9e2eda1
feat: View your group members in minimap
JTXOfficial Nov 17, 2025
a449859
fix: Group disbanding
JTXOfficial Nov 17, 2025
2f420f8
fix: Cleaner ground texturing
JTXOfficial Nov 18, 2025
e44dbcc
some refactoring
JTXOfficial Nov 18, 2025
2b5e898
fix: Minimap positions
JTXOfficial Nov 19, 2025
d88d31d
feat: Render FPS Optmization
JTXOfficial Nov 19, 2025
ead47db
FPS Improvement
JTXOfficial Nov 19, 2025
66469b0
feat: Chunk Border added
JTXOfficial Nov 19, 2025
eb3b933
Verticle Scroll gui fix
JTXOfficial Nov 21, 2025
c3f2cd4
Removed useless regex as no longer needed
JTXOfficial Nov 21, 2025
17ced34
Refactoring
JTXOfficial Nov 25, 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
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
run/
build/
.gradle/

devauth/
27 changes: 24 additions & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ plugins {
id("com.github.johnrengelman.shadow") version "8.1.1"
}

//Constants:

val baseGroup: String by project
val mcVersion: String by project
val version: String by project
Expand Down Expand Up @@ -67,6 +65,9 @@ repositories {
maven("https://repo.spongepowered.org/maven/")
// If you don't want to log in with your real minecraft account, remove this line
maven("https://pkgs.dev.azure.com/djtheredstoner/DevAuth/_packaging/public/maven/v1")
maven("https://repo.essential.gg/repository/maven-public/")
maven("https://jitpack.io")

}

val shadowImpl: Configuration by configurations.creating {
Expand All @@ -87,6 +88,25 @@ dependencies {
// If you don't want to log in with your real minecraft account, remove this line
runtimeOnly("me.djtheredstoner:DevAuth-forge-legacy:1.2.1")

shadowImpl("gg.essential:elementa:710")
shadowImpl("gg.essential:universalcraft-1.8.9-forge:427")

// Kotlin stdlib required by Elementa
shadowImpl("org.jetbrains.kotlin:kotlin-stdlib:1.8.0")
shadowImpl("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0")

shadowImpl("org.reflections:reflections:0.9.12")
shadowImpl("it.unimi.dsi:fastutil:8.5.6")

// WebSocket client for player tracking
shadowImpl("org.java-websocket:Java-WebSocket:1.5.3")

// JSON parsing
shadowImpl("com.google.code.gson:gson:2.10.1")

// Spotify API
shadowImpl("com.github.LabyStudio:java-spotify-api:+:all")

}

// Tasks:
Expand All @@ -98,6 +118,7 @@ tasks.withType(JavaCompile::class) {
tasks.withType(org.gradle.jvm.tasks.Jar::class) {
archiveBaseName.set(modid)
manifest.attributes.run {
this["Implementation-Version"] = project.version
this["FMLCorePluginContainsFMLMod"] = "true"
this["ForceLoadAsMod"] = "true"

Expand Down Expand Up @@ -125,6 +146,7 @@ tasks.processResources {

val remapJar by tasks.named<net.fabricmc.loom.task.RemapJarTask>("remapJar") {
archiveClassifier.set("")
archiveVersion.set("")
from(tasks.shadowJar)
input.set(tasks.shadowJar.get().archiveFile)
}
Expand All @@ -149,4 +171,3 @@ tasks.shadowJar {
}

tasks.assemble.get().dependsOn(tasks.remapJar)

2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ org.gradle.jvmargs=-Xmx2g
baseGroup = com.github.jtxofficial.flustclient
mcVersion = 1.8.9
modid = flustclient
version = 1.0.0
version = beta-v0.1
16 changes: 0 additions & 16 deletions src/main/java/com/github/jtxofficial/flustclient/ExampleMod.java

This file was deleted.

98 changes: 98 additions & 0 deletions src/main/java/com/github/jtxofficial/flustclient/FlustClient.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
package com.github.jtxofficial.flustclient;

import com.github.jtxofficial.flustclient.network.client.SocketClient;
import com.github.jtxofficial.flustclient.api.textures.TextureLoader;
import com.github.jtxofficial.flustclient.event.KeyHandler;
import com.github.jtxofficial.flustclient.event.NametagRenderHandler;
import com.github.jtxofficial.flustclient.event.PositionBroadcastHandler;
import com.github.jtxofficial.flustclient.event.SocketEventHandler;
import com.github.jtxofficial.flustclient.event.TabOverlayHandler;
import com.github.jtxofficial.flustclient.manager.ModuleManager;
import com.github.jtxofficial.flustclient.manager.HudManager;
import com.github.jtxofficial.flustclient.manager.PlayerManager;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

@Mod(modid = FlustClient.MODID, version = FlustClient.VERSION, name = FlustClient.NAME)
public class FlustClient {

public static final String MODID = "flustclient";
public static final String VERSION = "beta-v0.1";
public static final String NAME = "FlustClient";

@Mod.Instance(MODID)
public static FlustClient INSTANCE;

private KeyHandler keyHandler;
private ModuleManager moduleManager;
private HudManager hudManager;
private PlayerManager playerManager;
private SocketEventHandler socketEventHandler;

@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
System.out.println("FlustClient is loading...");
System.out.println("Initializing mixins and client features...");

// Initialize texture arrays
TextureLoader.setupArrays();
}

@Mod.EventHandler
public void init(FMLInitializationEvent event) {
System.out.println("FlustClient loaded successfully!");
System.out.println("Version: " + VERSION);
System.out.println("Ready to inject mixins into Minecraft 1.8.9");

// Initialize manager system
moduleManager = new ModuleManager();
hudManager = new HudManager();
playerManager = new PlayerManager();

// Initialize managers
moduleManager.init();
hudManager.init();
playerManager.init();

// Register keybindings (must be done before event handler registration)
KeyHandler.registerKeybindings();

// Register event handlers
keyHandler = new KeyHandler();
MinecraftForge.EVENT_BUS.register(keyHandler);

// Initialize player tracking system
socketEventHandler = new SocketEventHandler();
MinecraftForge.EVENT_BUS.register(socketEventHandler);

// Register custom tab overlay handler
TabOverlayHandler tabOverlayHandler = new TabOverlayHandler();
MinecraftForge.EVENT_BUS.register(tabOverlayHandler);

// Register nametag render handler for showing icons
NametagRenderHandler nametagRenderHandler = new NametagRenderHandler();
MinecraftForge.EVENT_BUS.register(nametagRenderHandler);

// Register position broadcast handler for group member tracking
PositionBroadcastHandler positionBroadcastHandler = new PositionBroadcastHandler();
MinecraftForge.EVENT_BUS.register(positionBroadcastHandler);

// Connect to WebSocket server
new Thread(() -> {
try {
System.out.println("Connecting to WebSocket server...");
SocketClient.initialize();
} catch (Exception e) {
System.err.println("Failed to connect to WebSocket: " + e.getMessage());
}
}).start();

// Start HTTP backup polling (as fallback)
// Disabled: Using WebSocket for real-time player tracking instead
// PlayerAPIClient.getInstance().startPolling();

System.out.println("FlustClient manager system initialized!");
}
}
21 changes: 21 additions & 0 deletions src/main/java/com/github/jtxofficial/flustclient/api/FlustAPI.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.github.jtxofficial.flustclient.api;

import net.minecraft.client.Minecraft;
import net.minecraft.util.ChatComponentText;

public class FlustAPI {
private static final FlustAPI instance = new FlustAPI();

public static FlustAPI get() {
return instance;
}

public void sendMessage(String message) {
if (Minecraft.getMinecraft().thePlayer != null) {
String formattedMessage = message.replaceAll("&([0-9a-fA-Fk-oK-OrR])", "§$1");
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(formattedMessage));
} else {
System.out.println(message);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.github.jtxofficial.flustclient.api.colors;


public final class GuiColorPalette {


public static int getToggleColor(boolean bool) {
return bool ? 0xFF17fc03 : 0xfffc0303;
}

public static int getBackgroundColor() {
return 0xd9121116;
}

public static int getBackgroundColor2(){
return 0xd90f1313;
}

public static int getLineColor(){
return 0xFF19191c;
}

public static int getPrimaryColor() { return 0xFFFF7A00; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.github.jtxofficial.flustclient.api.fonts;

public class CharacterData {
private int x;
private int y;
private int width;
private int height;

public CharacterData(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}

public int getX() {
return x;
}

public int getY() {
return y;
}

public int getWidth() {
return width;
}

public int getHeight() {
return height;
}
}
Loading