Skip to content

Commit 42a25e4

Browse files
committed
Add suit example commands
1 parent d035652 commit 42a25e4

File tree

8 files changed

+123
-17
lines changed

8 files changed

+123
-17
lines changed

api/src/main/java/com/lunarclient/apollo/module/evnt/Character.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import lombok.Builder;
2727
import lombok.Getter;
28+
import org.jetbrains.annotations.Nullable;
2829
import java.awt.*;
2930
import java.util.UUID;
3031

@@ -50,4 +51,6 @@ public final class Character {
5051

5152
boolean equipped;
5253

54+
@Nullable String suitName;
55+
5356
}

api/src/main/java/com/lunarclient/apollo/module/evnt/EVNTModule.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ public abstract class EVNTModule extends ApolloModule {
129129
public static final SimpleOption<Boolean> DISABLE_OPTIFINE_CAPES = Option.<Boolean>builder()
130130
.comment("Set to 'true' to disable optifine capes, otherwise 'false'.")
131131
.node("disable-optifine-capes").type(TypeToken.get(Boolean.class))
132-
.defaultValue(true).build();
132+
.defaultValue(true).notifyClient().build();
133133

134134
public static final SimpleOption<Boolean> DISABLE_NOTIFY_MISMATCH = Option.<Boolean>builder()
135135
.comment("Set to 'true' to disable notifications for players using the wrong branch or version, otherwise 'false'.")
@@ -182,16 +182,16 @@ public boolean isClientNotify() {
182182

183183
public abstract void updateCosmetics(Recipients recipients, List<String> models, List<String> animations);
184184

185-
public abstract void overrideCharacterSuitResources(Recipients recipients, List<Integer> cosmeticIds);
185+
public abstract void overrideCharacterSuitAccess(Recipients recipients, CharacterType type, List<String> suitNames);
186186

187187
public abstract void overrideCharacterCosmetic(Recipients recipients, UUID playerUuid, CharacterType type);
188188

189+
public abstract void overrideCharacterCosmetic(Recipients recipients, UUID playerUuid, CharacterType type, String suitName);
190+
189191
public abstract void overrideCharacterAbility(Recipients recipients, List<CharacterAbility> abilities);
190192

191193
public abstract void overrideCharacter(Recipients recipients, Character character);
192194

193-
public abstract void overrideCharacterSuit(Recipients recipients, Suit suit);
194-
195195
public abstract void updateGameOverview(Recipients recipients, EventGame game);
196196

197197
public abstract void updateStatusOverview(Recipients recipients, EventStatus status);

bukkit-example/src/main/java/com/lunarclient/apollo/example/api/examples/EVNTApiExample.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,21 @@ public void overrideCharacterExample(Player viewer) {
101101
});
102102
}
103103

104+
@Override
105+
public void overrideCharacterSuitExample(Player viewer, CharacterType type, String suitName) {
106+
Optional<ApolloPlayer> apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId());
107+
108+
apolloPlayerOpt.ifPresent(apolloPlayer -> {
109+
this.evntModule.overrideCharacter(apolloPlayer, Character.builder()
110+
.playerUuid(apolloPlayer.getUniqueId())
111+
.type(type)
112+
.color(Color.RED)
113+
.equipped(true)
114+
.suitName(suitName)
115+
.build());
116+
});
117+
}
118+
104119
@Override
105120
public void overrideCharacterAbilityExample(Player viewer) {
106121
Optional<ApolloPlayer> apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId());
@@ -146,6 +161,15 @@ public void overrideCharacterResources(Player viewer) {
146161
});
147162
}
148163

