Skip to content

Commit 75f8812

Browse files
authored
Merge branch 'master' into feat/garden
2 parents 10314d8 + ea17a4c commit 75f8812

8,771 files changed

Lines changed: 71176 additions & 91721 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,8 @@ build/
6464
/server/forwarding.secret
6565
/configuration/config.yml
6666
/server/proxy/configuration/config.yml
67-
/store/
68-
/configuration/resourcepacks/skyblockpack/
67+
/configuration/resourcepacks/skyblockpack
68+
/configuration/resourcepacks/ravengard
69+
store/.next
70+
store/node_modules
71+
store/next-env.d.ts

AGENTS.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Agent Instructions
2+
3+
## Code Style
4+
5+
- **Minimal comments**: Do not add comments unless absolutely necessary. The codebase uses strong OOP, abstraction, and
6+
modular design - code should be self-explanatory through good naming and structure.
7+
- Only add comments for truly complex algorithms or non-obvious business logic.

CLAUDE.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
1-
# Claude Code Instructions
2-
3-
## Code Style
4-
5-
- **Minimal comments**: Do not add comments unless absolutely necessary. The codebase uses strong OOP, abstraction, and modular design - code should be self-explanatory through good naming and structure.
6-
- Only add comments for truly complex algorithms or non-obvious business logic.
1+
@AGENTS.md

DockerFiles/Dockerfile.game_server

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@ RUN curl -fSL -o HypixelCore.jar "https://github.com/Swofty-Developments/Hypixel
1111
curl -fSL -o ServiceBazaar.jar "https://github.com/Swofty-Developments/HypixelSkyBlock/releases/download/latest/ServiceBazaar.jar" && \
1212
curl -fSL -o ServiceItemTracker.jar "https://github.com/Swofty-Developments/HypixelSkyBlock/releases/download/latest/ServiceItemTracker.jar" && \
1313
curl -fSL -o ServiceDataMutex.jar "https://github.com/Swofty-Developments/HypixelSkyBlock/releases/download/latest/ServiceDataMutex.jar" && \
14-
curl -fSL -o ServiceParty.jar "https://github.com/Swofty-Developments/HypixelSkyBlock/releases/download/latest/ServiceParty.jar" && \
15-
curl -fSL -o ServiceDarkAuction.jar "https://github.com/Swofty-Developments/HypixelSkyBlock/releases/download/latest/ServiceDarkAuction.jar" && \
16-
curl -fSL -o ServiceOrchestrator.jar "https://github.com/Swofty-Developments/HypixelSkyBlock/releases/download/latest/ServiceOrchestrator.jar" && \
17-
curl -fSL -o ServiceFriend.jar "https://github.com/Swofty-Developments/HypixelSkyBlock/releases/download/latest/ServiceFriend.jar"
14+
curl -fSL -o ServiceParty.jar "https://github.com/Swofty-Developments/HypixelSkyBlock/releases/download/latest/ServiceParty.jar" && \
15+
curl -fSL -o ServiceDarkAuction.jar "https://github.com/Swofty-Developments/HypixelSkyBlock/releases/download/latest/ServiceDarkAuction.jar" && \
16+
curl -fSL -o ServiceOrchestrator.jar "https://github.com/Swofty-Developments/HypixelSkyBlock/releases/download/latest/ServiceOrchestrator.jar" && \
17+
curl -fSL -o ServiceFriend.jar "https://github.com/Swofty-Developments/HypixelSkyBlock/releases/download/latest/ServiceFriend.jar" && \
18+
curl -fSL -o ServiceStore.jar "https://github.com/Swofty-Developments/HypixelSkyBlock/releases/download/latest/ServiceStore.jar"
1819

