Skip to content

Commit 023737b

Browse files
author
DS ND
committed
Complete DolphinClient namespace and settings hard fork
1 parent 53870fc commit 023737b

498 files changed

Lines changed: 2783 additions & 2928 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.

‎README.md‎

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,27 @@
22

33
Dolphin Optimized is an **insanely** optimized Minecraft client/mod collection for Hypixel **1.8.9**.
44

5-
Download [Dolphin Optimized.mrpack](https://github.com/dsnsgithub/AxolotlClient-Fork/releases), then drag it into Prism Launcher to run.
5+
Download [Dolphin Optimized.mrpack](https://github.com/dsnsgithub/DolphinClient/releases), then drag it into Prism Launcher to run.
66

77
<img width="1000" alt="2026-08-26_15 20 15" src="https://github.com/user-attachments/assets/6bfbac4f-85e6-42da-98d7-ef623f73ca2e" />
88

99
Open the client menu in-game with **Right Shift**.
1010
<img width="1000" alt="image" src="https://github.com/user-attachments/assets/b525cfba-501c-45a5-9a09-98d920e68135" />
1111

12+
### Configuration
13+
14+
DolphinClient uses `io.github.dolphinclient` for its own code and stores client
15+
settings, including the integrated 1.7 animations, in
16+
`config/dolphinclient/profiles/<profile-id>/dolphinclient.json`.
17+
Profile metadata and custom HUD layouts remain in the same DolphinClient directory.
18+
The bundled pack includes its animation defaults in that single settings file.
19+
20+
This hard fork no longer imports AxolotlClient settings, loads its module
21+
entrypoints, or advertises its mod IDs. Existing DolphinClient profiles continue
22+
to work; animation options use defaults when absent from a profile.
23+
The published AxolotlClient config/rendering libraries retain their upstream
24+
coordinates and API namespaces, as do the copyright and fork attribution labels.
25+
1226
### Performance
1327
When I say **insanely optimized**, I mean it. Most "optimization" clients still use Forge and Optifine, which can't compete with modern optimizations afforded by Fabric.
1428
The combination of backporting modern optimizations + the relatively lightweight 1.8 Minecraft version means it **smokes** every other popular 1.8.9 client.

‎build.gradle.kts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ plugins {
1212
}
1313

1414
version = "${project.version}"
15-
group = "io.github.axolotlclient"
15+
group = "io.github.dolphinclient"
1616

1717
repositories {
1818
maven {

‎common/build.gradle.kts‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ dependencies {
4242
compileOnly("org.slf4j:slf4j-api:2.0.1")
4343

4444
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
45+
testImplementation("io.github.axolotlclient.AxolotlClient-config:AxolotlClientConfig-common:${project.property("config")}")
46+
testImplementation("com.google.code.gson:gson:2.10")
47+
testRuntimeOnly("org.slf4j:slf4j-api:2.0.1")
4548
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
4649
}
4750

@@ -130,7 +133,7 @@ tasks.shadowJar {
130133
exclude(dependency("com.kohlschutter.junixsocket:junixsocket-native-common:.*"))
131134
}
132135

133-
relocate("com.jagrosh", "io.github.axolotlclient.shadow.jagrosh")
136+
relocate("com.jagrosh", "io.github.dolphinclient.shadow.jagrosh")
134137

135138
append("../LICENSE")
136139
}

‎common/src/main/java/io/github/axolotlclient/config/ConfigPathMigration.java‎

Lines changed: 0 additions & 107 deletions
This file was deleted.

common/src/main/java/io/github/axolotlclient/DolphinClientCommon.java renamed to common/src/main/java/io/github/dolphinclient/DolphinClientCommon.java

Lines changed: 34 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -22,50 +22,48 @@
2222
*/
2323

2424

25-
package io.github.axolotlclient;
25+
package io.github.dolphinclient;
2626

2727
import java.io.IOException;
2828
import java.nio.file.Files;
2929
import java.nio.file.Path;
3030
import java.util.ArrayList;
31+
import java.util.HashMap;
3132
import java.util.List;
3233

3334
import com.google.common.base.Preconditions;
3435
import io.github.axolotlclient.AxolotlClientConfig.api.AxolotlClientConfig;
3536
import io.github.axolotlclient.AxolotlClientConfig.api.manager.ConfigManager;
3637
import io.github.axolotlclient.AxolotlClientConfig.api.ui.ConfigUI;
38+
import io.github.axolotlclient.AxolotlClientConfig.impl.ui.StyleImpl;
3739
import io.github.axolotlclient.AxolotlClientConfig.impl.managers.JsonConfigManager;
38-
import io.github.axolotlclient.AxolotlClientConfig.impl.managers.VersionedJsonConfigManager;
39-
import io.github.axolotlclient.bridge.events.Events;
40-
import io.github.axolotlclient.bridge.util.AxoIdentifier;
41-
import io.github.axolotlclient.bridge.util.AxoProfiler;
42-
import io.github.axolotlclient.config.ConfigPathMigration;
43-
import io.github.axolotlclient.config.migration.ConfigMigration;
44-
import io.github.axolotlclient.config.profiles.ProfileAware;
45-
import io.github.axolotlclient.config.profiles.Profiles;
46-
import io.github.axolotlclient.modules.Module;
47-
import io.github.axolotlclient.modules.freelook.Freelook;
48-
import io.github.axolotlclient.modules.hud.ClickInputTracker;
49-
import io.github.axolotlclient.modules.hypixel.HypixelAbstractionLayer;
50-
import io.github.axolotlclient.modules.render.BeaconBeam;
51-
import io.github.axolotlclient.modules.rpc.DiscordRPC;
52-
import io.github.axolotlclient.modules.tnttime.TntTime;
53-
import io.github.axolotlclient.modules.zoom.Zoom;
54-
import io.github.axolotlclient.util.FeatureDisablerCommon;
55-
import io.github.axolotlclient.util.Logger;
56-
import io.github.axolotlclient.util.OSUtil;
57-
import io.github.axolotlclient.util.notifications.NotificationProvider;
40+
import io.github.dolphinclient.config.ProfileConfigManager;
41+
import io.github.dolphinclient.bridge.events.Events;
42+
import io.github.dolphinclient.bridge.util.AxoIdentifier;
43+
import io.github.dolphinclient.bridge.util.AxoProfiler;
44+
import io.github.dolphinclient.config.migration.ConfigMigration;
45+
import io.github.dolphinclient.config.profiles.ProfileAware;
46+
import io.github.dolphinclient.config.profiles.Profiles;
47+
import io.github.dolphinclient.modules.Module;
48+
import io.github.dolphinclient.modules.freelook.Freelook;
49+
import io.github.dolphinclient.modules.hud.ClickInputTracker;
50+
import io.github.dolphinclient.modules.hypixel.HypixelAbstractionLayer;
51+
import io.github.dolphinclient.modules.render.BeaconBeam;
52+
import io.github.dolphinclient.modules.rpc.DiscordRPC;
53+
import io.github.dolphinclient.modules.tnttime.TntTime;
54+
import io.github.dolphinclient.modules.zoom.Zoom;
55+
import io.github.dolphinclient.util.FeatureDisablerCommon;
56+
import io.github.dolphinclient.util.Logger;
57+
import io.github.dolphinclient.util.OSUtil;
58+
import io.github.dolphinclient.util.notifications.NotificationProvider;
5859
import lombok.Getter;
5960
import net.fabricmc.loader.api.FabricLoader;
6061

6162
public abstract class DolphinClientCommon {
6263
public static final String NAME = "DolphinClient";
6364
public static final String MODID = "dolphinclient";
64-
public static final String LEGACY_MODID = "axolotlclient";
6565
public static final String COMMON_MODID = "dolphinclient-common";
66-
public static final String LEGACY_COMMON_MODID = "axolotlclient-common";
6766
public static final String CONFIG_FILE_NAME = "dolphinclient.json";
68-
public static final String LEGACY_CONFIG_FILE_NAME = "axolotlclient.json";
6967
public static final String KEY_CATEGORY = "category.dolphinclient";
7068
public static final AxoIdentifier BADGE_PATH = AxoIdentifier.of(MODID, "textures/badge.png");
7169

@@ -79,26 +77,14 @@ public static Path resolveProfileConfigFile(String file) {
7977
}
8078

8179
public static boolean isOwnNamespace(String namespace) {
82-
return MODID.equals(namespace) || LEGACY_MODID.equals(namespace);
83-
}
84-
85-
public static AxoIdentifier aliasIdentifier(AxoIdentifier id) {
86-
String namespace = id.br$getNamespace();
87-
if (LEGACY_MODID.equals(namespace)) {
88-
return AxoIdentifier.of(MODID, id.br$getPath());
89-
}
90-
if (MODID.equals(namespace)) {
91-
return AxoIdentifier.of(LEGACY_MODID, id.br$getPath());
92-
}
93-
return id;
80+
return MODID.equals(namespace);
9481
}
9582

9683
public static final boolean SHADERS_SUPPORTED = OSUtil.getOS() != OSUtil.OperatingSystem.OTHER &&
9784
!FabricLoader.getInstance().isModLoaded("vulkanmod");
9885

9986
public static final String VERSION = FabricLoader.getInstance()
10087
.getModContainer(COMMON_MODID)
101-
.or(() -> FabricLoader.getInstance().getModContainer(LEGACY_COMMON_MODID))
10288
.orElseThrow()
10389
.getMetadata()
10490
.getVersion()
@@ -170,18 +156,9 @@ private void lateModuleInit() {
170156
modules.forEach(Module::lateInit);
171157
}
172158

173-
private void migrateLegacyConfigLocation() {
174-
try {
175-
ConfigPathMigration.migrateConfigDirectory(
176-
FabricLoader.getInstance().getConfigDir(), LEGACY_MODID, MODID);
177-
} catch (IOException e) {
178-
logger.warn("Failed to migrate legacy config directory, settings may reset! ", e);
179-
}
180-
}
181-
182159
private void initConfig() {
183160
var configFile = getMainConfigFile();
184-
configManager = new VersionedJsonConfigManager(configFile, config.getConfig(), ConfigMigration.CONFIG_VERSION,
161+
configManager = new ProfileConfigManager(configFile, config.getConfig(), ConfigMigration.CONFIG_VERSION,
185162
(oldVersion, newVersion, config, json) -> {
186163
ConfigMigration.apply(oldVersion.getMajor(), json);
187164
return json;
@@ -199,8 +176,6 @@ protected final void init(NotificationProvider provider) {
199176
Preconditions.checkState(!initialized);
200177
Preconditions.checkState(instance == null);
201178

202-
migrateLegacyConfigLocation();
203-
204179
instance = this;
205180
addBuiltinCommonModules();
206181

@@ -214,8 +189,16 @@ protected final void init(NotificationProvider provider) {
214189
initConfig();
215190

216191
ConfigUI.getInstance().runWhenLoaded(() -> {
217-
ConfigUI.getInstance().addWidget("vanilla", "graphics", "io.github.axolotlclient.util.options.vanilla.AxoGraphicsWidget");
218-
ConfigUI.getInstance().addWidget("rounded", "graphics", "io.github.axolotlclient.util.options.rounded.AxoGraphicsWidget");
192+
var ui = ConfigUI.getInstance();
193+
for (String style : List.of("vanilla", "rounded")) {
194+
String widgets = "io.github.dolphinclient.util.options." + style + ".";
195+
ui.addWidget(style, "forceableboolean", widgets + "ForceableBooleanWidget");
196+
ui.addWidget(style, "generic", widgets + "GenericWidget");
197+
ui.addWidget(style, "graphics", widgets + "AxoGraphicsWidget");
198+
}
199+
ui.addStyle(new StyleImpl("vanilla-quicktoggles", new HashMap<>(), null, "vanilla"));
200+
ui.addWidget("vanilla-quicktoggles", "category",
201+
"io.github.dolphinclient.util.options.vanilla.QuickToggleCategoryWidget");
219202
lateModuleInit();
220203
});
221204

@@ -254,9 +237,6 @@ public Path getMainConfigFile() {
254237
var path = resolveProfileConfigFile(CONFIG_FILE_NAME);
255238
try {
256239
Files.createDirectories(path.getParent());
257-
path = ConfigPathMigration.resolveConfigFile(path.getParent(), CONFIG_FILE_NAME, LEGACY_CONFIG_FILE_NAME);
258-
ConfigPathMigration.migrateRootLegacyFile(
259-
FabricLoader.getInstance().getConfigDir(), path, "AxolotlClient.json", "DolphinClient.json");
260240
} catch (IOException e) {
261241
getLogger().warn("Failed to create config directory, config may not be saved correctly!", e);
262242
}

common/src/main/java/io/github/axolotlclient/DolphinClientConfigCommon.java renamed to common/src/main/java/io/github/dolphinclient/DolphinClientConfigCommon.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
* For more information, see the LICENSE file.
2222
*/
2323

24-
package io.github.axolotlclient;
24+
package io.github.dolphinclient;
2525

2626
import java.time.format.DateTimeFormatter;
2727
import java.util.Locale;
@@ -31,11 +31,11 @@
3131
import io.github.axolotlclient.AxolotlClientConfig.api.util.Color;
3232
import io.github.axolotlclient.AxolotlClientConfig.api.util.Colors;
3333
import io.github.axolotlclient.AxolotlClientConfig.impl.options.*;
34-
import io.github.axolotlclient.bridge.events.Events;
35-
import io.github.axolotlclient.bridge.key.AxoKeybinding;
36-
import io.github.axolotlclient.bridge.key.AxoKeys;
37-
import io.github.axolotlclient.util.options.ForceableBooleanOption;
38-
import io.github.axolotlclient.util.options.GenericOption;
34+
import io.github.dolphinclient.bridge.events.Events;
35+
import io.github.dolphinclient.bridge.key.AxoKeybinding;
36+
import io.github.dolphinclient.bridge.key.AxoKeys;
37+
import io.github.dolphinclient.util.options.ForceableBooleanOption;
38+
import io.github.dolphinclient.util.options.GenericOption;
3939
import net.fabricmc.loader.api.FabricLoader;
4040

4141
public abstract class DolphinClientConfigCommon {
@@ -45,7 +45,6 @@ public enum MenuButtonMode {
4545
@Override
4646
public boolean showButton() {
4747
return !(FabricLoader.getInstance().isModLoaded("modmenu")
48-
&& !FabricLoader.getInstance().isModLoaded("axolotlclient-modmenu")
4948
&& !FabricLoader.getInstance().isModLoaded("dolphinclient-modmenu"));
5049
}
5150
},

common/src/main/java/io/github/axolotlclient/bridge/AxoGameOptions.java renamed to common/src/main/java/io/github/dolphinclient/bridge/AxoGameOptions.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020
* For more information, see the LICENSE file.
2121
*/
2222

23-
package io.github.axolotlclient.bridge;
23+
package io.github.dolphinclient.bridge;
2424

25-
import io.github.axolotlclient.bridge.internal.BridgeUtil;
26-
import io.github.axolotlclient.bridge.internal.RequiresImpl;
27-
import io.github.axolotlclient.bridge.key.AxoKeybinding;
25+
import io.github.dolphinclient.bridge.internal.BridgeUtil;
26+
import io.github.dolphinclient.bridge.internal.RequiresImpl;
27+
import io.github.dolphinclient.bridge.key.AxoKeybinding;
2828

2929
public interface AxoGameOptions {
3030
@RequiresImpl

0 commit comments

Comments
 (0)