164+
@Override
165+
public void overrideCharacterSuitAccessExample(Player viewer, CharacterType type, List<String> suitNames) {
166+
Optional<ApolloPlayer> apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId());
167+
168+
apolloPlayerOpt.ifPresent(apolloPlayer -> {
169+
this.evntModule.overrideCharacterSuitAccess(apolloPlayer, type, suitNames);
170+
});
171+
}
172+
149173
@Override
150174
public void updateGameOverviewExample() {
151175
EventTeam teamOne = EventTeam.builder()

bukkit-example/src/main/java/com/lunarclient/apollo/example/common/commands/module/EVNTCommand.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,16 @@
2525

2626
import com.lunarclient.apollo.example.ApolloExamplePlugin;
2727
import com.lunarclient.apollo.example.common.modules.impl.EVNTExample;
28+
import com.lunarclient.apollo.module.evnt.CharacterType;
2829
import com.lunarclient.apollo.module.evnt.GuiType;
2930
import org.bukkit.command.Command;
3031
import org.bukkit.command.CommandExecutor;
3132
import org.bukkit.command.CommandSender;
3233
import org.bukkit.entity.Player;
3334
import org.jetbrains.annotations.NotNull;
35+
import java.util.ArrayList;
3436
import java.util.Arrays;
37+
import java.util.List;
3538
import java.util.concurrent.ThreadLocalRandom;
3639

3740
public class EVNTCommand implements CommandExecutor {
@@ -46,6 +49,34 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
4649
Player player = (Player) sender;
4750
EVNTExample evntExample = ApolloExamplePlugin.getPlugin().getEvntExample();
4851

52+
if (args.length > 2) {
53+
CharacterType type;
54+
try {
55+
type = CharacterType.valueOf(args[1]);
56+
} catch (IllegalArgumentException e) {
57+
player.sendMessage("Invalid Character Type!");
58+
player.sendMessage("Available Character types: " + Arrays.toString(CharacterType.values()));
59+
return true;
60+
}
61+
62+
if (args[0].equalsIgnoreCase("overridesuitaccess")) {
63+
List<String> suits = new ArrayList<>();
64+
for (int i = 2; i < args.length; i++) {
65+
suits.add(args[i]);
66+
}
67+
68+
evntExample.overrideCharacterSuitAccessExample(player, type, suits);
69+
return true;
70+
}
71+
72+
if (args[0].equalsIgnoreCase("overridesuit")) {
73+
evntExample.overrideCharacterSuitExample(player, type, args[2]);
74+
return true;
75+
}
76+
77+
return true;
78+
}
79+
4980
if (args.length == 2 && args[0].equalsIgnoreCase("opengui")) {
5081
try {
5182
GuiType type = GuiType.valueOf(args[1].toUpperCase());
@@ -148,6 +179,8 @@ private void sendUsage(CommandSender sender) {
148179
sender.sendMessage("/evnt overrideCosmeticResource");
149180
sender.sendMessage("/evnt updateGameOverview");
150181
sender.sendMessage("/evnt updateStatusOverview");
182+
sender.sendMessage("/evnt overrideSuitAccess <type> <suits>");
183+
sender.sendMessage("/evnt overrideSuit <type> <suit>");
151184
}
152185

153186
}

bukkit-example/src/main/java/com/lunarclient/apollo/example/common/modules/impl/EVNTExample.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@
2424
package com.lunarclient.apollo.example.common.modules.impl;
2525

2626
import com.lunarclient.apollo.example.common.modules.ApolloExample;
27+
import com.lunarclient.apollo.module.evnt.CharacterType;
2728
import com.lunarclient.apollo.module.evnt.GuiType;
2829
import org.bukkit.entity.Player;
30+
import java.util.List;
2931

3032
public abstract class EVNTExample extends ApolloExample {
3133

@@ -39,10 +41,14 @@ public abstract class EVNTExample extends ApolloExample {
3941

4042
public abstract void overrideCharacterExample(Player viewer);
4143

44+
public abstract void overrideCharacterSuitExample(Player viewer, CharacterType type, String suitName);
45+
4246
public abstract void overrideCharacterAbilityExample(Player viewer);
4347

4448
public abstract void overrideCharacterCosmeticExample(Player viewer);
4549

50+
public abstract void overrideCharacterSuitAccessExample(Player viewer, CharacterType type, List<String> suitNames);
51+
4652
public abstract void overrideCharacterResources(Player viewer);
4753

4854
public abstract void updateGameOverviewExample();

bukkit-example/src/main/java/com/lunarclient/apollo/example/json/examples/EVNTJsonExample.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@
2424
package com.lunarclient.apollo.example.json.examples;
2525

2626
import com.lunarclient.apollo.example.common.modules.impl.EVNTExample;
27+
import com.lunarclient.apollo.module.evnt.CharacterType;
2728
import com.lunarclient.apollo.module.evnt.GuiType;
2829
import org.bukkit.entity.Player;
30+
import java.util.List;
2931

3032
public class EVNTJsonExample extends EVNTExample {
3133

@@ -54,6 +56,11 @@ public void overrideCharacterExample(Player viewer) {
5456
this.sendNotImplemented(viewer);
5557
}
5658

59+
@Override
60+
public void overrideCharacterSuitExample(Player viewer, CharacterType type, String suitName) {
61+
this.sendNotImplemented(viewer);
62+
}
63+
5764
@Override
5865
public void overrideCharacterAbilityExample(Player viewer) {
5966
this.sendNotImplemented(viewer);
@@ -64,6 +71,11 @@ public void overrideCharacterCosmeticExample(Player viewer) {
6471
this.sendNotImplemented(viewer);
6572
}
6673

74+
@Override
75+
public void overrideCharacterSuitAccessExample(Player viewer, CharacterType type, List<String> suitNames) {
76+
this.sendNotImplemented(viewer);
77+
}
78+
6779
@Override
6880
public void overrideCharacterResources(Player viewer) {
6981
this.sendNotImplemented(viewer);

bukkit-example/src/main/java/com/lunarclient/apollo/example/proto/examples/EVNTProtoExample.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,12 @@
2424
package com.lunarclient.apollo.example.proto.examples;
2525

2626
import com.lunarclient.apollo.example.common.modules.impl.EVNTExample;
27+
import com.lunarclient.apollo.module.evnt.CharacterType;
2728
import com.lunarclient.apollo.module.evnt.GuiType;
2829
import org.bukkit.entity.Player;
2930

31+
import java.util.List;
32+
3033
public class EVNTProtoExample extends EVNTExample {
3134

3235
@Override
@@ -54,6 +57,16 @@ public void overrideCharacterExample(Player viewer) {
5457
this.sendNotImplemented(viewer);
5558
}
5659

60+
@Override
61+
public void overrideCharacterSuitExample(Player viewer, CharacterType type, String suitName) {
62+
this.sendNotImplemented(viewer);
63+
}
64+
65+
@Override
66+
public void overrideCharacterSuitAccessExample(Player viewer, CharacterType type, List<String> suitNames) {
67+
this.sendNotImplemented(viewer);
68+
}
69+
5770
@Override
5871
public void overrideCharacterAbilityExample(Player viewer) {
5972
this.sendNotImplemented(viewer);

common/src/main/java/com/lunarclient/apollo/module/evnt/EVNTModuleImpl.java

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import com.lunarclient.apollo.evnt.v1.OverrideCharacterAbilityMessage;
4141
import com.lunarclient.apollo.evnt.v1.OverrideCharacterCosmeticMessage;
4242
import com.lunarclient.apollo.evnt.v1.OverrideCharacterMessage;
43+
import com.lunarclient.apollo.evnt.v1.OverrideCharacterSuitResourcesMessage;
4344
import com.lunarclient.apollo.evnt.v1.OverrideCosmeticResourcesMessage;
4445
import com.lunarclient.apollo.evnt.v1.OverrideHeartTextureMessage;
4546
import com.lunarclient.apollo.evnt.v1.ResetHeartTextureMessage;
@@ -61,6 +62,7 @@
6162
import net.kyori.adventure.text.Component;
6263
import net.kyori.adventure.text.format.NamedTextColor;
6364
import net.kyori.adventure.text.format.TextDecoration;
65+
import org.jetbrains.annotations.Nullable;
6466

6567
/**
6668
* Provides the EVNT module.
@@ -149,17 +151,31 @@ public void updateCosmetics(@NonNull Recipients recipients, @NonNull List<String
149151
}
150152

151153
@Override
152-
public void overrideCharacterSuitResources(@NonNull Recipients recipients, @NonNull List<Integer> cosmeticIds) {
153-
// TODO
154+
public void overrideCharacterSuitAccess(@NonNull Recipients recipients, @NonNull CharacterType type, @NonNull List<String> suitNames) {
155+
OverrideCharacterSuitResourcesMessage message = OverrideCharacterSuitResourcesMessage.newBuilder()
156+
.setCharacterType(this.toProtobuf(type))
157+
.addAllSuitNames(suitNames)
158+
.build();
159+
160+
recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message));
154161
}
155162

156163
@Override
157164
public void overrideCharacterCosmetic(@NonNull Recipients recipients, @NonNull UUID playerUuid, @NonNull CharacterType type) {
158-
OverrideCharacterCosmeticMessage message = OverrideCharacterCosmeticMessage.newBuilder()
165+
this.overrideCharacterCosmetic(recipients, playerUuid, type, null);
166+
}
167+
168+
@Override
169+
public void overrideCharacterCosmetic(@NonNull Recipients recipients, @NonNull UUID playerUuid, @NonNull CharacterType type, @Nullable String suitName) {
170+
OverrideCharacterCosmeticMessage.Builder builder = OverrideCharacterCosmeticMessage.newBuilder()
159171
.setPlayerUuid(NetworkTypes.toProtobuf(playerUuid))
160-
.setCharacterType(this.toProtobuf(type))
161-
.build();
172+
.setCharacterType(this.toProtobuf(type));
162173

174+
if (suitName != null) {
175+
builder.setSuitName(suitName);
176+
}
177+
178+
OverrideCharacterCosmeticMessage message = builder.build();
163179
recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message));
164180
}
165181

@@ -174,19 +190,18 @@ public void overrideCharacterAbility(@NonNull Recipients recipients, @NonNull Li
174190

175191
@Override
176192
public void overrideCharacter(@NonNull Recipients recipients, @NonNull Character character) {
177-
OverrideCharacterMessage message = OverrideCharacterMessage.newBuilder()
193+
OverrideCharacterMessage.Builder builder = OverrideCharacterMessage.newBuilder()
178194
.setPlayerUuid(NetworkTypes.toProtobuf(character.getPlayerUuid()))
179195
.setCharacterType(this.toProtobuf(character.getType()))
180196
.setColor(NetworkTypes.toProtobuf(character.getColor()))
181-
.setEquipped(character.isEquipped())
182-
.build();
197+
.setEquipped(character.isEquipped());
183198

184-
recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message));
185-
}
199+
if (character.getSuitName() != null) {
200+
builder.setSuitName(character.getSuitName());
201+
}
186202

187-
@Override
188-
public void overrideCharacterSuit(@NonNull Recipients recipients, @NonNull Suit suit) {
189-
// TODO
203+
OverrideCharacterMessage message = builder.build();
204+
recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message));
190205
}
191206

192207
@Override

0 commit comments

Comments
 (0)