Skip to content

Commit 2839cca

Browse files
committed
Option API improvements
1 parent b2bed08 commit 2839cca

File tree

17 files changed

+209
-254
lines changed

17 files changed

+209
-254
lines changed

api/src/main/java/com/lunarclient/apollo/mods/ModStatus.java

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

api/src/main/java/com/lunarclient/apollo/mods/Mods.java

Lines changed: 88 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -126,94 +126,94 @@ public final class Mods {
126126
* @since 1.0.0
127127
*/
128128
public static final List<Class<?>> ALL_MODS = Arrays.asList(
129-
ModReplaymod.class,
130-
ModOneSevenVisuals.class,
131-
ModFps.class,
132-
ModCps.class,
133-
ModSba.class,
134-
ModToggleSneak.class,
135-
ModZoom.class,
136-
ModHypixelMod.class,
137-
ModHypixelBedwars.class,
138-
ModQuickplay.class,
139-
ModArmorstatus.class,
140-
ModKeystrokes.class,
141-
ModCoordinates.class,
142-
ModDayCounter.class,
143-
ModCrosshair.class,
144-
ModPotionEffects.class,
145-
ModDirectionHud.class,
146-
ModWaypoints.class,
147-
ModHitColor.class,
148-
ModScoreboard.class,
149-
ModTitles.class,
150-
ModItemCounter.class,
151-
ModPing.class,
152-
ModMotionBlur.class,
153-
ModPackOrganizer.class,
154-
ModChat.class,
155-
ModTab.class,
156-
ModNametag.class,
157-
ModShulkerPreview.class,
158-
ModScrollableTooltips.class,
159-
ModUhcOverlay.class,
160-
ModParticleChanger.class,
161-
ModNickHider.class,
162-
ModCooldowns.class,
163-
ModWorldeditCui.class,
164-
ModClock.class,
165-
ModStopwatch.class,
166-
ModPlaytime.class,
167-
ModMemory.class,
168-
ModCombo.class,
169-
ModReachDisplay.class,
170-
ModTimeChanger.class,
171-
ModServerAddress.class,
172-
ModSaturation.class,
173-
ModColorSaturation.class,
174-
ModItemPhysics.class,
175-
ModTntCountdown.class,
176-
ModItemTracker.class,
177-
ModShinyPots.class,
178-
Mod3dSkins.class,
179-
ModGlintColorizer.class,
180-
ModMomentum.class,
181-
ModBlockOutline.class,
182-
ModScreenshot.class,
183-
ModFov.class,
184-
ModFog.class,
185-
ModAutoTextHotkey.class,
186-
ModAutoTextActions.class,
187-
ModMumbleLink.class,
188-
ModTotemCounter.class,
189-
Mod2dItems.class,
190-
ModBossbar.class,
191-
ModFreelook.class,
192-
ModPvpInfo.class,
193-
ModSnaplook.class,
194-
ModTeamView.class,
195-
ModPackDisplay.class,
196-
ModMenuBlur.class,
197-
ModMinimap.class,
198-
ModHitbox.class,
199-
ModLighting.class,
200-
ModWeatherChanger.class,
201-
ModChunkBorders.class,
202-
ModSoundChanger.class,
203-
ModWaila.class,
204-
ModNeu.class,
205-
ModHurtCam.class,
206-
ModTierTagger.class,
207-
ModDamageTint.class,
208-
ModMobSize.class,
209-
ModSkyblock.class,
210-
ModHorseStats.class,
211-
ModRewind.class,
212-
ModAudioSubtitles.class,
213-
ModKillSounds.class,
214-
ModInventoryMod.class,
215-
ModRadio.class
216-
);
129+
ModReplaymod.class,
130+
ModOneSevenVisuals.class,
131+
ModFps.class,
132+
ModCps.class,
133+
ModSba.class,
134+
ModToggleSneak.class,
135+
ModZoom.class,
136+
ModHypixelMod.class,
137+
ModHypixelBedwars.class,
138+
ModQuickplay.class,
139+
ModArmorstatus.class,
140+
ModKeystrokes.class,
141+
ModCoordinates.class,
142+
ModDayCounter.class,
143+
ModCrosshair.class,
144+
ModPotionEffects.class,
145+
ModDirectionHud.class,
146+
ModWaypoints.class,
147+
ModHitColor.class,
148+
ModScoreboard.class,
149+
ModTitles.class,
150+
ModItemCounter.class,
151+
ModPing.class,
152+
ModMotionBlur.class,
153+
ModPackOrganizer.class,
154+
ModChat.class,
155+
ModTab.class,
156+
ModNametag.class,
157+
ModShulkerPreview.class,
158+
ModScrollableTooltips.class,
159+
ModUhcOverlay.class,
160+
ModParticleChanger.class,
161+
ModNickHider.class,
162+
ModCooldowns.class,
163+
ModWorldeditCui.class,
164+
ModClock.class,
165+
ModStopwatch.class,
166+
ModPlaytime.class,
167+
ModMemory.class,
168+
ModCombo.class,
169+
ModReachDisplay.class,
170+
ModTimeChanger.class,
171+
ModServerAddress.class,
172+
ModSaturation.class,
173+
ModColorSaturation.class,
174+
ModItemPhysics.class,
175+
ModTntCountdown.class,
176+
ModItemTracker.class,
177+
ModShinyPots.class,
178+
Mod3dSkins.class,
179+
ModGlintColorizer.class,
180+
ModMomentum.class,
181+
ModBlockOutline.class,
182+
ModScreenshot.class,
183+
ModFov.class,
184+
ModFog.class,
185+
ModAutoTextHotkey.class,
186+
ModAutoTextActions.class,
187+
ModMumbleLink.class,
188+
ModTotemCounter.class,
189+
Mod2dItems.class,
190+
ModBossbar.class,
191+
ModFreelook.class,
192+
ModPvpInfo.class,
193+
ModSnaplook.class,
194+
ModTeamView.class,
195+
ModPackDisplay.class,
196+
ModMenuBlur.class,
197+
ModMinimap.class,
198+
ModHitbox.class,
199+
ModLighting.class,
200+
ModWeatherChanger.class,
201+
ModChunkBorders.class,
202+
ModSoundChanger.class,
203+
ModWaila.class,
204+
ModNeu.class,
205+
ModHurtCam.class,
206+
ModTierTagger.class,
207+
ModDamageTint.class,
208+
ModMobSize.class,
209+
ModSkyblock.class,
210+
ModHorseStats.class,
211+
ModRewind.class,
212+
ModAudioSubtitles.class,
213+
ModKillSounds.class,
214+
ModInventoryMod.class,
215+
ModRadio.class
216+
);
217217

