Skip to content

Commit cef9ad4

Browse files
committed
Merge branch 'version/1.2.8' into improvement/staffmod-enable-by-default
2 parents d0b91d3 + f525c0c commit cef9ad4

44 files changed

Lines changed: 334 additions & 237 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.

api/src/bukkit/java/com/lunarclient/apollo/BukkitApollo.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,11 @@
3030
import com.lunarclient.apollo.player.ApolloPlayer;
3131
import com.lunarclient.apollo.player.ApolloPlayerManager;
3232
import com.lunarclient.apollo.recipients.Recipients;
33+
import java.util.ArrayList;
3334
import java.util.Collection;
3435
import java.util.List;
35-
import java.util.Optional;
3636
import java.util.UUID;
3737
import java.util.function.Consumer;
38-
import java.util.stream.Collectors;
3938
import lombok.NonNull;
4039
import org.bukkit.Bukkit;
4140
import org.bukkit.Location;
@@ -81,11 +80,12 @@ public static void runForPlayer(@NonNull UUID playerUuid, @NonNull Consumer<Apol
8180
*/
8281
public static Recipients getRecipientsFrom(@NonNull Collection<Player> players) {
8382
ApolloPlayerManager playerManager = Apollo.getPlayerManager();
84-
List<ApolloPlayer> apolloPlayers = players.stream()
85-
.map(player -> playerManager.getPlayer(player.getUniqueId()))
86-
.filter(Optional::isPresent)
87-
.map(Optional::get)
88-
.collect(Collectors.toList());
83+
List<ApolloPlayer> apolloPlayers = new ArrayList<>(players.size());
84+
85+
for (Player player : players) {
86+
playerManager.getPlayer(player.getUniqueId())
87+
.ifPresent(apolloPlayers::add);
88+
}
8989

9090
return Recipients.of(apolloPlayers);
9191
}

api/src/bungee/java/com/lunarclient/apollo/BungeeApollo.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,11 @@
2626
import com.lunarclient.apollo.player.ApolloPlayer;
2727
import com.lunarclient.apollo.player.ApolloPlayerManager;
2828
import com.lunarclient.apollo.recipients.Recipients;
29+
import java.util.ArrayList;
2930
import java.util.Collection;
3031
import java.util.List;
31-
import java.util.Optional;
3232
import java.util.UUID;
3333
import java.util.function.Consumer;
34-
import java.util.stream.Collectors;
3534
import lombok.NonNull;
3635
import net.md_5.bungee.api.connection.ProxiedPlayer;
3736

@@ -74,11 +73,12 @@ public static void runForPlayer(@NonNull UUID playerUuid, @NonNull Consumer<Apol
7473
*/
7574
public static Recipients getRecipientsFrom(@NonNull Collection<ProxiedPlayer> players) {
7675
ApolloPlayerManager playerManager = Apollo.getPlayerManager();
77-
List<ApolloPlayer> apolloPlayers = players.stream()
78-
.map(player -> playerManager.getPlayer(player.getUniqueId()))
79-
.filter(Optional::isPresent)
80-
.map(Optional::get)
81-
.collect(Collectors.toList());
76+
List<ApolloPlayer> apolloPlayers = new ArrayList<>(players.size());
77+
78+
for (ProxiedPlayer player : players) {
79+
playerManager.getPlayer(player.getUniqueId())
80+
.ifPresent(apolloPlayers::add);
81+
}
8282

8383
return Recipients.of(apolloPlayers);
8484
}

api/src/folia/java/com/lunarclient/apollo/FoliaApollo.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,11 @@
3030
import com.lunarclient.apollo.player.ApolloPlayer;
3131
import com.lunarclient.apollo.player.ApolloPlayerManager;
3232
import com.lunarclient.apollo.recipients.Recipients;
33+
import java.util.ArrayList;
3334
import java.util.Collection;
3435
import java.util.List;
35-
import java.util.Optional;
3636
import java.util.UUID;
3737
import java.util.function.Consumer;
38-
import java.util.stream.Collectors;
3938
import lombok.NonNull;
4039
import org.bukkit.Bukkit;
4140
import org.bukkit.Location;
@@ -81,11 +80,12 @@ public static void runForPlayer(@NonNull UUID playerUuid, @NonNull Consumer<Apol
8180
*/
8281
public static Recipients getRecipientsFrom(@NonNull Collection<Player> players) {
8382
ApolloPlayerManager playerManager = Apollo.getPlayerManager();
84-
List<ApolloPlayer> apolloPlayers = players.stream()
85-
.map(player -> playerManager.getPlayer(player.getUniqueId()))
86-
.filter(Optional::isPresent)
87-
.map(Optional::get)
88-
.collect(Collectors.toList());
83+
List<ApolloPlayer> apolloPlayers = new ArrayList<>(players.size());
84+
85+
for (Player player : players) {
86+
playerManager.getPlayer(player.getUniqueId())
87+
.ifPresent(apolloPlayers::add);
88+
}
8989

9090
return Recipients.of(apolloPlayers);
9191
}

api/src/main/java/com/lunarclient/apollo/event/EventBus.java

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.lang.reflect.Method;
2727
import java.util.ArrayList;
2828
import java.util.Arrays;
29+
import java.util.Collections;
2930
import java.util.List;
3031
import java.util.Map;
3132
import java.util.concurrent.ConcurrentHashMap;
@@ -96,7 +97,8 @@ public void unregister(@NonNull Object instance) {
9697
for (Method method : this.getEventMethods(instance)) {
9798
List<Consumer<? extends Event>> listeners = this.events.get(method.getParameterTypes()[0]);
9899
if (listeners != null) {
99-
listeners.removeIf(consumer -> consumer instanceof ReflectiveConsumer && ((ReflectiveConsumer<?>) consumer).getInstance() == instance);
100+
listeners.removeIf(consumer -> consumer instanceof ReflectiveConsumer
101+
&& ((ReflectiveConsumer<?>) consumer).getInstance() == instance);
100102
}
101103
}
102104
}
@@ -127,17 +129,24 @@ public <T extends Event> boolean unregister(@NonNull Class<T> event, @NonNull Co
127129
@SuppressWarnings("unchecked")
128130
public <T extends Event> EventResult<T> post(@NonNull T event) {
129131
CopyOnWriteArrayList<Consumer<? extends Event>> consumers = this.events.get(event.getClass());
130-
List<Throwable> throwables = new ArrayList<>();
131-
if (consumers != null) {
132-
for (Consumer<? extends Event> consumer : consumers) {
133-
try {
134-
((Consumer<T>) consumer).accept(event);
135-
} catch (Throwable throwable) {
136-
throwables.add(throwable);
132+
if (consumers == null || consumers.isEmpty()) {
133+
return new EventResult<>(event, Collections.emptyList());
134+
}
135+
136+
List<Throwable> throwables = null;
137+
for (Consumer<? extends Event> consumer : consumers) {
138+
try {
139+
((Consumer<T>) consumer).accept(event);
140+
} catch (Throwable throwable) {
141+
if (throwables == null) {
142+
throwables = new ArrayList<>();
137143
}
144+
145+
throwables.add(throwable);
138146
}
139147
}
140-
return new EventResult<>(event, throwables);
148+
149+
return new EventResult<>(event, throwables == null ? Collections.emptyList() : throwables);
141150
}
142151

143152
private List<Method> getEventMethods(Object instance) {

api/src/main/java/com/lunarclient/apollo/module/combat/CombatModule.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,22 @@ public final class CombatModule extends ApolloModule {
5252
.node("disable-miss-penalty").type(TypeToken.get(Boolean.class))
5353
.defaultValue(false).notifyClient().build();
5454

55+
/**
56+
* Whether the player gets a hit delay for a missed hit while
57+
* targeting a block. Applies to all versions 1.8 and above.
58+
*
59+
* <p>Enabling this option may cause compatibility issues with anti-cheats.</p>
60+
*
61+
* @since 1.2.8
62+
*/
63+
public static final SimpleOption<Boolean> DISABLE_BLOCK_MISS_PENALTY = Option.<Boolean>builder()
64+
.comment(
65+
"Set to 'true' to remove the miss penalty when targeting a block on all versions 1.8 and above, otherwise 'false'.",
66+
"Enabling this option may cause compatibility issues with anti-cheats."
67+
)
68+
.node("disable-block-miss-penalty").type(TypeToken.get(Boolean.class))
69+
.defaultValue(false).notifyClient().build();
70+
5571
/**
5672
* Whether the player can dig and use an item at the same time,
5773
* like in 1.7. Applies to all versions 1.8 and above.
@@ -71,6 +87,7 @@ public final class CombatModule extends ApolloModule {
7187
CombatModule() {
7288
this.registerOptions(
7389
CombatModule.DISABLE_MISS_PENALTY,
90+
CombatModule.DISABLE_BLOCK_MISS_PENALTY,
7491
CombatModule.ALLOW_DIG_AND_USE
7592
);
7693
}

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -130,23 +130,24 @@ public static <T extends Enum<T>> EnumOption.EnumOptionBuilder<T> enumerator() {
130130
*/
131131
boolean notify;
132132

133+
/**
134+
* Returns the option key.
135+
*
136+
* @return the key string
137+
* @since 1.2.8
138+
*/
139+
@EqualsAndHashCode.Exclude
140+
String key;
141+
133142
Option(M builder) {
134143
this.path = requireNonNull(builder.node, "node");
135144
this.typeToken = requireNonNull(builder.typeToken, "typeToken");
136145

137146
this.comment = builder.comment;
138147
this.defaultValue = builder.defaultValue;
139148
this.notify = builder.notify;
140-
}
141149

142-
/**
143-
* Returns the key as a joined {@link String}.
144-
*
145-
* @return the key string
146-
* @since 1.0.0
147-
*/
148-
public String getKey() {
149-
return String.join(".", this.getPath());
150+
this.key = String.join(".", this.path);
150151
}
151152

152153
@Override

api/src/minestom/java/com/lunarclient/apollo/MinestomApollo.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,11 @@
2727
import com.lunarclient.apollo.player.ApolloPlayer;
2828
import com.lunarclient.apollo.player.ApolloPlayerManager;
2929
import com.lunarclient.apollo.recipients.Recipients;
30+
import java.util.ArrayList;
3031
import java.util.Collection;
3132
import java.util.List;
32-
import java.util.Optional;
3333
import java.util.UUID;
3434
import java.util.function.Consumer;
35-
import java.util.stream.Collectors;
3635
import lombok.NonNull;
3736
import net.minestom.server.entity.Entity;
3837
import net.minestom.server.entity.Player;
@@ -76,11 +75,12 @@ public static void runForPlayer(@NonNull UUID playerUuid, @NonNull Consumer<Apol
7675
*/
7776
public static Recipients getRecipientsFrom(@NonNull Collection<Player> players) {
7877
ApolloPlayerManager playerManager = Apollo.getPlayerManager();
79-
List<ApolloPlayer> apolloPlayers = players.stream()
80-
.map(player -> playerManager.getPlayer(player.getUuid()))
81-
.filter(Optional::isPresent)
82-
.map(Optional::get)
83-
.collect(Collectors.toList());
78+
List<ApolloPlayer> apolloPlayers = new ArrayList<>(players.size());
79+
80+
for (Player player : players) {
81+
playerManager.getPlayer(player.getUuid())
82+
.ifPresent(apolloPlayers::add);
83+
}
8484

8585
return Recipients.of(apolloPlayers);
8686
}

api/src/velocity/java/com/lunarclient/apollo/VelocityApollo.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,11 @@
2727
import com.lunarclient.apollo.player.ApolloPlayerManager;
2828
import com.lunarclient.apollo.recipients.Recipients;
2929
import com.velocitypowered.api.proxy.Player;
30+
import java.util.ArrayList;
3031
import java.util.Collection;
3132
import java.util.List;
32-
import java.util.Optional;
3333
import java.util.UUID;
3434
import java.util.function.Consumer;
35-
import java.util.stream.Collectors;
3635
import lombok.NonNull;
3736

3837
/**
@@ -75,11 +74,12 @@ public static void runForPlayer(@NonNull UUID playerUuid, @NonNull Consumer<Apol
7574
*/
7675
public static Recipients getRecipientsFrom(@NonNull Collection<Player> players) {
7776
ApolloPlayerManager playerManager = Apollo.getPlayerManager();
78-
List<ApolloPlayer> apolloPlayers = players.stream()
79-
.map(player -> playerManager.getPlayer(player.getUniqueId()))
80-
.filter(Optional::isPresent)
81-
.map(Optional::get)
82-
.collect(Collectors.toList());
77+
List<ApolloPlayer> apolloPlayers = new ArrayList<>(players.size());
78+
79+
for (Player player : players) {
80+
playerManager.getPlayer(player.getUniqueId())
81+
.ifPresent(apolloPlayers::add);
82+
}
8383

8484
return Recipients.of(apolloPlayers);
8585
}

common/src/main/java/com/lunarclient/apollo/module/beam/BeamModuleImpl.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
*/
2424
package com.lunarclient.apollo.module.beam;
2525

26+
import com.lunarclient.apollo.ApolloManager;
2627
import com.lunarclient.apollo.beam.v1.DisplayBeaconBeamMessage;
2728
import com.lunarclient.apollo.beam.v1.RemoveBeaconBeamMessage;
2829
import com.lunarclient.apollo.beam.v1.ResetBeaconBeamsMessage;
2930
import com.lunarclient.apollo.network.NetworkTypes;
30-
import com.lunarclient.apollo.player.AbstractApolloPlayer;
3131
import com.lunarclient.apollo.recipients.Recipients;
3232
import lombok.NonNull;
3333

@@ -46,7 +46,7 @@ public void displayBeam(@NonNull Recipients recipients, @NonNull Beam beam) {
4646
.setColor(NetworkTypes.toProtobuf(beam.getColor()))
4747
.build();
4848

49-
recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message));
49+
ApolloManager.getNetworkManager().sendPacket(recipients, message);
5050
}
5151

5252
@Override
@@ -55,7 +55,7 @@ public void removeBeam(@NonNull Recipients recipients, @NonNull String beamId) {
5555
.setId(beamId)
5656
.build();
5757

58-
recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message));
58+
ApolloManager.getNetworkManager().sendPacket(recipients, message);
5959
}
6060

6161
@Override
@@ -66,7 +66,7 @@ public void removeBeam(@NonNull Recipients recipients, @NonNull Beam beam) {
6666
@Override
6767
public void resetBeams(@NonNull Recipients recipients) {
6868
ResetBeaconBeamsMessage message = ResetBeaconBeamsMessage.getDefaultInstance();
69-
recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message));
69+
ApolloManager.getNetworkManager().sendPacket(recipients, message);
7070
}
7171

7272
}

common/src/main/java/com/lunarclient/apollo/module/border/BorderModuleImpl.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
*/
2424
package com.lunarclient.apollo.module.border;
2525

26+
import com.lunarclient.apollo.ApolloManager;
2627
import com.lunarclient.apollo.border.v1.DisplayBorderMessage;
2728
import com.lunarclient.apollo.border.v1.RemoveBorderMessage;
2829
import com.lunarclient.apollo.border.v1.ResetBordersMessage;
2930
import com.lunarclient.apollo.network.NetworkTypes;
30-
import com.lunarclient.apollo.player.AbstractApolloPlayer;
3131
import com.lunarclient.apollo.recipients.Recipients;
3232
import lombok.NonNull;
3333

@@ -53,7 +53,7 @@ public void displayBorder(@NonNull Recipients recipients, @NonNull Border border
5353
.setDurationTicks(checkPositive(border.getDurationTicks(), "Border#durationTicks"))
5454
.build();
5555

56-
recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message));
56+
ApolloManager.getNetworkManager().sendPacket(recipients, message);
5757
}
5858

5959
@Override
@@ -62,7 +62,7 @@ public void removeBorder(@NonNull Recipients recipients, @NonNull String borderI
6262
.setId(borderId)
6363
.build();
6464

65-
recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message));
65+
ApolloManager.getNetworkManager().sendPacket(recipients, message);
6666
}
6767

6868
@Override
@@ -73,7 +73,7 @@ public void removeBorder(@NonNull Recipients recipients, @NonNull Border border)
7373
@Override
7474
public void resetBorders(@NonNull Recipients recipients) {
7575
ResetBordersMessage message = ResetBordersMessage.getDefaultInstance();
76-
recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message));
76+
ApolloManager.getNetworkManager().sendPacket(recipients, message);
7777
}
7878

7979
}

0 commit comments

Comments
 (0)