1920
# Copy configuration data
2021
COPY ./configuration /app/configuration_files

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,4 @@ Thanks to the Minestom community and all [contributors](https://github.com/Swoft
6767

6868
## License
6969

70-
See repository for license details.
70+
See the repository for license details.

build.gradle.kts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
buildscript {
2+
configurations.classpath {
3+
resolutionStrategy.force(
4+
"org.ow2.asm:asm:9.10.1",
5+
"org.ow2.asm:asm-analysis:9.10.1",
6+
"org.ow2.asm:asm-commons:9.10.1",
7+
"org.ow2.asm:asm-tree:9.10.1",
8+
"org.ow2.asm:asm-util:9.10.1",
9+
)
10+
}
11+
}
12+
113
plugins {
214
base
315
java

clientmod/README.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Client Mod
2+
3+
This is a 26.2 mod meant for the developers of this project to easily capture data from Minecraft servers.
4+
5+
## Features
6+
7+
- `/getskins <radius>` Gets the information of player's or NPC's skins in the defined radius.
8+
- `/getarmorstandcolors <radius>` Gets the color information of armor stands in the defined radius.
9+
- `/getarmorstandinfos <radius>` Gets the position information of armor stands in the defined radius. (wip)
10+
- `/getscoreboardinfo` Prints out the scoreboard information in chat.
11+
- `/copymaptexture [all]` Copy's the texture of a map to the clipboard.
12+
- `/chunkexporter start` starts a chunk-only export.
13+
- `/chunkexporter start block_displays` includes stationary block and item displays.
14+
- `/chunkexporter start ravengard <name>` starts or resumes a named stitched Ravengard capture. Stop it with
15+
`/chunkexporter stop <name>`; checkpoints are stored in `.minecraft/chunkexporter_sessions`.
16+
- `/chunkexporter status` shows the active capture counts.
17+
- `/nbsrecord start`, `/nbsrecord stop <name>`, `/nbsrecord status` records inbound server sounds to
18+
`nbs-recordings/<name>.nbs` and exports custom instrument sounds.
19+
- `Keybind K` Copies the texture ID of the hovered player head into the clipboard.
20+
- `Keybind L` Copies the lore of the hovered item.
21+
- `Keybind I` Selects the entity under the crosshair and opens a client-only inspector for inbound packets referencing
22+
it, its passengers/vehicle, or entities within 1.5 blocks.

clientmod/build.gradle.kts

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
import org.gradle.jvm.tasks.Jar
2+
3+
plugins {
4+
alias(libs.plugins.fabric.loom)
5+
`maven-publish`
6+
}
7+
8+
version = "0.1.0"
9+
group = "gg.itzkatze.hypixelrecreationmod"
10+
11+
base {
12+
archivesName.set("hypixelrecreationmod")
13+
}
14+
15+
loom {
16+
splitEnvironmentSourceSets()
17+
18+
mods {
19+
create("thehypixelrecreationmod") {
20+
sourceSet(sourceSets["client"])
21+
}
22+
}
23+
}
24+
25+
sourceSets {
26+
named("main") {
27+
java.setSrcDirs(emptyList<String>())
28+
resources.setSrcDirs(emptyList<String>())
29+
}
30+
31+
named("client") {
32+
java.setSrcDirs(listOf("src/main/java"))
33+
resources.setSrcDirs(listOf("src/main/resources"))
34+
}
35+
}
36+
37+
repositories {
38+
exclusiveContent {
39+
forRepository {
40+
maven("https://api.modrinth.com/maven")
41+
}
42+
43+
filter {
44+
includeGroup("maven.modrinth")
45+
}
46+
}
47+
48+
maven("https://repo.papermc.io/repository/maven-public/")
49+
maven("https://repo.hypixel.net/repository/Hypixel/")
50+
51+
maven {
52+
name = "sonatype-oss-snapshots1"
53+
url = uri(
54+
"https://s01.oss.sonatype.org/content/repositories/snapshots/"
55+
)
56+
57+
mavenContent {
58+
snapshotsOnly()
59+
}
60+
}
61+
62+
mavenLocal()
63+
}
64+
65+
val shaded = configurations.create("shaded") {
66+
isCanBeResolved = true
67+
isCanBeConsumed = false
68+
}
69+
70+
configurations.named("implementation") {
71+
extendsFrom(shaded)
72+
}
73+
74+
dependencies {
75+
minecraft(libs.minecraft)
76+
77+
implementation(libs.fabric.loader)
78+
implementation(libs.joml)
79+
include(libs.joml)
80+
81+
shaded(libs.adventure.text.serializer.legacy)
82+
shaded(libs.adventure.api)
83+
shaded(libs.adventure.text.logger.slf4j)
84+
shaded(libs.adventure.nbt)
85+
86+
shaded(libs.minestom) {
87+
exclude(group = "net.kyori")
88+
}
89+
90+
shaded(libs.polar) {
91+
exclude(group = "net.kyori")
92+
}
93+
94+
implementation(libs.hypixel.mod.api)
95+
implementation(libs.hypixel.mod.api.fabric)
96+
97+
implementation(libs.fabric.api)
98+
implementation(libs.adventure.platform.fabric)
99+
include(libs.adventure.platform.fabric)
100+
}
101+
102+
val copyShadedDependencies =
103+
tasks.register<Copy>("copyShadedDependencies") {
104+
description = "copies shaded dependencies"
105+
from(shaded)
106+
into(layout.buildDirectory.dir("libs/shaded"))
107+
}
108+
109+
tasks.named("build") {
110+
dependsOn(copyShadedDependencies)
111+
}
112+
113+
tasks.named<Jar>("jar") {
114+
from({
115+
shaded.map { dependency ->
116+
if (dependency.isDirectory) {
117+
dependency
118+
} else {
119+
zipTree(dependency)
120+
}
121+
}
122+
}) {
123+
exclude("META-INF/**")
124+
exclude("net/minestom/server/adventure/provider/**")
125+
}
126+
127+
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
128+
}
129+
130+
tasks.withType<JavaCompile>().configureEach {
131+
options.release.set(25)
132+
}
133+
134+
java {
135+
toolchain {
136+
languageVersion.set(JavaLanguageVersion.of(25))
137+
}
138+
139+
withSourcesJar()
140+
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package gg.itzkatze.thehypixelrecreationmod;
2+
3+
import gg.itzkatze.thehypixelrecreationmod.commands.*;
4+
import gg.itzkatze.thehypixelrecreationmod.features.KeybindRegistry;
5+
import gg.itzkatze.thehypixelrecreationmod.features.SpraySchemaRecorder;
6+
import gg.itzkatze.thehypixelrecreationmod.features.guicapture.GuiCaptureRecorder;
7+
import gg.itzkatze.thehypixelrecreationmod.features.packetlog.EntityPacketLogger;
8+
import gg.itzkatze.thehypixelrecreationmod.features.worldexport.ChunkExportRecorder;
9+
import net.fabricmc.api.ClientModInitializer;
10+
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
11+
import net.hypixel.modapi.HypixelModAPI;
12+
import net.hypixel.modapi.fabric.event.HypixelModAPICallback;
13+
import net.hypixel.modapi.packet.impl.clientbound.event.ClientboundLocationPacket;
14+
import org.slf4j.Logger;
15+
import org.slf4j.LoggerFactory;
16+
17+
public final class TheHypixelRecreationMod implements ClientModInitializer {
18+
public static final String MOD_ID = "thehypixelrecreationmod";
19+
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
20+
21+
@Override
22+
public void onInitializeClient() {
23+
LOGGER.info("Initialized");
24+
25+
registerCommands();
26+
KeybindRegistry.register();
27+
registerTickHandlers();
28+
registerHypixelApiHandlers();
29+
}
30+
31+
private static void registerCommands() {
32+
PlayerSkinCommand.register();
33+
RavengardNPCCommand.register();
34+
GetArmorStandArmorColorsCommand.register();
35+
GetArmorStandInfos.register();
36+
GetScoreboardInfo.register();
37+
ChunkExporterCommand.register();
38+
CopyMapTextureCommand.register();
39+
CopyBiomeData.register();
40+
FetchBlockDisplaysCommand.register();
41+
SpraySchemaRecorderCommand.register();
42+
SoundNbsRecorderCommand.register();
43+
HeldItemDataCommand.register();
44+
NearbyEntitiesCommand.register();
45+
CopyTabBossbarCommand.register();
46+
CopyAdvancementsCommand.register();
47+
LogPacketsCommand.register();
48+
RavengardSessionCommand.register();
49+
HudCaptureCommand.register();
50+
}
51+
52+
private static void registerTickHandlers() {
53+
ClientTickEvents.END_CLIENT_TICK.register(_ -> {
54+
ChunkExportRecorder.tick();
55+
SpraySchemaRecorder.tick();
56+
EntityPacketLogger.tick();
57+
gg.itzkatze.thehypixelrecreationmod.features.packetlog.RavengardSessionLogger.tick();
58+
GuiCaptureRecorder.tick(net.minecraft.client.Minecraft.getInstance());
59+
});
60+
}
61+
62+
private static void registerHypixelApiHandlers() {
63+
HypixelModAPI.getInstance().subscribeToEventPacket(ClientboundLocationPacket.class);
64+
65+
HypixelModAPICallback.EVENT.register(clientboundHypixelPacket ->
66+
LOGGER.info("ClientboundHypixelPacket: {}", clientboundHypixelPacket));
67+
68+
HypixelModAPI.getInstance().createHandler(ClientboundLocationPacket.class, packet ->
69+
LOGGER.info("ClientboundLocationPacket: {}", packet));
70+
}
71+
}

0 commit comments

Comments
 (0)