218218
private Mods() {
219219
}

api/src/main/java/com/lunarclient/apollo/option/EmptyOptions.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626
import com.lunarclient.apollo.player.ApolloPlayer;
2727
import java.util.Collections;
2828
import java.util.Iterator;
29+
import java.util.Map;
2930
import java.util.Optional;
30-
import java.util.UUID;
3131
import java.util.function.BiFunction;
3232
import lombok.AccessLevel;
3333
import lombok.NoArgsConstructor;
@@ -48,11 +48,6 @@ final class EmptyOptions implements Options {
4848
return option.getDefaultValue();
4949
}
5050

51-
@Override
52-
public <T, C extends Option<T, ?, ?>> @Nullable T get(UUID playerUuid, C option) {
53-
return option.getDefaultValue();
54-
}
55-
5651
@Override
5752
public <T, C extends Option<T, ?, ?>> Optional<T> getDirect(C option) {
5853
return Optional.empty();
@@ -63,11 +58,6 @@ final class EmptyOptions implements Options {
6358
return Optional.empty();
6459
}
6560

66-
@Override
67-
public <T, C extends Option<T, ?, ?>> Optional<T> getDirect(UUID playerUuid, C option) {
68-
return Optional.empty();
69-
}
70-
7161
@Override
7262
public <T> void set(Option<?, ?, ?> option, @Nullable T value) {
7363

@@ -108,6 +98,16 @@ public <T> void replace(ApolloPlayer player, Option<?, ?, ?> option, BiFunction<
10898

10999
}
110100

101+
@Override
102+
public <T, C extends Option<T, ?, ?>> void register(C option) {
103+
104+
}
105+
106+
@Override
107+
public Map<String, Option<?, ?, ?>> getRegistry() {
108+
return Collections.emptyMap();
109+
}
110+
111111
@Override
112112
public @NonNull Iterator<Option<?, ?, ?>> iterator() {
113113
return Collections.emptyIterator();

api/src/main/java/com/lunarclient/apollo/option/Options.java

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
package com.lunarclient.apollo.option;
2525

2626
import com.lunarclient.apollo.player.ApolloPlayer;
27+
import java.util.Map;
2728
import java.util.Optional;
28-
import java.util.UUID;
2929
import java.util.function.BiFunction;
3030
import org.jetbrains.annotations.Nullable;
3131

@@ -71,19 +71,6 @@ static Options empty() {
7171
*/
7272
<T, C extends Option<T, ?, ?>> @Nullable T get(ApolloPlayer player, C option);
7373

74-
/**
75-
* Returns the {@code T} value stored for the provided {@link UUID}
76-
* and {@link Option} if it exists, or the default value if it exists.
77-
*
78-
* @param playerUuid the player uuid
79-
* @param option the option
80-
* @param <T> the value type
81-
* @param <C> the option type
82-
* @return the value or default if present
83-
* @since 1.2.1
84-
*/
85-
<T, C extends Option<T, ?, ?>> @Nullable T get(UUID playerUuid, C option);
86-
8774
/**
8875
* Returns an {@link Optional} of the {@code T} value stored for the
8976
* provided {@link Option} if it exists, otherwise returns
@@ -111,20 +98,6 @@ static Options empty() {
11198
*/
11299
<T, C extends Option<T, ?, ?>> Optional<T> getDirect(ApolloPlayer player, C option);
113100

114-
/**
115-
* Returns an {@link Optional} of the {@code T} value stored for the
116-
* provided {@link UUID} and {@link Option} if it exists,
117-
* otherwise returns {@link Optional#empty()}.
118-
*
119-
* @param playerUuid the player uuid
120-
* @param option the option
121-
* @param <T> the value type
122-
* @param <C> the option type
123-
* @return the optional stored value
124-
* @since 1.2.1
125-
*/
126-
<T, C extends Option<T, ?, ?>> Optional<T> getDirect(UUID playerUuid, C option);
127-
128101
/**
129102
* Sets the provided {@code T} value for the provided {@link Option}.
130103
*
@@ -216,4 +189,22 @@ static Options empty() {
216189
*/
217190
<T> void replace(ApolloPlayer player, Option<?, ?, ?> option, BiFunction<Option<?, ?, ?>, T, T> remappingFunction);
218191

192+
/**
193+
* Registers the provided {@code C} option for the {@link Options} implementation.
194+
*
195+
* @param option the option
196+
* @param <T> the value type
197+
* @param <C> the option type
198+
* @since 1.2.1
199+
*/
200+
<T, C extends Option<T, ?, ?>> void register(C option);
201+
202+
/**
203+
* Returns the internal registry containing all registered {@link Option} instances, mapped by their keys.
204+
*
205+
* @return the map of option keys to their corresponding {@link Option} instances
206+
* @since 1.2.1
207+
*/
208+
Map<String, Option<?, ?, ?>> getRegistry();
209+
219210
}

0 commit comments

Comments
 (0)