diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModOverlayMod.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModOverlayMod.java index 67f2be6a8..489dc85ac 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModOverlayMod.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModOverlayMod.java @@ -42,7 +42,7 @@ public final class ModOverlayMod { */ public static final SimpleOption ENABLED = SimpleOption.builder() .node("overlay-mod", "enabled").type(TypeToken.get(Boolean.class)) - .defaultValue(true) + .defaultValue(false) .notifyClient() .build(); diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSkyblock.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSkyblock.java index d34ed1389..b48036291 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSkyblock.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSkyblock.java @@ -443,6 +443,17 @@ public final class ModSkyblock { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.1.6 + */ + public static final SimpleOption SKY_BLOCK_FINISHED_COMMISSIONS = SimpleOption.builder() + .node("skyblock", "sky-block-finished-commissions").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + /** * No documentation available. * @@ -457,10 +468,10 @@ public final class ModSkyblock { /** * No documentation available. * - * @since 1.1.6 + * @since 1.2.4 */ - public static final SimpleOption SKY_BLOCK_FINISHED_COMMISSIONS = SimpleOption.builder() - .node("skyblock", "sky-block-finished-commissions").type(TypeToken.get(Boolean.class)) + public static final SimpleOption SKY_BLOCK_METAL_DETECTOR_LINE = SimpleOption.builder() + .node("skyblock", "sky-block-metal-detector-line").type(TypeToken.get(Boolean.class)) .defaultValue(false) .notifyClient() .build(); diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTierTagger.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTierTagger.java index b749d8fd5..5de303447 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTierTagger.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTierTagger.java @@ -94,9 +94,9 @@ public final class ModTierTagger { * * @since 1.1.9 */ - public static final SimpleOption SHOW_RETIRED = SimpleOption.builder() - .node("tier-tagger", "show-retired").type(TypeToken.get(Boolean.class)) - .defaultValue(false) + public static final SimpleOption SHOW_REGION = SimpleOption.builder() + .node("tier-tagger", "show-region").type(TypeToken.get(Boolean.class)) + .defaultValue(true) .notifyClient() .build(); @@ -105,9 +105,9 @@ public final class ModTierTagger { * * @since 1.1.9 */ - public static final SimpleOption SHOW_REGION = SimpleOption.builder() - .node("tier-tagger", "show-region").type(TypeToken.get(Boolean.class)) - .defaultValue(true) + public static final SimpleOption SHOW_RETIRED = SimpleOption.builder() + .node("tier-tagger", "show-retired").type(TypeToken.get(Boolean.class)) + .defaultValue(false) .notifyClient() .build(); diff --git a/api/src/main/java/com/lunarclient/apollo/module/serverrule/ServerRuleModule.java b/api/src/main/java/com/lunarclient/apollo/module/serverrule/ServerRuleModule.java index 79a6a2de9..b7931ea71 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/serverrule/ServerRuleModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/serverrule/ServerRuleModule.java @@ -165,6 +165,16 @@ public final class ServerRuleModule extends ApolloModule { .node("max-chat-length").type(TypeToken.get(Integer.class)) .defaultValue(256).min(1).max(256).notifyClient().build(); + /** + * Whether to enable crystal optimizer. + * + * @since 1.2.4 + */ + public static final SimpleOption CRYSTAL_OPTIMIZER = Option.builder() + .comment("Set to 'true' to enable the crystal optimizer, otherwise 'false'.") + .node("crystal-optimizer").type(TypeToken.get(Boolean.class)) + .defaultValue(false).notifyClient().build(); + ServerRuleModule() { this.registerOptions( ServerRuleModule.COMPETITIVE_GAME, @@ -178,7 +188,8 @@ public final class ServerRuleModule extends ApolloModule { ServerRuleModule.OVERRIDE_NAMETAG_RENDER_DISTANCE, ServerRuleModule.NAMETAG_RENDER_DISTANCE, ServerRuleModule.OVERRIDE_MAX_CHAT_LENGTH, - ServerRuleModule.MAX_CHAT_LENGTH + ServerRuleModule.MAX_CHAT_LENGTH, + ServerRuleModule.CRYSTAL_OPTIMIZER ); } diff --git a/common/src/main/java/com/lunarclient/apollo/api/ApolloHttpManager.java b/common/src/main/java/com/lunarclient/apollo/api/ApolloHttpManager.java index 993654502..532e03dd7 100644 --- a/common/src/main/java/com/lunarclient/apollo/api/ApolloHttpManager.java +++ b/common/src/main/java/com/lunarclient/apollo/api/ApolloHttpManager.java @@ -37,6 +37,7 @@ import java.lang.reflect.Type; import java.net.HttpURLConnection; import java.net.URL; +import java.net.UnknownHostException; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.util.concurrent.ExecutorService; @@ -134,13 +135,21 @@ public Future request(ApiRequest request) { responseType.getTypeName(), response ))); } - } catch (IOException e) { - ApolloHttpManager.handleError("Failed to parse request!", e, request); + } catch (IOException exception) { + if (exception instanceof UnknownHostException) { + return; + } + + ApolloHttpManager.handleError("Failed to parse request!", exception, request); } finally { connection.disconnect(); } - } catch (Throwable t) { - ApolloHttpManager.handleError("Failed to open connection!", t, request); + } catch (Throwable throwable) { + if (throwable instanceof UnknownHostException) { + return; + } + + ApolloHttpManager.handleError("Failed to open connection!", throwable, request); } }); diff --git a/common/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentImpl.java b/common/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentImpl.java index 1bfa2f92a..3c4199a40 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentImpl.java @@ -58,7 +58,7 @@ public PacketEnrichmentImpl() { private void onReceivePacket(ApolloReceivePacketEvent event) { Options options = this.getOptions(); - if (options.get(PacketEnrichmentModule.PLAYER_CHAT_OPEN_EVENT)) { + if (options.get(PacketEnrichmentModule.PLAYER_ATTACK_EVENT)) { event.unpack(PlayerAttackMessage.class).ifPresent(packet -> { ApolloPlayerAttackEvent playerAttackEvent = new ApolloPlayerAttackEvent( event.getPlayer(), diff --git a/common/src/main/java/com/lunarclient/apollo/version/ApolloVersionManager.java b/common/src/main/java/com/lunarclient/apollo/version/ApolloVersionManager.java index d13b6ce32..fce24d201 100644 --- a/common/src/main/java/com/lunarclient/apollo/version/ApolloVersionManager.java +++ b/common/src/main/java/com/lunarclient/apollo/version/ApolloVersionManager.java @@ -75,9 +75,14 @@ public ApolloVersionManager() { * @since 1.0.0 */ public void checkForUpdates() { + ApolloPlatform platform = Apollo.getPlatform(); + + if (!platform.getOptions().get(ApolloVersionManager.SEND_UPDATE_MESSAGE)) { + return; + } + ApolloManager.getHttpManager().request(VersionRequest.builder().build()) .onSuccess(response -> { - ApolloPlatform platform = Apollo.getPlatform(); String version = response.getVersion(); ApolloVersion currentVersion = new ApolloVersion(platform.getApolloVersion()); @@ -89,10 +94,6 @@ public void checkForUpdates() { this.updateAssets = response; - if (!platform.getOptions().get(ApolloVersionManager.SEND_UPDATE_MESSAGE)) { - return; - } - Logger logger = platform.getPlatformLogger(); logger.warning(String.format("A new version of Apollo is available! Latest release: %s", version)); diff --git a/docs/developers/lightweight/json/packet-util.mdx b/docs/developers/lightweight/json/packet-util.mdx index b7263a486..1a3a12e74 100644 --- a/docs/developers/lightweight/json/packet-util.mdx +++ b/docs/developers/lightweight/json/packet-util.mdx @@ -46,6 +46,7 @@ static { CONFIG_MODULE_PROPERTIES.put("server_rule", "nametag-render-distance", 64); CONFIG_MODULE_PROPERTIES.put("server_rule", "override-max-chat-length", false); CONFIG_MODULE_PROPERTIES.put("server_rule", "max-chat-length", 256); + CONFIG_MODULE_PROPERTIES.put("server_rule", "crystal-optimizer", false); CONFIG_MODULE_PROPERTIES.put("tnt_countdown", "tnt-ticks", 80); CONFIG_MODULE_PROPERTIES.put("title", "clear-title-on-server-switch", false); CONFIG_MODULE_PROPERTIES.put("waypoint", "server-handles-waypoints", false); diff --git a/docs/developers/lightweight/protobuf/packet-util.mdx b/docs/developers/lightweight/protobuf/packet-util.mdx index b74f9b56e..19ad54521 100644 --- a/docs/developers/lightweight/protobuf/packet-util.mdx +++ b/docs/developers/lightweight/protobuf/packet-util.mdx @@ -50,6 +50,7 @@ static { CONFIG_MODULE_PROPERTIES.put("server_rule", "nametag-render-distance", Value.newBuilder().setNumberValue(64).build()); CONFIG_MODULE_PROPERTIES.put("server_rule", "override-max-chat-length", Value.newBuilder().setBoolValue(false).build()); CONFIG_MODULE_PROPERTIES.put("server_rule", "max-chat-length", Value.newBuilder().setNumberValue(256).build()); + CONFIG_MODULE_PROPERTIES.put("server_rule", "crystal-optimizer", Value.newBuilder().setBoolValue(false).build()); CONFIG_MODULE_PROPERTIES.put("tnt_countdown", "tnt-ticks", Value.newBuilder().setNumberValue(80).build()); CONFIG_MODULE_PROPERTIES.put("title", "clear-title-on-server-switch", Value.newBuilder().setBoolValue(false).build()); CONFIG_MODULE_PROPERTIES.put("waypoint", "server-handles-waypoints", Value.newBuilder().setBoolValue(false).build()); diff --git a/docs/developers/minestom.mdx b/docs/developers/minestom.mdx index ee4f758f3..cb483ae4c 100644 --- a/docs/developers/minestom.mdx +++ b/docs/developers/minestom.mdx @@ -52,14 +52,14 @@ Next, add the `apollo-minestom` dependency to your project. ```kotlin filename="build.gradle.kts" dependencies { - implementation("com.lunarclient:apollo-minestom:1.2.3") + implementation("com.lunarclient:apollo-minestom:1.2.4") } ``` ```groovy filename="build.gradle" dependencies { - implementation 'com.lunarclient:apollo-minestom:1.2.3' + implementation 'com.lunarclient:apollo-minestom:1.2.4' } ``` @@ -69,7 +69,7 @@ Next, add the `apollo-minestom` dependency to your project. com.lunarclient apollo-minestom - 1.2.3 + 1.2.4 compile diff --git a/docs/developers/mods/overlaymod.mdx b/docs/developers/mods/overlaymod.mdx index 3ba30e838..725ff842b 100644 --- a/docs/developers/mods/overlaymod.mdx +++ b/docs/developers/mods/overlaymod.mdx @@ -19,7 +19,7 @@ public void toggleOverlayExample(Player viewer, boolean value) { - Config Key: `enabled` - Values - Type: `Boolean` - - Default: `true` + - Default: `false` - __`MINIMAL_VIEW_BOBBING`__ - When View Bobbing is enabled, only bob your hand (requires View Bobbing to be enabled). diff --git a/docs/developers/mods/skyblock.mdx b/docs/developers/mods/skyblock.mdx index f54aa69dc..3e20e3ecd 100644 --- a/docs/developers/mods/skyblock.mdx +++ b/docs/developers/mods/skyblock.mdx @@ -244,14 +244,20 @@ public void toggleHypixelSkyblockExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` +- __`SKY_BLOCK_FINISHED_COMMISSIONS`__ + - Config Key: `sky-block-finished-commissions` + - Values + - Type: `Boolean` + - Default: `false` + - __`SKY_BLOCK_METAL_DETECTOR`__ - Config Key: `sky-block-metal-detector` - Values - Type: `Boolean` - Default: `false` -- __`SKY_BLOCK_FINISHED_COMMISSIONS`__ - - Config Key: `sky-block-finished-commissions` +- __`SKY_BLOCK_METAL_DETECTOR_LINE`__ + - Config Key: `sky-block-metal-detector-line` - Values - Type: `Boolean` - Default: `false` diff --git a/docs/developers/mods/tiertagger.mdx b/docs/developers/mods/tiertagger.mdx index 2f1c889c0..704c4f8da 100644 --- a/docs/developers/mods/tiertagger.mdx +++ b/docs/developers/mods/tiertagger.mdx @@ -45,18 +45,18 @@ public void toggleTierTaggerExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `true` -- __`SHOW_RETIRED`__ - - Config Key: `show-retired` - - Values - - Type: `Boolean` - - Default: `false` - - __`SHOW_REGION`__ - Config Key: `show-region` - Values - Type: `Boolean` - Default: `true` +- __`SHOW_RETIRED`__ + - Config Key: `show-retired` + - Values + - Type: `Boolean` + - Default: `false` + - __`COLOR_HT1`__ - Config Key: `color-h-t1` - Values diff --git a/docs/developers/modules/serverrule.mdx b/docs/developers/modules/serverrule.mdx index fb4e8fd01..16133b808 100644 --- a/docs/developers/modules/serverrule.mdx +++ b/docs/developers/modules/serverrule.mdx @@ -219,3 +219,9 @@ public void setNametagRenderDistanceExample(int value) { - Default: `256` - Minimum: `1` - Maximum: `256` + +- __`CRYSTAL_OPTIMIZER`__ + - Whether to enable crystal optimizer. + - Values + - Type: `Boolean` + - Default: `false` diff --git a/docs/developers/modules/team.mdx b/docs/developers/modules/team.mdx index daa963534..488965940 100644 --- a/docs/developers/modules/team.mdx +++ b/docs/developers/modules/team.mdx @@ -45,9 +45,7 @@ private void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); this.getByPlayerUuid(player.getUniqueId()).ifPresent(team -> { - if (team.getMembers().size() == 1) { - this.deleteTeam(team.getTeamId()); - } + team.removeMember(player); }); } @@ -89,20 +87,20 @@ private void runFoliaTeamUpdateTask() { public class Team { private final UUID teamId; - private final Set members; + private final Map members; public Team() { this.teamId = UUID.randomUUID(); - this.members = Sets.newHashSet(); + this.members = new HashMap<>(); } public void addMember(Player player) { - this.members.add(player); + this.members.put(player.getUniqueId(), player); TeamApiExample.this.teamsByPlayerUuid.put(player.getUniqueId(), this); } public void removeMember(Player player) { - this.members.remove(player); + this.members.remove(player.getUniqueId()); TeamApiExample.this.teamsByPlayerUuid.remove(player.getUniqueId()); Apollo.getPlayerManager().getPlayer(player.getUniqueId()) @@ -130,11 +128,12 @@ public class Team { // The refresh method used for updating members locations public void refresh() { - List teammates = this.members.stream().filter(Player::isOnline) + List teammates = this.members.values() + .stream().filter(Player::isOnline) .map(this::createTeamMember) .collect(Collectors.toList()); - this.members.forEach(member -> Apollo.getPlayerManager().getPlayer(member.getUniqueId()) + this.members.values().forEach(member -> Apollo.getPlayerManager().getPlayer(member.getUniqueId()) .ifPresent(apolloPlayer -> TeamApiExample.this.teamModule.updateTeamMembers(apolloPlayer, teammates))); } @@ -142,8 +141,8 @@ public class Team { return this.teamId; } - public Set getMembers() { - return this.members; + public Collection getMembers() { + return this.members.values(); } @Override @@ -256,9 +255,7 @@ private void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); this.getByPlayerUuid(player.getUniqueId()).ifPresent(team -> { - if (team.getMembers().size() == 1) { - this.deleteTeam(team.getTeamId()); - } + team.removeMember(player); }); } @@ -300,20 +297,20 @@ private void runFoliaTeamUpdateTask() { public class Team { private final UUID teamId; - private final Set members; + private final Map members; public Team() { this.teamId = UUID.randomUUID(); - this.members = Sets.newHashSet(); + this.members = new HashMap<>(); } public void addMember(Player player) { - this.members.add(player); + this.members.put(player.getUniqueId(), player); TeamProtoExample.this.teamsByPlayerUuid.put(player.getUniqueId(), this); } public void removeMember(Player player) { - this.members.remove(player); + this.members.remove(player.getUniqueId()); TeamProtoExample.this.teamsByPlayerUuid.remove(player.getUniqueId()); ResetTeamMembersMessage message = ResetTeamMembersMessage.getDefaultInstance(); @@ -336,7 +333,7 @@ public class Team { // The refresh method used for updating members locations public void refresh() { - List teammates = this.members.stream().filter(Player::isOnline) + List teammates = this.members.values().stream().filter(Player::isOnline) .map(this::createTeamMember) .collect(Collectors.toList()); @@ -344,15 +341,15 @@ public class Team { .addAllMembers(teammates) .build(); - this.members.forEach(member -> ProtobufPacketUtil.sendPacket(member, message)); + this.members.values().forEach(member -> ProtobufPacketUtil.sendPacket(member, message)); } public UUID getTeamId() { return this.teamId; } - public Set getMembers() { - return this.members; + public Collection getMembers() { + return this.members.values(); } @Override @@ -399,9 +396,7 @@ private void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); this.getByPlayerUuid(player.getUniqueId()).ifPresent(team -> { - if (team.getMembers().size() == 1) { - this.deleteTeam(team.getTeamId()); - } + team.removeMember(player); }); } @@ -443,20 +438,20 @@ private void runFoliaTeamUpdateTask() { public class Team { private final UUID teamId; - private final Set members; + private final Map members; public Team() { this.teamId = UUID.randomUUID(); - this.members = Sets.newHashSet(); + this.members = new HashMap<>(); } public void addMember(Player player) { - this.members.add(player); + this.members.put(player.getUniqueId(), player); TeamJsonExample.this.teamsByPlayerUuid.put(player.getUniqueId(), this); } public void removeMember(Player player) { - this.members.remove(player); + this.members.remove(player.getUniqueId()); TeamJsonExample.this.teamsByPlayerUuid.remove(player.getUniqueId()); JsonObject message = new JsonObject(); @@ -482,7 +477,8 @@ public class Team { // The refresh method used for updating members locations public void refresh() { - JsonArray teammates = this.members.stream().filter(Player::isOnline) + JsonArray teammates = this.members.values() + .stream().filter(Player::isOnline) .map(this::createTeamMember) .collect(JsonArray::new, JsonArray::add, JsonArray::addAll); @@ -490,15 +486,15 @@ public class Team { message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.team.v1.UpdateTeamMembersMessage"); message.add("members", teammates); - this.members.forEach(member -> JsonPacketUtil.sendPacket(member, message)); + this.members.values().forEach(member -> JsonPacketUtil.sendPacket(member, message)); } public UUID getTeamId() { return this.teamId; } - public Set getMembers() { - return this.members; + public Collection getMembers() { + return this.members.values(); } @Override diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TeamApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TeamApiExample.java index c25a5fa90..6985a24aa 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TeamApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TeamApiExample.java @@ -24,7 +24,6 @@ package com.lunarclient.apollo.example.api.module; import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import com.lunarclient.apollo.Apollo; import com.lunarclient.apollo.common.location.ApolloLocation; import com.lunarclient.apollo.example.ApolloExamplePlugin; @@ -33,10 +32,11 @@ import com.lunarclient.apollo.module.team.TeamMember; import com.lunarclient.apollo.module.team.TeamModule; import java.awt.Color; +import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.Set; import java.util.UUID; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -71,9 +71,7 @@ private void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); this.getByPlayerUuid(player.getUniqueId()).ifPresent(team -> { - if (team.getMembers().size() == 1) { - this.deleteTeam(team.getTeamId()); - } + team.removeMember(player); }); } @@ -115,20 +113,20 @@ private void runFoliaTeamUpdateTask() { public class Team { private final UUID teamId; - private final Set members; + private final Map members; public Team() { this.teamId = UUID.randomUUID(); - this.members = Sets.newHashSet(); + this.members = new HashMap<>(); } public void addMember(Player player) { - this.members.add(player); + this.members.put(player.getUniqueId(), player); TeamApiExample.this.teamsByPlayerUuid.put(player.getUniqueId(), this); } public void removeMember(Player player) { - this.members.remove(player); + this.members.remove(player.getUniqueId()); TeamApiExample.this.teamsByPlayerUuid.remove(player.getUniqueId()); Apollo.getPlayerManager().getPlayer(player.getUniqueId()) @@ -156,11 +154,12 @@ private TeamMember createTeamMember(Player member) { // The refresh method used for updating members locations public void refresh() { - List teammates = this.members.stream().filter(Player::isOnline) + List teammates = this.members.values() + .stream().filter(Player::isOnline) .map(this::createTeamMember) .collect(Collectors.toList()); - this.members.forEach(member -> Apollo.getPlayerManager().getPlayer(member.getUniqueId()) + this.members.values().forEach(member -> Apollo.getPlayerManager().getPlayer(member.getUniqueId()) .ifPresent(apolloPlayer -> TeamApiExample.this.teamModule.updateTeamMembers(apolloPlayer, teammates))); } @@ -168,8 +167,8 @@ public UUID getTeamId() { return this.teamId; } - public Set getMembers() { - return this.members; + public Collection getMembers() { + return this.members.values(); } @Override diff --git a/example/bukkit/api/src/main/resources/plugin.yml b/example/bukkit/api/src/main/resources/plugin.yml index 37ed6fc2e..fbe960bbe 100644 --- a/example/bukkit/api/src/main/resources/plugin.yml +++ b/example/bukkit/api/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: Apollo-API-Example main: com.lunarclient.apollo.example.api.ApolloApiExamplePlatform -version: 1.2.3 +version: 1.2.4 author: Moonsworth softdepend: [ Apollo-Bukkit, Apollo-Folia ] api-version: 1.13 diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TeamJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TeamJsonExample.java index 4aa4afba2..8683030d2 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TeamJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TeamJsonExample.java @@ -24,7 +24,6 @@ package com.lunarclient.apollo.example.json.module; import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.lunarclient.apollo.example.ApolloExamplePlugin; @@ -34,9 +33,10 @@ import com.lunarclient.apollo.example.module.impl.TeamExample; import com.lunarclient.apollo.example.util.ServerUtil; import java.awt.Color; +import java.util.Collection; +import java.util.HashMap; import java.util.Map; import java.util.Optional; -import java.util.Set; import java.util.UUID; import java.util.concurrent.TimeUnit; import net.kyori.adventure.text.Component; @@ -67,9 +67,7 @@ private void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); this.getByPlayerUuid(player.getUniqueId()).ifPresent(team -> { - if (team.getMembers().size() == 1) { - this.deleteTeam(team.getTeamId()); - } + team.removeMember(player); }); } @@ -111,20 +109,20 @@ private void runFoliaTeamUpdateTask() { public class Team { private final UUID teamId; - private final Set members; + private final Map members; public Team() { this.teamId = UUID.randomUUID(); - this.members = Sets.newHashSet(); + this.members = new HashMap<>(); } public void addMember(Player player) { - this.members.add(player); + this.members.put(player.getUniqueId(), player); TeamJsonExample.this.teamsByPlayerUuid.put(player.getUniqueId(), this); } public void removeMember(Player player) { - this.members.remove(player); + this.members.remove(player.getUniqueId()); TeamJsonExample.this.teamsByPlayerUuid.remove(player.getUniqueId()); JsonObject message = new JsonObject(); @@ -150,7 +148,8 @@ private JsonObject createTeamMember(Player member) { // The refresh method used for updating members locations public void refresh() { - JsonArray teammates = this.members.stream().filter(Player::isOnline) + JsonArray teammates = this.members.values() + .stream().filter(Player::isOnline) .map(this::createTeamMember) .collect(JsonArray::new, JsonArray::add, JsonArray::addAll); @@ -158,15 +157,15 @@ public void refresh() { message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.team.v1.UpdateTeamMembersMessage"); message.add("members", teammates); - this.members.forEach(member -> JsonPacketUtil.sendPacket(member, message)); + this.members.values().forEach(member -> JsonPacketUtil.sendPacket(member, message)); } public UUID getTeamId() { return this.teamId; } - public Set getMembers() { - return this.members; + public Collection getMembers() { + return this.members.values(); } @Override diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonPacketUtil.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonPacketUtil.java index 57b945613..7b862ef50 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonPacketUtil.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonPacketUtil.java @@ -64,6 +64,7 @@ public final class JsonPacketUtil { CONFIG_MODULE_PROPERTIES.put("server_rule", "nametag-render-distance", 64); CONFIG_MODULE_PROPERTIES.put("server_rule", "override-max-chat-length", false); CONFIG_MODULE_PROPERTIES.put("server_rule", "max-chat-length", 256); + CONFIG_MODULE_PROPERTIES.put("server_rule", "crystal-optimizer", false); CONFIG_MODULE_PROPERTIES.put("tnt_countdown", "tnt-ticks", 80); CONFIG_MODULE_PROPERTIES.put("title", "clear-title-on-server-switch", false); CONFIG_MODULE_PROPERTIES.put("waypoint", "server-handles-waypoints", false); diff --git a/example/bukkit/json/src/main/resources/plugin.yml b/example/bukkit/json/src/main/resources/plugin.yml index 8cb227154..a74914efc 100644 --- a/example/bukkit/json/src/main/resources/plugin.yml +++ b/example/bukkit/json/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: Apollo-Json-Example main: com.lunarclient.apollo.example.json.ApolloJsonExamplePlatform -version: 1.2.3 +version: 1.2.4 author: Moonsworth softdepend: [ Apollo-Bukkit ] api-version: 1.13 diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TeamProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TeamProtoExample.java index 24f995b22..35726ceae 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TeamProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TeamProtoExample.java @@ -24,7 +24,6 @@ package com.lunarclient.apollo.example.proto.module; import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import com.lunarclient.apollo.example.ApolloExamplePlugin; import com.lunarclient.apollo.example.module.impl.TeamExample; import com.lunarclient.apollo.example.proto.util.AdventureUtil; @@ -35,10 +34,11 @@ import com.lunarclient.apollo.team.v1.TeamMember; import com.lunarclient.apollo.team.v1.UpdateTeamMembersMessage; import java.awt.Color; +import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.Set; import java.util.UUID; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -70,9 +70,7 @@ private void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); this.getByPlayerUuid(player.getUniqueId()).ifPresent(team -> { - if (team.getMembers().size() == 1) { - this.deleteTeam(team.getTeamId()); - } + team.removeMember(player); }); } @@ -114,20 +112,20 @@ private void runFoliaTeamUpdateTask() { public class Team { private final UUID teamId; - private final Set members; + private final Map members; public Team() { this.teamId = UUID.randomUUID(); - this.members = Sets.newHashSet(); + this.members = new HashMap<>(); } public void addMember(Player player) { - this.members.add(player); + this.members.put(player.getUniqueId(), player); TeamProtoExample.this.teamsByPlayerUuid.put(player.getUniqueId(), this); } public void removeMember(Player player) { - this.members.remove(player); + this.members.remove(player.getUniqueId()); TeamProtoExample.this.teamsByPlayerUuid.remove(player.getUniqueId()); ResetTeamMembersMessage message = ResetTeamMembersMessage.getDefaultInstance(); @@ -150,7 +148,7 @@ private TeamMember createTeamMember(Player member) { // The refresh method used for updating members locations public void refresh() { - List teammates = this.members.stream().filter(Player::isOnline) + List teammates = this.members.values().stream().filter(Player::isOnline) .map(this::createTeamMember) .collect(Collectors.toList()); @@ -158,15 +156,15 @@ public void refresh() { .addAllMembers(teammates) .build(); - this.members.forEach(member -> ProtobufPacketUtil.sendPacket(member, message)); + this.members.values().forEach(member -> ProtobufPacketUtil.sendPacket(member, message)); } public UUID getTeamId() { return this.teamId; } - public Set getMembers() { - return this.members; + public Collection getMembers() { + return this.members.values(); } @Override diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/ProtobufPacketUtil.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/ProtobufPacketUtil.java index 423d6214c..a9be9f648 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/ProtobufPacketUtil.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/ProtobufPacketUtil.java @@ -71,6 +71,7 @@ public final class ProtobufPacketUtil { CONFIG_MODULE_PROPERTIES.put("server_rule", "nametag-render-distance", Value.newBuilder().setNumberValue(64).build()); CONFIG_MODULE_PROPERTIES.put("server_rule", "override-max-chat-length", Value.newBuilder().setBoolValue(false).build()); CONFIG_MODULE_PROPERTIES.put("server_rule", "max-chat-length", Value.newBuilder().setNumberValue(256).build()); + CONFIG_MODULE_PROPERTIES.put("server_rule", "crystal-optimizer", Value.newBuilder().setBoolValue(false).build()); CONFIG_MODULE_PROPERTIES.put("tnt_countdown", "tnt-ticks", Value.newBuilder().setNumberValue(80).build()); CONFIG_MODULE_PROPERTIES.put("title", "clear-title-on-server-switch", Value.newBuilder().setBoolValue(false).build()); CONFIG_MODULE_PROPERTIES.put("waypoint", "server-handles-waypoints", Value.newBuilder().setBoolValue(false).build()); diff --git a/example/bukkit/proto/src/main/resources/plugin.yml b/example/bukkit/proto/src/main/resources/plugin.yml index 2be56f568..dbc9453b9 100644 --- a/example/bukkit/proto/src/main/resources/plugin.yml +++ b/example/bukkit/proto/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: Apollo-Proto-Example main: com.lunarclient.apollo.example.proto.ApolloProtoExamplePlatform -version: 1.2.3 +version: 1.2.4 author: Moonsworth softdepend: [ Apollo-Bukkit ] api-version: 1.13 diff --git a/gradle.properties b/gradle.properties index 4ba5b0b12..0507e51fe 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.lunarclient -version=1.2.3 +version=1.2.4 description=The API for interacting with Lunar Client players. org.gradle.parallel=true diff --git a/platform/bukkit/src/platform-loader/resources/plugin.yml b/platform/bukkit/src/platform-loader/resources/plugin.yml index 727cb7dd4..456837bc8 100644 --- a/platform/bukkit/src/platform-loader/resources/plugin.yml +++ b/platform/bukkit/src/platform-loader/resources/plugin.yml @@ -1,6 +1,6 @@ name: Apollo-Bukkit main: com.lunarclient.apollo.loader.BukkitPlatformLoader -version: 1.2.3 +version: 1.2.4 author: Moonsworth api-version: 1.13 soft-depend: [LunarClient-API] diff --git a/platform/bungee/src/platform-loader/resources/plugin.yml b/platform/bungee/src/platform-loader/resources/plugin.yml index 28b0780a3..c9abad3c7 100644 --- a/platform/bungee/src/platform-loader/resources/plugin.yml +++ b/platform/bungee/src/platform-loader/resources/plugin.yml @@ -1,4 +1,4 @@ name: Apollo-Bungee main: com.lunarclient.apollo.loader.BungeePlatformLoader -version: 1.2.3 +version: 1.2.4 author: Moonsworth diff --git a/platform/folia/src/main/resources/plugin.yml b/platform/folia/src/main/resources/plugin.yml index 09da14bb7..a3eba4b5a 100644 --- a/platform/folia/src/main/resources/plugin.yml +++ b/platform/folia/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: Apollo-Folia main: com.lunarclient.apollo.ApolloFoliaPlatform -version: 1.2.3 +version: 1.2.4 author: Moonsworth api-version: 1.13 folia-supported: true diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomPlatform.java b/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomPlatform.java index c0f66845e..0a32651b8 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomPlatform.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomPlatform.java @@ -237,7 +237,7 @@ public Options getOptions() { @Override public String getApolloVersion() { - return "1.2.3"; + return "1.2.4"; } @Override diff --git a/platform/velocity/src/main/java/com/lunarclient/apollo/ApolloVelocityPlatform.java b/platform/velocity/src/main/java/com/lunarclient/apollo/ApolloVelocityPlatform.java index 0b63dc152..53f3d53c4 100644 --- a/platform/velocity/src/main/java/com/lunarclient/apollo/ApolloVelocityPlatform.java +++ b/platform/velocity/src/main/java/com/lunarclient/apollo/ApolloVelocityPlatform.java @@ -105,7 +105,7 @@ @Plugin( id = "apollo", name = "Apollo-Velocity", - version = "1.2.3", + version = "1.2.4", url = "https://moonsworth.com", description = "Implementation of Apollo for Velocity", authors = {"Moonsworth"}