From 283768c542c9c7d916d670b5d40043413d748c13 Mon Sep 17 00:00:00 2001 From: ItsNature Date: Fri, 27 Mar 2026 01:18:38 +0100 Subject: [PATCH 1/6] Deploy as 1.2.5-SNAPSHOT --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 0507e51f..91f229d9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.lunarclient -version=1.2.4 +version=1.2.5-SNAPSHOT description=The API for interacting with Lunar Client players. org.gradle.parallel=true From 3707207e72f4589e4d63240bd3d11921cc2b7b4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Bu=C4=8Dari=C4=87?= Date: Mon, 30 Mar 2026 22:11:19 +0200 Subject: [PATCH 2/6] Lightweight(JSON): Add serverbound & roundtrip packets examples (#264) * lightweight(json): add serverbound & roundtrip packets examples * change wording * change wording --------- Co-authored-by: Trentin <25537885+TrentinTheKid@users.noreply.github.com> --- docs/developers/lightweight/json/_meta.json | 2 + .../lightweight/json/getting-started.mdx | 2 + .../lightweight/json/packet-util.mdx | 13 +- .../lightweight/json/roundtrip-packets.mdx | 90 ++++++++++ .../lightweight/json/serverbound-packets.mdx | 144 ++++++++++++++++ .../lightweight/protobuf/object-util.mdx | 29 ++-- .../lightweight/protobuf/packet-util.mdx | 13 +- .../protobuf/roundtrip-packets.mdx | 2 +- .../protobuf/serverbound-packets.mdx | 30 +++- docs/developers/modules/transfer.mdx | 67 +++++++- .../ApolloPacketReceiveJsonListener.java | 162 ++++++++++++++++++ .../listener/ApolloPlayerJsonListener.java | 3 +- .../listener/ApolloRoundtripJsonListener.java | 117 +++++++++++++ .../json/module/TransferJsonExample.java | 73 +++++++- .../example/json/util/JsonPacketUtil.java | 13 +- .../apollo/example/json/util/JsonUtil.java | 30 ++++ .../ApolloPacketReceiveProtoListener.java | 41 ++++- .../ApolloRoundtripProtoListener.java | 3 +- .../proto/util/ProtobufPacketUtil.java | 13 +- 19 files changed, 807 insertions(+), 40 deletions(-) create mode 100644 docs/developers/lightweight/json/roundtrip-packets.mdx create mode 100644 docs/developers/lightweight/json/serverbound-packets.mdx create mode 100644 example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPacketReceiveJsonListener.java create mode 100644 example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloRoundtripJsonListener.java diff --git a/docs/developers/lightweight/json/_meta.json b/docs/developers/lightweight/json/_meta.json index 38a14154..83eb3d8b 100644 --- a/docs/developers/lightweight/json/_meta.json +++ b/docs/developers/lightweight/json/_meta.json @@ -1,6 +1,8 @@ { "getting-started": "Getting Started", "player-detection": "Player Detection", + "serverbound-packets": "Serverbound Packets", + "roundtrip-packets": "Roundtrip Packets", "packet-util": "Packet Util", "object-util": "Object Util", "adventure-util": "Adventure Util" diff --git a/docs/developers/lightweight/json/getting-started.mdx b/docs/developers/lightweight/json/getting-started.mdx index bed60847..63e03adc 100644 --- a/docs/developers/lightweight/json/getting-started.mdx +++ b/docs/developers/lightweight/json/getting-started.mdx @@ -18,5 +18,7 @@ While constructing messages, note that the `@type` field isn't required if the m 🔗 [Detecting players using LunarClient](/apollo/developers/lightweight/json/player-detection)
🔗 [Common Apollo Objects](/apollo/developers/lightweight/json/object-util)
🔗 [Adventure Util](/apollo/developers/lightweight/json/adventure-util)
+🔗 [Apollo Serverbound packets](/apollo/developers/lightweight/json/serverbound-packets)
+🔗 [Apollo Roundtrip packets](/apollo/developers/lightweight/json/roundtrip-packets)
For examples of module integration, refer to the specific Module pages. Each page contains code samples under the `Manual JSON Object Construction` tab. For instance, you can find sample code for the `BorderModule` on its dedicated page [BorderModule](/apollo/developers/modules/border#sample-code) in the `Sample Code` section. diff --git a/docs/developers/lightweight/json/packet-util.mdx b/docs/developers/lightweight/json/packet-util.mdx index 1a3a12e7..cbb8ef03 100644 --- a/docs/developers/lightweight/json/packet-util.mdx +++ b/docs/developers/lightweight/json/packet-util.mdx @@ -13,9 +13,9 @@ The methods in this utility leverage the same plugin messaging channel as the Ap To utilize Apollo Modules, first define a list of the modules you want to use: ```java -private static final List APOLLO_MODULES = Arrays.asList("limb", "beam", "border", "chat", "colored_fire", "combat", "cooldown", - "entity", "glow", "hologram", "mod_setting", "nametag", "nick_hider", "notification", "packet_enrichment", "rich_presence", - "server_rule", "staff_mod", "stopwatch", "team", "title", "tnt_countdown", "transfer", "vignette", "waypoint" +private static final List APOLLO_MODULES = Arrays.asList("auto_text_hotkey", "beam", "border", "chat", "colored_fire", "combat", "cooldown", + "entity", "glint", "glow", "hologram", "inventory", "limb", "mod_setting", "nametag", "nick_hider", "notification", "pay_now", "packet_enrichment", + "rich_presence", "saturation", "server_rule", "staff_mod", "stopwatch", "team", "tebex", "title", "tnt_countdown", "transfer", "vignette", "waypoint" ); ``` @@ -31,9 +31,14 @@ Next, specify the properties for these modules. These properties are included in private static final Table CONFIG_MODULE_PROPERTIES = HashBasedTable.create(); static { - // Module Options that the client needs to notified about, these properties are sent with the enable module packet + // Module Options the client needs to be notified about. These properties are sent with the enable module packet. // While using the Apollo plugin this would be equivalent to modifying the config.yml CONFIG_MODULE_PROPERTIES.put("combat", "disable-miss-penalty", false); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-attack.send-packet", false); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-chat-open.send-packet", false); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-chat-close.send-packet", false); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-use-item.send-packet", false); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-use-item-bucket.send-packet", false); CONFIG_MODULE_PROPERTIES.put("server_rule", "competitive-game", false); CONFIG_MODULE_PROPERTIES.put("server_rule", "competitive-commands", Arrays.asList("/server", "/servers", "/hub")); CONFIG_MODULE_PROPERTIES.put("server_rule", "disable-shaders", false); diff --git a/docs/developers/lightweight/json/roundtrip-packets.mdx b/docs/developers/lightweight/json/roundtrip-packets.mdx new file mode 100644 index 00000000..c5315b4e --- /dev/null +++ b/docs/developers/lightweight/json/roundtrip-packets.mdx @@ -0,0 +1,90 @@ +import { Callout } from 'nextra-theme-docs' + +# Roundtrip Packets + +## Overview + +This example demonstrates how to handle roundtrip packets between the server and the Lunar Client using JSON messages. These packets are sent from the server, expecting a corresponding response from the client. The example utilizes a map to track the requests and their corresponding responses. + + + Note that this method uses a different plugin channel for + sending and receiving packets, which is `apollo:json`. + + +## Integration + +```java +public class ApolloRoundtripJsonListener implements PluginMessageListener { + + private static final String TYPE_PREFIX = "type.googleapis.com/"; + private static final JsonParser JSON_PARSER = new JsonParser(); + + @Getter + private static ApolloRoundtripJsonListener instance; + + private final Map>> roundTripPacketFutures = new ConcurrentHashMap<>(); + private final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); + + public ApolloRoundtripJsonListener(ApolloExamplePlugin plugin) { + instance = this; + Bukkit.getServer().getMessenger().registerIncomingPluginChannel(plugin, "apollo:json", this); + } + + @Override + public void onPluginMessageReceived(@NonNull String channel, @NonNull Player player, byte[] bytes) { + JsonObject payload; + try { + payload = JSON_PARSER.parse(new String(bytes, StandardCharsets.UTF_8)).getAsJsonObject(); + } catch (Exception e) { + return; + } + + if (!payload.has("@type")) { + return; + } + + String type = payload.get("@type").getAsString(); + if (type.startsWith(TYPE_PREFIX)) { + type = type.substring(TYPE_PREFIX.length()); + } + + if ("lunarclient.apollo.transfer.v1.PingResponse".equals(type) + || "lunarclient.apollo.transfer.v1.TransferResponse".equals(type)) { + UUID requestId = UUID.fromString(payload.get("request_id").getAsString().replace("+", "-")); + this.handleResponse(player, requestId, payload); + } + } + + public CompletableFuture sendRequest(Player player, UUID requestId, JsonObject request, String requestType) { + request.addProperty("@type", TYPE_PREFIX + requestType); + request.addProperty("request_id", requestId.toString()); + JsonPacketUtil.sendPacket(player, request); + + CompletableFuture future = new CompletableFuture<>(); + + this.roundTripPacketFutures + .computeIfAbsent(player.getUniqueId(), k -> new ConcurrentHashMap<>()) + .put(requestId, future); + + ScheduledFuture timeoutTask = this.executorService.schedule(() -> + future.completeExceptionally(new TimeoutException("Response timed out")), + 10, TimeUnit.SECONDS + ); + + future.whenComplete((result, throwable) -> timeoutTask.cancel(false)); + return future; + } + + private void handleResponse(Player player, UUID requestId, JsonObject message) { + Map> futures = this.roundTripPacketFutures.get(player.getUniqueId()); + if (futures == null) { + return; + } + + CompletableFuture future = futures.remove(requestId); + if (future != null) { + future.complete(message); + } + } +} +``` diff --git a/docs/developers/lightweight/json/serverbound-packets.mdx b/docs/developers/lightweight/json/serverbound-packets.mdx new file mode 100644 index 00000000..fc86cf12 --- /dev/null +++ b/docs/developers/lightweight/json/serverbound-packets.mdx @@ -0,0 +1,144 @@ +import { Callout } from 'nextra-theme-docs' + +# Serverbound Packets + +## Overview + +Players using Lunar Client may send packets to the server for specific Apollo modules, such as the `PacketEnrichment Module` and/or when the player is joining the server. This example demonstrates how to handle packets sent from the client that are related to Apollo while using JSON messages. + +Additionally, the `Transfer Module` expects a response packet from the client after the server sends a request. For an example of how to handle roundtrip packets, visit [Packet Roundtrip Example](/apollo/developers/lightweight/json/roundtrip-packets) + + + Note that this method uses a different plugin channel for + sending and receiving packets, which is `apollo:json`. + + +## Integration + +```java +public class ApolloPacketReceiveJsonListener implements PluginMessageListener { + + private static final String TYPE_PREFIX = "type.googleapis.com/"; + private static final JsonParser JSON_PARSER = new JsonParser(); + + public ApolloPacketReceiveJsonListener(ApolloExamplePlugin plugin) { + Bukkit.getServer().getMessenger().registerIncomingPluginChannel(plugin, "apollo:json", this); + } + + @Override + public void onPluginMessageReceived(@NonNull String channel, @NonNull Player player, byte[] bytes) { + JsonObject payload; + try { + payload = JSON_PARSER.parse(new String(bytes, StandardCharsets.UTF_8)).getAsJsonObject(); + } catch (Exception e) { + return; + } + + if (!payload.has("@type")) { + return; + } + + String type = payload.get("@type").getAsString(); + if (type.startsWith(TYPE_PREFIX)) { + type = type.substring(TYPE_PREFIX.length()); + } + + if ("lunarclient.apollo.player.v1.PlayerHandshakeMessage".equals(type)) { + this.onPlayerHandshake(payload); + } + + // Packet Enrichment Module + if ("lunarclient.apollo.packetenrichment.v1.PlayerAttackMessage".equals(type)) { + this.onPlayerAttack(payload); + } else if ("lunarclient.apollo.packetenrichment.v1.PlayerChatOpenMessage".equals(type)) { + this.onPlayerChatOpen(payload); + } else if ("lunarclient.apollo.packetenrichment.v1.PlayerChatCloseMessage".equals(type)) { + this.onPlayerChatClose(payload); + } else if ("lunarclient.apollo.packetenrichment.v1.PlayerUseItemMessage".equals(type)) { + this.onPlayerUseItem(payload); + } else if ("lunarclient.apollo.packetenrichment.v1.PlayerUseItemBucketMessage".equals(type)) { + this.onPlayerUseItemBucket(payload); + } + } + + private void onPlayerHandshake(JsonObject message) { + String checkoutSupport = message.get("embedded_checkout_support").getAsString(); + + JsonObject minecraftVersion = message.getAsJsonObject("minecraft_version"); + String version = minecraftVersion.get("enum").getAsString(); + + JsonObject lunarClientVersion = message.getAsJsonObject("lunar_client_version"); + String gitBranch = lunarClientVersion.get("git_branch").getAsString(); + String gitCommit = lunarClientVersion.get("git_commit").getAsString(); + String semVer = lunarClientVersion.get("semver").getAsString(); + + for (JsonElement element : message.getAsJsonArray("installed_mods")) { + JsonObject mod = element.getAsJsonObject(); + + String modId = mod.get("id").getAsString(); + String displayName = mod.get("name").getAsString(); + String modVersion = mod.get("version").getAsString(); + String modType = mod.get("type").getAsString(); + } + } + + private void onPlayerAttack(JsonObject message) { + long instantiationTimeMs = JsonUtil.toJavaTimestamp(message); + + JsonObject targetInfo = message.getAsJsonObject("target_info"); + JsonObject attackerInfo = message.getAsJsonObject("attacker_info"); + + this.onPlayerInfo(targetInfo); + this.onPlayerInfo(attackerInfo); + } + + private void onPlayerChatOpen(JsonObject message) { + long instantiationTimeMs = JsonUtil.toJavaTimestamp(message); + this.onPlayerInfo(message.getAsJsonObject("player_info")); + } + + private void onPlayerChatClose(JsonObject message) { + long instantiationTimeMs = JsonUtil.toJavaTimestamp(message); + this.onPlayerInfo(message.getAsJsonObject("player_info")); + } + + private void onPlayerUseItem(JsonObject message) { + long instantiationTimeMs = JsonUtil.toJavaTimestamp(message); + this.onPlayerInfo(message.getAsJsonObject("player_info")); + + boolean mainHand = message.get("main_hand").getAsBoolean(); + } + + private void onPlayerUseItemBucket(JsonObject message) { + long instantiationTimeMs = JsonUtil.toJavaTimestamp(message); + this.onPlayerInfo(message.getAsJsonObject("player_info")); + + JsonObject rayTraceResult = message.getAsJsonObject("ray_trace_result"); + + if (rayTraceResult.has("block")) { + JsonObject blockHit = rayTraceResult.getAsJsonObject("block"); + + JsonObject hitLocation = blockHit.getAsJsonObject("hit_location"); + JsonObject blockLocation = blockHit.getAsJsonObject("block_location"); + String directionStr = blockHit.get("direction").getAsString(); + } else if (rayTraceResult.has("entity")) { + JsonObject entityHit = rayTraceResult.getAsJsonObject("entity"); + + JsonObject hitLocation = entityHit.getAsJsonObject("hit_location"); + String entityId = entityHit.get("entity_id").getAsString(); + } else { + // MISS + } + } + + private void onPlayerInfo(JsonObject info) { + UUID uuid = JsonUtil.toJavaUuid(info.getAsJsonObject("player_uuid")); + Location location = JsonUtil.toBukkitPlayerLocation(info.getAsJsonObject("location")); + boolean sneaking = info.get("sneaking").getAsBoolean(); + boolean sprinting = info.get("sprinting").getAsBoolean(); + boolean jumping = info.get("jumping").getAsBoolean(); + float forwardSpeed = info.get("forward_speed").getAsFloat(); + float strafeSpeed = info.get("strafe_speed").getAsFloat(); + } +} +``` diff --git a/docs/developers/lightweight/protobuf/object-util.mdx b/docs/developers/lightweight/protobuf/object-util.mdx index 51fb3278..b4111e5b 100644 --- a/docs/developers/lightweight/protobuf/object-util.mdx +++ b/docs/developers/lightweight/protobuf/object-util.mdx @@ -7,12 +7,16 @@ These utilities facilitate the creation of Apollo objects, commonly used across ## Integration ```java -public static UUID toJavaUuid(Uuid message) { - return new UUID(message.getHigh64(), message.getLow64()); +public static UUID toJavaUuid(JsonObject obj) { + long high = Long.parseUnsignedLong(obj.get("high64").getAsString()); + long low = Long.parseUnsignedLong(obj.get("low64").getAsString()); + return new UUID(high, low); } -public static long toJavaTimestamp(Timestamp message) { - return message.getSeconds() * 1000 + message.getNanos() / 1000000; +public static long toJavaTimestamp(JsonObject timestampObject) { + JsonObject packetInfo = timestampObject.getAsJsonObject("packet_info"); + String iso = packetInfo.get("instantiation_time").getAsString(); + return Instant.parse(iso).toEpochMilli(); } public static Uuid createUuidProto(UUID object) { @@ -73,14 +77,19 @@ public static BlockLocation createBlockLocationProto(Location location) { .build(); } -public static Location toBukkitLocation(com.lunarclient.apollo.common.v1.Location message) { - return new Location(Bukkit.getWorld(message.getWorld()), message.getX(), message.getY(), message.getZ()); +public static Location toBukkitLocation(JsonObject message) { + return new Location( + Bukkit.getWorld(message.get("world").getAsString()), + message.get("x").getAsDouble(), + message.get("y").getAsDouble(), + message.get("z").getAsDouble() + ); } -public static Location toBukkitLocation(com.lunarclient.apollo.common.v1.PlayerLocation message) { - Location location = ProtobufUtil.toBukkitLocation(message.getLocation()); - location.setYaw(message.getYaw()); - location.setPitch(message.getPitch()); +public static Location toBukkitPlayerLocation(JsonObject message) { + Location location = JsonUtil.toBukkitLocation(message.getAsJsonObject("location")); + location.setYaw(message.get("yaw").getAsFloat()); + location.setPitch(message.get("pitch").getAsFloat()); return location; } ``` diff --git a/docs/developers/lightweight/protobuf/packet-util.mdx b/docs/developers/lightweight/protobuf/packet-util.mdx index 19ad5452..bca907ab 100644 --- a/docs/developers/lightweight/protobuf/packet-util.mdx +++ b/docs/developers/lightweight/protobuf/packet-util.mdx @@ -13,9 +13,9 @@ The methods in this utility leverage the same plugin messaging channel as the Ap To utilize Apollo Modules, first define a list of the modules you want to use: ```java -private static final List APOLLO_MODULES = Arrays.asList("limb", "beam", "border", "chat", "colored_fire", "combat", "cooldown", - "entity", "glow", "hologram", "mod_setting", "nametag", "nick_hider", "notification", "packet_enrichment", "rich_presence", - "server_rule", "staff_mod", "stopwatch", "team", "title", "tnt_countdown", "transfer", "vignette", "waypoint" +private static final List APOLLO_MODULES = Arrays.asList("auto_text_hotkey", "beam", "border", "chat", "colored_fire", "combat", "cooldown", + "entity", "glint", "glow", "hologram", "inventory", "limb", "mod_setting", "nametag", "nick_hider", "notification", "pay_now", "packet_enrichment", + "rich_presence", "saturation", "server_rule", "staff_mod", "stopwatch", "team", "tebex", "title", "tnt_countdown", "transfer", "vignette", "waypoint" ); ``` @@ -31,7 +31,14 @@ Next, specify the properties for these modules. These properties are included in private static final Table CONFIG_MODULE_PROPERTIES = HashBasedTable.create(); static { + // Module Options the client needs to be notified about. These properties are sent with the enable module packet. + // While using the Apollo plugin this would be equivalent to modifying the config.yml CONFIG_MODULE_PROPERTIES.put("combat", "disable-miss-penalty", Value.newBuilder().setBoolValue(false).build()); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-attack.send-packet", Value.newBuilder().setBoolValue(false).build()); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-chat-open.send-packet", Value.newBuilder().setBoolValue(false).build()); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-chat-close.send-packet", Value.newBuilder().setBoolValue(false).build()); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-use-item.send-packet", Value.newBuilder().setBoolValue(false).build()); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-use-item-bucket.send-packet", Value.newBuilder().setBoolValue(false).build()); CONFIG_MODULE_PROPERTIES.put("server_rule", "competitive-game", Value.newBuilder().setBoolValue(false).build()); CONFIG_MODULE_PROPERTIES.put("server_rule", "competitive-commands", Value.newBuilder().setListValue( ListValue.newBuilder().addAllValues(Arrays.asList( diff --git a/docs/developers/lightweight/protobuf/roundtrip-packets.mdx b/docs/developers/lightweight/protobuf/roundtrip-packets.mdx index 0bc35d0b..461a9f30 100644 --- a/docs/developers/lightweight/protobuf/roundtrip-packets.mdx +++ b/docs/developers/lightweight/protobuf/roundtrip-packets.mdx @@ -21,7 +21,7 @@ public class ApolloRoundtripProtoListener implements PluginMessageListener { } @Override - public void onPluginMessageReceived(String s, Player player, byte[] bytes) { + public void onPluginMessageReceived(@NonNull String channel, @NonNull Player player, byte[] bytes) { try { Any any = Any.parseFrom(bytes); diff --git a/docs/developers/lightweight/protobuf/serverbound-packets.mdx b/docs/developers/lightweight/protobuf/serverbound-packets.mdx index c7dc9ab3..6690301b 100644 --- a/docs/developers/lightweight/protobuf/serverbound-packets.mdx +++ b/docs/developers/lightweight/protobuf/serverbound-packets.mdx @@ -16,7 +16,7 @@ public class ApolloPacketReceiveProtoListener implements PluginMessageListener { } @Override - public void onPluginMessageReceived(String s, Player player, byte[] bytes) { + public void onPluginMessageReceived(@NonNull String channel, @NonNull Player player, byte[] bytes) { try { Any any = Any.parseFrom(bytes); @@ -33,6 +33,8 @@ public class ApolloPacketReceiveProtoListener implements PluginMessageListener { this.onPlayerChatClose(any.unpack(PlayerChatCloseMessage.class)); } else if (any.is(PlayerUseItemMessage.class)) { this.onPlayerUseItem(any.unpack(PlayerUseItemMessage.class)); + } else if (any.is(PlayerUseItemBucketMessage.class)) { + this.onPlayerUseItemBucket(any.unpack(PlayerUseItemBucketMessage.class)); } } catch (InvalidProtocolBufferException e) { throw new RuntimeException(e); @@ -40,6 +42,7 @@ public class ApolloPacketReceiveProtoListener implements PluginMessageListener { } private void onPlayerHandshake(PlayerHandshakeMessage message) { + EmbeddedCheckoutSupport checkoutSupport = message.getEmbeddedCheckoutSupport(); MinecraftVersion minecraftVersion = message.getMinecraftVersion(); LunarClientVersion lunarClientVersion = message.getLunarClientVersion(); @@ -89,9 +92,32 @@ public class ApolloPacketReceiveProtoListener implements PluginMessageListener { boolean mainHand = message.getMainHand(); } + private void onPlayerUseItemBucket(PlayerUseItemBucketMessage message) { + long instantiationTimeMs = ProtobufUtil.toJavaTimestamp(message.getPacketInfo().getInstantiationTime()); + + PlayerInfo playerInfo = message.getPlayerInfo(); + this.onPlayerInfo(playerInfo); + + RayTraceResult rayTraceResult = message.getRayTraceResult(); + + if (rayTraceResult.hasBlock()) { + BlockHit blockHit = rayTraceResult.getBlock(); + + Location hitLocation = blockHit.getHitLocation(); + BlockLocation blockLocation = blockHit.getBlockLocation(); + Direction direction = blockHit.getDirection(); + } else if (rayTraceResult.hasEntity()) { + EntityHit entityHit = rayTraceResult.getEntity(); + Location hitLocation = entityHit.getHitLocation(); + EntityId entityId = entityHit.getEntityId(); + } else { + // Miss + } + } + private void onPlayerInfo(PlayerInfo info) { UUID uuid = ProtobufUtil.toJavaUuid(info.getPlayerUuid()); - Location location = ProtobufUtil.toBukkitLocation(info.getLocation()); + org.bukkit.Location location = ProtobufUtil.toBukkitLocation(info.getLocation()); boolean sneaking = info.getSneaking(); boolean sprinting = info.getSprinting(); boolean jumping = info.getJumping(); diff --git a/docs/developers/modules/transfer.mdx b/docs/developers/modules/transfer.mdx index 77030ac2..51d252ce 100644 --- a/docs/developers/modules/transfer.mdx +++ b/docs/developers/modules/transfer.mdx @@ -246,15 +246,38 @@ public void pingExample(Player player) { - - This example is not implemented. - - **Transfer Player** ```java public void transferExample(Player player) { + UUID requestId = UUID.randomUUID(); + + JsonObject transferRequestMessage = new JsonObject(); + transferRequestMessage.addProperty("server_ip", "mc.hypixel.net"); + + ApolloRoundtripJsonListener.getInstance() + .sendRequest(player, requestId, transferRequestMessage, "lunarclient.apollo.transfer.v1.TransferRequest") + .thenAccept(response -> { + String message = ""; + String status = response.get("status").getAsString(); + + switch (status) { + case "STATUS_ACCEPTED": { + message = "Transfer accepted! Goodbye!"; + break; + } + case "STATUS_REJECTED": { + message = "Transfer rejected by client!"; + break; + } + } + + player.sendMessage(message); + }).exceptionally(throwable -> { + player.sendMessage("Failed to receive a response in time."); + return null; + }); } ``` @@ -262,7 +285,43 @@ public void transferExample(Player player) { ```java public void pingExample(Player player) { + UUID requestId = UUID.randomUUID(); + + JsonObject pingRequestMessage = new JsonObject(); + JsonArray serverIps = Lists.newArrayList("mc.hypixel.net", "minehut.com") + .stream().collect(JsonArray::new, JsonArray::add, JsonArray::addAll); + pingRequestMessage.add("server_ips", serverIps); + + ApolloRoundtripJsonListener.getInstance() + .sendRequest(player, requestId, pingRequestMessage, "lunarclient.apollo.transfer.v1.PingRequest") + .thenAccept(response -> { + JsonArray pingDataList = response.getAsJsonArray("ping_data"); + + for (JsonElement element : pingDataList) { + JsonObject pingData = element.getAsJsonObject(); + String message = ""; + String status = pingData.get("status").getAsString(); + switch (status) { + // Displays successful ping request to display the server IP and the players ping to that server. + case "STATUS_SUCCESS": { + message = String.format("Ping to %s is %d ms.", pingData.get("server_ip").getAsString(), pingData.get("ping").getAsInt()); + break; + } + + // If the ping request times-out + case "STATUS_TIMED_OUT": { + message = String.format("Failed to ping %s", pingData.get("server_ip").getAsString()); + break; + } + } + + player.sendMessage(message); + } + }).exceptionally(throwable -> { + player.sendMessage("Failed to receive a response in time."); + return null; + }); } ``` diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPacketReceiveJsonListener.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPacketReceiveJsonListener.java new file mode 100644 index 00000000..ca5c38f8 --- /dev/null +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPacketReceiveJsonListener.java @@ -0,0 +1,162 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2023 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.example.json.listener; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.lunarclient.apollo.example.ApolloExamplePlugin; +import com.lunarclient.apollo.example.json.util.JsonUtil; +import java.nio.charset.StandardCharsets; +import java.util.UUID; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.plugin.messaging.PluginMessageListener; +import org.jspecify.annotations.NonNull; + +public class ApolloPacketReceiveJsonListener implements PluginMessageListener { + + private static final String TYPE_PREFIX = "type.googleapis.com/"; + private static final JsonParser JSON_PARSER = new JsonParser(); + + public ApolloPacketReceiveJsonListener(ApolloExamplePlugin plugin) { + } + + @Override + public void onPluginMessageReceived(@NonNull String channel, @NonNull Player player, byte[] bytes) { + JsonObject payload; + try { + payload = JSON_PARSER.parse(new String(bytes, StandardCharsets.UTF_8)).getAsJsonObject(); + } catch (Exception e) { + return; + } + + if (!payload.has("@type")) { + return; + } + + String type = payload.get("@type").getAsString(); + if (type.startsWith(TYPE_PREFIX)) { + type = type.substring(TYPE_PREFIX.length()); + } + + if ("lunarclient.apollo.player.v1.PlayerHandshakeMessage".equals(type)) { + this.onPlayerHandshake(payload); + } + + // Packet Enrichment Module + if ("lunarclient.apollo.packetenrichment.v1.PlayerAttackMessage".equals(type)) { + this.onPlayerAttack(payload); + } else if ("lunarclient.apollo.packetenrichment.v1.PlayerChatOpenMessage".equals(type)) { + this.onPlayerChatOpen(payload); + } else if ("lunarclient.apollo.packetenrichment.v1.PlayerChatCloseMessage".equals(type)) { + this.onPlayerChatClose(payload); + } else if ("lunarclient.apollo.packetenrichment.v1.PlayerUseItemMessage".equals(type)) { + this.onPlayerUseItem(payload); + } else if ("lunarclient.apollo.packetenrichment.v1.PlayerUseItemBucketMessage".equals(type)) { + this.onPlayerUseItemBucket(payload); + } + } + + private void onPlayerHandshake(JsonObject message) { + String checkoutSupport = message.get("embedded_checkout_support").getAsString(); + + JsonObject minecraftVersion = message.getAsJsonObject("minecraft_version"); + String version = minecraftVersion.get("enum").getAsString(); + + JsonObject lunarClientVersion = message.getAsJsonObject("lunar_client_version"); + String gitBranch = lunarClientVersion.get("git_branch").getAsString(); + String gitCommit = lunarClientVersion.get("git_commit").getAsString(); + String semVer = lunarClientVersion.get("semver").getAsString(); + + for (JsonElement element : message.getAsJsonArray("installed_mods")) { + JsonObject mod = element.getAsJsonObject(); + + String modId = mod.get("id").getAsString(); + String displayName = mod.get("name").getAsString(); + String modVersion = mod.get("version").getAsString(); + String modType = mod.get("type").getAsString(); + } + } + + private void onPlayerAttack(JsonObject message) { + long instantiationTimeMs = JsonUtil.toJavaTimestamp(message); + + JsonObject targetInfo = message.getAsJsonObject("target_info"); + JsonObject attackerInfo = message.getAsJsonObject("attacker_info"); + + this.onPlayerInfo(targetInfo); + this.onPlayerInfo(attackerInfo); + } + + private void onPlayerChatOpen(JsonObject message) { + long instantiationTimeMs = JsonUtil.toJavaTimestamp(message); + this.onPlayerInfo(message.getAsJsonObject("player_info")); + } + + private void onPlayerChatClose(JsonObject message) { + long instantiationTimeMs = JsonUtil.toJavaTimestamp(message); + this.onPlayerInfo(message.getAsJsonObject("player_info")); + } + + private void onPlayerUseItem(JsonObject message) { + long instantiationTimeMs = JsonUtil.toJavaTimestamp(message); + this.onPlayerInfo(message.getAsJsonObject("player_info")); + + boolean mainHand = message.get("main_hand").getAsBoolean(); + } + + private void onPlayerUseItemBucket(JsonObject message) { + long instantiationTimeMs = JsonUtil.toJavaTimestamp(message); + this.onPlayerInfo(message.getAsJsonObject("player_info")); + + JsonObject rayTraceResult = message.getAsJsonObject("ray_trace_result"); + + if (rayTraceResult.has("block")) { + JsonObject blockHit = rayTraceResult.getAsJsonObject("block"); + + JsonObject hitLocation = blockHit.getAsJsonObject("hit_location"); + JsonObject blockLocation = blockHit.getAsJsonObject("block_location"); + String directionStr = blockHit.get("direction").getAsString(); + } else if (rayTraceResult.has("entity")) { + JsonObject entityHit = rayTraceResult.getAsJsonObject("entity"); + + JsonObject hitLocation = entityHit.getAsJsonObject("hit_location"); + String entityId = entityHit.get("entity_id").getAsString(); + } else { + // MISS + } + } + + private void onPlayerInfo(JsonObject info) { + UUID uuid = JsonUtil.toJavaUuid(info.getAsJsonObject("player_uuid")); + Location location = JsonUtil.toBukkitPlayerLocation(info.getAsJsonObject("location")); + boolean sneaking = info.get("sneaking").getAsBoolean(); + boolean sprinting = info.get("sprinting").getAsBoolean(); + boolean jumping = info.get("jumping").getAsBoolean(); + float forwardSpeed = info.get("forward_speed").getAsFloat(); + float strafeSpeed = info.get("strafe_speed").getAsFloat(); + } + +} diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPlayerJsonListener.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPlayerJsonListener.java index 3de23bfa..26bb915b 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPlayerJsonListener.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPlayerJsonListener.java @@ -49,7 +49,8 @@ public ApolloPlayerJsonListener(ApolloExamplePlugin plugin) { Messenger messenger = Bukkit.getServer().getMessenger(); messenger.registerIncomingPluginChannel(plugin, "lunar:apollo", (s, player, bytes) -> { }); - messenger.registerIncomingPluginChannel(plugin, "apollo:json", (s, player, bytes) -> { }); + messenger.registerIncomingPluginChannel(plugin, "apollo:json", new ApolloRoundtripJsonListener(plugin)); + messenger.registerIncomingPluginChannel(plugin, "apollo:json", new ApolloPacketReceiveJsonListener(plugin)); messenger.registerOutgoingPluginChannel(plugin, "apollo:json"); Bukkit.getPluginManager().registerEvents(this, plugin); diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloRoundtripJsonListener.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloRoundtripJsonListener.java new file mode 100644 index 00000000..b4584286 --- /dev/null +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloRoundtripJsonListener.java @@ -0,0 +1,117 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2023 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.example.json.listener; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.lunarclient.apollo.example.ApolloExamplePlugin; +import com.lunarclient.apollo.example.json.util.JsonPacketUtil; +import java.nio.charset.StandardCharsets; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import lombok.Getter; +import org.bukkit.entity.Player; +import org.bukkit.plugin.messaging.PluginMessageListener; +import org.jspecify.annotations.NonNull; + +public class ApolloRoundtripJsonListener implements PluginMessageListener { + + private static final String TYPE_PREFIX = "type.googleapis.com/"; + private static final JsonParser JSON_PARSER = new JsonParser(); + + @Getter + private static ApolloRoundtripJsonListener instance; + + private final Map>> roundTripPacketFutures = new ConcurrentHashMap<>(); + private final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); + + public ApolloRoundtripJsonListener(ApolloExamplePlugin plugin) { + instance = this; + } + + @Override + public void onPluginMessageReceived(@NonNull String channel, @NonNull Player player, byte[] bytes) { + JsonObject payload; + try { + payload = JSON_PARSER.parse(new String(bytes, StandardCharsets.UTF_8)).getAsJsonObject(); + } catch (Exception e) { + return; + } + + if (!payload.has("@type")) { + return; + } + + String type = payload.get("@type").getAsString(); + if (type.startsWith(TYPE_PREFIX)) { + type = type.substring(TYPE_PREFIX.length()); + } + + if ("lunarclient.apollo.transfer.v1.PingResponse".equals(type) + || "lunarclient.apollo.transfer.v1.TransferResponse".equals(type)) { + UUID requestId = UUID.fromString(payload.get("request_id").getAsString().replace("+", "-")); + this.handleResponse(player, requestId, payload); + } + } + + public CompletableFuture sendRequest(Player player, UUID requestId, JsonObject request, String requestType) { + request.addProperty("@type", TYPE_PREFIX + requestType); + request.addProperty("request_id", requestId.toString()); + JsonPacketUtil.sendPacket(player, request); + + CompletableFuture future = new CompletableFuture<>(); + + this.roundTripPacketFutures + .computeIfAbsent(player.getUniqueId(), k -> new ConcurrentHashMap<>()) + .put(requestId, future); + + ScheduledFuture timeoutTask = this.executorService.schedule(() -> + future.completeExceptionally(new TimeoutException("Response timed out")), + 10, TimeUnit.SECONDS + ); + + future.whenComplete((result, throwable) -> timeoutTask.cancel(false)); + return future; + } + + private void handleResponse(Player player, UUID requestId, JsonObject message) { + Map> futures = this.roundTripPacketFutures.get(player.getUniqueId()); + if (futures == null) { + return; + } + + CompletableFuture future = futures.remove(requestId); + if (future != null) { + future.complete(message); + } + } + +} diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TransferJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TransferJsonExample.java index 340a4b7b..602e39dc 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TransferJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TransferJsonExample.java @@ -23,19 +23,88 @@ */ package com.lunarclient.apollo.example.json.module; +import com.google.common.collect.Lists; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.lunarclient.apollo.example.json.listener.ApolloRoundtripJsonListener; import com.lunarclient.apollo.example.module.impl.TransferExample; +import java.util.UUID; import org.bukkit.entity.Player; public class TransferJsonExample extends TransferExample { @Override public void transferExample(Player player) { - this.sendNotImplemented(player); + UUID requestId = UUID.randomUUID(); + + JsonObject transferRequestMessage = new JsonObject(); + transferRequestMessage.addProperty("server_ip", "mc.hypixel.net"); + + ApolloRoundtripJsonListener.getInstance() + .sendRequest(player, requestId, transferRequestMessage, "lunarclient.apollo.transfer.v1.TransferRequest") + .thenAccept(response -> { + String message = ""; + String status = response.get("status").getAsString(); + + switch (status) { + case "STATUS_ACCEPTED": { + message = "Transfer accepted! Goodbye!"; + break; + } + + case "STATUS_REJECTED": { + message = "Transfer rejected by client!"; + break; + } + } + + player.sendMessage(message); + }).exceptionally(throwable -> { + player.sendMessage("Failed to receive a response in time."); + return null; + }); } @Override public void pingExample(Player player) { - this.sendNotImplemented(player); + UUID requestId = UUID.randomUUID(); + + JsonObject pingRequestMessage = new JsonObject(); + JsonArray serverIps = Lists.newArrayList("mc.hypixel.net", "minehut.com") + .stream().collect(JsonArray::new, JsonArray::add, JsonArray::addAll); + pingRequestMessage.add("server_ips", serverIps); + + ApolloRoundtripJsonListener.getInstance() + .sendRequest(player, requestId, pingRequestMessage, "lunarclient.apollo.transfer.v1.PingRequest") + .thenAccept(response -> { + JsonArray pingDataList = response.getAsJsonArray("ping_data"); + + for (JsonElement element : pingDataList) { + JsonObject pingData = element.getAsJsonObject(); + String message = ""; + + String status = pingData.get("status").getAsString(); + switch (status) { + // Displays successful ping request to display the server IP and the players ping to that server. + case "STATUS_SUCCESS": { + message = String.format("Ping to %s is %d ms.", pingData.get("server_ip").getAsString(), pingData.get("ping").getAsInt()); + break; + } + + // If the ping request times-out + case "STATUS_TIMED_OUT": { + message = String.format("Failed to ping %s", pingData.get("server_ip").getAsString()); + break; + } + } + + player.sendMessage(message); + } + }).exceptionally(throwable -> { + player.sendMessage("Failed to receive a response in time."); + return null; + }); } } 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 7b862ef5..b8a1354f 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 @@ -40,18 +40,23 @@ public final class JsonPacketUtil { - private static final List APOLLO_MODULES = Arrays.asList("limb", "beam", "border", "chat", "colored_fire", "combat", "cooldown", - "entity", "glow", "hologram", "mod_setting", "nametag", "nick_hider", "notification", "packet_enrichment", "rich_presence", - "server_rule", "staff_mod", "stopwatch", "team", "title", "tnt_countdown", "transfer", "vignette", "waypoint" + private static final List APOLLO_MODULES = Arrays.asList("auto_text_hotkey", "beam", "border", "chat", "colored_fire", "combat", "cooldown", + "entity", "glint", "glow", "hologram", "inventory", "limb", "mod_setting", "nametag", "nick_hider", "notification", "pay_now", "packet_enrichment", + "rich_presence", "saturation", "server_rule", "staff_mod", "stopwatch", "team", "tebex", "title", "tnt_countdown", "transfer", "vignette", "waypoint" ); // Module Id -> Option key -> Object private static final Table CONFIG_MODULE_PROPERTIES = HashBasedTable.create(); static { - // Module Options that the client needs to notified about, these properties are sent with the enable module packet + // Module Options the client needs to be notified about. These properties are sent with the enable module packet. // While using the Apollo plugin this would be equivalent to modifying the config.yml CONFIG_MODULE_PROPERTIES.put("combat", "disable-miss-penalty", false); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-attack.send-packet", false); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-chat-open.send-packet", false); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-chat-close.send-packet", false); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-use-item.send-packet", false); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-use-item-bucket.send-packet", false); CONFIG_MODULE_PROPERTIES.put("server_rule", "competitive-game", false); CONFIG_MODULE_PROPERTIES.put("server_rule", "competitive-commands", Arrays.asList("/server", "/servers", "/hub")); CONFIG_MODULE_PROPERTIES.put("server_rule", "disable-shaders", false); diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonUtil.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonUtil.java index 18966567..1aab85ac 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonUtil.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonUtil.java @@ -26,8 +26,10 @@ import com.google.gson.JsonObject; import java.awt.Color; import java.time.Duration; +import java.time.Instant; import java.util.Map; import java.util.UUID; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.Entity; import org.jetbrains.annotations.NotNull; @@ -35,6 +37,18 @@ public final class JsonUtil { + public static UUID toJavaUuid(JsonObject obj) { + long high = Long.parseUnsignedLong(obj.get("high64").getAsString()); + long low = Long.parseUnsignedLong(obj.get("low64").getAsString()); + return new UUID(high, low); + } + + public static long toJavaTimestamp(JsonObject timestampObject) { + JsonObject packetInfo = timestampObject.getAsJsonObject("packet_info"); + String iso = packetInfo.get("instantiation_time").getAsString(); + return Instant.parse(iso).toEpochMilli(); + } + public static JsonObject createEnableModuleObjectWithType(@NotNull String module, Map properties) { JsonObject enableModuleObject = JsonPacketUtil.createEnableModuleObject(module, properties); enableModuleObject.addProperty("@type", "type.googleapis.com/lunarclient.apollo.configurable.v1.ConfigurableSettings"); @@ -105,6 +119,22 @@ public static JsonObject createBlockLocationObject(@NotNull Location location) { return locationObject; } + public static Location toBukkitLocation(JsonObject message) { + return new Location( + Bukkit.getWorld(message.get("world").getAsString()), + message.get("x").getAsDouble(), + message.get("y").getAsDouble(), + message.get("z").getAsDouble() + ); + } + + public static Location toBukkitPlayerLocation(JsonObject message) { + Location location = JsonUtil.toBukkitLocation(message.getAsJsonObject("location")); + location.setYaw(message.get("yaw").getAsFloat()); + location.setPitch(message.get("pitch").getAsFloat()); + return location; + } + public static JsonObject createItemStackIconObject(@Nullable String itemName, int itemId, int customModelData) { JsonObject itemIconObject = new JsonObject(); if (itemName != null) { diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPacketReceiveProtoListener.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPacketReceiveProtoListener.java index 4fb6e2d7..83c895f6 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPacketReceiveProtoListener.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPacketReceiveProtoListener.java @@ -25,23 +25,31 @@ import com.google.protobuf.Any; import com.google.protobuf.InvalidProtocolBufferException; +import com.lunarclient.apollo.common.v1.BlockLocation; +import com.lunarclient.apollo.common.v1.EntityId; +import com.lunarclient.apollo.common.v1.Location; import com.lunarclient.apollo.common.v1.LunarClientVersion; import com.lunarclient.apollo.common.v1.MinecraftVersion; import com.lunarclient.apollo.example.ApolloExamplePlugin; import com.lunarclient.apollo.example.proto.util.ProtobufUtil; +import com.lunarclient.apollo.packetenrichment.v1.BlockHit; +import com.lunarclient.apollo.packetenrichment.v1.Direction; +import com.lunarclient.apollo.packetenrichment.v1.EntityHit; import com.lunarclient.apollo.packetenrichment.v1.PlayerAttackMessage; import com.lunarclient.apollo.packetenrichment.v1.PlayerChatCloseMessage; import com.lunarclient.apollo.packetenrichment.v1.PlayerChatOpenMessage; import com.lunarclient.apollo.packetenrichment.v1.PlayerInfo; +import com.lunarclient.apollo.packetenrichment.v1.PlayerUseItemBucketMessage; import com.lunarclient.apollo.packetenrichment.v1.PlayerUseItemMessage; +import com.lunarclient.apollo.packetenrichment.v1.RayTraceResult; import com.lunarclient.apollo.player.v1.EmbeddedCheckoutSupport; import com.lunarclient.apollo.player.v1.ModMessage; import com.lunarclient.apollo.player.v1.PlayerHandshakeMessage; import java.util.List; import java.util.UUID; -import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.plugin.messaging.PluginMessageListener; +import org.jspecify.annotations.NonNull; public class ApolloPacketReceiveProtoListener implements PluginMessageListener { @@ -50,7 +58,7 @@ public ApolloPacketReceiveProtoListener(ApolloExamplePlugin plugin) { } @Override - public void onPluginMessageReceived(String s, Player player, byte[] bytes) { + public void onPluginMessageReceived(@NonNull String channel, @NonNull Player player, byte[] bytes) { try { Any any = Any.parseFrom(bytes); @@ -67,6 +75,8 @@ public void onPluginMessageReceived(String s, Player player, byte[] bytes) { this.onPlayerChatClose(any.unpack(PlayerChatCloseMessage.class)); } else if (any.is(PlayerUseItemMessage.class)) { this.onPlayerUseItem(any.unpack(PlayerUseItemMessage.class)); + } else if (any.is(PlayerUseItemBucketMessage.class)) { + this.onPlayerUseItemBucket(any.unpack(PlayerUseItemBucketMessage.class)); } } catch (InvalidProtocolBufferException e) { throw new RuntimeException(e); @@ -74,10 +84,10 @@ public void onPluginMessageReceived(String s, Player player, byte[] bytes) { } private void onPlayerHandshake(PlayerHandshakeMessage message) { + EmbeddedCheckoutSupport checkoutSupport = message.getEmbeddedCheckoutSupport(); MinecraftVersion minecraftVersion = message.getMinecraftVersion(); LunarClientVersion lunarClientVersion = message.getLunarClientVersion(); - EmbeddedCheckoutSupport checkoutSupport = message.getEmbeddedCheckoutSupport(); String gitBranch = lunarClientVersion.getGitBranch(); String gitCommit = lunarClientVersion.getGitCommit(); String semVer = lunarClientVersion.getSemver(); @@ -124,9 +134,32 @@ private void onPlayerUseItem(PlayerUseItemMessage message) { boolean mainHand = message.getMainHand(); } + private void onPlayerUseItemBucket(PlayerUseItemBucketMessage message) { + long instantiationTimeMs = ProtobufUtil.toJavaTimestamp(message.getPacketInfo().getInstantiationTime()); + + PlayerInfo playerInfo = message.getPlayerInfo(); + this.onPlayerInfo(playerInfo); + + RayTraceResult rayTraceResult = message.getRayTraceResult(); + + if (rayTraceResult.hasBlock()) { + BlockHit blockHit = rayTraceResult.getBlock(); + + Location hitLocation = blockHit.getHitLocation(); + BlockLocation blockLocation = blockHit.getBlockLocation(); + Direction direction = blockHit.getDirection(); + } else if (rayTraceResult.hasEntity()) { + EntityHit entityHit = rayTraceResult.getEntity(); + Location hitLocation = entityHit.getHitLocation(); + EntityId entityId = entityHit.getEntityId(); + } else { + // Miss + } + } + private void onPlayerInfo(PlayerInfo info) { UUID uuid = ProtobufUtil.toJavaUuid(info.getPlayerUuid()); - Location location = ProtobufUtil.toBukkitLocation(info.getLocation()); + org.bukkit.Location location = ProtobufUtil.toBukkitLocation(info.getLocation()); boolean sneaking = info.getSneaking(); boolean sprinting = info.getSprinting(); boolean jumping = info.getJumping(); diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloRoundtripProtoListener.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloRoundtripProtoListener.java index 66738d56..fc5226a8 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloRoundtripProtoListener.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloRoundtripProtoListener.java @@ -42,6 +42,7 @@ import lombok.Getter; import org.bukkit.entity.Player; import org.bukkit.plugin.messaging.PluginMessageListener; +import org.jspecify.annotations.NonNull; public class ApolloRoundtripProtoListener implements PluginMessageListener { @@ -56,7 +57,7 @@ public ApolloRoundtripProtoListener(ApolloExamplePlugin plugin) { } @Override - public void onPluginMessageReceived(String s, Player player, byte[] bytes) { + public void onPluginMessageReceived(@NonNull String channel, @NonNull Player player, byte[] bytes) { try { Any any = Any.parseFrom(bytes); 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 a9be9f64..76f5906d 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 @@ -41,18 +41,23 @@ public final class ProtobufPacketUtil { - private static final List APOLLO_MODULES = Arrays.asList("limb", "beam", "border", "chat", "colored_fire", "combat", "cooldown", - "entity", "glow", "hologram", "mod_setting", "nametag", "nick_hider", "notification", "packet_enrichment", "rich_presence", - "server_rule", "staff_mod", "stopwatch", "team", "title", "tnt_countdown", "transfer", "vignette", "waypoint" + private static final List APOLLO_MODULES = Arrays.asList("auto_text_hotkey", "beam", "border", "chat", "colored_fire", "combat", "cooldown", + "entity", "glint", "glow", "hologram", "inventory", "limb", "mod_setting", "nametag", "nick_hider", "notification", "pay_now", "packet_enrichment", + "rich_presence", "saturation", "server_rule", "staff_mod", "stopwatch", "team", "tebex", "title", "tnt_countdown", "transfer", "vignette", "waypoint" ); // Module Id -> Option key -> Value private static final Table CONFIG_MODULE_PROPERTIES = HashBasedTable.create(); static { - // Module Options that the client needs to notified about, these properties are sent with the enable module packet + // Module Options the client needs to be notified about. These properties are sent with the enable module packet. // While using the Apollo plugin this would be equivalent to modifying the config.yml CONFIG_MODULE_PROPERTIES.put("combat", "disable-miss-penalty", Value.newBuilder().setBoolValue(false).build()); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-attack.send-packet", Value.newBuilder().setBoolValue(false).build()); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-chat-open.send-packet", Value.newBuilder().setBoolValue(false).build()); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-chat-close.send-packet", Value.newBuilder().setBoolValue(false).build()); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-use-item.send-packet", Value.newBuilder().setBoolValue(false).build()); + CONFIG_MODULE_PROPERTIES.put("packet_enrichment", "player-use-item-bucket.send-packet", Value.newBuilder().setBoolValue(false).build()); CONFIG_MODULE_PROPERTIES.put("server_rule", "competitive-game", Value.newBuilder().setBoolValue(false).build()); CONFIG_MODULE_PROPERTIES.put("server_rule", "competitive-commands", Value.newBuilder().setListValue( ListValue.newBuilder().addAllValues(Arrays.asList( From 87e8be82be43013d0405b721e35e343fe5e63021 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Bu=C4=8Dari=C4=87?= Date: Wed, 1 Apr 2026 01:03:21 +0200 Subject: [PATCH 3/6] Update license year (#266) --- api/src/bukkit/java/com/lunarclient/apollo/BukkitApollo.java | 2 +- api/src/bungee/java/com/lunarclient/apollo/BungeeApollo.java | 2 +- api/src/folia/java/com/lunarclient/apollo/FoliaApollo.java | 2 +- api/src/main/java/com/lunarclient/apollo/Apollo.java | 2 +- api/src/main/java/com/lunarclient/apollo/ApolloPlatform.java | 2 +- api/src/main/java/com/lunarclient/apollo/api/ApiRequest.java | 2 +- .../main/java/com/lunarclient/apollo/api/ApiRequestType.java | 2 +- api/src/main/java/com/lunarclient/apollo/api/ApiResponse.java | 2 +- .../main/java/com/lunarclient/apollo/api/ApiServiceType.java | 2 +- api/src/main/java/com/lunarclient/apollo/async/Future.java | 2 +- api/src/main/java/com/lunarclient/apollo/async/Handler.java | 2 +- .../com/lunarclient/apollo/async/future/UncertainFuture.java | 2 +- .../java/com/lunarclient/apollo/client/mod/LunarClientMod.java | 2 +- .../com/lunarclient/apollo/client/mod/LunarClientModType.java | 2 +- .../lunarclient/apollo/client/version/LunarClientVersion.java | 2 +- .../com/lunarclient/apollo/client/version/MinecraftVersion.java | 2 +- .../main/java/com/lunarclient/apollo/common/ApolloColors.java | 2 +- .../main/java/com/lunarclient/apollo/common/ApolloEntity.java | 2 +- .../java/com/lunarclient/apollo/common/cuboid/Cuboid2D.java | 2 +- .../java/com/lunarclient/apollo/common/cuboid/Cuboid3D.java | 2 +- .../apollo/common/icon/AdvancedResourceLocationIcon.java | 2 +- api/src/main/java/com/lunarclient/apollo/common/icon/Icon.java | 2 +- .../java/com/lunarclient/apollo/common/icon/ItemStackIcon.java | 2 +- .../apollo/common/icon/SimpleResourceLocationIcon.java | 2 +- .../lunarclient/apollo/common/location/ApolloBlockLocation.java | 2 +- .../com/lunarclient/apollo/common/location/ApolloLocation.java | 2 +- .../apollo/common/location/ApolloPlayerLocation.java | 2 +- .../main/java/com/lunarclient/apollo/event/ApolloListener.java | 2 +- api/src/main/java/com/lunarclient/apollo/event/Event.java | 2 +- api/src/main/java/com/lunarclient/apollo/event/EventBus.java | 2 +- .../java/com/lunarclient/apollo/event/EventCancellable.java | 2 +- api/src/main/java/com/lunarclient/apollo/event/Listen.java | 2 +- .../java/com/lunarclient/apollo/event/ReflectiveConsumer.java | 2 +- .../apollo/event/modsetting/ApolloUpdateModOptionEvent.java | 2 +- .../apollo/event/option/ApolloUpdateOptionEvent.java | 2 +- .../event/packetenrichment/chat/ApolloPlayerChatCloseEvent.java | 2 +- .../event/packetenrichment/chat/ApolloPlayerChatOpenEvent.java | 2 +- .../event/packetenrichment/melee/ApolloPlayerAttackEvent.java | 2 +- .../packetenrichment/world/ApolloPlayerUseItemBucketEvent.java | 2 +- .../event/packetenrichment/world/ApolloPlayerUseItemEvent.java | 2 +- .../apollo/event/player/ApolloPlayerHandshakeEvent.java | 2 +- .../apollo/event/player/ApolloRegisterPlayerEvent.java | 2 +- .../apollo/event/player/ApolloUnregisterPlayerEvent.java | 2 +- api/src/main/java/com/lunarclient/apollo/mods/Mods.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/Mod2dItems.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/Mod3dSkins.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModArmorstatus.java | 2 +- .../com/lunarclient/apollo/mods/impl/ModAudioSubtitles.java | 2 +- .../com/lunarclient/apollo/mods/impl/ModAutoTextActions.java | 2 +- .../com/lunarclient/apollo/mods/impl/ModAutoTextHotkey.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModBlockOutline.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModBossbar.java | 2 +- api/src/main/java/com/lunarclient/apollo/mods/impl/ModChat.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModChunkBorders.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModClock.java | 2 +- .../com/lunarclient/apollo/mods/impl/ModColorSaturation.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModCombo.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModCooldowns.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModCoordinates.java | 2 +- api/src/main/java/com/lunarclient/apollo/mods/impl/ModCps.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModCrosshair.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModDamageTint.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModDayCounter.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModDirectionHud.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModF3Display.java | 2 +- api/src/main/java/com/lunarclient/apollo/mods/impl/ModFog.java | 2 +- api/src/main/java/com/lunarclient/apollo/mods/impl/ModFov.java | 2 +- api/src/main/java/com/lunarclient/apollo/mods/impl/ModFps.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModFreelook.java | 2 +- .../com/lunarclient/apollo/mods/impl/ModGlintColorizer.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModHitColor.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModHitbox.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModHorseStats.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModHurtCam.java | 2 +- .../com/lunarclient/apollo/mods/impl/ModHypixelBedwars.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModHypixelMod.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModInventoryMod.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModItemCounter.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModItemPhysics.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModItemTracker.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModKeystrokes.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModKillSounds.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModLighting.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModMarkers.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModMemory.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModMenuBlur.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModMinimap.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModMobSize.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModMomentum.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModMotionBlur.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModMumbleLink.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModNametag.java | 2 +- api/src/main/java/com/lunarclient/apollo/mods/impl/ModNeu.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModNickHider.java | 2 +- .../com/lunarclient/apollo/mods/impl/ModOneSevenVisuals.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModOverlayMod.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModPackDisplay.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModPackOrganizer.java | 2 +- .../com/lunarclient/apollo/mods/impl/ModParticleChanger.java | 2 +- api/src/main/java/com/lunarclient/apollo/mods/impl/ModPing.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModPlaytime.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModPotionEffects.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModPvpInfo.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModQuickplay.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModRadio.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModReachDisplay.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModReplaymod.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModRewind.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModSaturation.java | 2 +- api/src/main/java/com/lunarclient/apollo/mods/impl/ModSba.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModScoreboard.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModScreenshot.java | 2 +- .../com/lunarclient/apollo/mods/impl/ModScrollableTooltips.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModServerAddress.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModShields.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModShinyPots.java | 2 +- .../com/lunarclient/apollo/mods/impl/ModShulkerPreview.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModSkyblock.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModSnaplook.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModSoundChanger.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModStopwatch.java | 2 +- api/src/main/java/com/lunarclient/apollo/mods/impl/ModTab.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModTeamView.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModTierTagger.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModTimeChanger.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModTitles.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModTntCountdown.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModToggleSneak.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModTotemCounter.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModUhcOverlay.java | 2 +- .../main/java/com/lunarclient/apollo/mods/impl/ModWaila.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModWaypoints.java | 2 +- .../com/lunarclient/apollo/mods/impl/ModWeatherChanger.java | 2 +- .../java/com/lunarclient/apollo/mods/impl/ModWorldeditCui.java | 2 +- api/src/main/java/com/lunarclient/apollo/mods/impl/ModZoom.java | 2 +- .../main/java/com/lunarclient/apollo/module/ApolloModule.java | 2 +- .../java/com/lunarclient/apollo/module/ApolloModuleManager.java | 2 +- .../java/com/lunarclient/apollo/module/ModuleDefinition.java | 2 +- .../apollo/module/autotexthotkey/AutoTextHotkeyModule.java | 2 +- api/src/main/java/com/lunarclient/apollo/module/beam/Beam.java | 2 +- .../java/com/lunarclient/apollo/module/beam/BeamModule.java | 2 +- .../main/java/com/lunarclient/apollo/module/border/Border.java | 2 +- .../java/com/lunarclient/apollo/module/border/BorderModule.java | 2 +- .../java/com/lunarclient/apollo/module/chat/ChatModule.java | 2 +- .../apollo/module/coloredfire/ColoredFireModule.java | 2 +- .../java/com/lunarclient/apollo/module/combat/CombatModule.java | 2 +- .../java/com/lunarclient/apollo/module/cooldown/Cooldown.java | 2 +- .../com/lunarclient/apollo/module/cooldown/CooldownModule.java | 2 +- .../java/com/lunarclient/apollo/module/entity/EntityModule.java | 2 +- .../java/com/lunarclient/apollo/module/glint/GlintModule.java | 2 +- .../java/com/lunarclient/apollo/module/glow/GlowModule.java | 2 +- .../java/com/lunarclient/apollo/module/hologram/Hologram.java | 2 +- .../com/lunarclient/apollo/module/hologram/HologramModule.java | 2 +- .../lunarclient/apollo/module/inventory/InventoryModule.java | 2 +- .../java/com/lunarclient/apollo/module/limb/ArmorPiece.java | 2 +- .../main/java/com/lunarclient/apollo/module/limb/BodyPart.java | 2 +- .../java/com/lunarclient/apollo/module/limb/LimbModule.java | 2 +- .../lunarclient/apollo/module/modsetting/ModSettingModule.java | 2 +- .../java/com/lunarclient/apollo/module/nametag/Nametag.java | 2 +- .../com/lunarclient/apollo/module/nametag/NametagModule.java | 2 +- .../lunarclient/apollo/module/nickhider/NickHiderModule.java | 2 +- .../lunarclient/apollo/module/notification/Notification.java | 2 +- .../apollo/module/notification/NotificationModule.java | 2 +- .../apollo/module/packetenrichment/PacketEnrichmentModule.java | 2 +- .../lunarclient/apollo/module/packetenrichment/PlayerInfo.java | 2 +- .../apollo/module/packetenrichment/raytrace/BlockHitResult.java | 2 +- .../apollo/module/packetenrichment/raytrace/Direction.java | 2 +- .../module/packetenrichment/raytrace/EntityHitResult.java | 2 +- .../apollo/module/packetenrichment/raytrace/MissResult.java | 2 +- .../apollo/module/packetenrichment/raytrace/RayTraceResult.java | 2 +- .../apollo/module/paynow/PayNowEmbeddedCheckoutSupport.java | 2 +- .../java/com/lunarclient/apollo/module/paynow/PayNowModule.java | 2 +- .../apollo/module/richpresence/RichPresenceModule.java | 2 +- .../apollo/module/richpresence/ServerRichPresence.java | 2 +- .../lunarclient/apollo/module/saturation/SaturationModule.java | 2 +- .../lunarclient/apollo/module/serverrule/ServerRuleModule.java | 2 +- .../java/com/lunarclient/apollo/module/staffmod/StaffMod.java | 2 +- .../com/lunarclient/apollo/module/staffmod/StaffModModule.java | 2 +- .../lunarclient/apollo/module/stopwatch/StopwatchModule.java | 2 +- .../java/com/lunarclient/apollo/module/team/TeamMember.java | 2 +- .../java/com/lunarclient/apollo/module/team/TeamModule.java | 2 +- .../apollo/module/tebex/TebexEmbeddedCheckoutSupport.java | 2 +- .../java/com/lunarclient/apollo/module/tebex/TebexModule.java | 2 +- .../main/java/com/lunarclient/apollo/module/title/Title.java | 2 +- .../java/com/lunarclient/apollo/module/title/TitleModule.java | 2 +- .../java/com/lunarclient/apollo/module/title/TitleType.java | 2 +- .../apollo/module/tntcountdown/TntCountdownModule.java | 2 +- .../com/lunarclient/apollo/module/transfer/PingRequest.java | 2 +- .../com/lunarclient/apollo/module/transfer/PingResponse.java | 2 +- .../com/lunarclient/apollo/module/transfer/TransferModule.java | 2 +- .../com/lunarclient/apollo/module/transfer/TransferRequest.java | 2 +- .../lunarclient/apollo/module/transfer/TransferResponse.java | 2 +- .../java/com/lunarclient/apollo/module/vignette/Vignette.java | 2 +- .../com/lunarclient/apollo/module/vignette/VignetteModule.java | 2 +- .../java/com/lunarclient/apollo/module/waypoint/Waypoint.java | 2 +- .../com/lunarclient/apollo/module/waypoint/WaypointModule.java | 2 +- .../main/java/com/lunarclient/apollo/option/EmptyOptions.java | 2 +- api/src/main/java/com/lunarclient/apollo/option/EnumOption.java | 2 +- api/src/main/java/com/lunarclient/apollo/option/ListOption.java | 2 +- .../main/java/com/lunarclient/apollo/option/NumberOption.java | 2 +- api/src/main/java/com/lunarclient/apollo/option/Option.java | 2 +- .../main/java/com/lunarclient/apollo/option/OptionBuilder.java | 2 +- api/src/main/java/com/lunarclient/apollo/option/Options.java | 2 +- .../main/java/com/lunarclient/apollo/option/SimpleOption.java | 2 +- .../main/java/com/lunarclient/apollo/player/ApolloPlayer.java | 2 +- .../java/com/lunarclient/apollo/player/ApolloPlayerManager.java | 2 +- .../com/lunarclient/apollo/recipients/ForwardingRecipients.java | 2 +- .../main/java/com/lunarclient/apollo/recipients/Recipients.java | 2 +- .../java/com/lunarclient/apollo/roundtrip/ApolloRequest.java | 2 +- .../java/com/lunarclient/apollo/roundtrip/ApolloResponse.java | 2 +- .../lunarclient/apollo/roundtrip/ApolloRoundtripManager.java | 2 +- .../com/lunarclient/apollo/stats/ApolloPluginDescription.java | 2 +- api/src/main/java/com/lunarclient/apollo/stats/ApolloStats.java | 2 +- api/src/main/java/com/lunarclient/apollo/util/ConfigTarget.java | 2 +- api/src/main/java/com/lunarclient/apollo/world/ApolloWorld.java | 2 +- .../java/com/lunarclient/apollo/world/ApolloWorldManager.java | 2 +- .../minestom/java/com/lunarclient/apollo/MinestomApollo.java | 2 +- .../velocity/java/com/lunarclient/apollo/VelocityApollo.java | 2 +- common/src/main/java/com/lunarclient/apollo/ApolloConfig.java | 2 +- common/src/main/java/com/lunarclient/apollo/ApolloManager.java | 2 +- .../main/java/com/lunarclient/apollo/api/ApolloHttpManager.java | 2 +- .../com/lunarclient/apollo/api/request/DownloadFileRequest.java | 2 +- .../com/lunarclient/apollo/api/request/ServerStartRequest.java | 2 +- .../java/com/lunarclient/apollo/api/request/VersionRequest.java | 2 +- .../apollo/api/request/heartbeat/ServerHeartbeatRequest.java | 2 +- .../lunarclient/apollo/api/response/DownloadFileResponse.java | 2 +- .../apollo/api/response/ServerHeartbeatResponse.java | 2 +- .../lunarclient/apollo/api/response/ServerStartResponse.java | 2 +- .../com/lunarclient/apollo/api/response/VersionResponse.java | 2 +- .../com/lunarclient/apollo/command/AbstractApolloCommand.java | 2 +- .../java/com/lunarclient/apollo/command/type/ApolloCommand.java | 2 +- .../com/lunarclient/apollo/command/type/LunarClientCommand.java | 2 +- .../com/lunarclient/apollo/event/ApolloReceivePacketEvent.java | 2 +- .../com/lunarclient/apollo/event/ApolloSendPacketEvent.java | 2 +- .../java/com/lunarclient/apollo/mods/ApolloModsManager.java | 2 +- .../com/lunarclient/apollo/module/ApolloModuleManagerImpl.java | 2 +- .../java/com/lunarclient/apollo/module/beam/BeamModuleImpl.java | 2 +- .../com/lunarclient/apollo/module/border/BorderModuleImpl.java | 2 +- .../java/com/lunarclient/apollo/module/chat/ChatModuleImpl.java | 2 +- .../apollo/module/coloredfire/ColoredFireModuleImpl.java | 2 +- .../lunarclient/apollo/module/cooldown/CooldownModuleImpl.java | 2 +- .../com/lunarclient/apollo/module/entity/EntityModuleImpl.java | 2 +- .../java/com/lunarclient/apollo/module/glow/GlowModuleImpl.java | 2 +- .../lunarclient/apollo/module/hologram/HologramModuleImpl.java | 2 +- .../java/com/lunarclient/apollo/module/limb/LimbModuleImpl.java | 2 +- .../apollo/module/modsettings/ModSettingModuleImpl.java | 2 +- .../lunarclient/apollo/module/nametag/NametagModuleImpl.java | 2 +- .../apollo/module/nickhider/NickHiderModuleImpl.java | 2 +- .../apollo/module/notification/NotificationModuleImpl.java | 2 +- .../apollo/module/packetenrichment/PacketEnrichmentImpl.java | 2 +- .../com/lunarclient/apollo/module/paynow/PayNowModuleImpl.java | 2 +- .../apollo/module/richpresence/RichPresenceModuleImpl.java | 2 +- .../lunarclient/apollo/module/staffmod/StaffModModuleImpl.java | 2 +- .../apollo/module/stopwatch/StopwatchModuleImpl.java | 2 +- .../java/com/lunarclient/apollo/module/team/TeamModuleImpl.java | 2 +- .../com/lunarclient/apollo/module/tebex/TebexModuleImpl.java | 2 +- .../com/lunarclient/apollo/module/title/TitleModuleImpl.java | 2 +- .../apollo/module/tntcountdown/TntCountdownModuleImpl.java | 2 +- .../lunarclient/apollo/module/transfer/TransferModuleImpl.java | 2 +- .../lunarclient/apollo/module/vignette/VignetteModuleImpl.java | 2 +- .../lunarclient/apollo/module/waypoint/WaypointModuleImpl.java | 2 +- .../com/lunarclient/apollo/network/ApolloNetworkManager.java | 2 +- .../java/com/lunarclient/apollo/network/NetworkOptions.java | 2 +- .../main/java/com/lunarclient/apollo/network/NetworkTypes.java | 2 +- .../main/java/com/lunarclient/apollo/option/ConfigOptions.java | 2 +- .../main/java/com/lunarclient/apollo/option/OptionsImpl.java | 2 +- .../java/com/lunarclient/apollo/option/StatusOptionsImpl.java | 2 +- .../com/lunarclient/apollo/option/config/CommonSerializers.java | 2 +- .../java/com/lunarclient/apollo/option/config/Serializer.java | 2 +- .../java/com/lunarclient/apollo/option/config/Serializers.java | 2 +- .../com/lunarclient/apollo/player/AbstractApolloPlayer.java | 2 +- .../com/lunarclient/apollo/player/ApolloPlayerManagerImpl.java | 2 +- .../java/com/lunarclient/apollo/stats/ApolloStatsManager.java | 2 +- .../java/com/lunarclient/apollo/stats/ApolloStatsThread.java | 2 +- .../apollo/stats/metadata/ApolloMetadataManager.java | 2 +- .../com/lunarclient/apollo/stats/metadata/PlatformMetadata.java | 2 +- common/src/main/java/com/lunarclient/apollo/util/Ranges.java | 2 +- .../main/java/com/lunarclient/apollo/version/ApolloVersion.java | 2 +- .../com/lunarclient/apollo/version/ApolloVersionManager.java | 2 +- .../com/lunarclient/apollo/world/ApolloWorldManagerImpl.java | 2 +- .../apollo/example/api/ApolloApiExamplePlatform.java | 2 +- .../java/com/lunarclient/apollo/example/api/debug/Debug.java | 2 +- .../com/lunarclient/apollo/example/api/debug/DebugManager.java | 2 +- .../com/lunarclient/apollo/example/api/debug/DebugTask.java | 2 +- .../apollo/example/api/debug/command/ApolloDebugCommand.java | 2 +- .../apollo/example/api/debug/command/BordersCommand.java | 2 +- .../apollo/example/api/debug/command/SpamPacketsCommand.java | 2 +- .../apollo/example/api/debug/impl/BorderCollisionTest.java | 2 +- .../apollo/example/api/debug/impl/ModSettingsTest.java | 2 +- .../lunarclient/apollo/example/api/debug/impl/PayloadTest.java | 2 +- .../apollo/example/api/debug/impl/SpamPacketDebug.java | 2 +- .../apollo/example/api/general/ApolloEventListenerExample.java | 2 +- .../apollo/example/api/general/ApolloGeneralExample.java | 2 +- .../apollo/example/api/listener/ApolloPlayerApiListener.java | 2 +- .../apollo/example/api/mods/ApolloModStatusExample.java | 2 +- .../lunarclient/apollo/example/api/mods/ModStatusCommand.java | 2 +- .../apollo/example/api/module/AutoTextHotkeyApiExample.java | 2 +- .../lunarclient/apollo/example/api/module/BeamApiExample.java | 2 +- .../lunarclient/apollo/example/api/module/BorderApiExample.java | 2 +- .../lunarclient/apollo/example/api/module/ChatApiExample.java | 2 +- .../apollo/example/api/module/ColoredFireApiExample.java | 2 +- .../lunarclient/apollo/example/api/module/CombatApiExample.java | 2 +- .../apollo/example/api/module/CooldownApiExample.java | 2 +- .../lunarclient/apollo/example/api/module/EntityApiExample.java | 2 +- .../lunarclient/apollo/example/api/module/GlowApiExample.java | 2 +- .../apollo/example/api/module/HologramApiExample.java | 2 +- .../lunarclient/apollo/example/api/module/LimbApiExample.java | 2 +- .../apollo/example/api/module/ModSettingsApiExample.java | 2 +- .../apollo/example/api/module/NametagApiExample.java | 2 +- .../apollo/example/api/module/NickHiderApiExample.java | 2 +- .../apollo/example/api/module/NotificationApiExample.java | 2 +- .../lunarclient/apollo/example/api/module/PayNowApiExample.java | 2 +- .../apollo/example/api/module/RichPresenceApiExample.java | 2 +- .../apollo/example/api/module/ServerRuleApiExample.java | 2 +- .../apollo/example/api/module/StaffModApiExample.java | 2 +- .../apollo/example/api/module/StopwatchApiExample.java | 2 +- .../lunarclient/apollo/example/api/module/TeamApiExample.java | 2 +- .../lunarclient/apollo/example/api/module/TebexApiExample.java | 2 +- .../lunarclient/apollo/example/api/module/TitleApiExample.java | 2 +- .../apollo/example/api/module/TntCountdownApiExample.java | 2 +- .../apollo/example/api/module/TransferApiExample.java | 2 +- .../apollo/example/api/module/VignetteApiExample.java | 2 +- .../apollo/example/api/module/WaypointApiExample.java | 2 +- .../apollo/example/api/util/BukkitApolloExample.java | 2 +- .../lunarclient/apollo/example/api/util/ComponentExample.java | 2 +- .../com/lunarclient/apollo/example/api/util/CuboidExample.java | 2 +- .../com/lunarclient/apollo/example/api/util/IconExample.java | 2 +- .../lunarclient/apollo/example/api/util/LocationExample.java | 2 +- .../com/lunarclient/apollo/example/ApolloExamplePlugin.java | 2 +- .../java/com/lunarclient/apollo/example/ApolloExampleType.java | 2 +- .../apollo/example/command/AutoTextHotkeyCommand.java | 2 +- .../com/lunarclient/apollo/example/command/BeamCommand.java | 2 +- .../com/lunarclient/apollo/example/command/BorderCommand.java | 2 +- .../com/lunarclient/apollo/example/command/ChatCommand.java | 2 +- .../lunarclient/apollo/example/command/ColoredFireCommand.java | 2 +- .../com/lunarclient/apollo/example/command/CombatCommand.java | 2 +- .../com/lunarclient/apollo/example/command/CooldownCommand.java | 2 +- .../com/lunarclient/apollo/example/command/EntityCommand.java | 2 +- .../com/lunarclient/apollo/example/command/GlintCommand.java | 2 +- .../com/lunarclient/apollo/example/command/GlowCommand.java | 2 +- .../com/lunarclient/apollo/example/command/HologramCommand.java | 2 +- .../lunarclient/apollo/example/command/InventoryCommand.java | 2 +- .../com/lunarclient/apollo/example/command/LimbCommand.java | 2 +- .../lunarclient/apollo/example/command/ModSettingsCommand.java | 2 +- .../com/lunarclient/apollo/example/command/NametagCommand.java | 2 +- .../lunarclient/apollo/example/command/NickHiderCommand.java | 2 +- .../lunarclient/apollo/example/command/NotificationCommand.java | 2 +- .../com/lunarclient/apollo/example/command/PayNowCommand.java | 2 +- .../lunarclient/apollo/example/command/RichPresenceCommand.java | 2 +- .../lunarclient/apollo/example/command/SaturationCommand.java | 2 +- .../lunarclient/apollo/example/command/ServerRuleCommand.java | 2 +- .../com/lunarclient/apollo/example/command/StaffModCommand.java | 2 +- .../lunarclient/apollo/example/command/StopwatchCommand.java | 2 +- .../com/lunarclient/apollo/example/command/TeamCommand.java | 2 +- .../com/lunarclient/apollo/example/command/TebexCommand.java | 2 +- .../com/lunarclient/apollo/example/command/TitleCommand.java | 2 +- .../lunarclient/apollo/example/command/TntCountdownCommand.java | 2 +- .../com/lunarclient/apollo/example/command/TransferCommand.java | 2 +- .../com/lunarclient/apollo/example/command/VignetteCommand.java | 2 +- .../com/lunarclient/apollo/example/command/WaypointCommand.java | 2 +- .../lunarclient/apollo/example/module/ApolloModuleExample.java | 2 +- .../java/com/lunarclient/apollo/example/module/NMSExample.java | 2 +- .../apollo/example/module/impl/AutoTextHotkeyExample.java | 2 +- .../com/lunarclient/apollo/example/module/impl/BeamExample.java | 2 +- .../lunarclient/apollo/example/module/impl/BorderExample.java | 2 +- .../com/lunarclient/apollo/example/module/impl/ChatExample.java | 2 +- .../apollo/example/module/impl/ColoredFireExample.java | 2 +- .../lunarclient/apollo/example/module/impl/CombatExample.java | 2 +- .../lunarclient/apollo/example/module/impl/CooldownExample.java | 2 +- .../lunarclient/apollo/example/module/impl/EntityExample.java | 2 +- .../lunarclient/apollo/example/module/impl/GlintExample.java | 2 +- .../com/lunarclient/apollo/example/module/impl/GlowExample.java | 2 +- .../lunarclient/apollo/example/module/impl/HologramExample.java | 2 +- .../apollo/example/module/impl/InventoryExample.java | 2 +- .../com/lunarclient/apollo/example/module/impl/LimbExample.java | 2 +- .../apollo/example/module/impl/ModSettingsExample.java | 2 +- .../lunarclient/apollo/example/module/impl/NametagExample.java | 2 +- .../apollo/example/module/impl/NickHiderExample.java | 2 +- .../apollo/example/module/impl/NotificationExample.java | 2 +- .../lunarclient/apollo/example/module/impl/PayNowExample.java | 2 +- .../apollo/example/module/impl/RichPresenceExample.java | 2 +- .../apollo/example/module/impl/SaturationExample.java | 2 +- .../apollo/example/module/impl/ServerRuleExample.java | 2 +- .../lunarclient/apollo/example/module/impl/StaffModExample.java | 2 +- .../apollo/example/module/impl/StopwatchExample.java | 2 +- .../com/lunarclient/apollo/example/module/impl/TeamExample.java | 2 +- .../lunarclient/apollo/example/module/impl/TebexExample.java | 2 +- .../lunarclient/apollo/example/module/impl/TitleExample.java | 2 +- .../apollo/example/module/impl/TntCountdownExample.java | 2 +- .../lunarclient/apollo/example/module/impl/TransferExample.java | 2 +- .../lunarclient/apollo/example/module/impl/VignetteExample.java | 2 +- .../lunarclient/apollo/example/module/impl/WaypointExample.java | 2 +- .../main/java/com/lunarclient/apollo/example/util/ItemUtil.java | 2 +- .../java/com/lunarclient/apollo/example/util/ServerUtil.java | 2 +- .../apollo/example/json/ApolloJsonExamplePlatform.java | 2 +- .../example/json/listener/ApolloPacketReceiveJsonListener.java | 2 +- .../apollo/example/json/listener/ApolloPlayerJsonListener.java | 2 +- .../example/json/listener/ApolloRoundtripJsonListener.java | 2 +- .../apollo/example/json/module/AutoTextHotkeyJsonExample.java | 2 +- .../lunarclient/apollo/example/json/module/BeamJsonExample.java | 2 +- .../apollo/example/json/module/BorderJsonExample.java | 2 +- .../lunarclient/apollo/example/json/module/ChatJsonExample.java | 2 +- .../apollo/example/json/module/ColoredFireJsonExample.java | 2 +- .../apollo/example/json/module/CombatJsonExample.java | 2 +- .../apollo/example/json/module/CooldownJsonExample.java | 2 +- .../apollo/example/json/module/EntityJsonExample.java | 2 +- .../lunarclient/apollo/example/json/module/GlowJsonExample.java | 2 +- .../apollo/example/json/module/HologramJsonExample.java | 2 +- .../lunarclient/apollo/example/json/module/LimbJsonExample.java | 2 +- .../apollo/example/json/module/ModSettingsJsonExample.java | 2 +- .../apollo/example/json/module/NametagJsonExample.java | 2 +- .../apollo/example/json/module/NickHiderJsonExample.java | 2 +- .../apollo/example/json/module/NotificationJsonExample.java | 2 +- .../apollo/example/json/module/PayNowJsonExample.java | 2 +- .../apollo/example/json/module/RichPresenceJsonExample.java | 2 +- .../apollo/example/json/module/ServerRuleJsonExample.java | 2 +- .../apollo/example/json/module/StaffModJsonExample.java | 2 +- .../apollo/example/json/module/StopwatchJsonExample.java | 2 +- .../lunarclient/apollo/example/json/module/TeamJsonExample.java | 2 +- .../apollo/example/json/module/TebexJsonExample.java | 2 +- .../apollo/example/json/module/TitleJsonExample.java | 2 +- .../apollo/example/json/module/TntCountdownJsonExample.java | 2 +- .../apollo/example/json/module/TransferJsonExample.java | 2 +- .../apollo/example/json/module/VignetteJsonExample.java | 2 +- .../apollo/example/json/module/WaypointJsonExample.java | 2 +- .../com/lunarclient/apollo/example/json/util/AdventureUtil.java | 2 +- .../lunarclient/apollo/example/json/util/JsonPacketUtil.java | 2 +- .../java/com/lunarclient/apollo/example/json/util/JsonUtil.java | 2 +- .../apollo/example/proto/ApolloProtoExamplePlatform.java | 2 +- .../proto/listener/ApolloPacketReceiveProtoListener.java | 2 +- .../example/proto/listener/ApolloPlayerProtoListener.java | 2 +- .../example/proto/listener/ApolloRoundtripProtoListener.java | 2 +- .../apollo/example/proto/module/AutoTextHotkeyProtoExample.java | 2 +- .../apollo/example/proto/module/BeamProtoExample.java | 2 +- .../apollo/example/proto/module/BorderProtoExample.java | 2 +- .../apollo/example/proto/module/ChatProtoExample.java | 2 +- .../apollo/example/proto/module/ColoredFireProtoExample.java | 2 +- .../apollo/example/proto/module/CombatProtoExample.java | 2 +- .../apollo/example/proto/module/CooldownProtoExample.java | 2 +- .../apollo/example/proto/module/EntityProtoExample.java | 2 +- .../apollo/example/proto/module/GlowProtoExample.java | 2 +- .../apollo/example/proto/module/HologramProtoExample.java | 2 +- .../apollo/example/proto/module/LimbProtoExample.java | 2 +- .../apollo/example/proto/module/ModSettingsProtoExample.java | 2 +- .../apollo/example/proto/module/NametagProtoExample.java | 2 +- .../apollo/example/proto/module/NickHiderProtoExample.java | 2 +- .../apollo/example/proto/module/NotificationProtoExample.java | 2 +- .../apollo/example/proto/module/PayNowProtoExample.java | 2 +- .../apollo/example/proto/module/RichPresenceProtoExample.java | 2 +- .../apollo/example/proto/module/ServerRuleProtoExample.java | 2 +- .../apollo/example/proto/module/StaffModProtoExample.java | 2 +- .../apollo/example/proto/module/StopwatchProtoExample.java | 2 +- .../apollo/example/proto/module/TeamProtoExample.java | 2 +- .../apollo/example/proto/module/TebexProtoExample.java | 2 +- .../apollo/example/proto/module/TitleProtoExample.java | 2 +- .../apollo/example/proto/module/TntCountdownProtoExample.java | 2 +- .../apollo/example/proto/module/TransferProtoExample.java | 2 +- .../apollo/example/proto/module/VignetteProtoExample.java | 2 +- .../apollo/example/proto/module/WaypointProtoExample.java | 2 +- .../lunarclient/apollo/example/proto/util/AdventureUtil.java | 2 +- .../apollo/example/proto/util/ProtobufPacketUtil.java | 2 +- .../com/lunarclient/apollo/example/proto/util/ProtobufUtil.java | 2 +- .../com/lunarclient/apollo/example/ApolloMinestomExample.java | 2 +- .../java/com/lunarclient/apollo/common/ApolloComponent.java | 2 +- .../main/java/com/lunarclient/apollo/loader/DynamicAgent.java | 2 +- .../java/com/lunarclient/apollo/loader/DynamicDependencies.java | 2 +- .../main/java/com/lunarclient/apollo/loader/DynamicLoader.java | 2 +- .../main/java/com/lunarclient/apollo/loader/PlatformPlugin.java | 2 +- license.txt | 2 +- license_header.txt | 2 +- .../main/java/com/lunarclient/apollo/ApolloBukkitPlatform.java | 2 +- .../com/lunarclient/apollo/command/BukkitApolloCommand.java | 2 +- .../lunarclient/apollo/command/BukkitLunarClientCommand.java | 2 +- .../com/lunarclient/apollo/listener/ApolloMetadataListener.java | 2 +- .../com/lunarclient/apollo/listener/ApolloPlayerListener.java | 2 +- .../com/lunarclient/apollo/listener/ApolloWorldListener.java | 2 +- .../java/com/lunarclient/apollo/metadata/BukkitMetadata.java | 2 +- .../com/lunarclient/apollo/metadata/BukkitMetadataManager.java | 2 +- .../src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java | 2 +- .../java/com/lunarclient/apollo/wrapper/BukkitApolloPlayer.java | 2 +- .../java/com/lunarclient/apollo/wrapper/BukkitApolloStats.java | 2 +- .../java/com/lunarclient/apollo/wrapper/BukkitApolloWorld.java | 2 +- .../com/lunarclient/apollo/loader/BukkitPlatformLoader.java | 2 +- .../main/java/com/lunarclient/apollo/ApolloBungeePlatform.java | 2 +- .../com/lunarclient/apollo/command/BungeeApolloCommand.java | 2 +- .../lunarclient/apollo/command/BungeeLunarClientCommand.java | 2 +- .../com/lunarclient/apollo/listener/ApolloMetadataListener.java | 2 +- .../com/lunarclient/apollo/listener/ApolloPlayerListener.java | 2 +- .../java/com/lunarclient/apollo/metadata/BungeeMetadata.java | 2 +- .../com/lunarclient/apollo/metadata/BungeeMetadataManager.java | 2 +- .../src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java | 2 +- .../java/com/lunarclient/apollo/wrapper/BungeeApolloPlayer.java | 2 +- .../java/com/lunarclient/apollo/wrapper/BungeeApolloStats.java | 2 +- .../com/lunarclient/apollo/loader/BungeePlatformLoader.java | 2 +- .../main/java/com/lunarclient/apollo/ApolloFoliaPlatform.java | 2 +- .../java/com/lunarclient/apollo/command/FoliaApolloCommand.java | 2 +- .../com/lunarclient/apollo/command/FoliaLunarClientCommand.java | 2 +- .../com/lunarclient/apollo/listener/ApolloMetadataListener.java | 2 +- .../com/lunarclient/apollo/listener/ApolloPlayerListener.java | 2 +- .../com/lunarclient/apollo/listener/ApolloWorldListener.java | 2 +- .../java/com/lunarclient/apollo/metadata/FoliaMetadata.java | 2 +- .../com/lunarclient/apollo/metadata/FoliaMetadataManager.java | 2 +- .../java/com/lunarclient/apollo/wrapper/FoliaApolloPlayer.java | 2 +- .../java/com/lunarclient/apollo/wrapper/FoliaApolloStats.java | 2 +- .../java/com/lunarclient/apollo/wrapper/FoliaApolloWorld.java | 2 +- .../java/com/lunarclient/apollo/ApolloMinestomPlatform.java | 2 +- .../java/com/lunarclient/apollo/ApolloMinestomProperties.java | 2 +- .../com/lunarclient/apollo/command/MinestomApolloCommand.java | 2 +- .../lunarclient/apollo/command/MinestomLunarClientCommand.java | 2 +- .../com/lunarclient/apollo/listener/ApolloMetadataListener.java | 2 +- .../com/lunarclient/apollo/listener/ApolloPlayerListener.java | 2 +- .../com/lunarclient/apollo/listener/ApolloWorldListener.java | 2 +- .../java/com/lunarclient/apollo/metadata/MinestomMetadata.java | 2 +- .../lunarclient/apollo/metadata/MinestomMetadataManager.java | 2 +- .../src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java | 2 +- .../com/lunarclient/apollo/wrapper/MinestomApolloPlayer.java | 2 +- .../com/lunarclient/apollo/wrapper/MinestomApolloStats.java | 2 +- .../com/lunarclient/apollo/wrapper/MinestomApolloWorld.java | 2 +- .../java/com/lunarclient/apollo/ApolloVelocityPlatform.java | 2 +- .../com/lunarclient/apollo/command/VelocityApolloCommand.java | 2 +- .../lunarclient/apollo/command/VelocityLunarClientCommand.java | 2 +- .../com/lunarclient/apollo/listener/ApolloMetadataListener.java | 2 +- .../com/lunarclient/apollo/listener/ApolloPlayerListener.java | 2 +- .../java/com/lunarclient/apollo/metadata/VelocityMetadata.java | 2 +- .../lunarclient/apollo/metadata/VelocityMetadataManager.java | 2 +- .../src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java | 2 +- .../com/lunarclient/apollo/wrapper/VelocityApolloPlayer.java | 2 +- .../com/lunarclient/apollo/wrapper/VelocityApolloStats.java | 2 +- 528 files changed, 528 insertions(+), 528 deletions(-) diff --git a/api/src/bukkit/java/com/lunarclient/apollo/BukkitApollo.java b/api/src/bukkit/java/com/lunarclient/apollo/BukkitApollo.java index 78645cd2..00a61609 100644 --- a/api/src/bukkit/java/com/lunarclient/apollo/BukkitApollo.java +++ b/api/src/bukkit/java/com/lunarclient/apollo/BukkitApollo.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/bungee/java/com/lunarclient/apollo/BungeeApollo.java b/api/src/bungee/java/com/lunarclient/apollo/BungeeApollo.java index 28c4a75d..45e35767 100644 --- a/api/src/bungee/java/com/lunarclient/apollo/BungeeApollo.java +++ b/api/src/bungee/java/com/lunarclient/apollo/BungeeApollo.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/folia/java/com/lunarclient/apollo/FoliaApollo.java b/api/src/folia/java/com/lunarclient/apollo/FoliaApollo.java index 846c89eb..8d19ab2e 100644 --- a/api/src/folia/java/com/lunarclient/apollo/FoliaApollo.java +++ b/api/src/folia/java/com/lunarclient/apollo/FoliaApollo.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/Apollo.java b/api/src/main/java/com/lunarclient/apollo/Apollo.java index 674fd6b9..c578914e 100644 --- a/api/src/main/java/com/lunarclient/apollo/Apollo.java +++ b/api/src/main/java/com/lunarclient/apollo/Apollo.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/ApolloPlatform.java b/api/src/main/java/com/lunarclient/apollo/ApolloPlatform.java index 8ea25ec8..f63d6cf4 100644 --- a/api/src/main/java/com/lunarclient/apollo/ApolloPlatform.java +++ b/api/src/main/java/com/lunarclient/apollo/ApolloPlatform.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/api/ApiRequest.java b/api/src/main/java/com/lunarclient/apollo/api/ApiRequest.java index 063f1908..7b9b9371 100644 --- a/api/src/main/java/com/lunarclient/apollo/api/ApiRequest.java +++ b/api/src/main/java/com/lunarclient/apollo/api/ApiRequest.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/api/ApiRequestType.java b/api/src/main/java/com/lunarclient/apollo/api/ApiRequestType.java index c749e34a..832ecac6 100644 --- a/api/src/main/java/com/lunarclient/apollo/api/ApiRequestType.java +++ b/api/src/main/java/com/lunarclient/apollo/api/ApiRequestType.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/api/ApiResponse.java b/api/src/main/java/com/lunarclient/apollo/api/ApiResponse.java index 04807d74..0284ecbd 100644 --- a/api/src/main/java/com/lunarclient/apollo/api/ApiResponse.java +++ b/api/src/main/java/com/lunarclient/apollo/api/ApiResponse.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/api/ApiServiceType.java b/api/src/main/java/com/lunarclient/apollo/api/ApiServiceType.java index ac59e0b1..a09e86dd 100644 --- a/api/src/main/java/com/lunarclient/apollo/api/ApiServiceType.java +++ b/api/src/main/java/com/lunarclient/apollo/api/ApiServiceType.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/async/Future.java b/api/src/main/java/com/lunarclient/apollo/async/Future.java index 675170e3..b1a9ff9f 100644 --- a/api/src/main/java/com/lunarclient/apollo/async/Future.java +++ b/api/src/main/java/com/lunarclient/apollo/async/Future.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/async/Handler.java b/api/src/main/java/com/lunarclient/apollo/async/Handler.java index 79cd11cd..dbba8ff7 100644 --- a/api/src/main/java/com/lunarclient/apollo/async/Handler.java +++ b/api/src/main/java/com/lunarclient/apollo/async/Handler.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/async/future/UncertainFuture.java b/api/src/main/java/com/lunarclient/apollo/async/future/UncertainFuture.java index 74e8e527..f9108219 100644 --- a/api/src/main/java/com/lunarclient/apollo/async/future/UncertainFuture.java +++ b/api/src/main/java/com/lunarclient/apollo/async/future/UncertainFuture.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/client/mod/LunarClientMod.java b/api/src/main/java/com/lunarclient/apollo/client/mod/LunarClientMod.java index fd619ab1..28c02c6c 100644 --- a/api/src/main/java/com/lunarclient/apollo/client/mod/LunarClientMod.java +++ b/api/src/main/java/com/lunarclient/apollo/client/mod/LunarClientMod.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/client/mod/LunarClientModType.java b/api/src/main/java/com/lunarclient/apollo/client/mod/LunarClientModType.java index cc30b2d2..a437840f 100644 --- a/api/src/main/java/com/lunarclient/apollo/client/mod/LunarClientModType.java +++ b/api/src/main/java/com/lunarclient/apollo/client/mod/LunarClientModType.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/client/version/LunarClientVersion.java b/api/src/main/java/com/lunarclient/apollo/client/version/LunarClientVersion.java index a5b0d791..1edfec80 100644 --- a/api/src/main/java/com/lunarclient/apollo/client/version/LunarClientVersion.java +++ b/api/src/main/java/com/lunarclient/apollo/client/version/LunarClientVersion.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/client/version/MinecraftVersion.java b/api/src/main/java/com/lunarclient/apollo/client/version/MinecraftVersion.java index 418e9eb0..9e9abaa7 100644 --- a/api/src/main/java/com/lunarclient/apollo/client/version/MinecraftVersion.java +++ b/api/src/main/java/com/lunarclient/apollo/client/version/MinecraftVersion.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/common/ApolloColors.java b/api/src/main/java/com/lunarclient/apollo/common/ApolloColors.java index 6861d4e5..f1b4f617 100644 --- a/api/src/main/java/com/lunarclient/apollo/common/ApolloColors.java +++ b/api/src/main/java/com/lunarclient/apollo/common/ApolloColors.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/common/ApolloEntity.java b/api/src/main/java/com/lunarclient/apollo/common/ApolloEntity.java index f07ece8d..9e38adbf 100644 --- a/api/src/main/java/com/lunarclient/apollo/common/ApolloEntity.java +++ b/api/src/main/java/com/lunarclient/apollo/common/ApolloEntity.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/common/cuboid/Cuboid2D.java b/api/src/main/java/com/lunarclient/apollo/common/cuboid/Cuboid2D.java index 8be2ed9b..c537ce31 100644 --- a/api/src/main/java/com/lunarclient/apollo/common/cuboid/Cuboid2D.java +++ b/api/src/main/java/com/lunarclient/apollo/common/cuboid/Cuboid2D.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/common/cuboid/Cuboid3D.java b/api/src/main/java/com/lunarclient/apollo/common/cuboid/Cuboid3D.java index fd9e916b..a327b929 100644 --- a/api/src/main/java/com/lunarclient/apollo/common/cuboid/Cuboid3D.java +++ b/api/src/main/java/com/lunarclient/apollo/common/cuboid/Cuboid3D.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/common/icon/AdvancedResourceLocationIcon.java b/api/src/main/java/com/lunarclient/apollo/common/icon/AdvancedResourceLocationIcon.java index f7141081..0bc0543e 100644 --- a/api/src/main/java/com/lunarclient/apollo/common/icon/AdvancedResourceLocationIcon.java +++ b/api/src/main/java/com/lunarclient/apollo/common/icon/AdvancedResourceLocationIcon.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/common/icon/Icon.java b/api/src/main/java/com/lunarclient/apollo/common/icon/Icon.java index 16e70a57..4ac19f94 100644 --- a/api/src/main/java/com/lunarclient/apollo/common/icon/Icon.java +++ b/api/src/main/java/com/lunarclient/apollo/common/icon/Icon.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/common/icon/ItemStackIcon.java b/api/src/main/java/com/lunarclient/apollo/common/icon/ItemStackIcon.java index 963d9845..97ca66ab 100644 --- a/api/src/main/java/com/lunarclient/apollo/common/icon/ItemStackIcon.java +++ b/api/src/main/java/com/lunarclient/apollo/common/icon/ItemStackIcon.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/common/icon/SimpleResourceLocationIcon.java b/api/src/main/java/com/lunarclient/apollo/common/icon/SimpleResourceLocationIcon.java index 88ef87b3..e2b4bb7e 100644 --- a/api/src/main/java/com/lunarclient/apollo/common/icon/SimpleResourceLocationIcon.java +++ b/api/src/main/java/com/lunarclient/apollo/common/icon/SimpleResourceLocationIcon.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/common/location/ApolloBlockLocation.java b/api/src/main/java/com/lunarclient/apollo/common/location/ApolloBlockLocation.java index 9e728cde..242fd1ff 100644 --- a/api/src/main/java/com/lunarclient/apollo/common/location/ApolloBlockLocation.java +++ b/api/src/main/java/com/lunarclient/apollo/common/location/ApolloBlockLocation.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/common/location/ApolloLocation.java b/api/src/main/java/com/lunarclient/apollo/common/location/ApolloLocation.java index bc6a0fe8..55225795 100644 --- a/api/src/main/java/com/lunarclient/apollo/common/location/ApolloLocation.java +++ b/api/src/main/java/com/lunarclient/apollo/common/location/ApolloLocation.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/common/location/ApolloPlayerLocation.java b/api/src/main/java/com/lunarclient/apollo/common/location/ApolloPlayerLocation.java index 8b8cd3cf..002fe780 100644 --- a/api/src/main/java/com/lunarclient/apollo/common/location/ApolloPlayerLocation.java +++ b/api/src/main/java/com/lunarclient/apollo/common/location/ApolloPlayerLocation.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/ApolloListener.java b/api/src/main/java/com/lunarclient/apollo/event/ApolloListener.java index 07f10480..3c74e52f 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/ApolloListener.java +++ b/api/src/main/java/com/lunarclient/apollo/event/ApolloListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/Event.java b/api/src/main/java/com/lunarclient/apollo/event/Event.java index 402b4804..67c00481 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/Event.java +++ b/api/src/main/java/com/lunarclient/apollo/event/Event.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/EventBus.java b/api/src/main/java/com/lunarclient/apollo/event/EventBus.java index 4859c2f9..5309fc57 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/EventBus.java +++ b/api/src/main/java/com/lunarclient/apollo/event/EventBus.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/EventCancellable.java b/api/src/main/java/com/lunarclient/apollo/event/EventCancellable.java index 6a011b3e..a95bd247 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/EventCancellable.java +++ b/api/src/main/java/com/lunarclient/apollo/event/EventCancellable.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/Listen.java b/api/src/main/java/com/lunarclient/apollo/event/Listen.java index 9232e090..4c715234 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/Listen.java +++ b/api/src/main/java/com/lunarclient/apollo/event/Listen.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/ReflectiveConsumer.java b/api/src/main/java/com/lunarclient/apollo/event/ReflectiveConsumer.java index 0badccf6..47821a69 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/ReflectiveConsumer.java +++ b/api/src/main/java/com/lunarclient/apollo/event/ReflectiveConsumer.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/modsetting/ApolloUpdateModOptionEvent.java b/api/src/main/java/com/lunarclient/apollo/event/modsetting/ApolloUpdateModOptionEvent.java index 069458c1..d8724a6d 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/modsetting/ApolloUpdateModOptionEvent.java +++ b/api/src/main/java/com/lunarclient/apollo/event/modsetting/ApolloUpdateModOptionEvent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/option/ApolloUpdateOptionEvent.java b/api/src/main/java/com/lunarclient/apollo/event/option/ApolloUpdateOptionEvent.java index 3ade4cff..487ac128 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/option/ApolloUpdateOptionEvent.java +++ b/api/src/main/java/com/lunarclient/apollo/event/option/ApolloUpdateOptionEvent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/chat/ApolloPlayerChatCloseEvent.java b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/chat/ApolloPlayerChatCloseEvent.java index 26596d88..9f8250ca 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/chat/ApolloPlayerChatCloseEvent.java +++ b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/chat/ApolloPlayerChatCloseEvent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/chat/ApolloPlayerChatOpenEvent.java b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/chat/ApolloPlayerChatOpenEvent.java index 93ff8023..18dbe326 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/chat/ApolloPlayerChatOpenEvent.java +++ b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/chat/ApolloPlayerChatOpenEvent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/melee/ApolloPlayerAttackEvent.java b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/melee/ApolloPlayerAttackEvent.java index 79562edd..800773d0 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/melee/ApolloPlayerAttackEvent.java +++ b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/melee/ApolloPlayerAttackEvent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemBucketEvent.java b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemBucketEvent.java index a27c1395..de7a03dc 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemBucketEvent.java +++ b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemBucketEvent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemEvent.java b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemEvent.java index beb9e6ed..eab73e62 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemEvent.java +++ b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemEvent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/player/ApolloPlayerHandshakeEvent.java b/api/src/main/java/com/lunarclient/apollo/event/player/ApolloPlayerHandshakeEvent.java index 69aa276d..418533c0 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/player/ApolloPlayerHandshakeEvent.java +++ b/api/src/main/java/com/lunarclient/apollo/event/player/ApolloPlayerHandshakeEvent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/player/ApolloRegisterPlayerEvent.java b/api/src/main/java/com/lunarclient/apollo/event/player/ApolloRegisterPlayerEvent.java index 1c0f69f3..72442d0c 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/player/ApolloRegisterPlayerEvent.java +++ b/api/src/main/java/com/lunarclient/apollo/event/player/ApolloRegisterPlayerEvent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/event/player/ApolloUnregisterPlayerEvent.java b/api/src/main/java/com/lunarclient/apollo/event/player/ApolloUnregisterPlayerEvent.java index c278f610..ce8d0055 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/player/ApolloUnregisterPlayerEvent.java +++ b/api/src/main/java/com/lunarclient/apollo/event/player/ApolloUnregisterPlayerEvent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/Mods.java b/api/src/main/java/com/lunarclient/apollo/mods/Mods.java index 81cd35a3..d8a17558 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/Mods.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/Mods.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/Mod2dItems.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/Mod2dItems.java index e234ff2e..d9b17545 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/Mod2dItems.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/Mod2dItems.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/Mod3dSkins.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/Mod3dSkins.java index 839feed6..5e633780 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/Mod3dSkins.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/Mod3dSkins.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModArmorstatus.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModArmorstatus.java index 2e521b3d..cf54d8b4 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModArmorstatus.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModArmorstatus.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModAudioSubtitles.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModAudioSubtitles.java index 6417131a..1ab6249b 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModAudioSubtitles.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModAudioSubtitles.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModAutoTextActions.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModAutoTextActions.java index dddbd484..723b5522 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModAutoTextActions.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModAutoTextActions.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModAutoTextHotkey.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModAutoTextHotkey.java index c710daf9..a2758655 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModAutoTextHotkey.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModAutoTextHotkey.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModBlockOutline.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModBlockOutline.java index 4fdd2fec..e568eb1c 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModBlockOutline.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModBlockOutline.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModBossbar.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModBossbar.java index b68f7d23..9e9c4049 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModBossbar.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModBossbar.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChat.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChat.java index e794e4f1..989814bc 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChat.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChat.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChunkBorders.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChunkBorders.java index 6251c1a2..24f8e0e4 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChunkBorders.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChunkBorders.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModClock.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModClock.java index 6257b4b5..80266761 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModClock.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModClock.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModColorSaturation.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModColorSaturation.java index 5ba26222..61f559ab 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModColorSaturation.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModColorSaturation.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCombo.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCombo.java index 01b918ab..fbde9c9b 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCombo.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCombo.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCooldowns.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCooldowns.java index d3fd8ef6..27e9c829 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCooldowns.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCooldowns.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCoordinates.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCoordinates.java index 54309696..66e1d91a 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCoordinates.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCoordinates.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCps.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCps.java index 0c711a7c..ff191153 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCps.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCps.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCrosshair.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCrosshair.java index 80686714..2895204b 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCrosshair.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCrosshair.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDamageTint.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDamageTint.java index 0f98ebfd..86d04e89 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDamageTint.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDamageTint.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDayCounter.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDayCounter.java index 5c82312b..671548aa 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDayCounter.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDayCounter.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDirectionHud.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDirectionHud.java index 5b7aa7c0..bd5bb1b1 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDirectionHud.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDirectionHud.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModF3Display.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModF3Display.java index 49534a68..3d17e7dc 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModF3Display.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModF3Display.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFog.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFog.java index b699abb4..6da911c9 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFog.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFog.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFov.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFov.java index 8229b8ab..8773a86b 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFov.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFov.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFps.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFps.java index 43f37e41..e6871a72 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFps.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFps.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFreelook.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFreelook.java index 052f61b4..0c203e27 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFreelook.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFreelook.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModGlintColorizer.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModGlintColorizer.java index 93658486..83562e6d 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModGlintColorizer.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModGlintColorizer.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHitColor.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHitColor.java index 135ebccd..b42376c2 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHitColor.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHitColor.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHitbox.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHitbox.java index 8e1330f2..715abbd2 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHitbox.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHitbox.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHorseStats.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHorseStats.java index cf4e8ece..536c8bcc 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHorseStats.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHorseStats.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHurtCam.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHurtCam.java index 11c712a1..91c0aef1 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHurtCam.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHurtCam.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHypixelBedwars.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHypixelBedwars.java index 06e85ffa..3dc1df48 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHypixelBedwars.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHypixelBedwars.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHypixelMod.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHypixelMod.java index 1329126a..df33fcce 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHypixelMod.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHypixelMod.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModInventoryMod.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModInventoryMod.java index d93df0c7..b224de2e 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModInventoryMod.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModInventoryMod.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemCounter.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemCounter.java index f4d5ae02..7d879e54 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemCounter.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemCounter.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemPhysics.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemPhysics.java index a206035f..9fc63fb1 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemPhysics.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemPhysics.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemTracker.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemTracker.java index af51e5f8..7bb83e6b 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemTracker.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemTracker.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModKeystrokes.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModKeystrokes.java index be04bbeb..4c62bb09 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModKeystrokes.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModKeystrokes.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModKillSounds.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModKillSounds.java index c7310610..095b0ade 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModKillSounds.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModKillSounds.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModLighting.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModLighting.java index f0eca0ca..bc0d48e2 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModLighting.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModLighting.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMarkers.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMarkers.java index 15ce1a0f..a240ffe9 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMarkers.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMarkers.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMemory.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMemory.java index e6e9f1c3..12a23817 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMemory.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMemory.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMenuBlur.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMenuBlur.java index 67568681..4770484f 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMenuBlur.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMenuBlur.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMinimap.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMinimap.java index 051ba554..b4a0429f 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMinimap.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMinimap.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMobSize.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMobSize.java index 3937c6eb..d9590059 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMobSize.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMobSize.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMomentum.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMomentum.java index 593dffb4..e25795df 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMomentum.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMomentum.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMotionBlur.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMotionBlur.java index 6611458d..cebd9fea 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMotionBlur.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMotionBlur.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMumbleLink.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMumbleLink.java index ddb5efb5..82f658da 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMumbleLink.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMumbleLink.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNametag.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNametag.java index b76ff9be..64e724b6 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNametag.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNametag.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNeu.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNeu.java index f338d760..dbea0558 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNeu.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNeu.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNickHider.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNickHider.java index fed02a3c..bcc3874a 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNickHider.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNickHider.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModOneSevenVisuals.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModOneSevenVisuals.java index 2d6ab6cf..f7b97338 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModOneSevenVisuals.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModOneSevenVisuals.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 489dc85a..f079fb79 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 @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPackDisplay.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPackDisplay.java index f0ad3a86..be91fbc3 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPackDisplay.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPackDisplay.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPackOrganizer.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPackOrganizer.java index 8e6d0d86..3dc8c243 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPackOrganizer.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPackOrganizer.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModParticleChanger.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModParticleChanger.java index e5473af9..dc998ce9 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModParticleChanger.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModParticleChanger.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPing.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPing.java index 21436fd3..059e6312 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPing.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPing.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPlaytime.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPlaytime.java index 2484208a..67a0efb7 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPlaytime.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPlaytime.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPotionEffects.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPotionEffects.java index f00354aa..93be05cc 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPotionEffects.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPotionEffects.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPvpInfo.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPvpInfo.java index e9106493..eddce0e9 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPvpInfo.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModPvpInfo.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModQuickplay.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModQuickplay.java index f65e63e6..1b219fcd 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModQuickplay.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModQuickplay.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModRadio.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModRadio.java index 0b7b891a..d23b9a2f 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModRadio.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModRadio.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModReachDisplay.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModReachDisplay.java index 77806261..e66aed17 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModReachDisplay.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModReachDisplay.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModReplaymod.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModReplaymod.java index c59e5d55..07c85da1 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModReplaymod.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModReplaymod.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModRewind.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModRewind.java index e2a8c7c5..67323998 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModRewind.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModRewind.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSaturation.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSaturation.java index e35e81b3..bae9e1b2 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSaturation.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSaturation.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSba.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSba.java index ba6b5687..e85271dc 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSba.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSba.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScoreboard.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScoreboard.java index 98a74f72..b0425df7 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScoreboard.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScoreboard.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScreenshot.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScreenshot.java index 478ed138..2945c34b 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScreenshot.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScreenshot.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScrollableTooltips.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScrollableTooltips.java index 06c6c4ba..c333af45 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScrollableTooltips.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScrollableTooltips.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModServerAddress.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModServerAddress.java index 8caa3784..07eae526 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModServerAddress.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModServerAddress.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShields.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShields.java index 79a0a8ba..e19aa8e8 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShields.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShields.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShinyPots.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShinyPots.java index 53a38c69..45ae2fb3 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShinyPots.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShinyPots.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShulkerPreview.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShulkerPreview.java index 92add2a6..3c8e9acd 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShulkerPreview.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShulkerPreview.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 b4803629..40281e0b 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 @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSnaplook.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSnaplook.java index b0045f9b..5b7662b2 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSnaplook.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSnaplook.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSoundChanger.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSoundChanger.java index 1d24999d..105bd584 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSoundChanger.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSoundChanger.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModStopwatch.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModStopwatch.java index efe8d491..e994e63f 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModStopwatch.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModStopwatch.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTab.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTab.java index 1bf39e56..9314d2e4 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTab.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTab.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTeamView.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTeamView.java index 87dc9421..fbd76c69 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTeamView.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTeamView.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 5de30344..87d3bfa8 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 @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTimeChanger.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTimeChanger.java index 9d07a7a6..2a437e6b 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTimeChanger.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTimeChanger.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTitles.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTitles.java index 87b74444..d7f584be 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTitles.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTitles.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTntCountdown.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTntCountdown.java index 68abeacf..9c4114e9 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTntCountdown.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTntCountdown.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModToggleSneak.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModToggleSneak.java index fd4c834e..1e4e0df6 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModToggleSneak.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModToggleSneak.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTotemCounter.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTotemCounter.java index e8262b39..9ebd0aac 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTotemCounter.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTotemCounter.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModUhcOverlay.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModUhcOverlay.java index 77986f26..84846732 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModUhcOverlay.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModUhcOverlay.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaila.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaila.java index dc912f2e..e9d0bf8b 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaila.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaila.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaypoints.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaypoints.java index 008b63a5..fad8ca13 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaypoints.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaypoints.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWeatherChanger.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWeatherChanger.java index fede2873..2423e298 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWeatherChanger.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWeatherChanger.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWorldeditCui.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWorldeditCui.java index 943ba4c4..e9013498 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWorldeditCui.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWorldeditCui.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModZoom.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModZoom.java index c35d1e12..092f6bed 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModZoom.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModZoom.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/ApolloModule.java b/api/src/main/java/com/lunarclient/apollo/module/ApolloModule.java index ae1a03d4..9135fd8e 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/ApolloModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/ApolloModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/ApolloModuleManager.java b/api/src/main/java/com/lunarclient/apollo/module/ApolloModuleManager.java index 674a1f1e..760bcdd3 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/ApolloModuleManager.java +++ b/api/src/main/java/com/lunarclient/apollo/module/ApolloModuleManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/ModuleDefinition.java b/api/src/main/java/com/lunarclient/apollo/module/ModuleDefinition.java index d9ae4e28..a441203e 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/ModuleDefinition.java +++ b/api/src/main/java/com/lunarclient/apollo/module/ModuleDefinition.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/autotexthotkey/AutoTextHotkeyModule.java b/api/src/main/java/com/lunarclient/apollo/module/autotexthotkey/AutoTextHotkeyModule.java index 00db4ea6..3e822602 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/autotexthotkey/AutoTextHotkeyModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/autotexthotkey/AutoTextHotkeyModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/beam/Beam.java b/api/src/main/java/com/lunarclient/apollo/module/beam/Beam.java index 0b496134..226f90e9 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/beam/Beam.java +++ b/api/src/main/java/com/lunarclient/apollo/module/beam/Beam.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/beam/BeamModule.java b/api/src/main/java/com/lunarclient/apollo/module/beam/BeamModule.java index 6681ccf2..672cc825 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/beam/BeamModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/beam/BeamModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/border/Border.java b/api/src/main/java/com/lunarclient/apollo/module/border/Border.java index 2a02070e..e25d13ca 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/border/Border.java +++ b/api/src/main/java/com/lunarclient/apollo/module/border/Border.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/border/BorderModule.java b/api/src/main/java/com/lunarclient/apollo/module/border/BorderModule.java index 50d72135..706d2ba4 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/border/BorderModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/border/BorderModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/chat/ChatModule.java b/api/src/main/java/com/lunarclient/apollo/module/chat/ChatModule.java index 6faa1891..c6190500 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/chat/ChatModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/chat/ChatModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/coloredfire/ColoredFireModule.java b/api/src/main/java/com/lunarclient/apollo/module/coloredfire/ColoredFireModule.java index 2f1012e2..f63dcaba 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/coloredfire/ColoredFireModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/coloredfire/ColoredFireModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/combat/CombatModule.java b/api/src/main/java/com/lunarclient/apollo/module/combat/CombatModule.java index 3a57de46..76288ec0 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/combat/CombatModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/combat/CombatModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/cooldown/Cooldown.java b/api/src/main/java/com/lunarclient/apollo/module/cooldown/Cooldown.java index 58cefa88..7ef84346 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/cooldown/Cooldown.java +++ b/api/src/main/java/com/lunarclient/apollo/module/cooldown/Cooldown.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownModule.java b/api/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownModule.java index b40b9aac..a0b50672 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/entity/EntityModule.java b/api/src/main/java/com/lunarclient/apollo/module/entity/EntityModule.java index 5e3ca466..43454aee 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/entity/EntityModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/entity/EntityModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/glint/GlintModule.java b/api/src/main/java/com/lunarclient/apollo/module/glint/GlintModule.java index 0b8ed970..7fb6cdaf 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/glint/GlintModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/glint/GlintModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/glow/GlowModule.java b/api/src/main/java/com/lunarclient/apollo/module/glow/GlowModule.java index aa4b6e79..1c4164ad 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/glow/GlowModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/glow/GlowModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/hologram/Hologram.java b/api/src/main/java/com/lunarclient/apollo/module/hologram/Hologram.java index 192802fd..8b73b1af 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/hologram/Hologram.java +++ b/api/src/main/java/com/lunarclient/apollo/module/hologram/Hologram.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/hologram/HologramModule.java b/api/src/main/java/com/lunarclient/apollo/module/hologram/HologramModule.java index 9d5dea47..b9e46ad4 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/hologram/HologramModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/hologram/HologramModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/inventory/InventoryModule.java b/api/src/main/java/com/lunarclient/apollo/module/inventory/InventoryModule.java index 968b48a6..ed5861e3 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/inventory/InventoryModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/inventory/InventoryModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/limb/ArmorPiece.java b/api/src/main/java/com/lunarclient/apollo/module/limb/ArmorPiece.java index 0c676a69..6a8d4fe8 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/limb/ArmorPiece.java +++ b/api/src/main/java/com/lunarclient/apollo/module/limb/ArmorPiece.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/limb/BodyPart.java b/api/src/main/java/com/lunarclient/apollo/module/limb/BodyPart.java index 7484f9a4..3b0bed07 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/limb/BodyPart.java +++ b/api/src/main/java/com/lunarclient/apollo/module/limb/BodyPart.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/limb/LimbModule.java b/api/src/main/java/com/lunarclient/apollo/module/limb/LimbModule.java index 8d880523..81ed3cd9 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/limb/LimbModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/limb/LimbModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/modsetting/ModSettingModule.java b/api/src/main/java/com/lunarclient/apollo/module/modsetting/ModSettingModule.java index c51a8952..cdad6ef4 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/modsetting/ModSettingModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/modsetting/ModSettingModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/nametag/Nametag.java b/api/src/main/java/com/lunarclient/apollo/module/nametag/Nametag.java index 8ef9a80b..5089ffd8 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/nametag/Nametag.java +++ b/api/src/main/java/com/lunarclient/apollo/module/nametag/Nametag.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/nametag/NametagModule.java b/api/src/main/java/com/lunarclient/apollo/module/nametag/NametagModule.java index 9fa72b98..a88c8ba3 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/nametag/NametagModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/nametag/NametagModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/nickhider/NickHiderModule.java b/api/src/main/java/com/lunarclient/apollo/module/nickhider/NickHiderModule.java index a8bfe8af..7194ccf4 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/nickhider/NickHiderModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/nickhider/NickHiderModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/notification/Notification.java b/api/src/main/java/com/lunarclient/apollo/module/notification/Notification.java index 4a8ea14a..4943134e 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/notification/Notification.java +++ b/api/src/main/java/com/lunarclient/apollo/module/notification/Notification.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/notification/NotificationModule.java b/api/src/main/java/com/lunarclient/apollo/module/notification/NotificationModule.java index 1828d5d5..1a0c20b4 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/notification/NotificationModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/notification/NotificationModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentModule.java b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentModule.java index bf519e07..cec82188 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/PlayerInfo.java b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/PlayerInfo.java index d405097c..9e230415 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/PlayerInfo.java +++ b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/PlayerInfo.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/BlockHitResult.java b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/BlockHitResult.java index 6bd312c8..6e5b1e66 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/BlockHitResult.java +++ b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/BlockHitResult.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/Direction.java b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/Direction.java index 9b729b15..2b6e48a3 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/Direction.java +++ b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/Direction.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/EntityHitResult.java b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/EntityHitResult.java index 030436b8..4b95b708 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/EntityHitResult.java +++ b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/EntityHitResult.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/MissResult.java b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/MissResult.java index 5c7f91bc..f400ad86 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/MissResult.java +++ b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/MissResult.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/RayTraceResult.java b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/RayTraceResult.java index 46eb2667..beb4c6d5 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/RayTraceResult.java +++ b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/RayTraceResult.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/paynow/PayNowEmbeddedCheckoutSupport.java b/api/src/main/java/com/lunarclient/apollo/module/paynow/PayNowEmbeddedCheckoutSupport.java index 4a9be059..0127b4a7 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/paynow/PayNowEmbeddedCheckoutSupport.java +++ b/api/src/main/java/com/lunarclient/apollo/module/paynow/PayNowEmbeddedCheckoutSupport.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/paynow/PayNowModule.java b/api/src/main/java/com/lunarclient/apollo/module/paynow/PayNowModule.java index 79fcc41c..47561b2a 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/paynow/PayNowModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/paynow/PayNowModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/richpresence/RichPresenceModule.java b/api/src/main/java/com/lunarclient/apollo/module/richpresence/RichPresenceModule.java index 25f08cec..162ad2ee 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/richpresence/RichPresenceModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/richpresence/RichPresenceModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/richpresence/ServerRichPresence.java b/api/src/main/java/com/lunarclient/apollo/module/richpresence/ServerRichPresence.java index cb0c9725..cb7b1ca4 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/richpresence/ServerRichPresence.java +++ b/api/src/main/java/com/lunarclient/apollo/module/richpresence/ServerRichPresence.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/saturation/SaturationModule.java b/api/src/main/java/com/lunarclient/apollo/module/saturation/SaturationModule.java index a1f40bba..7a3148cb 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/saturation/SaturationModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/saturation/SaturationModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 b7931ea7..01092e3f 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 @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/staffmod/StaffMod.java b/api/src/main/java/com/lunarclient/apollo/module/staffmod/StaffMod.java index de64a3e9..6585a5b2 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/staffmod/StaffMod.java +++ b/api/src/main/java/com/lunarclient/apollo/module/staffmod/StaffMod.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/staffmod/StaffModModule.java b/api/src/main/java/com/lunarclient/apollo/module/staffmod/StaffModModule.java index 5a8a348d..ed1d9999 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/staffmod/StaffModModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/staffmod/StaffModModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/stopwatch/StopwatchModule.java b/api/src/main/java/com/lunarclient/apollo/module/stopwatch/StopwatchModule.java index 71e47778..bec98316 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/stopwatch/StopwatchModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/stopwatch/StopwatchModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/team/TeamMember.java b/api/src/main/java/com/lunarclient/apollo/module/team/TeamMember.java index 7cf3befb..2ae6d46a 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/team/TeamMember.java +++ b/api/src/main/java/com/lunarclient/apollo/module/team/TeamMember.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/team/TeamModule.java b/api/src/main/java/com/lunarclient/apollo/module/team/TeamModule.java index 20f61312..4a27f104 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/team/TeamModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/team/TeamModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/tebex/TebexEmbeddedCheckoutSupport.java b/api/src/main/java/com/lunarclient/apollo/module/tebex/TebexEmbeddedCheckoutSupport.java index 4f068577..7634006d 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/tebex/TebexEmbeddedCheckoutSupport.java +++ b/api/src/main/java/com/lunarclient/apollo/module/tebex/TebexEmbeddedCheckoutSupport.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/tebex/TebexModule.java b/api/src/main/java/com/lunarclient/apollo/module/tebex/TebexModule.java index 48b90d36..6fafb760 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/tebex/TebexModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/tebex/TebexModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/title/Title.java b/api/src/main/java/com/lunarclient/apollo/module/title/Title.java index ec207dfe..2547de9d 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/title/Title.java +++ b/api/src/main/java/com/lunarclient/apollo/module/title/Title.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/title/TitleModule.java b/api/src/main/java/com/lunarclient/apollo/module/title/TitleModule.java index f75cddd1..ca0cc6e1 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/title/TitleModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/title/TitleModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/title/TitleType.java b/api/src/main/java/com/lunarclient/apollo/module/title/TitleType.java index 66716704..9841920e 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/title/TitleType.java +++ b/api/src/main/java/com/lunarclient/apollo/module/title/TitleType.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/tntcountdown/TntCountdownModule.java b/api/src/main/java/com/lunarclient/apollo/module/tntcountdown/TntCountdownModule.java index 77aa5d45..cb7db066 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/tntcountdown/TntCountdownModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/tntcountdown/TntCountdownModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/transfer/PingRequest.java b/api/src/main/java/com/lunarclient/apollo/module/transfer/PingRequest.java index 6d655865..27640400 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/transfer/PingRequest.java +++ b/api/src/main/java/com/lunarclient/apollo/module/transfer/PingRequest.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/transfer/PingResponse.java b/api/src/main/java/com/lunarclient/apollo/module/transfer/PingResponse.java index 9a88b242..645303d5 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/transfer/PingResponse.java +++ b/api/src/main/java/com/lunarclient/apollo/module/transfer/PingResponse.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/transfer/TransferModule.java b/api/src/main/java/com/lunarclient/apollo/module/transfer/TransferModule.java index 21ca0d73..2d033f4d 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/transfer/TransferModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/transfer/TransferModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/transfer/TransferRequest.java b/api/src/main/java/com/lunarclient/apollo/module/transfer/TransferRequest.java index ebade231..5054841a 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/transfer/TransferRequest.java +++ b/api/src/main/java/com/lunarclient/apollo/module/transfer/TransferRequest.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/transfer/TransferResponse.java b/api/src/main/java/com/lunarclient/apollo/module/transfer/TransferResponse.java index 8a96c2c0..0fa8a17a 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/transfer/TransferResponse.java +++ b/api/src/main/java/com/lunarclient/apollo/module/transfer/TransferResponse.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/vignette/Vignette.java b/api/src/main/java/com/lunarclient/apollo/module/vignette/Vignette.java index bc9937e3..21a44fb3 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/vignette/Vignette.java +++ b/api/src/main/java/com/lunarclient/apollo/module/vignette/Vignette.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/vignette/VignetteModule.java b/api/src/main/java/com/lunarclient/apollo/module/vignette/VignetteModule.java index 92b97791..4850786a 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/vignette/VignetteModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/vignette/VignetteModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/waypoint/Waypoint.java b/api/src/main/java/com/lunarclient/apollo/module/waypoint/Waypoint.java index 6fdf1eb1..39c534b3 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/waypoint/Waypoint.java +++ b/api/src/main/java/com/lunarclient/apollo/module/waypoint/Waypoint.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/module/waypoint/WaypointModule.java b/api/src/main/java/com/lunarclient/apollo/module/waypoint/WaypointModule.java index 379d1415..176adab5 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/waypoint/WaypointModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/waypoint/WaypointModule.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/option/EmptyOptions.java b/api/src/main/java/com/lunarclient/apollo/option/EmptyOptions.java index 62bbe5dc..c7449c18 100644 --- a/api/src/main/java/com/lunarclient/apollo/option/EmptyOptions.java +++ b/api/src/main/java/com/lunarclient/apollo/option/EmptyOptions.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/option/EnumOption.java b/api/src/main/java/com/lunarclient/apollo/option/EnumOption.java index 548d33cc..e501175b 100644 --- a/api/src/main/java/com/lunarclient/apollo/option/EnumOption.java +++ b/api/src/main/java/com/lunarclient/apollo/option/EnumOption.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/option/ListOption.java b/api/src/main/java/com/lunarclient/apollo/option/ListOption.java index c2d6bce0..09d048e1 100644 --- a/api/src/main/java/com/lunarclient/apollo/option/ListOption.java +++ b/api/src/main/java/com/lunarclient/apollo/option/ListOption.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/option/NumberOption.java b/api/src/main/java/com/lunarclient/apollo/option/NumberOption.java index a27a4a3d..dcfb3179 100644 --- a/api/src/main/java/com/lunarclient/apollo/option/NumberOption.java +++ b/api/src/main/java/com/lunarclient/apollo/option/NumberOption.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/option/Option.java b/api/src/main/java/com/lunarclient/apollo/option/Option.java index 3a011516..24d61baf 100644 --- a/api/src/main/java/com/lunarclient/apollo/option/Option.java +++ b/api/src/main/java/com/lunarclient/apollo/option/Option.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/option/OptionBuilder.java b/api/src/main/java/com/lunarclient/apollo/option/OptionBuilder.java index ac9c44bf..d1e46378 100644 --- a/api/src/main/java/com/lunarclient/apollo/option/OptionBuilder.java +++ b/api/src/main/java/com/lunarclient/apollo/option/OptionBuilder.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/option/Options.java b/api/src/main/java/com/lunarclient/apollo/option/Options.java index 7c13447b..a494f7ce 100644 --- a/api/src/main/java/com/lunarclient/apollo/option/Options.java +++ b/api/src/main/java/com/lunarclient/apollo/option/Options.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/option/SimpleOption.java b/api/src/main/java/com/lunarclient/apollo/option/SimpleOption.java index 1ccb7533..54b756a0 100644 --- a/api/src/main/java/com/lunarclient/apollo/option/SimpleOption.java +++ b/api/src/main/java/com/lunarclient/apollo/option/SimpleOption.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/player/ApolloPlayer.java b/api/src/main/java/com/lunarclient/apollo/player/ApolloPlayer.java index b64ff448..3a2bc71f 100644 --- a/api/src/main/java/com/lunarclient/apollo/player/ApolloPlayer.java +++ b/api/src/main/java/com/lunarclient/apollo/player/ApolloPlayer.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/player/ApolloPlayerManager.java b/api/src/main/java/com/lunarclient/apollo/player/ApolloPlayerManager.java index a0538766..4543c682 100644 --- a/api/src/main/java/com/lunarclient/apollo/player/ApolloPlayerManager.java +++ b/api/src/main/java/com/lunarclient/apollo/player/ApolloPlayerManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/recipients/ForwardingRecipients.java b/api/src/main/java/com/lunarclient/apollo/recipients/ForwardingRecipients.java index 57ad9993..f89eb328 100644 --- a/api/src/main/java/com/lunarclient/apollo/recipients/ForwardingRecipients.java +++ b/api/src/main/java/com/lunarclient/apollo/recipients/ForwardingRecipients.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/recipients/Recipients.java b/api/src/main/java/com/lunarclient/apollo/recipients/Recipients.java index dbf3da03..29f2f81a 100644 --- a/api/src/main/java/com/lunarclient/apollo/recipients/Recipients.java +++ b/api/src/main/java/com/lunarclient/apollo/recipients/Recipients.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/roundtrip/ApolloRequest.java b/api/src/main/java/com/lunarclient/apollo/roundtrip/ApolloRequest.java index a163cf72..372d8ae3 100644 --- a/api/src/main/java/com/lunarclient/apollo/roundtrip/ApolloRequest.java +++ b/api/src/main/java/com/lunarclient/apollo/roundtrip/ApolloRequest.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/roundtrip/ApolloResponse.java b/api/src/main/java/com/lunarclient/apollo/roundtrip/ApolloResponse.java index 73e3bf2b..192894e6 100644 --- a/api/src/main/java/com/lunarclient/apollo/roundtrip/ApolloResponse.java +++ b/api/src/main/java/com/lunarclient/apollo/roundtrip/ApolloResponse.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/roundtrip/ApolloRoundtripManager.java b/api/src/main/java/com/lunarclient/apollo/roundtrip/ApolloRoundtripManager.java index 5e7111f5..bc70306b 100644 --- a/api/src/main/java/com/lunarclient/apollo/roundtrip/ApolloRoundtripManager.java +++ b/api/src/main/java/com/lunarclient/apollo/roundtrip/ApolloRoundtripManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/stats/ApolloPluginDescription.java b/api/src/main/java/com/lunarclient/apollo/stats/ApolloPluginDescription.java index 48c121f6..bc2804ac 100644 --- a/api/src/main/java/com/lunarclient/apollo/stats/ApolloPluginDescription.java +++ b/api/src/main/java/com/lunarclient/apollo/stats/ApolloPluginDescription.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/stats/ApolloStats.java b/api/src/main/java/com/lunarclient/apollo/stats/ApolloStats.java index 03b16d93..e402137f 100644 --- a/api/src/main/java/com/lunarclient/apollo/stats/ApolloStats.java +++ b/api/src/main/java/com/lunarclient/apollo/stats/ApolloStats.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/util/ConfigTarget.java b/api/src/main/java/com/lunarclient/apollo/util/ConfigTarget.java index 4f4a666c..8957d0fa 100644 --- a/api/src/main/java/com/lunarclient/apollo/util/ConfigTarget.java +++ b/api/src/main/java/com/lunarclient/apollo/util/ConfigTarget.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/world/ApolloWorld.java b/api/src/main/java/com/lunarclient/apollo/world/ApolloWorld.java index 84fe1ddc..5ef9802f 100644 --- a/api/src/main/java/com/lunarclient/apollo/world/ApolloWorld.java +++ b/api/src/main/java/com/lunarclient/apollo/world/ApolloWorld.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/main/java/com/lunarclient/apollo/world/ApolloWorldManager.java b/api/src/main/java/com/lunarclient/apollo/world/ApolloWorldManager.java index fc491cf6..86276c22 100644 --- a/api/src/main/java/com/lunarclient/apollo/world/ApolloWorldManager.java +++ b/api/src/main/java/com/lunarclient/apollo/world/ApolloWorldManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/minestom/java/com/lunarclient/apollo/MinestomApollo.java b/api/src/minestom/java/com/lunarclient/apollo/MinestomApollo.java index fa8b42de..14144d2d 100644 --- a/api/src/minestom/java/com/lunarclient/apollo/MinestomApollo.java +++ b/api/src/minestom/java/com/lunarclient/apollo/MinestomApollo.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/api/src/velocity/java/com/lunarclient/apollo/VelocityApollo.java b/api/src/velocity/java/com/lunarclient/apollo/VelocityApollo.java index 460860da..f88992ed 100644 --- a/api/src/velocity/java/com/lunarclient/apollo/VelocityApollo.java +++ b/api/src/velocity/java/com/lunarclient/apollo/VelocityApollo.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/ApolloConfig.java b/common/src/main/java/com/lunarclient/apollo/ApolloConfig.java index 8ad9adce..06b1886a 100644 --- a/common/src/main/java/com/lunarclient/apollo/ApolloConfig.java +++ b/common/src/main/java/com/lunarclient/apollo/ApolloConfig.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/ApolloManager.java b/common/src/main/java/com/lunarclient/apollo/ApolloManager.java index 0490073f..c615bfca 100644 --- a/common/src/main/java/com/lunarclient/apollo/ApolloManager.java +++ b/common/src/main/java/com/lunarclient/apollo/ApolloManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 532e03dd..8cd7f7f5 100644 --- a/common/src/main/java/com/lunarclient/apollo/api/ApolloHttpManager.java +++ b/common/src/main/java/com/lunarclient/apollo/api/ApolloHttpManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/api/request/DownloadFileRequest.java b/common/src/main/java/com/lunarclient/apollo/api/request/DownloadFileRequest.java index d527d652..6473a80e 100644 --- a/common/src/main/java/com/lunarclient/apollo/api/request/DownloadFileRequest.java +++ b/common/src/main/java/com/lunarclient/apollo/api/request/DownloadFileRequest.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/api/request/ServerStartRequest.java b/common/src/main/java/com/lunarclient/apollo/api/request/ServerStartRequest.java index c5b86e36..9990f84f 100644 --- a/common/src/main/java/com/lunarclient/apollo/api/request/ServerStartRequest.java +++ b/common/src/main/java/com/lunarclient/apollo/api/request/ServerStartRequest.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/api/request/VersionRequest.java b/common/src/main/java/com/lunarclient/apollo/api/request/VersionRequest.java index 7861877d..a4677e9a 100644 --- a/common/src/main/java/com/lunarclient/apollo/api/request/VersionRequest.java +++ b/common/src/main/java/com/lunarclient/apollo/api/request/VersionRequest.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/api/request/heartbeat/ServerHeartbeatRequest.java b/common/src/main/java/com/lunarclient/apollo/api/request/heartbeat/ServerHeartbeatRequest.java index 2a7e5322..22a48fa3 100644 --- a/common/src/main/java/com/lunarclient/apollo/api/request/heartbeat/ServerHeartbeatRequest.java +++ b/common/src/main/java/com/lunarclient/apollo/api/request/heartbeat/ServerHeartbeatRequest.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/api/response/DownloadFileResponse.java b/common/src/main/java/com/lunarclient/apollo/api/response/DownloadFileResponse.java index b8f010db..e7e53c36 100644 --- a/common/src/main/java/com/lunarclient/apollo/api/response/DownloadFileResponse.java +++ b/common/src/main/java/com/lunarclient/apollo/api/response/DownloadFileResponse.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/api/response/ServerHeartbeatResponse.java b/common/src/main/java/com/lunarclient/apollo/api/response/ServerHeartbeatResponse.java index 34c7d82d..7f3b101e 100644 --- a/common/src/main/java/com/lunarclient/apollo/api/response/ServerHeartbeatResponse.java +++ b/common/src/main/java/com/lunarclient/apollo/api/response/ServerHeartbeatResponse.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/api/response/ServerStartResponse.java b/common/src/main/java/com/lunarclient/apollo/api/response/ServerStartResponse.java index a536d6ce..e70922c3 100644 --- a/common/src/main/java/com/lunarclient/apollo/api/response/ServerStartResponse.java +++ b/common/src/main/java/com/lunarclient/apollo/api/response/ServerStartResponse.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/api/response/VersionResponse.java b/common/src/main/java/com/lunarclient/apollo/api/response/VersionResponse.java index ae861a27..a0355cf9 100644 --- a/common/src/main/java/com/lunarclient/apollo/api/response/VersionResponse.java +++ b/common/src/main/java/com/lunarclient/apollo/api/response/VersionResponse.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/command/AbstractApolloCommand.java b/common/src/main/java/com/lunarclient/apollo/command/AbstractApolloCommand.java index 67262529..86c23043 100644 --- a/common/src/main/java/com/lunarclient/apollo/command/AbstractApolloCommand.java +++ b/common/src/main/java/com/lunarclient/apollo/command/AbstractApolloCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/command/type/ApolloCommand.java b/common/src/main/java/com/lunarclient/apollo/command/type/ApolloCommand.java index a18bf323..ac152310 100644 --- a/common/src/main/java/com/lunarclient/apollo/command/type/ApolloCommand.java +++ b/common/src/main/java/com/lunarclient/apollo/command/type/ApolloCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/command/type/LunarClientCommand.java b/common/src/main/java/com/lunarclient/apollo/command/type/LunarClientCommand.java index 74ba54c3..09d8faa3 100644 --- a/common/src/main/java/com/lunarclient/apollo/command/type/LunarClientCommand.java +++ b/common/src/main/java/com/lunarclient/apollo/command/type/LunarClientCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/event/ApolloReceivePacketEvent.java b/common/src/main/java/com/lunarclient/apollo/event/ApolloReceivePacketEvent.java index 3a75a461..84fa25bd 100644 --- a/common/src/main/java/com/lunarclient/apollo/event/ApolloReceivePacketEvent.java +++ b/common/src/main/java/com/lunarclient/apollo/event/ApolloReceivePacketEvent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/event/ApolloSendPacketEvent.java b/common/src/main/java/com/lunarclient/apollo/event/ApolloSendPacketEvent.java index 34dc0867..ff3a9bc0 100644 --- a/common/src/main/java/com/lunarclient/apollo/event/ApolloSendPacketEvent.java +++ b/common/src/main/java/com/lunarclient/apollo/event/ApolloSendPacketEvent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/mods/ApolloModsManager.java b/common/src/main/java/com/lunarclient/apollo/mods/ApolloModsManager.java index 4925df21..c2041755 100644 --- a/common/src/main/java/com/lunarclient/apollo/mods/ApolloModsManager.java +++ b/common/src/main/java/com/lunarclient/apollo/mods/ApolloModsManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/ApolloModuleManagerImpl.java b/common/src/main/java/com/lunarclient/apollo/module/ApolloModuleManagerImpl.java index f744e82a..3ff07e22 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/ApolloModuleManagerImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/ApolloModuleManagerImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/beam/BeamModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/beam/BeamModuleImpl.java index dcaaf3e6..7353eb98 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/beam/BeamModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/beam/BeamModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/border/BorderModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/border/BorderModuleImpl.java index 07d31e53..d4677ec0 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/border/BorderModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/border/BorderModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/chat/ChatModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/chat/ChatModuleImpl.java index 68dbdfd3..2ccedc8f 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/chat/ChatModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/chat/ChatModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/coloredfire/ColoredFireModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/coloredfire/ColoredFireModuleImpl.java index 117e35c5..d4227e37 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/coloredfire/ColoredFireModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/coloredfire/ColoredFireModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownModuleImpl.java index 7b602547..eb6c2121 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/entity/EntityModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/entity/EntityModuleImpl.java index b5a28a87..e2f6c3b4 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/entity/EntityModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/entity/EntityModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/glow/GlowModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/glow/GlowModuleImpl.java index e74d9486..59ccdae0 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/glow/GlowModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/glow/GlowModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/hologram/HologramModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/hologram/HologramModuleImpl.java index 7fb39ce4..03518c0b 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/hologram/HologramModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/hologram/HologramModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/limb/LimbModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/limb/LimbModuleImpl.java index 560df782..6a7e24d7 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/limb/LimbModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/limb/LimbModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/modsettings/ModSettingModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/modsettings/ModSettingModuleImpl.java index b959a32d..477c6348 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/modsettings/ModSettingModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/modsettings/ModSettingModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/nametag/NametagModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/nametag/NametagModuleImpl.java index aedf81cc..9164a402 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/nametag/NametagModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/nametag/NametagModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/nickhider/NickHiderModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/nickhider/NickHiderModuleImpl.java index 6ebe5afb..11a2faaa 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/nickhider/NickHiderModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/nickhider/NickHiderModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/notification/NotificationModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/notification/NotificationModuleImpl.java index 6e1283ee..897b65e0 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/notification/NotificationModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/notification/NotificationModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 3c4199a4..1446ef11 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 @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/paynow/PayNowModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/paynow/PayNowModuleImpl.java index 4a181cbc..068c3c72 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/paynow/PayNowModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/paynow/PayNowModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/richpresence/RichPresenceModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/richpresence/RichPresenceModuleImpl.java index b24e466c..afb22482 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/richpresence/RichPresenceModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/richpresence/RichPresenceModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/staffmod/StaffModModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/staffmod/StaffModModuleImpl.java index 7833de63..c9a83db4 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/staffmod/StaffModModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/staffmod/StaffModModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/stopwatch/StopwatchModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/stopwatch/StopwatchModuleImpl.java index 5f21ca11..efba37df 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/stopwatch/StopwatchModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/stopwatch/StopwatchModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/team/TeamModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/team/TeamModuleImpl.java index 44f302e0..96e7c2e7 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/team/TeamModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/team/TeamModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/tebex/TebexModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/tebex/TebexModuleImpl.java index 902773b8..2b15fbd5 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/tebex/TebexModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/tebex/TebexModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/title/TitleModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/title/TitleModuleImpl.java index d9f2d7fb..250a99c5 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/title/TitleModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/title/TitleModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/tntcountdown/TntCountdownModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/tntcountdown/TntCountdownModuleImpl.java index d3629c20..2697a60f 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/tntcountdown/TntCountdownModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/tntcountdown/TntCountdownModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/transfer/TransferModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/transfer/TransferModuleImpl.java index 2bfd185c..6971cf56 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/transfer/TransferModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/transfer/TransferModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/vignette/VignetteModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/vignette/VignetteModuleImpl.java index 1d43ef4b..71e609a9 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/vignette/VignetteModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/vignette/VignetteModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/module/waypoint/WaypointModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/waypoint/WaypointModuleImpl.java index a912eb74..608563cc 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/waypoint/WaypointModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/waypoint/WaypointModuleImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/network/ApolloNetworkManager.java b/common/src/main/java/com/lunarclient/apollo/network/ApolloNetworkManager.java index 463f8419..ee43fb74 100644 --- a/common/src/main/java/com/lunarclient/apollo/network/ApolloNetworkManager.java +++ b/common/src/main/java/com/lunarclient/apollo/network/ApolloNetworkManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/network/NetworkOptions.java b/common/src/main/java/com/lunarclient/apollo/network/NetworkOptions.java index 33f72d39..e62fe44a 100644 --- a/common/src/main/java/com/lunarclient/apollo/network/NetworkOptions.java +++ b/common/src/main/java/com/lunarclient/apollo/network/NetworkOptions.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/network/NetworkTypes.java b/common/src/main/java/com/lunarclient/apollo/network/NetworkTypes.java index 304c0e04..0ecf1dcd 100644 --- a/common/src/main/java/com/lunarclient/apollo/network/NetworkTypes.java +++ b/common/src/main/java/com/lunarclient/apollo/network/NetworkTypes.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/option/ConfigOptions.java b/common/src/main/java/com/lunarclient/apollo/option/ConfigOptions.java index f61ba675..483743dc 100644 --- a/common/src/main/java/com/lunarclient/apollo/option/ConfigOptions.java +++ b/common/src/main/java/com/lunarclient/apollo/option/ConfigOptions.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/option/OptionsImpl.java b/common/src/main/java/com/lunarclient/apollo/option/OptionsImpl.java index 36e94015..bd20e9eb 100644 --- a/common/src/main/java/com/lunarclient/apollo/option/OptionsImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/option/OptionsImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/option/StatusOptionsImpl.java b/common/src/main/java/com/lunarclient/apollo/option/StatusOptionsImpl.java index 8b1edfc9..e9cb1218 100644 --- a/common/src/main/java/com/lunarclient/apollo/option/StatusOptionsImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/option/StatusOptionsImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/option/config/CommonSerializers.java b/common/src/main/java/com/lunarclient/apollo/option/config/CommonSerializers.java index c970f47a..4462a872 100644 --- a/common/src/main/java/com/lunarclient/apollo/option/config/CommonSerializers.java +++ b/common/src/main/java/com/lunarclient/apollo/option/config/CommonSerializers.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/option/config/Serializer.java b/common/src/main/java/com/lunarclient/apollo/option/config/Serializer.java index 820fde3f..557724bc 100644 --- a/common/src/main/java/com/lunarclient/apollo/option/config/Serializer.java +++ b/common/src/main/java/com/lunarclient/apollo/option/config/Serializer.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/option/config/Serializers.java b/common/src/main/java/com/lunarclient/apollo/option/config/Serializers.java index 54fa972e..7d7f5329 100644 --- a/common/src/main/java/com/lunarclient/apollo/option/config/Serializers.java +++ b/common/src/main/java/com/lunarclient/apollo/option/config/Serializers.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/player/AbstractApolloPlayer.java b/common/src/main/java/com/lunarclient/apollo/player/AbstractApolloPlayer.java index fd2be6d3..3c383e45 100644 --- a/common/src/main/java/com/lunarclient/apollo/player/AbstractApolloPlayer.java +++ b/common/src/main/java/com/lunarclient/apollo/player/AbstractApolloPlayer.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/player/ApolloPlayerManagerImpl.java b/common/src/main/java/com/lunarclient/apollo/player/ApolloPlayerManagerImpl.java index d0952fc9..71ddfaf0 100644 --- a/common/src/main/java/com/lunarclient/apollo/player/ApolloPlayerManagerImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/player/ApolloPlayerManagerImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/stats/ApolloStatsManager.java b/common/src/main/java/com/lunarclient/apollo/stats/ApolloStatsManager.java index ba8da86f..c63b4358 100644 --- a/common/src/main/java/com/lunarclient/apollo/stats/ApolloStatsManager.java +++ b/common/src/main/java/com/lunarclient/apollo/stats/ApolloStatsManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/stats/ApolloStatsThread.java b/common/src/main/java/com/lunarclient/apollo/stats/ApolloStatsThread.java index 404dcc63..b84890ec 100644 --- a/common/src/main/java/com/lunarclient/apollo/stats/ApolloStatsThread.java +++ b/common/src/main/java/com/lunarclient/apollo/stats/ApolloStatsThread.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/stats/metadata/ApolloMetadataManager.java b/common/src/main/java/com/lunarclient/apollo/stats/metadata/ApolloMetadataManager.java index e9948521..75ea93a8 100644 --- a/common/src/main/java/com/lunarclient/apollo/stats/metadata/ApolloMetadataManager.java +++ b/common/src/main/java/com/lunarclient/apollo/stats/metadata/ApolloMetadataManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/stats/metadata/PlatformMetadata.java b/common/src/main/java/com/lunarclient/apollo/stats/metadata/PlatformMetadata.java index d1718112..3164f9d4 100644 --- a/common/src/main/java/com/lunarclient/apollo/stats/metadata/PlatformMetadata.java +++ b/common/src/main/java/com/lunarclient/apollo/stats/metadata/PlatformMetadata.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/util/Ranges.java b/common/src/main/java/com/lunarclient/apollo/util/Ranges.java index 1d7af1a2..bf7bc754 100644 --- a/common/src/main/java/com/lunarclient/apollo/util/Ranges.java +++ b/common/src/main/java/com/lunarclient/apollo/util/Ranges.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/version/ApolloVersion.java b/common/src/main/java/com/lunarclient/apollo/version/ApolloVersion.java index 9d9b6868..9cbdc177 100644 --- a/common/src/main/java/com/lunarclient/apollo/version/ApolloVersion.java +++ b/common/src/main/java/com/lunarclient/apollo/version/ApolloVersion.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 fce24d20..a4fa9b5b 100644 --- a/common/src/main/java/com/lunarclient/apollo/version/ApolloVersionManager.java +++ b/common/src/main/java/com/lunarclient/apollo/version/ApolloVersionManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/common/src/main/java/com/lunarclient/apollo/world/ApolloWorldManagerImpl.java b/common/src/main/java/com/lunarclient/apollo/world/ApolloWorldManagerImpl.java index 7835ed80..3ae1f7d6 100644 --- a/common/src/main/java/com/lunarclient/apollo/world/ApolloWorldManagerImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/world/ApolloWorldManagerImpl.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/ApolloApiExamplePlatform.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/ApolloApiExamplePlatform.java index 08d1fa81..6fc763dc 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/ApolloApiExamplePlatform.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/ApolloApiExamplePlatform.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/Debug.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/Debug.java index 0b4f4c9a..8786fe8a 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/Debug.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/Debug.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/DebugManager.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/DebugManager.java index 44bc4398..c66dd321 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/DebugManager.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/DebugManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/DebugTask.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/DebugTask.java index 568f0776..ad74edfe 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/DebugTask.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/DebugTask.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/command/ApolloDebugCommand.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/command/ApolloDebugCommand.java index b7d71911..17360e09 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/command/ApolloDebugCommand.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/command/ApolloDebugCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/command/BordersCommand.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/command/BordersCommand.java index 093b7704..0fa22708 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/command/BordersCommand.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/command/BordersCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/command/SpamPacketsCommand.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/command/SpamPacketsCommand.java index 57f90b28..8d0c7f5f 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/command/SpamPacketsCommand.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/command/SpamPacketsCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/BorderCollisionTest.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/BorderCollisionTest.java index aa1f39b3..d83ef722 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/BorderCollisionTest.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/BorderCollisionTest.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/ModSettingsTest.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/ModSettingsTest.java index c7afb0f7..8601a6a2 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/ModSettingsTest.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/ModSettingsTest.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/PayloadTest.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/PayloadTest.java index 9726c21a..2802a7cf 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/PayloadTest.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/PayloadTest.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/SpamPacketDebug.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/SpamPacketDebug.java index 279b6163..29cfc26c 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/SpamPacketDebug.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/debug/impl/SpamPacketDebug.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/general/ApolloEventListenerExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/general/ApolloEventListenerExample.java index f3291270..168287bc 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/general/ApolloEventListenerExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/general/ApolloEventListenerExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/general/ApolloGeneralExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/general/ApolloGeneralExample.java index 8469de98..61d8936f 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/general/ApolloGeneralExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/general/ApolloGeneralExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/listener/ApolloPlayerApiListener.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/listener/ApolloPlayerApiListener.java index 53a89c20..837b525d 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/listener/ApolloPlayerApiListener.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/listener/ApolloPlayerApiListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/mods/ApolloModStatusExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/mods/ApolloModStatusExample.java index 7e01ba80..71ef2a01 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/mods/ApolloModStatusExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/mods/ApolloModStatusExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/mods/ModStatusCommand.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/mods/ModStatusCommand.java index ea888548..39bed666 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/mods/ModStatusCommand.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/mods/ModStatusCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/AutoTextHotkeyApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/AutoTextHotkeyApiExample.java index c907e572..786a53a3 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/AutoTextHotkeyApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/AutoTextHotkeyApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/BeamApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/BeamApiExample.java index 26ba3416..c65dc7d0 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/BeamApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/BeamApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/BorderApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/BorderApiExample.java index 2bc7803e..179e1508 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/BorderApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/BorderApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ChatApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ChatApiExample.java index 802f43ee..13f325a1 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ChatApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ChatApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ColoredFireApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ColoredFireApiExample.java index 87437218..a96ee072 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ColoredFireApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ColoredFireApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/CombatApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/CombatApiExample.java index 72623091..ce15f253 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/CombatApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/CombatApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/CooldownApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/CooldownApiExample.java index a58aec78..5c7236ab 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/CooldownApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/CooldownApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/EntityApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/EntityApiExample.java index 682bc6ea..2b073efc 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/EntityApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/EntityApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/GlowApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/GlowApiExample.java index 77ce08b9..4203025b 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/GlowApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/GlowApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/HologramApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/HologramApiExample.java index 9cb3ddd4..92f521b4 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/HologramApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/HologramApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/LimbApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/LimbApiExample.java index b9a75504..42133de1 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/LimbApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/LimbApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ModSettingsApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ModSettingsApiExample.java index e9c5dc31..53247cf7 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ModSettingsApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ModSettingsApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/NametagApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/NametagApiExample.java index f3ded5b8..132d5d86 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/NametagApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/NametagApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/NickHiderApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/NickHiderApiExample.java index 9f0ceeb8..f2fc9dd8 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/NickHiderApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/NickHiderApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/NotificationApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/NotificationApiExample.java index dd172b5a..52895380 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/NotificationApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/NotificationApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/PayNowApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/PayNowApiExample.java index 48c78c03..a976b9f7 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/PayNowApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/PayNowApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/RichPresenceApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/RichPresenceApiExample.java index 819d37be..fa229a44 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/RichPresenceApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/RichPresenceApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ServerRuleApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ServerRuleApiExample.java index 8658f41c..22b04862 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ServerRuleApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ServerRuleApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/StaffModApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/StaffModApiExample.java index 11d6a833..6deaa3dd 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/StaffModApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/StaffModApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/StopwatchApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/StopwatchApiExample.java index 5bcaf6fe..620bb4fb 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/StopwatchApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/StopwatchApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 6985a24a..44a36fd3 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 @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TebexApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TebexApiExample.java index d2419420..00f7904c 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TebexApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TebexApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TitleApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TitleApiExample.java index e3843c8f..12eb761a 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TitleApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TitleApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TntCountdownApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TntCountdownApiExample.java index c72a1796..76de40f0 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TntCountdownApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TntCountdownApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TransferApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TransferApiExample.java index 8ac1fce1..caaf7c51 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TransferApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TransferApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/VignetteApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/VignetteApiExample.java index d914f323..c1a368f5 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/VignetteApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/VignetteApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/WaypointApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/WaypointApiExample.java index f404c503..2e7225c0 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/WaypointApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/WaypointApiExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/BukkitApolloExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/BukkitApolloExample.java index 32f37478..0ff02f2b 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/BukkitApolloExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/BukkitApolloExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/ComponentExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/ComponentExample.java index a401c88c..b797cae4 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/ComponentExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/ComponentExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/CuboidExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/CuboidExample.java index fe1df4c1..b65c37b5 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/CuboidExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/CuboidExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/IconExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/IconExample.java index 15596020..ebd6f896 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/IconExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/IconExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/LocationExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/LocationExample.java index 9a35bf92..a43c16de 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/LocationExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/LocationExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/ApolloExamplePlugin.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/ApolloExamplePlugin.java index 6395b444..f69da42e 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/ApolloExamplePlugin.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/ApolloExamplePlugin.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/ApolloExampleType.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/ApolloExampleType.java index 0e96b3fe..c7192c38 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/ApolloExampleType.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/ApolloExampleType.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/AutoTextHotkeyCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/AutoTextHotkeyCommand.java index e99fc825..26a9c84b 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/AutoTextHotkeyCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/AutoTextHotkeyCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/BeamCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/BeamCommand.java index 3414d293..ae9c83ff 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/BeamCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/BeamCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/BorderCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/BorderCommand.java index 1bfbfd28..8b8bc99f 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/BorderCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/BorderCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ChatCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ChatCommand.java index e0c376c5..140060cb 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ChatCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ChatCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ColoredFireCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ColoredFireCommand.java index af983253..b37dbef2 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ColoredFireCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ColoredFireCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/CombatCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/CombatCommand.java index 2a408685..23e3fda4 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/CombatCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/CombatCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/CooldownCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/CooldownCommand.java index 62de3bbb..3b0531e5 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/CooldownCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/CooldownCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/EntityCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/EntityCommand.java index 47a78bd8..2a74f661 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/EntityCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/EntityCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/GlintCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/GlintCommand.java index 9ccb22ff..90da6a2a 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/GlintCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/GlintCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/GlowCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/GlowCommand.java index 0ca3fd3f..bad65b4f 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/GlowCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/GlowCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/HologramCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/HologramCommand.java index 583198af..f3d990bf 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/HologramCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/HologramCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/InventoryCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/InventoryCommand.java index 4367bb92..9f55e94b 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/InventoryCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/InventoryCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/LimbCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/LimbCommand.java index 8d9f8ac8..4812eef3 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/LimbCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/LimbCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ModSettingsCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ModSettingsCommand.java index 0aac6178..96872f46 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ModSettingsCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ModSettingsCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/NametagCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/NametagCommand.java index 215c8756..41799b1a 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/NametagCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/NametagCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/NickHiderCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/NickHiderCommand.java index 8a62e3ab..6cfefaf4 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/NickHiderCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/NickHiderCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/NotificationCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/NotificationCommand.java index b6f8342a..6a7ab8d1 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/NotificationCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/NotificationCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/PayNowCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/PayNowCommand.java index b7997930..1047505a 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/PayNowCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/PayNowCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/RichPresenceCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/RichPresenceCommand.java index 185cd868..cb4e8a6c 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/RichPresenceCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/RichPresenceCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/SaturationCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/SaturationCommand.java index eb91e56a..552f8e90 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/SaturationCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/SaturationCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ServerRuleCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ServerRuleCommand.java index 4793914d..60b4b0db 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ServerRuleCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ServerRuleCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/StaffModCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/StaffModCommand.java index 7ff3826b..fa7ff47e 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/StaffModCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/StaffModCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/StopwatchCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/StopwatchCommand.java index b4ef9a19..a4f081a1 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/StopwatchCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/StopwatchCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TeamCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TeamCommand.java index c8442182..fdb553fa 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TeamCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TeamCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TebexCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TebexCommand.java index f517373b..da1b9375 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TebexCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TebexCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TitleCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TitleCommand.java index cf7ad4cf..b3bd496c 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TitleCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TitleCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TntCountdownCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TntCountdownCommand.java index 1da2caed..1d9487c8 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TntCountdownCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TntCountdownCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TransferCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TransferCommand.java index ae3ec760..9d28e47b 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TransferCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/TransferCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/VignetteCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/VignetteCommand.java index 4457ad42..9d94144f 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/VignetteCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/VignetteCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/WaypointCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/WaypointCommand.java index 729eaf43..6970074c 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/WaypointCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/WaypointCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/ApolloModuleExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/ApolloModuleExample.java index 58bde882..25d994fe 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/ApolloModuleExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/ApolloModuleExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/NMSExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/NMSExample.java index c6984952..43926a9f 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/NMSExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/NMSExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/AutoTextHotkeyExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/AutoTextHotkeyExample.java index 31b3cbbc..43903ec1 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/AutoTextHotkeyExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/AutoTextHotkeyExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/BeamExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/BeamExample.java index 2327631e..8f821890 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/BeamExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/BeamExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/BorderExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/BorderExample.java index 4df2cf60..6115d85b 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/BorderExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/BorderExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ChatExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ChatExample.java index 1200200e..8efd7311 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ChatExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ChatExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ColoredFireExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ColoredFireExample.java index d3463938..49f486e7 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ColoredFireExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ColoredFireExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/CombatExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/CombatExample.java index 8d1673e6..20c3d5f1 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/CombatExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/CombatExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/CooldownExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/CooldownExample.java index bf108776..a90da576 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/CooldownExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/CooldownExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/EntityExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/EntityExample.java index 90ea7708..1e31888e 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/EntityExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/EntityExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/GlintExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/GlintExample.java index 1f10cdb7..b8d73072 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/GlintExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/GlintExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/GlowExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/GlowExample.java index bbddc7c9..bd939b92 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/GlowExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/GlowExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/HologramExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/HologramExample.java index 7e69b408..15bbfd76 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/HologramExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/HologramExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/InventoryExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/InventoryExample.java index 27ffef3a..37e62f7c 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/InventoryExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/InventoryExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/LimbExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/LimbExample.java index 6bce7227..52e0648c 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/LimbExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/LimbExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ModSettingsExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ModSettingsExample.java index 6121c57e..e9a35e10 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ModSettingsExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ModSettingsExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/NametagExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/NametagExample.java index 02e27a40..3a561661 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/NametagExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/NametagExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/NickHiderExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/NickHiderExample.java index 841fff8d..777ce095 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/NickHiderExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/NickHiderExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/NotificationExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/NotificationExample.java index b6ecef80..f87dee9c 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/NotificationExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/NotificationExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/PayNowExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/PayNowExample.java index c19effe7..286de51a 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/PayNowExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/PayNowExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/RichPresenceExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/RichPresenceExample.java index 06f590c3..d97ba71a 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/RichPresenceExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/RichPresenceExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/SaturationExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/SaturationExample.java index 705b1b2e..fa972c0f 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/SaturationExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/SaturationExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ServerRuleExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ServerRuleExample.java index 68c21446..21c88ba7 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ServerRuleExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ServerRuleExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/StaffModExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/StaffModExample.java index 11400c7e..c36d7667 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/StaffModExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/StaffModExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/StopwatchExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/StopwatchExample.java index 66f0a65d..3994bbd4 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/StopwatchExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/StopwatchExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TeamExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TeamExample.java index 2398fc51..f78ab41d 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TeamExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TeamExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TebexExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TebexExample.java index 054ba7f2..b7034085 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TebexExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TebexExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TitleExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TitleExample.java index 87075107..eaf61bab 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TitleExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TitleExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TntCountdownExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TntCountdownExample.java index 0243c61e..052cf688 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TntCountdownExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TntCountdownExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TransferExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TransferExample.java index 47a82be7..a3de16fb 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TransferExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/TransferExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/VignetteExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/VignetteExample.java index 159f335e..bf61b15a 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/VignetteExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/VignetteExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/WaypointExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/WaypointExample.java index 8d41b546..86ae902e 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/WaypointExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/WaypointExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/util/ItemUtil.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/util/ItemUtil.java index 485ff85a..3c7db0bf 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/util/ItemUtil.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/util/ItemUtil.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/util/ServerUtil.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/util/ServerUtil.java index dc91a5c4..f96c8568 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/util/ServerUtil.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/util/ServerUtil.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/ApolloJsonExamplePlatform.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/ApolloJsonExamplePlatform.java index 5820f946..6ca73781 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/ApolloJsonExamplePlatform.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/ApolloJsonExamplePlatform.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPacketReceiveJsonListener.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPacketReceiveJsonListener.java index ca5c38f8..1d8e4656 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPacketReceiveJsonListener.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPacketReceiveJsonListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPlayerJsonListener.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPlayerJsonListener.java index 26bb915b..e8bcbfa1 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPlayerJsonListener.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPlayerJsonListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloRoundtripJsonListener.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloRoundtripJsonListener.java index b4584286..c9ad3813 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloRoundtripJsonListener.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloRoundtripJsonListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/AutoTextHotkeyJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/AutoTextHotkeyJsonExample.java index e1bd38f9..34948fed 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/AutoTextHotkeyJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/AutoTextHotkeyJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/BeamJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/BeamJsonExample.java index d67010e0..f8c2dd6b 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/BeamJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/BeamJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/BorderJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/BorderJsonExample.java index 92293510..a00553a0 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/BorderJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/BorderJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ChatJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ChatJsonExample.java index b43359bc..9c7128f1 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ChatJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ChatJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ColoredFireJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ColoredFireJsonExample.java index 3c146139..19ecf762 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ColoredFireJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ColoredFireJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/CombatJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/CombatJsonExample.java index 31559640..1fb53ba0 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/CombatJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/CombatJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/CooldownJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/CooldownJsonExample.java index 96393e8b..83746bbb 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/CooldownJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/CooldownJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/EntityJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/EntityJsonExample.java index c1f6c3d5..6c328bfa 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/EntityJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/EntityJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/GlowJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/GlowJsonExample.java index dd1b8786..33cf7a3b 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/GlowJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/GlowJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/HologramJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/HologramJsonExample.java index c6692845..fdf5a524 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/HologramJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/HologramJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/LimbJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/LimbJsonExample.java index 33ec2f5c..26ae3578 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/LimbJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/LimbJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ModSettingsJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ModSettingsJsonExample.java index fc3b577b..bb245df1 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ModSettingsJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ModSettingsJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NametagJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NametagJsonExample.java index c994179c..0b2f1de7 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NametagJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NametagJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NickHiderJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NickHiderJsonExample.java index 0b1dfd62..5ffe1138 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NickHiderJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NickHiderJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NotificationJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NotificationJsonExample.java index 9a587a49..c8f92e4a 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NotificationJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NotificationJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/PayNowJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/PayNowJsonExample.java index b7e6069d..ee86295f 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/PayNowJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/PayNowJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/RichPresenceJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/RichPresenceJsonExample.java index b238fa47..0d6b7ca2 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/RichPresenceJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/RichPresenceJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ServerRuleJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ServerRuleJsonExample.java index e4b38ddb..f965dfff 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ServerRuleJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ServerRuleJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/StaffModJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/StaffModJsonExample.java index 73600ae5..9967db00 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/StaffModJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/StaffModJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/StopwatchJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/StopwatchJsonExample.java index 64b7f332..96a972ca 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/StopwatchJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/StopwatchJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 8683030d..da2168ae 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 @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TebexJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TebexJsonExample.java index a3a8920c..b3542ca2 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TebexJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TebexJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TitleJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TitleJsonExample.java index a7d138d4..a03aca20 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TitleJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TitleJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TntCountdownJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TntCountdownJsonExample.java index 90483853..334944ef 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TntCountdownJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TntCountdownJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TransferJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TransferJsonExample.java index 602e39dc..1c08bd0c 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TransferJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TransferJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/VignetteJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/VignetteJsonExample.java index d6720c4a..25a79c80 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/VignetteJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/VignetteJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/WaypointJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/WaypointJsonExample.java index 8907f3bb..a0a2f64c 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/WaypointJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/WaypointJsonExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/AdventureUtil.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/AdventureUtil.java index 2efd4938..3e8d0c67 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/AdventureUtil.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/AdventureUtil.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 b8a1354f..3e1b9750 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 @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonUtil.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonUtil.java index 1aab85ac..dce4fdf0 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonUtil.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonUtil.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/ApolloProtoExamplePlatform.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/ApolloProtoExamplePlatform.java index 75b62a39..57c5a193 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/ApolloProtoExamplePlatform.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/ApolloProtoExamplePlatform.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPacketReceiveProtoListener.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPacketReceiveProtoListener.java index 83c895f6..63933bd7 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPacketReceiveProtoListener.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPacketReceiveProtoListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPlayerProtoListener.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPlayerProtoListener.java index efcbcbe9..15c8dde9 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPlayerProtoListener.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPlayerProtoListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloRoundtripProtoListener.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloRoundtripProtoListener.java index fc5226a8..97a4e1e4 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloRoundtripProtoListener.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloRoundtripProtoListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/AutoTextHotkeyProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/AutoTextHotkeyProtoExample.java index 56776538..b83fb827 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/AutoTextHotkeyProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/AutoTextHotkeyProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/BeamProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/BeamProtoExample.java index 21c4fe2f..4c8c7c55 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/BeamProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/BeamProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/BorderProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/BorderProtoExample.java index 66809131..15f6d217 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/BorderProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/BorderProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ChatProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ChatProtoExample.java index 68778350..48ca3438 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ChatProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ChatProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ColoredFireProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ColoredFireProtoExample.java index b3f98da1..a288c228 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ColoredFireProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ColoredFireProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CombatProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CombatProtoExample.java index ae4ce94d..732e8ba2 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CombatProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CombatProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CooldownProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CooldownProtoExample.java index 91d15069..d8c6741c 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CooldownProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CooldownProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/EntityProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/EntityProtoExample.java index d07b3a4e..1bf406bc 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/EntityProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/EntityProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/GlowProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/GlowProtoExample.java index 19fa1a43..c6943ee7 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/GlowProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/GlowProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/HologramProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/HologramProtoExample.java index f9735318..c453945e 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/HologramProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/HologramProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/LimbProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/LimbProtoExample.java index 4664a492..3d88507a 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/LimbProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/LimbProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ModSettingsProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ModSettingsProtoExample.java index 86265bcb..c3ebf501 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ModSettingsProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ModSettingsProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NametagProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NametagProtoExample.java index e553bf5d..07e5dbeb 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NametagProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NametagProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NickHiderProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NickHiderProtoExample.java index 0e2df4c6..84e025d9 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NickHiderProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NickHiderProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NotificationProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NotificationProtoExample.java index 92f5c5ed..3fcf905c 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NotificationProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NotificationProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/PayNowProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/PayNowProtoExample.java index 9e47fe27..b5eb6ab8 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/PayNowProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/PayNowProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/RichPresenceProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/RichPresenceProtoExample.java index 338dbcbb..0d7c3fb2 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/RichPresenceProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/RichPresenceProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ServerRuleProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ServerRuleProtoExample.java index c6c39c7d..a53de565 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ServerRuleProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ServerRuleProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/StaffModProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/StaffModProtoExample.java index d3047d41..baabe174 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/StaffModProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/StaffModProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/StopwatchProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/StopwatchProtoExample.java index 53c3e829..5f8960b5 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/StopwatchProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/StopwatchProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 35726cea..aa59368f 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 @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TebexProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TebexProtoExample.java index bb3ab2ec..7ddf1ffc 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TebexProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TebexProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TitleProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TitleProtoExample.java index 6488314d..81b9d66a 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TitleProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TitleProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TntCountdownProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TntCountdownProtoExample.java index d68b2c5f..abd7f2cd 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TntCountdownProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TntCountdownProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TransferProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TransferProtoExample.java index 5e2b8c20..a978b6bf 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TransferProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TransferProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/VignetteProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/VignetteProtoExample.java index 6fb59896..4d6165fc 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/VignetteProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/VignetteProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/WaypointProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/WaypointProtoExample.java index 523f81c7..af0ad9e7 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/WaypointProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/WaypointProtoExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/AdventureUtil.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/AdventureUtil.java index ad4ec611..d0321af4 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/AdventureUtil.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/AdventureUtil.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 76f5906d..e2130a6b 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 @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/ProtobufUtil.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/ProtobufUtil.java index ff985cea..affc6a1f 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/ProtobufUtil.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/ProtobufUtil.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/example/minestom/api/src/main/java/com/lunarclient/apollo/example/ApolloMinestomExample.java b/example/minestom/api/src/main/java/com/lunarclient/apollo/example/ApolloMinestomExample.java index abb0407d..9e71a916 100644 --- a/example/minestom/api/src/main/java/com/lunarclient/apollo/example/ApolloMinestomExample.java +++ b/example/minestom/api/src/main/java/com/lunarclient/apollo/example/ApolloMinestomExample.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/extra/adventure4/src/main/java/com/lunarclient/apollo/common/ApolloComponent.java b/extra/adventure4/src/main/java/com/lunarclient/apollo/common/ApolloComponent.java index 4bec5460..93c11e7a 100644 --- a/extra/adventure4/src/main/java/com/lunarclient/apollo/common/ApolloComponent.java +++ b/extra/adventure4/src/main/java/com/lunarclient/apollo/common/ApolloComponent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/extra/loader/src/main/java/com/lunarclient/apollo/loader/DynamicAgent.java b/extra/loader/src/main/java/com/lunarclient/apollo/loader/DynamicAgent.java index 6445f1aa..9c6d7962 100644 --- a/extra/loader/src/main/java/com/lunarclient/apollo/loader/DynamicAgent.java +++ b/extra/loader/src/main/java/com/lunarclient/apollo/loader/DynamicAgent.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/extra/loader/src/main/java/com/lunarclient/apollo/loader/DynamicDependencies.java b/extra/loader/src/main/java/com/lunarclient/apollo/loader/DynamicDependencies.java index 9f007023..dbc8374a 100644 --- a/extra/loader/src/main/java/com/lunarclient/apollo/loader/DynamicDependencies.java +++ b/extra/loader/src/main/java/com/lunarclient/apollo/loader/DynamicDependencies.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/extra/loader/src/main/java/com/lunarclient/apollo/loader/DynamicLoader.java b/extra/loader/src/main/java/com/lunarclient/apollo/loader/DynamicLoader.java index 0a1dcb12..a1733284 100644 --- a/extra/loader/src/main/java/com/lunarclient/apollo/loader/DynamicLoader.java +++ b/extra/loader/src/main/java/com/lunarclient/apollo/loader/DynamicLoader.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/extra/loader/src/main/java/com/lunarclient/apollo/loader/PlatformPlugin.java b/extra/loader/src/main/java/com/lunarclient/apollo/loader/PlatformPlugin.java index a66a93f6..c6c04c37 100644 --- a/extra/loader/src/main/java/com/lunarclient/apollo/loader/PlatformPlugin.java +++ b/extra/loader/src/main/java/com/lunarclient/apollo/loader/PlatformPlugin.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/license.txt b/license.txt index 5afe15c8..b05c8272 100644 --- a/license.txt +++ b/license.txt @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 Moonsworth +Copyright (c) 2026 Moonsworth Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/license_header.txt b/license_header.txt index 8d521178..99eaefc0 100644 --- a/license_header.txt +++ b/license_header.txt @@ -1,6 +1,6 @@ This file is part of Apollo, licensed under the MIT License. -Copyright (c) 2023 Moonsworth +Copyright (c) 2026 Moonsworth Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bukkit/src/main/java/com/lunarclient/apollo/ApolloBukkitPlatform.java b/platform/bukkit/src/main/java/com/lunarclient/apollo/ApolloBukkitPlatform.java index ee036ee4..fd591868 100644 --- a/platform/bukkit/src/main/java/com/lunarclient/apollo/ApolloBukkitPlatform.java +++ b/platform/bukkit/src/main/java/com/lunarclient/apollo/ApolloBukkitPlatform.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bukkit/src/main/java/com/lunarclient/apollo/command/BukkitApolloCommand.java b/platform/bukkit/src/main/java/com/lunarclient/apollo/command/BukkitApolloCommand.java index fadd27ea..042dd479 100644 --- a/platform/bukkit/src/main/java/com/lunarclient/apollo/command/BukkitApolloCommand.java +++ b/platform/bukkit/src/main/java/com/lunarclient/apollo/command/BukkitApolloCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bukkit/src/main/java/com/lunarclient/apollo/command/BukkitLunarClientCommand.java b/platform/bukkit/src/main/java/com/lunarclient/apollo/command/BukkitLunarClientCommand.java index b33e03dd..c61c4355 100644 --- a/platform/bukkit/src/main/java/com/lunarclient/apollo/command/BukkitLunarClientCommand.java +++ b/platform/bukkit/src/main/java/com/lunarclient/apollo/command/BukkitLunarClientCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bukkit/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java b/platform/bukkit/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java index ecd497df..725a97e0 100644 --- a/platform/bukkit/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java +++ b/platform/bukkit/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bukkit/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java b/platform/bukkit/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java index 69997978..2041681a 100644 --- a/platform/bukkit/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java +++ b/platform/bukkit/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bukkit/src/main/java/com/lunarclient/apollo/listener/ApolloWorldListener.java b/platform/bukkit/src/main/java/com/lunarclient/apollo/listener/ApolloWorldListener.java index 16498ec1..bffb6906 100644 --- a/platform/bukkit/src/main/java/com/lunarclient/apollo/listener/ApolloWorldListener.java +++ b/platform/bukkit/src/main/java/com/lunarclient/apollo/listener/ApolloWorldListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bukkit/src/main/java/com/lunarclient/apollo/metadata/BukkitMetadata.java b/platform/bukkit/src/main/java/com/lunarclient/apollo/metadata/BukkitMetadata.java index 1880dfa8..376e8fb0 100644 --- a/platform/bukkit/src/main/java/com/lunarclient/apollo/metadata/BukkitMetadata.java +++ b/platform/bukkit/src/main/java/com/lunarclient/apollo/metadata/BukkitMetadata.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bukkit/src/main/java/com/lunarclient/apollo/metadata/BukkitMetadataManager.java b/platform/bukkit/src/main/java/com/lunarclient/apollo/metadata/BukkitMetadataManager.java index 9e6d350a..06067114 100644 --- a/platform/bukkit/src/main/java/com/lunarclient/apollo/metadata/BukkitMetadataManager.java +++ b/platform/bukkit/src/main/java/com/lunarclient/apollo/metadata/BukkitMetadataManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bukkit/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java b/platform/bukkit/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java index 67a03b80..3b79b5da 100644 --- a/platform/bukkit/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java +++ b/platform/bukkit/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bukkit/src/main/java/com/lunarclient/apollo/wrapper/BukkitApolloPlayer.java b/platform/bukkit/src/main/java/com/lunarclient/apollo/wrapper/BukkitApolloPlayer.java index 5e7b08a1..34d24e4a 100644 --- a/platform/bukkit/src/main/java/com/lunarclient/apollo/wrapper/BukkitApolloPlayer.java +++ b/platform/bukkit/src/main/java/com/lunarclient/apollo/wrapper/BukkitApolloPlayer.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bukkit/src/main/java/com/lunarclient/apollo/wrapper/BukkitApolloStats.java b/platform/bukkit/src/main/java/com/lunarclient/apollo/wrapper/BukkitApolloStats.java index a78cbe60..8a430e59 100644 --- a/platform/bukkit/src/main/java/com/lunarclient/apollo/wrapper/BukkitApolloStats.java +++ b/platform/bukkit/src/main/java/com/lunarclient/apollo/wrapper/BukkitApolloStats.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bukkit/src/main/java/com/lunarclient/apollo/wrapper/BukkitApolloWorld.java b/platform/bukkit/src/main/java/com/lunarclient/apollo/wrapper/BukkitApolloWorld.java index e70403ce..48c8dc01 100644 --- a/platform/bukkit/src/main/java/com/lunarclient/apollo/wrapper/BukkitApolloWorld.java +++ b/platform/bukkit/src/main/java/com/lunarclient/apollo/wrapper/BukkitApolloWorld.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bukkit/src/platform-loader/java/com/lunarclient/apollo/loader/BukkitPlatformLoader.java b/platform/bukkit/src/platform-loader/java/com/lunarclient/apollo/loader/BukkitPlatformLoader.java index 42faa457..f9798ef9 100644 --- a/platform/bukkit/src/platform-loader/java/com/lunarclient/apollo/loader/BukkitPlatformLoader.java +++ b/platform/bukkit/src/platform-loader/java/com/lunarclient/apollo/loader/BukkitPlatformLoader.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bungee/src/main/java/com/lunarclient/apollo/ApolloBungeePlatform.java b/platform/bungee/src/main/java/com/lunarclient/apollo/ApolloBungeePlatform.java index 088c4b9f..24d75c18 100644 --- a/platform/bungee/src/main/java/com/lunarclient/apollo/ApolloBungeePlatform.java +++ b/platform/bungee/src/main/java/com/lunarclient/apollo/ApolloBungeePlatform.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bungee/src/main/java/com/lunarclient/apollo/command/BungeeApolloCommand.java b/platform/bungee/src/main/java/com/lunarclient/apollo/command/BungeeApolloCommand.java index 7e0c9d17..9a49e51b 100644 --- a/platform/bungee/src/main/java/com/lunarclient/apollo/command/BungeeApolloCommand.java +++ b/platform/bungee/src/main/java/com/lunarclient/apollo/command/BungeeApolloCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bungee/src/main/java/com/lunarclient/apollo/command/BungeeLunarClientCommand.java b/platform/bungee/src/main/java/com/lunarclient/apollo/command/BungeeLunarClientCommand.java index 1471edab..6cd24671 100644 --- a/platform/bungee/src/main/java/com/lunarclient/apollo/command/BungeeLunarClientCommand.java +++ b/platform/bungee/src/main/java/com/lunarclient/apollo/command/BungeeLunarClientCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bungee/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java b/platform/bungee/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java index 7fca1595..f8114793 100644 --- a/platform/bungee/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java +++ b/platform/bungee/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bungee/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java b/platform/bungee/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java index 4a8fe2a7..05cb23af 100644 --- a/platform/bungee/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java +++ b/platform/bungee/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bungee/src/main/java/com/lunarclient/apollo/metadata/BungeeMetadata.java b/platform/bungee/src/main/java/com/lunarclient/apollo/metadata/BungeeMetadata.java index 0a7e5bd6..57816963 100644 --- a/platform/bungee/src/main/java/com/lunarclient/apollo/metadata/BungeeMetadata.java +++ b/platform/bungee/src/main/java/com/lunarclient/apollo/metadata/BungeeMetadata.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bungee/src/main/java/com/lunarclient/apollo/metadata/BungeeMetadataManager.java b/platform/bungee/src/main/java/com/lunarclient/apollo/metadata/BungeeMetadataManager.java index 5043e493..ce4ba1e9 100644 --- a/platform/bungee/src/main/java/com/lunarclient/apollo/metadata/BungeeMetadataManager.java +++ b/platform/bungee/src/main/java/com/lunarclient/apollo/metadata/BungeeMetadataManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bungee/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java b/platform/bungee/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java index 67a03b80..3b79b5da 100644 --- a/platform/bungee/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java +++ b/platform/bungee/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bungee/src/main/java/com/lunarclient/apollo/wrapper/BungeeApolloPlayer.java b/platform/bungee/src/main/java/com/lunarclient/apollo/wrapper/BungeeApolloPlayer.java index 54b338a6..f8245f2e 100644 --- a/platform/bungee/src/main/java/com/lunarclient/apollo/wrapper/BungeeApolloPlayer.java +++ b/platform/bungee/src/main/java/com/lunarclient/apollo/wrapper/BungeeApolloPlayer.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bungee/src/main/java/com/lunarclient/apollo/wrapper/BungeeApolloStats.java b/platform/bungee/src/main/java/com/lunarclient/apollo/wrapper/BungeeApolloStats.java index d575ba2e..ad4d3073 100644 --- a/platform/bungee/src/main/java/com/lunarclient/apollo/wrapper/BungeeApolloStats.java +++ b/platform/bungee/src/main/java/com/lunarclient/apollo/wrapper/BungeeApolloStats.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/bungee/src/platform-loader/java/com/lunarclient/apollo/loader/BungeePlatformLoader.java b/platform/bungee/src/platform-loader/java/com/lunarclient/apollo/loader/BungeePlatformLoader.java index 1bc6fcf7..d7213cd7 100644 --- a/platform/bungee/src/platform-loader/java/com/lunarclient/apollo/loader/BungeePlatformLoader.java +++ b/platform/bungee/src/platform-loader/java/com/lunarclient/apollo/loader/BungeePlatformLoader.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/folia/src/main/java/com/lunarclient/apollo/ApolloFoliaPlatform.java b/platform/folia/src/main/java/com/lunarclient/apollo/ApolloFoliaPlatform.java index 1ca080e6..dca57648 100644 --- a/platform/folia/src/main/java/com/lunarclient/apollo/ApolloFoliaPlatform.java +++ b/platform/folia/src/main/java/com/lunarclient/apollo/ApolloFoliaPlatform.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/folia/src/main/java/com/lunarclient/apollo/command/FoliaApolloCommand.java b/platform/folia/src/main/java/com/lunarclient/apollo/command/FoliaApolloCommand.java index b4fd4b57..a42dd007 100644 --- a/platform/folia/src/main/java/com/lunarclient/apollo/command/FoliaApolloCommand.java +++ b/platform/folia/src/main/java/com/lunarclient/apollo/command/FoliaApolloCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/folia/src/main/java/com/lunarclient/apollo/command/FoliaLunarClientCommand.java b/platform/folia/src/main/java/com/lunarclient/apollo/command/FoliaLunarClientCommand.java index f44da0cf..cb3cfebd 100644 --- a/platform/folia/src/main/java/com/lunarclient/apollo/command/FoliaLunarClientCommand.java +++ b/platform/folia/src/main/java/com/lunarclient/apollo/command/FoliaLunarClientCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/folia/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java b/platform/folia/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java index 6843fc55..5280f416 100644 --- a/platform/folia/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java +++ b/platform/folia/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/folia/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java b/platform/folia/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java index c25f6db9..f10ae6e6 100644 --- a/platform/folia/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java +++ b/platform/folia/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/folia/src/main/java/com/lunarclient/apollo/listener/ApolloWorldListener.java b/platform/folia/src/main/java/com/lunarclient/apollo/listener/ApolloWorldListener.java index 3d79ca33..ed6a7ac8 100644 --- a/platform/folia/src/main/java/com/lunarclient/apollo/listener/ApolloWorldListener.java +++ b/platform/folia/src/main/java/com/lunarclient/apollo/listener/ApolloWorldListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/folia/src/main/java/com/lunarclient/apollo/metadata/FoliaMetadata.java b/platform/folia/src/main/java/com/lunarclient/apollo/metadata/FoliaMetadata.java index c84dc27e..5ba3c467 100644 --- a/platform/folia/src/main/java/com/lunarclient/apollo/metadata/FoliaMetadata.java +++ b/platform/folia/src/main/java/com/lunarclient/apollo/metadata/FoliaMetadata.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/folia/src/main/java/com/lunarclient/apollo/metadata/FoliaMetadataManager.java b/platform/folia/src/main/java/com/lunarclient/apollo/metadata/FoliaMetadataManager.java index 7299364e..938ca1b7 100644 --- a/platform/folia/src/main/java/com/lunarclient/apollo/metadata/FoliaMetadataManager.java +++ b/platform/folia/src/main/java/com/lunarclient/apollo/metadata/FoliaMetadataManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/folia/src/main/java/com/lunarclient/apollo/wrapper/FoliaApolloPlayer.java b/platform/folia/src/main/java/com/lunarclient/apollo/wrapper/FoliaApolloPlayer.java index e1ed0b0d..caa4a5df 100644 --- a/platform/folia/src/main/java/com/lunarclient/apollo/wrapper/FoliaApolloPlayer.java +++ b/platform/folia/src/main/java/com/lunarclient/apollo/wrapper/FoliaApolloPlayer.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/folia/src/main/java/com/lunarclient/apollo/wrapper/FoliaApolloStats.java b/platform/folia/src/main/java/com/lunarclient/apollo/wrapper/FoliaApolloStats.java index a0f9c14b..21275bf6 100644 --- a/platform/folia/src/main/java/com/lunarclient/apollo/wrapper/FoliaApolloStats.java +++ b/platform/folia/src/main/java/com/lunarclient/apollo/wrapper/FoliaApolloStats.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/folia/src/main/java/com/lunarclient/apollo/wrapper/FoliaApolloWorld.java b/platform/folia/src/main/java/com/lunarclient/apollo/wrapper/FoliaApolloWorld.java index 074f7329..7d07d92a 100644 --- a/platform/folia/src/main/java/com/lunarclient/apollo/wrapper/FoliaApolloWorld.java +++ b/platform/folia/src/main/java/com/lunarclient/apollo/wrapper/FoliaApolloWorld.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 0a32651b..fd1357a8 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomPlatform.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomPlatform.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomProperties.java b/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomProperties.java index 54e11913..bb10f8a7 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomProperties.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomProperties.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/command/MinestomApolloCommand.java b/platform/minestom/src/main/java/com/lunarclient/apollo/command/MinestomApolloCommand.java index fd396aca..1392f083 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/command/MinestomApolloCommand.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/command/MinestomApolloCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/command/MinestomLunarClientCommand.java b/platform/minestom/src/main/java/com/lunarclient/apollo/command/MinestomLunarClientCommand.java index f652484e..082631ea 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/command/MinestomLunarClientCommand.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/command/MinestomLunarClientCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java b/platform/minestom/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java index bfdb8fed..740fb78d 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java b/platform/minestom/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java index 52dafce7..a216d378 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/listener/ApolloWorldListener.java b/platform/minestom/src/main/java/com/lunarclient/apollo/listener/ApolloWorldListener.java index 8bb625d0..316fc49f 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/listener/ApolloWorldListener.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/listener/ApolloWorldListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/metadata/MinestomMetadata.java b/platform/minestom/src/main/java/com/lunarclient/apollo/metadata/MinestomMetadata.java index 5976ec5a..575a8b59 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/metadata/MinestomMetadata.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/metadata/MinestomMetadata.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/metadata/MinestomMetadataManager.java b/platform/minestom/src/main/java/com/lunarclient/apollo/metadata/MinestomMetadataManager.java index f6579147..b79efcf8 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/metadata/MinestomMetadataManager.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/metadata/MinestomMetadataManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java b/platform/minestom/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java index fa4b09ac..47571e44 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/wrapper/MinestomApolloPlayer.java b/platform/minestom/src/main/java/com/lunarclient/apollo/wrapper/MinestomApolloPlayer.java index ae2d8e41..6573d15d 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/wrapper/MinestomApolloPlayer.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/wrapper/MinestomApolloPlayer.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/wrapper/MinestomApolloStats.java b/platform/minestom/src/main/java/com/lunarclient/apollo/wrapper/MinestomApolloStats.java index c447123f..1887d807 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/wrapper/MinestomApolloStats.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/wrapper/MinestomApolloStats.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/wrapper/MinestomApolloWorld.java b/platform/minestom/src/main/java/com/lunarclient/apollo/wrapper/MinestomApolloWorld.java index ed53112d..a4c30f4c 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/wrapper/MinestomApolloWorld.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/wrapper/MinestomApolloWorld.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal 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 53f3d53c..e975fae0 100644 --- a/platform/velocity/src/main/java/com/lunarclient/apollo/ApolloVelocityPlatform.java +++ b/platform/velocity/src/main/java/com/lunarclient/apollo/ApolloVelocityPlatform.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/velocity/src/main/java/com/lunarclient/apollo/command/VelocityApolloCommand.java b/platform/velocity/src/main/java/com/lunarclient/apollo/command/VelocityApolloCommand.java index b482a150..507ec93c 100644 --- a/platform/velocity/src/main/java/com/lunarclient/apollo/command/VelocityApolloCommand.java +++ b/platform/velocity/src/main/java/com/lunarclient/apollo/command/VelocityApolloCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/velocity/src/main/java/com/lunarclient/apollo/command/VelocityLunarClientCommand.java b/platform/velocity/src/main/java/com/lunarclient/apollo/command/VelocityLunarClientCommand.java index 6013ebf3..3c9a25a3 100644 --- a/platform/velocity/src/main/java/com/lunarclient/apollo/command/VelocityLunarClientCommand.java +++ b/platform/velocity/src/main/java/com/lunarclient/apollo/command/VelocityLunarClientCommand.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/velocity/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java b/platform/velocity/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java index c81e04ac..233eba93 100644 --- a/platform/velocity/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java +++ b/platform/velocity/src/main/java/com/lunarclient/apollo/listener/ApolloMetadataListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/velocity/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java b/platform/velocity/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java index 68848fae..d5a4906f 100644 --- a/platform/velocity/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java +++ b/platform/velocity/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/velocity/src/main/java/com/lunarclient/apollo/metadata/VelocityMetadata.java b/platform/velocity/src/main/java/com/lunarclient/apollo/metadata/VelocityMetadata.java index fb613463..76ff1fd6 100644 --- a/platform/velocity/src/main/java/com/lunarclient/apollo/metadata/VelocityMetadata.java +++ b/platform/velocity/src/main/java/com/lunarclient/apollo/metadata/VelocityMetadata.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/velocity/src/main/java/com/lunarclient/apollo/metadata/VelocityMetadataManager.java b/platform/velocity/src/main/java/com/lunarclient/apollo/metadata/VelocityMetadataManager.java index adce0c0e..339c8e50 100644 --- a/platform/velocity/src/main/java/com/lunarclient/apollo/metadata/VelocityMetadataManager.java +++ b/platform/velocity/src/main/java/com/lunarclient/apollo/metadata/VelocityMetadataManager.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/velocity/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java b/platform/velocity/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java index 67a03b80..3b79b5da 100644 --- a/platform/velocity/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java +++ b/platform/velocity/src/main/java/com/lunarclient/apollo/util/ByteBufUtil.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/velocity/src/main/java/com/lunarclient/apollo/wrapper/VelocityApolloPlayer.java b/platform/velocity/src/main/java/com/lunarclient/apollo/wrapper/VelocityApolloPlayer.java index e24ed63c..bc1c7214 100644 --- a/platform/velocity/src/main/java/com/lunarclient/apollo/wrapper/VelocityApolloPlayer.java +++ b/platform/velocity/src/main/java/com/lunarclient/apollo/wrapper/VelocityApolloPlayer.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/platform/velocity/src/main/java/com/lunarclient/apollo/wrapper/VelocityApolloStats.java b/platform/velocity/src/main/java/com/lunarclient/apollo/wrapper/VelocityApolloStats.java index b11d1e8c..16d713ec 100644 --- a/platform/velocity/src/main/java/com/lunarclient/apollo/wrapper/VelocityApolloStats.java +++ b/platform/velocity/src/main/java/com/lunarclient/apollo/wrapper/VelocityApolloStats.java @@ -1,7 +1,7 @@ /* * This file is part of Apollo, licensed under the MIT License. * - * Copyright (c) 2023 Moonsworth + * Copyright (c) 2026 Moonsworth * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal From 59f76091cf4b729f5d7dd3105c7e1bfd83ee2b8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Bu=C4=8Dari=C4=87?= Date: Thu, 9 Apr 2026 23:47:32 +0200 Subject: [PATCH 4/6] Team Example Improvements (#265) * Better team example: filter hidden players, send location & display name only if outside player view distance * example(team): update default max distance --- .../apollo/module/team/TeamMember.java | 15 +- .../apollo/module/team/TeamModuleImpl.java | 33 ++- .../lightweight/json/player-detection.mdx | 8 +- .../lightweight/protobuf/player-detection.mdx | 8 +- docs/developers/modules/team.mdx | 249 +++++++++++++----- .../example/api/module/TeamApiExample.java | 93 +++++-- .../listener/ApolloPlayerJsonListener.java | 10 +- .../example/json/module/TeamJsonExample.java | 86 ++++-- .../listener/ApolloPlayerProtoListener.java | 10 +- .../proto/module/TeamProtoExample.java | 87 ++++-- 10 files changed, 438 insertions(+), 161 deletions(-) diff --git a/api/src/main/java/com/lunarclient/apollo/module/team/TeamMember.java b/api/src/main/java/com/lunarclient/apollo/module/team/TeamMember.java index 2ae6d46a..25ceba6f 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/team/TeamMember.java +++ b/api/src/main/java/com/lunarclient/apollo/module/team/TeamMember.java @@ -29,6 +29,7 @@ import lombok.Builder; import lombok.Getter; import net.kyori.adventure.text.Component; +import org.jetbrains.annotations.Nullable; /** * Represents a team which can be shown on the client. @@ -50,23 +51,25 @@ public final class TeamMember { /** * Returns the team member's {@link Component}. * - *

The display name is only used when the player - * is out of render distance for the observer and when the - * observer hovers over the marker.

+ *

The display name is only shown when the player is outside + * the observer's render distance and when the observer hovers + * over the marker. If not provided, only the marker is displayed.

* * @return the team member's display name * @since 1.0.0 */ - Component displayName; + @Nullable Component displayName; /** * Returns the team member's assigned {@link Color} - this will be used * for any markers (such as on duration HUD, above head markers, etc). * + *

If not provided, the default color {@code 0xFFFFFFFF} is used.

+ * * @return the team member's marker color * @since 1.0.0 */ - Color markerColor; + @Nullable Color markerColor; /** * Returns the team member's {@link ApolloLocation}. @@ -78,6 +81,6 @@ public final class TeamMember { * @return the team member location * @since 1.0.0 */ - ApolloLocation location; + @Nullable ApolloLocation location; } diff --git a/common/src/main/java/com/lunarclient/apollo/module/team/TeamModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/team/TeamModuleImpl.java index 96e7c2e7..89005d29 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/team/TeamModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/team/TeamModuleImpl.java @@ -24,14 +24,17 @@ package com.lunarclient.apollo.module.team; import com.lunarclient.apollo.common.ApolloComponent; +import com.lunarclient.apollo.common.location.ApolloLocation; import com.lunarclient.apollo.network.NetworkTypes; import com.lunarclient.apollo.player.AbstractApolloPlayer; import com.lunarclient.apollo.recipients.Recipients; import com.lunarclient.apollo.team.v1.ResetTeamMembersMessage; import com.lunarclient.apollo.team.v1.UpdateTeamMembersMessage; +import java.awt.Color; import java.util.List; import java.util.stream.Collectors; import lombok.NonNull; +import net.kyori.adventure.text.Component; /** * Provides the teams module. @@ -43,13 +46,7 @@ public final class TeamModuleImpl extends TeamModule { @Override public void updateTeamMembers(@NonNull Recipients recipients, @NonNull List teamMembers) { List teamMembersProto = teamMembers.stream() - .map(teamMember -> com.lunarclient.apollo.team.v1.TeamMember.newBuilder() - .setPlayerUuid(NetworkTypes.toProtobuf(teamMember.getPlayerUuid())) - .setAdventureJsonPlayerName(ApolloComponent.toJson(teamMember.getDisplayName())) - .setLocation(NetworkTypes.toProtobuf(teamMember.getLocation())) - .setMarkerColor(NetworkTypes.toProtobuf(teamMember.getMarkerColor())) - .build() - ) + .map(this::toProtobuf) .collect(Collectors.toList()); UpdateTeamMembersMessage message = UpdateTeamMembersMessage.newBuilder() @@ -65,4 +62,26 @@ public void resetTeamMembers(@NonNull Recipients recipients) { recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message)); } + private com.lunarclient.apollo.team.v1.TeamMember toProtobuf(TeamMember member) { + com.lunarclient.apollo.team.v1.TeamMember.Builder builder = com.lunarclient.apollo.team.v1.TeamMember.newBuilder() + .setPlayerUuid(NetworkTypes.toProtobuf(member.getPlayerUuid())); + + Component displayName = member.getDisplayName(); + if (displayName != null) { + builder.setAdventureJsonPlayerName(ApolloComponent.toJson(displayName)); + } + + Color markerColor = member.getMarkerColor(); + if (markerColor != null) { + builder.setMarkerColor(NetworkTypes.toProtobuf(markerColor)); + } + + ApolloLocation location = member.getLocation(); + if (location != null) { + builder.setLocation(NetworkTypes.toProtobuf(location)); + } + + return builder.build(); + } + } diff --git a/docs/developers/lightweight/json/player-detection.mdx b/docs/developers/lightweight/json/player-detection.mdx index 80b67ac2..dafd5dbb 100644 --- a/docs/developers/lightweight/json/player-detection.mdx +++ b/docs/developers/lightweight/json/player-detection.mdx @@ -16,7 +16,7 @@ This example demonstrates how to detect whether a player is using Lunar Client b ```java public class ApolloPlayerJsonListener implements Listener { - private final Set playersRunningApollo = new HashSet<>(); + private static final Set PLAYERS_RUNNING_APOLLO = new HashSet<>(); public ApolloPlayerJsonListener(ApolloExamplePlugin plugin) { Messenger messenger = Bukkit.getServer().getMessenger(); @@ -27,8 +27,8 @@ public class ApolloPlayerJsonListener implements Listener { Bukkit.getPluginManager().registerEvents(this, plugin); } - private boolean isPlayerRunningApollo(Player player) { - return this.playersRunningApollo.contains(player.getUniqueId()); + public static boolean isPlayerRunningApollo(Player player) { + return PLAYERS_RUNNING_APOLLO.contains(player.getUniqueId()); } @EventHandler @@ -43,7 +43,7 @@ public class ApolloPlayerJsonListener implements Listener { // Sending the player's world name to the client is required for some modules JsonPacketUtil.sendPacket(player, this.createUpdatePlayerWorldMessage(player)); - this.playersRunningApollo.add(player.getUniqueId()); + PLAYERS_RUNNING_APOLLO.add(player.getUniqueId()); player.sendMessage("You are using LunarClient!"); } diff --git a/docs/developers/lightweight/protobuf/player-detection.mdx b/docs/developers/lightweight/protobuf/player-detection.mdx index 40c8af50..5e324ae4 100644 --- a/docs/developers/lightweight/protobuf/player-detection.mdx +++ b/docs/developers/lightweight/protobuf/player-detection.mdx @@ -9,7 +9,7 @@ This example demonstrates how to detect whether a player is using Lunar Client b ```java public class ApolloPlayerProtoListener implements Listener { - private final Set playersRunningApollo = new HashSet<>(); + private static final Set PLAYERS_RUNNING_APOLLO = new HashSet<>(); public ApolloPlayerProtoListener(ApolloExamplePlugin plugin) { Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "lunar:apollo"); @@ -17,8 +17,8 @@ public class ApolloPlayerProtoListener implements Listener { Bukkit.getPluginManager().registerEvents(this, plugin); } - private boolean isPlayerRunningApollo(Player player) { - return this.playersRunningApollo.contains(player.getUniqueId()); + public static boolean isPlayerRunningApollo(Player player) { + return PLAYERS_RUNNING_APOLLO.contains(player.getUniqueId()); } @EventHandler @@ -33,7 +33,7 @@ public class ApolloPlayerProtoListener implements Listener { // Sending the player's world name to the client is required for some modules ProtobufPacketUtil.sendPacket(player, this.createUpdatePlayerWorldMessage(player)); - this.playersRunningApollo.add(player.getUniqueId()); + PLAYERS_RUNNING_APOLLO.add(player.getUniqueId()); player.sendMessage("You are using LunarClient!"); } diff --git a/docs/developers/modules/team.mdx b/docs/developers/modules/team.mdx index 48896594..e587e315 100644 --- a/docs/developers/modules/team.mdx +++ b/docs/developers/modules/team.mdx @@ -27,8 +27,8 @@ Explore each integration by cycling through each tab, to find the best fit for y ```java -private final Map teamsByTeamId = Maps.newHashMap(); -private final Map teamsByPlayerUuid = Maps.newHashMap(); +private final Map teamsByTeamId = new ConcurrentHashMap<>(); +private final Map teamsByPlayerUuid = new ConcurrentHashMap<>(); public TeamApiExample() { if (ServerUtil.isFolia()) { @@ -91,7 +91,7 @@ public class Team { public Team() { this.teamId = UUID.randomUUID(); - this.members = new HashMap<>(); + this.members = new ConcurrentHashMap<>(); } public void addMember(Player player) { @@ -107,34 +107,77 @@ public class Team { .ifPresent(TeamApiExample.this.teamModule::resetTeamMembers); } - private TeamMember createTeamMember(Player member) { - Location location = member.getLocation(); + private TeamMember createTeamMember(Player player, boolean withinPlayerTrackingRange) { + TeamMember.TeamMemberBuilder builder = TeamMember.builder() + .playerUuid(player.getUniqueId()) + .markerColor(Color.WHITE); - return TeamMember.builder() - .playerUuid(member.getUniqueId()) - .displayName(Component.text() - .content(member.getName()) - .color(NamedTextColor.WHITE) - .build()) - .markerColor(Color.WHITE) - .location(ApolloLocation.builder() + if (!withinPlayerTrackingRange) { + Location location = player.getLocation(); + + builder.location(ApolloLocation.builder() .world(location.getWorld().getName()) .x(location.getX()) .y(location.getY()) .z(location.getZ()) - .build()) - .build(); + .build()); + + builder.displayName(Component.text() + .content(player.getName()) + .color(NamedTextColor.WHITE) + .build()); + } + + return builder.build(); } - // The refresh method used for updating members locations public void refresh() { - List teammates = this.members.values() - .stream().filter(Player::isOnline) - .map(this::createTeamMember) - .collect(Collectors.toList()); + for (Player viewer : this.members.values()) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + if (!apolloPlayerOpt.isPresent()) { + continue; + } + + List teammates = new ArrayList<>(); + + for (Player member : this.members.values()) { + if (viewer == member) { + continue; + } + + if (!viewer.canSee(member)) { + continue; + } + + if (!viewer.getWorld().getName().equals(member.getWorld().getName())) { + continue; + } + + boolean withinPlayerTrackingRange = this.isWithinPlayerTrackingRange(viewer, member); + teammates.add(this.createTeamMember(member, withinPlayerTrackingRange)); + } + + apolloPlayerOpt.ifPresent(apolloPlayer -> { + TeamApiExample.this.teamModule.updateTeamMembers(apolloPlayer, teammates); + }); + } + } + + /** + *

Check if player is within 48 blocks. Ideally, this could be checked directly + * through the server's internal entity tracker for exact tracking behavior, + * but that is not exposed in the Bukkit API.

+ * + * @param viewer the viewer + * @param member the member + * @return whether within player tracking range + */ + private boolean isWithinPlayerTrackingRange(Player viewer, Player member) { + double maxDistance = 48; + double dx = viewer.getLocation().getX() - member.getLocation().getX(); + double dz = viewer.getLocation().getZ() - member.getLocation().getZ(); - this.members.values().forEach(member -> Apollo.getPlayerManager().getPlayer(member.getUniqueId()) - .ifPresent(apolloPlayer -> TeamApiExample.this.teamModule.updateTeamMembers(apolloPlayer, teammates))); + return (dx * dx + dz * dz) <= (maxDistance * maxDistance); } public UUID getTeamId() { @@ -237,8 +280,8 @@ Custom colors can be created from any RGB values using `new Color(int red, int g ```java -private final Map teamsByTeamId = Maps.newHashMap(); -private final Map teamsByPlayerUuid = Maps.newHashMap(); +private final Map teamsByTeamId = new ConcurrentHashMap<>(); +private final Map teamsByPlayerUuid = new ConcurrentHashMap<>(); public TeamProtoExample() { if (ServerUtil.isFolia()) { @@ -301,7 +344,7 @@ public class Team { public Team() { this.teamId = UUID.randomUUID(); - this.members = new HashMap<>(); + this.members = new ConcurrentHashMap<>(); } public void addMember(Player player) { @@ -317,31 +360,74 @@ public class Team { ProtobufPacketUtil.sendPacket(player, message); } - private TeamMember createTeamMember(Player member) { - return TeamMember.newBuilder() - .setPlayerUuid(ProtobufUtil.createUuidProto(member.getUniqueId())) - .setAdventureJsonPlayerName(AdventureUtil.toJson( + private TeamMember createTeamMember(Player player, boolean withinPlayerTrackingRange) { + TeamMember.Builder builder = TeamMember.newBuilder() + .setPlayerUuid(ProtobufUtil.createUuidProto(player.getUniqueId())) + .setMarkerColor(ProtobufUtil.createColorProto(Color.WHITE)); + + if (!withinPlayerTrackingRange) { + builder.setLocation(ProtobufUtil.createLocationProto(player.getLocation())); + + builder.setAdventureJsonPlayerName(AdventureUtil.toJson( Component.text() - .content(member.getName()) + .content(player.getName()) .color(NamedTextColor.WHITE) .build() - )) - .setMarkerColor(ProtobufUtil.createColorProto(Color.WHITE)) - .setLocation(ProtobufUtil.createLocationProto(member.getLocation())) - .build(); + )); + } + + return builder.build(); } // The refresh method used for updating members locations public void refresh() { - List teammates = this.members.values().stream().filter(Player::isOnline) - .map(this::createTeamMember) - .collect(Collectors.toList()); + for (Player viewer : this.members.values()) { + if (!ApolloPlayerProtoListener.isPlayerRunningApollo(viewer)) { + continue; + } + + List teammates = new ArrayList<>(); - UpdateTeamMembersMessage message = UpdateTeamMembersMessage.newBuilder() - .addAllMembers(teammates) - .build(); + for (Player member : this.members.values()) { + if (viewer == member) { + continue; + } - this.members.values().forEach(member -> ProtobufPacketUtil.sendPacket(member, message)); + if (!viewer.canSee(member)) { + continue; + } + + if (!viewer.getWorld().getName().equals(member.getWorld().getName())) { + continue; + } + + boolean withinPlayerTrackingRange = this.isWithinPlayerTrackingRange(viewer, member); + teammates.add(this.createTeamMember(member, withinPlayerTrackingRange)); + } + + UpdateTeamMembersMessage message = UpdateTeamMembersMessage.newBuilder() + .addAllMembers(teammates) + .build(); + + ProtobufPacketUtil.sendPacket(viewer, message); + } + } + + /** + *

Check if player is within 48 blocks. Ideally, this could be checked directly + * through the server's internal entity tracker for exact tracking behavior, + * but that is not exposed in the Bukkit API.

+ * + * @param viewer the viewer + * @param member the member + * @return whether within player tracking range + */ + private boolean isWithinPlayerTrackingRange(Player viewer, Player member) { + double maxDistance = 48; + double dx = viewer.getLocation().getX() - member.getLocation().getX(); + double dz = viewer.getLocation().getZ() - member.getLocation().getZ(); + + return (dx * dx + dz * dz) <= (maxDistance * maxDistance); } public UUID getTeamId() { @@ -378,8 +464,8 @@ public class Team { ```java -private final Map teamsByTeamId = Maps.newHashMap(); -private final Map teamsByPlayerUuid = Maps.newHashMap(); +private final Map teamsByTeamId = new ConcurrentHashMap<>(); +private final Map teamsByPlayerUuid = new ConcurrentHashMap<>(); public TeamJsonExample() { if (ServerUtil.isFolia()) { @@ -442,7 +528,7 @@ public class Team { public Team() { this.teamId = UUID.randomUUID(); - this.members = new HashMap<>(); + this.members = new ConcurrentHashMap<>(); } public void addMember(Player player) { @@ -460,33 +546,74 @@ public class Team { JsonPacketUtil.sendPacket(player, message); } - private JsonObject createTeamMember(Player member) { + private JsonObject createTeamMember(Player player, boolean withinPlayerTrackingRange) { JsonObject message = new JsonObject(); - message.add("player_uuid", JsonUtil.createUuidObject(member.getUniqueId())); - message.addProperty("adventure_json_player_name", AdventureUtil.toJson( - Component.text() - .content(member.getName()) - .color(NamedTextColor.WHITE) - .build() - )); + message.add("player_uuid", JsonUtil.createUuidObject(player.getUniqueId())); message.add("marker_color", JsonUtil.createColorObject(Color.WHITE)); - message.add("location", JsonUtil.createLocationObject(member.getLocation())); + + if (!withinPlayerTrackingRange) { + message.add("location", JsonUtil.createLocationObject(player.getLocation())); + + message.addProperty("adventure_json_player_name", AdventureUtil.toJson( + Component.text() + .content(player.getName()) + .color(NamedTextColor.WHITE) + .build() + )); + } return message; } // The refresh method used for updating members locations public void refresh() { - JsonArray teammates = this.members.values() - .stream().filter(Player::isOnline) - .map(this::createTeamMember) - .collect(JsonArray::new, JsonArray::add, JsonArray::addAll); + for (Player viewer : this.members.values()) { + if (!ApolloPlayerJsonListener.isPlayerRunningApollo(viewer)) { + continue; + } - JsonObject message = new JsonObject(); - message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.team.v1.UpdateTeamMembersMessage"); - message.add("members", teammates); + JsonArray teammates = new JsonArray(); + + for (Player member : this.members.values()) { + if (viewer == member) { + continue; + } + + if (!viewer.canSee(member)) { + continue; + } + + if (!viewer.getWorld().getName().equals(member.getWorld().getName())) { + continue; + } + + boolean withinPlayerTrackingRange = this.isWithinPlayerTrackingRange(viewer, member); + teammates.add(this.createTeamMember(member, withinPlayerTrackingRange)); + } + + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.team.v1.UpdateTeamMembersMessage"); + message.add("members", teammates); + + JsonPacketUtil.sendPacket(viewer, message); + } + } - this.members.values().forEach(member -> JsonPacketUtil.sendPacket(member, message)); + /** + *

Check if player is within 48 blocks. Ideally, this could be checked directly + * through the server's internal entity tracker for exact tracking behavior, + * but that is not exposed in the Bukkit API.

+ * + * @param viewer the viewer + * @param member the member + * @return whether within player tracking range + */ + private boolean isWithinPlayerTrackingRange(Player viewer, Player member) { + double maxDistance = 48; + double dx = viewer.getLocation().getX() - member.getLocation().getX(); + double dz = viewer.getLocation().getZ() - member.getLocation().getZ(); + + return (dx * dx + dz * dz) <= (maxDistance * maxDistance); } public UUID getTeamId() { 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 44a36fd3..21c84126 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 @@ -23,7 +23,6 @@ */ package com.lunarclient.apollo.example.api.module; -import com.google.common.collect.Maps; import com.lunarclient.apollo.Apollo; import com.lunarclient.apollo.common.location.ApolloLocation; import com.lunarclient.apollo.example.ApolloExamplePlugin; @@ -31,15 +30,16 @@ import com.lunarclient.apollo.example.util.ServerUtil; import com.lunarclient.apollo.module.team.TeamMember; import com.lunarclient.apollo.module.team.TeamModule; +import com.lunarclient.apollo.player.ApolloPlayer; import java.awt.Color; +import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; @@ -53,8 +53,8 @@ public class TeamApiExample extends TeamExample implements Listener { private final TeamModule teamModule = Apollo.getModuleManager().getModule(TeamModule.class); - private final Map teamsByTeamId = Maps.newHashMap(); - private final Map teamsByPlayerUuid = Maps.newHashMap(); + private final Map teamsByTeamId = new ConcurrentHashMap<>(); + private final Map teamsByPlayerUuid = new ConcurrentHashMap<>(); public TeamApiExample() { if (ServerUtil.isFolia()) { @@ -117,7 +117,7 @@ public class Team { public Team() { this.teamId = UUID.randomUUID(); - this.members = new HashMap<>(); + this.members = new ConcurrentHashMap<>(); } public void addMember(Player player) { @@ -133,34 +133,77 @@ public void removeMember(Player player) { .ifPresent(TeamApiExample.this.teamModule::resetTeamMembers); } - private TeamMember createTeamMember(Player member) { - Location location = member.getLocation(); + private TeamMember createTeamMember(Player player, boolean withinPlayerTrackingRange) { + TeamMember.TeamMemberBuilder builder = TeamMember.builder() + .playerUuid(player.getUniqueId()) + .markerColor(Color.WHITE); - return TeamMember.builder() - .playerUuid(member.getUniqueId()) - .displayName(Component.text() - .content(member.getName()) - .color(NamedTextColor.WHITE) - .build()) - .markerColor(Color.WHITE) - .location(ApolloLocation.builder() + if (!withinPlayerTrackingRange) { + Location location = player.getLocation(); + + builder.location(ApolloLocation.builder() .world(location.getWorld().getName()) .x(location.getX()) .y(location.getY()) .z(location.getZ()) - .build()) - .build(); + .build()); + + builder.displayName(Component.text() + .content(player.getName()) + .color(NamedTextColor.WHITE) + .build()); + } + + return builder.build(); } - // The refresh method used for updating members locations public void refresh() { - List teammates = this.members.values() - .stream().filter(Player::isOnline) - .map(this::createTeamMember) - .collect(Collectors.toList()); + for (Player viewer : this.members.values()) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + if (!apolloPlayerOpt.isPresent()) { + continue; + } + + List teammates = new ArrayList<>(); + + for (Player member : this.members.values()) { + if (viewer == member) { + continue; + } + + if (!viewer.canSee(member)) { + continue; + } + + if (!viewer.getWorld().getName().equals(member.getWorld().getName())) { + continue; + } + + boolean withinPlayerTrackingRange = this.isWithinPlayerTrackingRange(viewer, member); + teammates.add(this.createTeamMember(member, withinPlayerTrackingRange)); + } + + apolloPlayerOpt.ifPresent(apolloPlayer -> { + TeamApiExample.this.teamModule.updateTeamMembers(apolloPlayer, teammates); + }); + } + } - this.members.values().forEach(member -> Apollo.getPlayerManager().getPlayer(member.getUniqueId()) - .ifPresent(apolloPlayer -> TeamApiExample.this.teamModule.updateTeamMembers(apolloPlayer, teammates))); + /** + *

Check if player is within 48 blocks. Ideally, this could be checked directly + * through the server's internal entity tracker for exact tracking behavior, + * but that is not exposed in the Bukkit API.

+ * + * @param viewer the viewer + * @param member the member + * @return whether within player tracking range + */ + private boolean isWithinPlayerTrackingRange(Player viewer, Player member) { + double maxDistance = 48; + double dx = viewer.getLocation().getX() - member.getLocation().getX(); + double dz = viewer.getLocation().getZ() - member.getLocation().getZ(); + + return (dx * dx + dz * dz) <= (maxDistance * maxDistance); } public UUID getTeamId() { diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPlayerJsonListener.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPlayerJsonListener.java index e8bcbfa1..6c0984d5 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPlayerJsonListener.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/listener/ApolloPlayerJsonListener.java @@ -42,7 +42,7 @@ public class ApolloPlayerJsonListener implements Listener { private final ApolloExamplePlugin plugin; - private final Set playersRunningApollo = new HashSet<>(); + private static final Set PLAYERS_RUNNING_APOLLO = new HashSet<>(); public ApolloPlayerJsonListener(ApolloExamplePlugin plugin) { this.plugin = plugin; @@ -57,7 +57,7 @@ public ApolloPlayerJsonListener(ApolloExamplePlugin plugin) { } public void disable() { - this.playersRunningApollo.clear(); + PLAYERS_RUNNING_APOLLO.clear(); Messenger messenger = Bukkit.getServer().getMessenger(); messenger.unregisterIncomingPluginChannel(this.plugin, "lunar:apollo"); @@ -79,7 +79,7 @@ private void onRegisterChannel(PlayerRegisterChannelEvent event) { // Sending the player's world name to the client is required for some modules JsonPacketUtil.sendPacket(player, this.createUpdatePlayerWorldMessage(player)); - this.playersRunningApollo.add(player.getUniqueId()); + PLAYERS_RUNNING_APOLLO.add(player.getUniqueId()); player.sendMessage("You are using LunarClient!"); } @@ -98,8 +98,8 @@ private JsonObject createUpdatePlayerWorldMessage(Player player) { return message; } - private boolean isPlayerRunningApollo(Player player) { - return this.playersRunningApollo.contains(player.getUniqueId()); + public static boolean isPlayerRunningApollo(Player player) { + return PLAYERS_RUNNING_APOLLO.contains(player.getUniqueId()); } } 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 da2168ae..47f010b1 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 @@ -23,10 +23,10 @@ */ package com.lunarclient.apollo.example.json.module; -import com.google.common.collect.Maps; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.lunarclient.apollo.example.ApolloExamplePlugin; +import com.lunarclient.apollo.example.json.listener.ApolloPlayerJsonListener; import com.lunarclient.apollo.example.json.util.AdventureUtil; import com.lunarclient.apollo.example.json.util.JsonPacketUtil; import com.lunarclient.apollo.example.json.util.JsonUtil; @@ -34,10 +34,10 @@ 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.UUID; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; @@ -49,8 +49,8 @@ public class TeamJsonExample extends TeamExample implements Listener { - private final Map teamsByTeamId = Maps.newHashMap(); - private final Map teamsByPlayerUuid = Maps.newHashMap(); + private final Map teamsByTeamId = new ConcurrentHashMap<>(); + private final Map teamsByPlayerUuid = new ConcurrentHashMap<>(); public TeamJsonExample() { if (ServerUtil.isFolia()) { @@ -113,7 +113,7 @@ public class Team { public Team() { this.teamId = UUID.randomUUID(); - this.members = new HashMap<>(); + this.members = new ConcurrentHashMap<>(); } public void addMember(Player player) { @@ -131,33 +131,75 @@ public void removeMember(Player player) { JsonPacketUtil.sendPacket(player, message); } - private JsonObject createTeamMember(Player member) { + private JsonObject createTeamMember(Player player, boolean withinPlayerTrackingRange) { JsonObject message = new JsonObject(); - message.add("player_uuid", JsonUtil.createUuidObject(member.getUniqueId())); - message.addProperty("adventure_json_player_name", AdventureUtil.toJson( - Component.text() - .content(member.getName()) - .color(NamedTextColor.WHITE) - .build() - )); + message.add("player_uuid", JsonUtil.createUuidObject(player.getUniqueId())); message.add("marker_color", JsonUtil.createColorObject(Color.WHITE)); - message.add("location", JsonUtil.createLocationObject(member.getLocation())); + + if (!withinPlayerTrackingRange) { + message.add("location", JsonUtil.createLocationObject(player.getLocation())); + + message.addProperty("adventure_json_player_name", AdventureUtil.toJson( + Component.text() + .content(player.getName()) + .color(NamedTextColor.WHITE) + .build() + )); + } return message; } // The refresh method used for updating members locations public void refresh() { - JsonArray teammates = this.members.values() - .stream().filter(Player::isOnline) - .map(this::createTeamMember) - .collect(JsonArray::new, JsonArray::add, JsonArray::addAll); + for (Player viewer : this.members.values()) { + if (!ApolloPlayerJsonListener.isPlayerRunningApollo(viewer)) { + continue; + } - JsonObject message = new JsonObject(); - message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.team.v1.UpdateTeamMembersMessage"); - message.add("members", teammates); + JsonArray teammates = new JsonArray(); + + for (Player member : this.members.values()) { + if (viewer == member) { + continue; + } + + if (!viewer.canSee(member)) { + continue; + } + + if (!viewer.getWorld().getName().equals(member.getWorld().getName())) { + continue; + } + + boolean withinPlayerTrackingRange = this.isWithinPlayerTrackingRange(viewer, member); + teammates.add(this.createTeamMember(member, withinPlayerTrackingRange)); + } + + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.team.v1.UpdateTeamMembersMessage"); + message.add("members", teammates); + + JsonPacketUtil.sendPacket(viewer, message); + } + } - this.members.values().forEach(member -> JsonPacketUtil.sendPacket(member, message)); + /** + *

This uses a simple distance check based on Paper/Spigot defaults + * (96 blocks for players). Ideally, this could be checked directly through + * the server's internal entity tracker for exact tracking behavior, but that + * is not exposed in the Bukkit API.

+ * + * @param viewer the viewer + * @param member the member + * @return whether within player tracking range + */ + private boolean isWithinPlayerTrackingRange(Player viewer, Player member) { + double maxDistance = 96; + double dx = viewer.getLocation().getX() - member.getLocation().getX(); + double dz = viewer.getLocation().getZ() - member.getLocation().getZ(); + + return (dx * dx + dz * dz) <= (maxDistance * maxDistance); } public UUID getTeamId() { diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPlayerProtoListener.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPlayerProtoListener.java index 15c8dde9..a9aee632 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPlayerProtoListener.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/listener/ApolloPlayerProtoListener.java @@ -42,7 +42,7 @@ public class ApolloPlayerProtoListener implements Listener { private final ApolloExamplePlugin plugin; - private final Set playersRunningApollo = new HashSet<>(); + private static final Set PLAYERS_RUNNING_APOLLO = new HashSet<>(); public ApolloPlayerProtoListener(ApolloExamplePlugin plugin) { this.plugin = plugin; @@ -56,7 +56,7 @@ public ApolloPlayerProtoListener(ApolloExamplePlugin plugin) { } public void disable() { - this.playersRunningApollo.clear(); + PLAYERS_RUNNING_APOLLO.clear(); Messenger messenger = Bukkit.getServer().getMessenger(); messenger.unregisterOutgoingPluginChannel(this.plugin, "lunar:apollo"); @@ -77,7 +77,7 @@ private void onRegisterChannel(PlayerRegisterChannelEvent event) { // Sending the player's world name to the client is required for some modules ProtobufPacketUtil.sendPacket(player, this.createUpdatePlayerWorldMessage(player)); - this.playersRunningApollo.add(player.getUniqueId()); + PLAYERS_RUNNING_APOLLO.add(player.getUniqueId()); player.sendMessage("You are using LunarClient!"); } @@ -95,8 +95,8 @@ private UpdatePlayerWorldMessage createUpdatePlayerWorldMessage(Player player) { .build(); } - private boolean isPlayerRunningApollo(Player player) { - return this.playersRunningApollo.contains(player.getUniqueId()); + public static boolean isPlayerRunningApollo(Player player) { + return PLAYERS_RUNNING_APOLLO.contains(player.getUniqueId()); } } 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 aa59368f..f2931c66 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 @@ -23,9 +23,9 @@ */ package com.lunarclient.apollo.example.proto.module; -import com.google.common.collect.Maps; import com.lunarclient.apollo.example.ApolloExamplePlugin; import com.lunarclient.apollo.example.module.impl.TeamExample; +import com.lunarclient.apollo.example.proto.listener.ApolloPlayerProtoListener; import com.lunarclient.apollo.example.proto.util.AdventureUtil; import com.lunarclient.apollo.example.proto.util.ProtobufPacketUtil; import com.lunarclient.apollo.example.proto.util.ProtobufUtil; @@ -34,14 +34,14 @@ import com.lunarclient.apollo.team.v1.TeamMember; import com.lunarclient.apollo.team.v1.UpdateTeamMembersMessage; import java.awt.Color; +import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; @@ -52,8 +52,8 @@ public class TeamProtoExample extends TeamExample implements Listener { - private final Map teamsByTeamId = Maps.newHashMap(); - private final Map teamsByPlayerUuid = Maps.newHashMap(); + private final Map teamsByTeamId = new ConcurrentHashMap<>(); + private final Map teamsByPlayerUuid = new ConcurrentHashMap<>(); public TeamProtoExample() { if (ServerUtil.isFolia()) { @@ -116,7 +116,7 @@ public class Team { public Team() { this.teamId = UUID.randomUUID(); - this.members = new HashMap<>(); + this.members = new ConcurrentHashMap<>(); } public void addMember(Player player) { @@ -132,31 +132,74 @@ public void removeMember(Player player) { ProtobufPacketUtil.sendPacket(player, message); } - private TeamMember createTeamMember(Player member) { - return TeamMember.newBuilder() - .setPlayerUuid(ProtobufUtil.createUuidProto(member.getUniqueId())) - .setAdventureJsonPlayerName(AdventureUtil.toJson( + private TeamMember createTeamMember(Player player, boolean withinPlayerTrackingRange) { + TeamMember.Builder builder = TeamMember.newBuilder() + .setPlayerUuid(ProtobufUtil.createUuidProto(player.getUniqueId())) + .setMarkerColor(ProtobufUtil.createColorProto(Color.WHITE)); + + if (!withinPlayerTrackingRange) { + builder.setLocation(ProtobufUtil.createLocationProto(player.getLocation())); + + builder.setAdventureJsonPlayerName(AdventureUtil.toJson( Component.text() - .content(member.getName()) + .content(player.getName()) .color(NamedTextColor.WHITE) .build() - )) - .setMarkerColor(ProtobufUtil.createColorProto(Color.WHITE)) - .setLocation(ProtobufUtil.createLocationProto(member.getLocation())) - .build(); + )); + } + + return builder.build(); } // The refresh method used for updating members locations public void refresh() { - List teammates = this.members.values().stream().filter(Player::isOnline) - .map(this::createTeamMember) - .collect(Collectors.toList()); + for (Player viewer : this.members.values()) { + if (!ApolloPlayerProtoListener.isPlayerRunningApollo(viewer)) { + continue; + } + + List teammates = new ArrayList<>(); + + for (Player member : this.members.values()) { + if (viewer == member) { + continue; + } - UpdateTeamMembersMessage message = UpdateTeamMembersMessage.newBuilder() - .addAllMembers(teammates) - .build(); + if (!viewer.canSee(member)) { + continue; + } + + if (!viewer.getWorld().getName().equals(member.getWorld().getName())) { + continue; + } + + boolean withinPlayerTrackingRange = this.isWithinPlayerTrackingRange(viewer, member); + teammates.add(this.createTeamMember(member, withinPlayerTrackingRange)); + } + + UpdateTeamMembersMessage message = UpdateTeamMembersMessage.newBuilder() + .addAllMembers(teammates) + .build(); + + ProtobufPacketUtil.sendPacket(viewer, message); + } + } - this.members.values().forEach(member -> ProtobufPacketUtil.sendPacket(member, message)); + /** + *

Check if player is within 48 blocks. Ideally, this could be checked directly + * through the server's internal entity tracker for exact tracking behavior, + * but that is not exposed in the Bukkit API.

+ * + * @param viewer the viewer + * @param member the member + * @return whether within player tracking range + */ + private boolean isWithinPlayerTrackingRange(Player viewer, Player member) { + double maxDistance = 48; + double dx = viewer.getLocation().getX() - member.getLocation().getX(); + double dz = viewer.getLocation().getZ() - member.getLocation().getZ(); + + return (dx * dx + dz * dz) <= (maxDistance * maxDistance); } public UUID getTeamId() { From d806e8d4e80a8a80149946164f857cfd813a5661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Bu=C4=8Dari=C4=87?= Date: Thu, 9 Apr 2026 23:48:22 +0200 Subject: [PATCH 5/6] Implement CooldownStyle (#267) --- .../apollo/module/cooldown/Cooldown.java | 11 ++ .../apollo/module/cooldown/CooldownStyle.java | 72 ++++++++++++ .../module/cooldown/CooldownModuleImpl.java | 38 +++++- .../lightweight/protobuf/getting-started.mdx | 6 +- docs/developers/modules/cooldown.mdx | 111 +++++++++++++++++- .../api/listener/ApolloPlayerApiListener.java | 7 +- .../api/module/CooldownApiExample.java | 29 ++++- .../example/command/CooldownCommand.java | 10 +- .../example/module/impl/CooldownExample.java | 2 + .../json/module/CooldownJsonExample.java | 21 +++- .../proto/module/CooldownProtoExample.java | 21 +++- gradle/libs.versions.toml | 2 +- 12 files changed, 311 insertions(+), 19 deletions(-) create mode 100644 api/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownStyle.java diff --git a/api/src/main/java/com/lunarclient/apollo/module/cooldown/Cooldown.java b/api/src/main/java/com/lunarclient/apollo/module/cooldown/Cooldown.java index 7ef84346..3a029f39 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/cooldown/Cooldown.java +++ b/api/src/main/java/com/lunarclient/apollo/module/cooldown/Cooldown.java @@ -27,6 +27,7 @@ import java.time.Duration; import lombok.Builder; import lombok.Getter; +import org.jetbrains.annotations.Nullable; /** * Represents a cooldown which can be shown on the client. @@ -64,4 +65,14 @@ public final class Cooldown { */ Icon icon; + /** + * Returns the cooldown {@link CooldownStyle}. + * + *

If {@code null}, the style defaults to the user's local Cooldown Mod settings.

+ * + * @return the cooldown style + * @since 1.2.5 + */ + @Nullable CooldownStyle style; + } diff --git a/api/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownStyle.java b/api/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownStyle.java new file mode 100644 index 00000000..2641e5a3 --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownStyle.java @@ -0,0 +1,72 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2026 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.module.cooldown; + +import java.awt.Color; +import lombok.Builder; +import lombok.Getter; +import org.jetbrains.annotations.Nullable; + +/** + * Represents the {@link Cooldown} style, allowing customization of the circle start, end, edge & text color. + * + * @since 1.2.5 + */ +@Getter +@Builder +public final class CooldownStyle { + + /** + * Returns the cooldown circle start {@link Color}. + * + * @return the circle start color + * @since 1.2.5 + */ + @Nullable Color circleStartColor; + + /** + * Returns the cooldown circle end {@link Color}. + * + * @return the circle end color + * @since 1.2.5 + */ + @Nullable Color circleEndColor; + + /** + * Returns the cooldown circle edge {@link Color}. + * + * @return the circle edge color + * @since 1.2.5 + */ + @Nullable Color circleEdgeColor; + + /** + * Returns the cooldown text {@link Color}. + * + * @return the text color + * @since 1.2.5 + */ + @Nullable Color textColor; + +} diff --git a/common/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownModuleImpl.java index eb6c2121..ede71674 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownModuleImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/cooldown/CooldownModuleImpl.java @@ -29,6 +29,7 @@ import com.lunarclient.apollo.network.NetworkTypes; import com.lunarclient.apollo.player.AbstractApolloPlayer; import com.lunarclient.apollo.recipients.Recipients; +import java.awt.Color; import lombok.NonNull; /** @@ -40,12 +41,17 @@ public final class CooldownModuleImpl extends CooldownModule { @Override public void displayCooldown(@NonNull Recipients recipients, @NonNull Cooldown cooldown) { - DisplayCooldownMessage message = DisplayCooldownMessage.newBuilder() + DisplayCooldownMessage.Builder builder = DisplayCooldownMessage.newBuilder() .setName(cooldown.getName()) .setDuration(NetworkTypes.toProtobuf(cooldown.getDuration())) - .setIcon(NetworkTypes.toProtobuf(cooldown.getIcon())) - .build(); + .setIcon(NetworkTypes.toProtobuf(cooldown.getIcon())); + + CooldownStyle style = cooldown.getStyle(); + if (style != null) { + builder.setStyle(this.toProtobuf(style)); + } + DisplayCooldownMessage message = builder.build(); recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message)); } @@ -69,4 +75,30 @@ public void resetCooldowns(@NonNull Recipients recipients) { recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message)); } + private com.lunarclient.apollo.cooldown.v1.CooldownStyle toProtobuf(CooldownStyle style) { + com.lunarclient.apollo.cooldown.v1.CooldownStyle.Builder builder = com.lunarclient.apollo.cooldown.v1.CooldownStyle.newBuilder(); + + Color circleStartColor = style.getCircleStartColor(); + if (circleStartColor != null) { + builder.setCircleStartColor(NetworkTypes.toProtobuf(circleStartColor)); + } + + Color circleEndColor = style.getCircleEndColor(); + if (circleEndColor != null) { + builder.setCircleEndColor(NetworkTypes.toProtobuf(circleEndColor)); + } + + Color circleEdgeColor = style.getCircleEdgeColor(); + if (circleEdgeColor != null) { + builder.setCircleEdgeColor(NetworkTypes.toProtobuf(circleEdgeColor)); + } + + Color textColor = style.getTextColor(); + if (textColor != null) { + builder.setTextColor(NetworkTypes.toProtobuf(textColor)); + } + + return builder.build(); + } + } diff --git a/docs/developers/lightweight/protobuf/getting-started.mdx b/docs/developers/lightweight/protobuf/getting-started.mdx index 467c0db9..e7f159ad 100644 --- a/docs/developers/lightweight/protobuf/getting-started.mdx +++ b/docs/developers/lightweight/protobuf/getting-started.mdx @@ -26,7 +26,7 @@ Available fields for each message, including their types, are available on the B com.lunarclient apollo-protos - 0.0.6 + 0.0.9 ``` @@ -41,7 +41,7 @@ Available fields for each message, including their types, are available on the B } dependencies { - api 'com.lunarclient:apollo-protos:0.0.6' + api 'com.lunarclient:apollo-protos:0.0.9' } ```
@@ -55,7 +55,7 @@ Available fields for each message, including their types, are available on the B } dependencies { - api("com.lunarclient:apollo-protos:0.0.6") + api("com.lunarclient:apollo-protos:0.0.9") } ```
diff --git a/docs/developers/modules/cooldown.mdx b/docs/developers/modules/cooldown.mdx index 4264a826..77e4daf0 100644 --- a/docs/developers/modules/cooldown.mdx +++ b/docs/developers/modules/cooldown.mdx @@ -45,6 +45,31 @@ public void displayCooldownItemExample(Player viewer) { } ``` +### Displaying a Cooldown with a custom style + +```java +public void displayCooldownWithStyleExample(Player viewer) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + + apolloPlayerOpt.ifPresent(apolloPlayer -> { + this.cooldownModule.displayCooldown(apolloPlayer, Cooldown.builder() + .name("book-cooldown") + .duration(Duration.ofSeconds(30)) + .icon(ItemStackIcon.builder() + .itemName("BOOK") + .build()) + .style(CooldownStyle.builder() + .circleStartColor(ApolloColors.RED) + .circleEndColor(ApolloColors.GREEN) + .circleEdgeColor(ApolloColors.DARK_GRAY) + .textColor(ApolloColors.LIGHT_PURPLE) + .build()) + .build() + ); + }); +} +``` + ### Displaying a Cooldown with a resource ```java @@ -56,8 +81,8 @@ public void displayCooldownResourceExample(Player viewer) { .name("lunar-cooldown") .duration(Duration.ofSeconds(15)) .icon(SimpleResourceLocationIcon.builder() - .resourceLocation("lunar:logo/logo-200x182.svg") - .size(12) + .resourceLocation("lunar:logo/logo-64x64.png") + .size(24) .build() ) .build() @@ -74,6 +99,7 @@ public void removeCooldownExample(Player viewer) { apolloPlayerOpt.ifPresent(apolloPlayer -> { this.cooldownModule.removeCooldown(apolloPlayer, "enderpearl-cooldown"); + this.cooldownModule.removeCooldown(apolloPlayer, "book-cooldown"); this.cooldownModule.removeCooldown(apolloPlayer, "lunar-cooldown"); }); } @@ -107,9 +133,43 @@ public void resetCooldownsExample(Player viewer) { `.icon(SimpleResourceLocationIcon)` is how you display a custom texture icon. Read the [icons utilities page](/apollo/developers/utilities/icons) to learn more about icons. ```java -.icon(SimpleResourceLocationIcon.builder().resourceLocation("lunar:logo/logo-200x182.svg").size(12).build()) +.icon(SimpleResourceLocationIcon.builder().resourceLocation("lunar:logo/logo-64x64.png").size(24).build()) ``` +`.style(CooldownStyle)` is how you customize the visual appearance of the cooldown circle and text. See the `CooldownStyle` section below for more. +```java +.style(CooldownStyle.builder() + .circleStartColor(ApolloColors.RED) + .circleEndColor(ApolloColors.GREEN) + .circleEdgeColor(ApolloColors.DARK_GRAY) + .textColor(ApolloColors.LIGHT_PURPLE) + .build()) +``` + +### `CooldownStyle` Options + +`.circleStartColor(java.awt.Color)` is the color displayed at the start of the cooldown circle animation. See the [colors page](/apollo/developers/utilities/colors) for more. +```java +.circleStartColor(ApolloColors.RED) +``` + +`.circleEndColor(java.awt.Color)` is the color displayed at the end of the cooldown circle animation. See the [colors page](/apollo/developers/utilities/colors) for more. +```java +.circleEndColor(ApolloColors.GREEN) +``` + +`.circleEdgeColor(java.awt.Color)` is the color of the circle's edge/border. See the [colors page](/apollo/developers/utilities/colors) for more. +```java +.circleEdgeColor(ApolloColors.DARK_GRAY) +``` + +`.textColor(java.awt.Color)` is the color of the cooldown timer text rendered in the center of the circle. See the [colors page](/apollo/developers/utilities/colors) for more. +```java +.textColor(ApolloColors.LIGHT_PURPLE) +``` + +All `CooldownStyle` fields are optional; any field left unset will fall back to the client's default value. +
@@ -128,6 +188,26 @@ public void displayCooldownItemExample(Player viewer) { } ``` +**Displaying a Cooldown with a custom style** + +```java +public void displayCooldownWithStyleExample(Player viewer) { + DisplayCooldownMessage message = DisplayCooldownMessage.newBuilder() + .setName("book-cooldown") + .setDuration(ProtobufUtil.createDurationProto(Duration.ofSeconds(30))) + .setIcon(ProtobufUtil.createItemStackIconProto("BOOK", 0, 0)) + .setStyle(CooldownStyle.newBuilder() + .setCircleStartColor(ProtobufUtil.createColorProto(new Color(255, 85, 85))) // ApolloColors.RED + .setCircleEndColor(ProtobufUtil.createColorProto(new Color(85, 255, 85))) // ApolloColors.GREEN + .setCircleEdgeColor(ProtobufUtil.createColorProto(new Color(85, 85, 85))) // ApolloColors.DAR_GRAY + .setTextColor(ProtobufUtil.createColorProto(new Color(255, 85, 255))) // ApolloColors.LIGHT_PURPLE + .build()) + .build(); + + ProtobufPacketUtil.sendPacket(viewer, message); +} +``` + **Displaying a Cooldown with a resource** ```java @@ -135,7 +215,7 @@ public void displayCooldownResourceExample(Player viewer) { DisplayCooldownMessage message = DisplayCooldownMessage.newBuilder() .setName("lunar-cooldown") .setDuration(ProtobufUtil.createDurationProto(Duration.ofSeconds(15))) - .setIcon(ProtobufUtil.createSimpleResourceLocationIconProto("lunar:logo/logo-200x182.svg", 12)) + .setIcon(ProtobufUtil.createSimpleResourceLocationIconProto("lunar:logo/logo-64x64.png", 24)) .build(); ProtobufPacketUtil.sendPacket(viewer, message); @@ -181,6 +261,27 @@ public void displayCooldownItemExample(Player viewer) { } ``` +**Displaying a Cooldown with a custom style** + +```java +public void displayCooldownWithStyleExample(Player viewer) { + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.cooldown.v1.DisplayCooldownMessage"); + message.addProperty("name", "book-cooldown"); + message.addProperty("duration", JsonUtil.createDurationObject(Duration.ofSeconds(30))); + message.add("icon", JsonUtil.createItemStackIconObject("BOOK", 0, 0)); + + JsonObject style = new JsonObject(); + style.add("circle_start_color", JsonUtil.createColorObject(new Color(255, 85, 85))); // ApolloColors.RED + style.add("circle_end_color", JsonUtil.createColorObject(new Color(85, 255, 85))); // ApolloColors.GREEN + style.add("circle_edge_color", JsonUtil.createColorObject(new Color(85, 85, 85))); // ApolloColors.DAR_GRAY + style.add("text_color", JsonUtil.createColorObject(new Color(255, 85, 255))); // ApolloColors.LIGHT_PURPLE + message.add("style", style); + + JsonPacketUtil.sendPacket(viewer, message); +} +``` + **Displaying a Cooldown with a resource** ```java @@ -189,7 +290,7 @@ public void displayCooldownResourceExample(Player viewer) { message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.cooldown.v1.DisplayCooldownMessage"); message.addProperty("name", "lunar-cooldown"); message.addProperty("duration", JsonUtil.createDurationObject(Duration.ofSeconds(15))); - message.add("icon", JsonUtil.createSimpleResourceLocationIconObject("lunar:logo/logo-200x182.svg", 12)); + message.add("icon", JsonUtil.createSimpleResourceLocationIconObject("lunar:logo/logo-64x64.png", 24)); JsonPacketUtil.sendPacket(viewer, message); } diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/listener/ApolloPlayerApiListener.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/listener/ApolloPlayerApiListener.java index 837b525d..83d37a27 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/listener/ApolloPlayerApiListener.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/listener/ApolloPlayerApiListener.java @@ -29,6 +29,7 @@ import com.lunarclient.apollo.event.player.ApolloRegisterPlayerEvent; import com.lunarclient.apollo.example.ApolloExamplePlugin; import com.lunarclient.apollo.example.api.module.TeamApiExample; +import com.lunarclient.apollo.example.module.impl.CooldownExample; import com.lunarclient.apollo.player.ApolloPlayer; import org.bukkit.entity.Player; @@ -58,9 +59,13 @@ private void onApolloRegister(ApolloRegisterPlayerEvent event) { this.example.getBeamExample().displayBeamExample(player); this.example.getBorderExample().displayBorderExample(player); - this.example.getCooldownExample().displayCooldownItemExample(player); this.example.getNametagExample().overrideNametagExample(player); this.example.getWaypointExample().displayWaypointExample(player); + + CooldownExample cooldownExample = this.example.getCooldownExample(); + cooldownExample.displayCooldownItemExample(player); + cooldownExample.displayCooldownWithStyleExample(player); + cooldownExample.displayCooldownResourceExample(player); } } diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/CooldownApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/CooldownApiExample.java index 5c7236ab..121eb27e 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/CooldownApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/CooldownApiExample.java @@ -24,11 +24,13 @@ package com.lunarclient.apollo.example.api.module; import com.lunarclient.apollo.Apollo; +import com.lunarclient.apollo.common.ApolloColors; import com.lunarclient.apollo.common.icon.ItemStackIcon; import com.lunarclient.apollo.common.icon.SimpleResourceLocationIcon; import com.lunarclient.apollo.example.module.impl.CooldownExample; import com.lunarclient.apollo.module.cooldown.Cooldown; import com.lunarclient.apollo.module.cooldown.CooldownModule; +import com.lunarclient.apollo.module.cooldown.CooldownStyle; import com.lunarclient.apollo.player.ApolloPlayer; import java.time.Duration; import java.util.Optional; @@ -55,6 +57,28 @@ public void displayCooldownItemExample(Player viewer) { }); } + @Override + public void displayCooldownWithStyleExample(Player viewer) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + + apolloPlayerOpt.ifPresent(apolloPlayer -> { + this.cooldownModule.displayCooldown(apolloPlayer, Cooldown.builder() + .name("book-cooldown") + .duration(Duration.ofSeconds(30)) + .icon(ItemStackIcon.builder() + .itemName("BOOK") + .build()) + .style(CooldownStyle.builder() + .circleStartColor(ApolloColors.RED) + .circleEndColor(ApolloColors.GREEN) + .circleEdgeColor(ApolloColors.DARK_GRAY) + .textColor(ApolloColors.LIGHT_PURPLE) + .build()) + .build() + ); + }); + } + @Override public void displayCooldownResourceExample(Player viewer) { Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); @@ -64,8 +88,8 @@ public void displayCooldownResourceExample(Player viewer) { .name("lunar-cooldown") .duration(Duration.ofSeconds(15)) .icon(SimpleResourceLocationIcon.builder() - .resourceLocation("lunar:logo/logo-200x182.svg") - .size(12) + .resourceLocation("lunar:logo/logo-64x64.png") + .size(24) .build() ) .build() @@ -79,6 +103,7 @@ public void removeCooldownExample(Player viewer) { apolloPlayerOpt.ifPresent(apolloPlayer -> { this.cooldownModule.removeCooldown(apolloPlayer, "enderpearl-cooldown"); + this.cooldownModule.removeCooldown(apolloPlayer, "book-cooldown"); this.cooldownModule.removeCooldown(apolloPlayer, "lunar-cooldown"); }); } diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/CooldownCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/CooldownCommand.java index 3b0531e5..bb122312 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/CooldownCommand.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/CooldownCommand.java @@ -43,7 +43,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command Player player = (Player) sender; if (args.length != 1) { - player.sendMessage("Usage: /cooldown "); + player.sendMessage("Usage: /cooldown "); return true; } @@ -56,6 +56,12 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command break; } + case "displaywithstyle": { + cooldownExample.displayCooldownWithStyleExample(player); + player.sendMessage("Displaying cooldown with style...."); + break; + } + case "displayresource": { cooldownExample.displayCooldownResourceExample(player); player.sendMessage("Displaying cooldown resource...."); @@ -75,7 +81,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command } default: { - player.sendMessage("Usage: /cooldown "); + player.sendMessage("Usage: /cooldown "); break; } } diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/CooldownExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/CooldownExample.java index a90da576..e0c8ebc8 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/CooldownExample.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/CooldownExample.java @@ -30,6 +30,8 @@ public abstract class CooldownExample extends ApolloModuleExample { public abstract void displayCooldownItemExample(Player viewer); + public abstract void displayCooldownWithStyleExample(Player viewer); + public abstract void displayCooldownResourceExample(Player viewer); public abstract void removeCooldownExample(Player viewer); diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/CooldownJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/CooldownJsonExample.java index 83746bbb..a254be03 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/CooldownJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/CooldownJsonExample.java @@ -27,6 +27,7 @@ import com.lunarclient.apollo.example.json.util.JsonPacketUtil; import com.lunarclient.apollo.example.json.util.JsonUtil; import com.lunarclient.apollo.example.module.impl.CooldownExample; +import java.awt.Color; import java.time.Duration; import org.bukkit.entity.Player; @@ -43,13 +44,31 @@ public void displayCooldownItemExample(Player viewer) { JsonPacketUtil.sendPacket(viewer, message); } + @Override + public void displayCooldownWithStyleExample(Player viewer) { + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.cooldown.v1.DisplayCooldownMessage"); + message.addProperty("name", "book-cooldown"); + message.addProperty("duration", JsonUtil.createDurationObject(Duration.ofSeconds(30))); + message.add("icon", JsonUtil.createItemStackIconObject("BOOK", 0, 0)); + + JsonObject style = new JsonObject(); + style.add("circle_start_color", JsonUtil.createColorObject(new Color(255, 85, 85))); // ApolloColors.RED + style.add("circle_end_color", JsonUtil.createColorObject(new Color(85, 255, 85))); // ApolloColors.GREEN + style.add("circle_edge_color", JsonUtil.createColorObject(new Color(85, 85, 85))); // ApolloColors.DAR_GRAY + style.add("text_color", JsonUtil.createColorObject(new Color(255, 85, 255))); // ApolloColors.LIGHT_PURPLE + message.add("style", style); + + JsonPacketUtil.sendPacket(viewer, message); + } + @Override public void displayCooldownResourceExample(Player viewer) { JsonObject message = new JsonObject(); message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.cooldown.v1.DisplayCooldownMessage"); message.addProperty("name", "lunar-cooldown"); message.addProperty("duration", JsonUtil.createDurationObject(Duration.ofSeconds(15))); - message.add("icon", JsonUtil.createSimpleResourceLocationIconObject("lunar:logo/logo-200x182.svg", 12)); + message.add("icon", JsonUtil.createSimpleResourceLocationIconObject("lunar:logo/logo-64x64.png", 24)); JsonPacketUtil.sendPacket(viewer, message); } diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CooldownProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CooldownProtoExample.java index d8c6741c..a3b4c2a3 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CooldownProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CooldownProtoExample.java @@ -23,12 +23,14 @@ */ package com.lunarclient.apollo.example.proto.module; +import com.lunarclient.apollo.cooldown.v1.CooldownStyle; import com.lunarclient.apollo.cooldown.v1.DisplayCooldownMessage; import com.lunarclient.apollo.cooldown.v1.RemoveCooldownMessage; import com.lunarclient.apollo.cooldown.v1.ResetCooldownsMessage; import com.lunarclient.apollo.example.module.impl.CooldownExample; import com.lunarclient.apollo.example.proto.util.ProtobufPacketUtil; import com.lunarclient.apollo.example.proto.util.ProtobufUtil; +import java.awt.Color; import java.time.Duration; import org.bukkit.entity.Player; @@ -45,12 +47,29 @@ public void displayCooldownItemExample(Player viewer) { ProtobufPacketUtil.sendPacket(viewer, message); } + @Override + public void displayCooldownWithStyleExample(Player viewer) { + DisplayCooldownMessage message = DisplayCooldownMessage.newBuilder() + .setName("book-cooldown") + .setDuration(ProtobufUtil.createDurationProto(Duration.ofSeconds(30))) + .setIcon(ProtobufUtil.createItemStackIconProto("BOOK", 0, 0)) + .setStyle(CooldownStyle.newBuilder() + .setCircleStartColor(ProtobufUtil.createColorProto(new Color(255, 85, 85))) // ApolloColors.RED + .setCircleEndColor(ProtobufUtil.createColorProto(new Color(85, 255, 85))) // ApolloColors.GREEN + .setCircleEdgeColor(ProtobufUtil.createColorProto(new Color(85, 85, 85))) // ApolloColors.DAR_GRAY + .setTextColor(ProtobufUtil.createColorProto(new Color(255, 85, 255))) // ApolloColors.LIGHT_PURPLE + .build()) + .build(); + + ProtobufPacketUtil.sendPacket(viewer, message); + } + @Override public void displayCooldownResourceExample(Player viewer) { DisplayCooldownMessage message = DisplayCooldownMessage.newBuilder() .setName("lunar-cooldown") .setDuration(ProtobufUtil.createDurationProto(Duration.ofSeconds(15))) - .setIcon(ProtobufUtil.createSimpleResourceLocationIconProto("lunar:logo/logo-200x182.svg", 12)) + .setIcon(ProtobufUtil.createSimpleResourceLocationIconProto("lunar:logo/logo-64x64.png", 24)) .build(); ProtobufPacketUtil.sendPacket(viewer, message); diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1a56e558..13049556 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,7 +11,7 @@ geantyref = "1.3.11" idea = "1.1.7" jetbrains = "24.0.1" lombok = "1.18.38" -protobuf = "0.0.6" +protobuf = "0.0.9" gson = "2.10.1" shadow = "8.1.1" spotless = "6.13.0" From 22e0c1d1a02715ecc3767a4beba7854eb328cb28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Bu=C4=8Dari=C4=87?= Date: Fri, 10 Apr 2026 00:23:56 +0200 Subject: [PATCH 6/6] Feature - Server Links (#261) * Add base ServerLinkModule # Conflicts: # docs/developers/lightweight/protobuf/getting-started.mdx # gradle/libs.versions.toml * server links api (WIP) * add the json & proto examples * add markdown docs * update serverlink docs * update paths in notification module example * update server link overview img * update overview desc * update component usage docs * Update version tags to 1.2.5 * Update license year * Fix conflicts * Remove extra line --------- Co-authored-by: TrentinTheKid <25537885+TrentinTheKid@users.noreply.github.com> --- .../common/icon/ResourceLocationIcon.java | 48 +++ .../apollo/module/serverlink/ServerLink.java | 63 ++++ .../module/serverlink/ServerLinkModule.java | 130 ++++++++ .../serverlink/ServerLinkModuleImpl.java | 114 +++++++ .../apollo/network/NetworkTypes.java | 202 +++++++++---- .../lightweight/json/object-util.mdx | 10 + .../lightweight/protobuf/object-util.mdx | 22 +- docs/developers/modules/_meta.json | 1 + docs/developers/modules/cooldown.mdx | 12 +- docs/developers/modules/hologram.mdx | 2 +- docs/developers/modules/nametag.mdx | 2 +- docs/developers/modules/notification.mdx | 8 +- docs/developers/modules/serverlink.mdx | 281 ++++++++++++++++++ docs/developers/utilities/icons.mdx | 34 +++ docs/public/modules/serverlink/overview.png | Bin 0 -> 108691 bytes .../example/api/ApolloApiExamplePlatform.java | 2 + .../api/listener/ApolloPlayerApiListener.java | 5 + .../api/module/NotificationApiExample.java | 2 +- .../api/module/ServerLinkApiExample.java | 101 +++++++ .../apollo/example/api/util/IconExample.java | 7 + .../bukkit/api/src/main/resources/plugin.yml | 2 + .../apollo/example/ApolloExamplePlugin.java | 4 + .../example/command/ServerLinkCommand.java | 91 ++++++ .../module/impl/ServerLinkExample.java | 41 +++ .../json/ApolloJsonExamplePlatform.java | 2 + .../json/module/NotificationJsonExample.java | 2 +- .../json/module/ServerLinkJsonExample.java | 99 ++++++ .../apollo/example/json/util/JsonUtil.java | 10 + .../proto/ApolloProtoExamplePlatform.java | 2 + .../proto/module/CooldownProtoExample.java | 13 +- .../module/NotificationProtoExample.java | 2 +- .../proto/module/ServerLinkProtoExample.java | 106 +++++++ .../example/proto/util/ProtobufUtil.java | 24 +- .../apollo/ApolloBukkitPlatform.java | 3 + .../apollo/ApolloBungeePlatform.java | 3 + .../apollo/ApolloFoliaPlatform.java | 3 + .../apollo/ApolloMinestomPlatform.java | 3 + .../apollo/ApolloVelocityPlatform.java | 3 + 38 files changed, 1369 insertions(+), 90 deletions(-) create mode 100644 api/src/main/java/com/lunarclient/apollo/common/icon/ResourceLocationIcon.java create mode 100644 api/src/main/java/com/lunarclient/apollo/module/serverlink/ServerLink.java create mode 100644 api/src/main/java/com/lunarclient/apollo/module/serverlink/ServerLinkModule.java create mode 100644 common/src/main/java/com/lunarclient/apollo/module/serverlink/ServerLinkModuleImpl.java create mode 100644 docs/developers/modules/serverlink.mdx create mode 100644 docs/public/modules/serverlink/overview.png create mode 100644 example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/ServerLinkApiExample.java create mode 100644 example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ServerLinkCommand.java create mode 100644 example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ServerLinkExample.java create mode 100644 example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ServerLinkJsonExample.java create mode 100644 example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ServerLinkProtoExample.java diff --git a/api/src/main/java/com/lunarclient/apollo/common/icon/ResourceLocationIcon.java b/api/src/main/java/com/lunarclient/apollo/common/icon/ResourceLocationIcon.java new file mode 100644 index 00000000..f4716c4a --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/common/icon/ResourceLocationIcon.java @@ -0,0 +1,48 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2026 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.common.icon; + +import lombok.Builder; +import lombok.Getter; + +/** + * Represents a resource location icon. + * + * @since 1.2.5 + */ +@Getter +@Builder +public final class ResourceLocationIcon extends Icon { + + /** + * Returns the icon {@link String} resource location. + * + *

Represents a path to an icon that will appear for the player.

+ * + * @return the icon resource location + * @since 1.2.5 + */ + String resourceLocation; + +} diff --git a/api/src/main/java/com/lunarclient/apollo/module/serverlink/ServerLink.java b/api/src/main/java/com/lunarclient/apollo/module/serverlink/ServerLink.java new file mode 100644 index 00000000..2c6d5abf --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/module/serverlink/ServerLink.java @@ -0,0 +1,63 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2026 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.module.serverlink; + +import lombok.Builder; +import lombok.Getter; +import net.kyori.adventure.text.Component; + +/** + * Represents a link entry displayed in the Server Links menu. + * + * @since 1.2.5 + */ +@Getter +@Builder +public final class ServerLink { + + /** + * Returns the server link {@link String} id. + * + * @return the server link id + * @since 1.2.5 + */ + String id; + + /** + * Returns the server link {@link Component} display name. + * + * @return the server link display name + * @since 1.2.5 + */ + Component displayName; + + /** + * Returns the server link {@link String} url. + * + * @return the server link url + * @since 1.2.5 + */ + String url; + +} diff --git a/api/src/main/java/com/lunarclient/apollo/module/serverlink/ServerLinkModule.java b/api/src/main/java/com/lunarclient/apollo/module/serverlink/ServerLinkModule.java new file mode 100644 index 00000000..f3010c97 --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/module/serverlink/ServerLinkModule.java @@ -0,0 +1,130 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2026 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.module.serverlink; + +import com.lunarclient.apollo.common.icon.ResourceLocationIcon; +import com.lunarclient.apollo.module.ApolloModule; +import com.lunarclient.apollo.module.ModuleDefinition; +import com.lunarclient.apollo.recipients.Recipients; +import java.util.List; +import org.jetbrains.annotations.ApiStatus; + +/** + * Represents the server links module. + * + *

This module provides support for the Server Links feature introduced in + * Minecraft 1.21.0, with compatibility extending down to version 1.7.

+ * + * @since 1.2.5 + */ +@ApiStatus.NonExtendable +@ModuleDefinition(id = "server_link", name = "Server Link") +public abstract class ServerLinkModule extends ApolloModule { + + /** + * Overrides the server link menu title image for the {@link Recipients}. + * + *

The provided {@link ResourceLocationIcon} will be displayed in place of the default + * menu title.

+ * + *

The resource location must reference a valid client-side asset using the standard + * namespace format:

+ * + *
+     * minecraft:textures/item/apple.png
+     * lunar:logo/logo-100x100.png
+     * 
+ * + *

For optimal results, a square image (e.g. 128x128) is recommended.

+ * + * @param recipients the recipients that are receiving the packet + * @param icon the resource location icon + * @since 1.2.5 + */ + public abstract void overrideServerLinkResource(Recipients recipients, ResourceLocationIcon icon); + + /** + * Resets the server link menu title image for the {@link Recipients}. + * + *

Reverts back to displaying the default menu title.

+ * + * @param recipients the recipients that are receiving the packet + * @since 1.2.5 + */ + public abstract void resetServerLinkResource(Recipients recipients); + + /** + * Adds or updates the {@link ServerLink} for the {@link Recipients}. + * + * @param recipients the recipients that are receiving the packet + * @param serverLink the server link + * @since 1.2.5 + */ + public abstract void addServerLink(Recipients recipients, ServerLink serverLink); + + /** + * Adds or updates the {@link ServerLink}s for the {@link Recipients}. + * + * @param recipients the recipients that are receiving the packet + * @param serverLinks the server links + * @since 1.2.5 + */ + public abstract void addServerLink(Recipients recipients, List serverLinks); + + /** + * Removes the {@link ServerLink} from the {@link Recipients}. + * + * @param recipients the recipients that are receiving the packet + * @param serverLinkId the server link id + * @since 1.2.5 + */ + public abstract void removeServerLink(Recipients recipients, String serverLinkId); + + /** + * Removes the {@link ServerLink} from the {@link Recipients}. + * + * @param recipients the recipients that are receiving the packet + * @param serverLink the server link + * @since 1.2.5 + */ + public abstract void removeServerLink(Recipients recipients, ServerLink serverLink); + + /** + * Removes the {@link ServerLink}s from the {@link Recipients}. + * + * @param recipients the recipients that are receiving the packet + * @param serverLinkIds the server link ids + * @since 1.2.5 + */ + public abstract void removeServerLink(Recipients recipients, List serverLinkIds); + + /** + * Resets all {@link ServerLink}s for the {@link Recipients}. + * + * @param recipients the recipients that are receiving the packet + * @since 1.2.5 + */ + public abstract void resetServerLinks(Recipients recipients); + +} diff --git a/common/src/main/java/com/lunarclient/apollo/module/serverlink/ServerLinkModuleImpl.java b/common/src/main/java/com/lunarclient/apollo/module/serverlink/ServerLinkModuleImpl.java new file mode 100644 index 00000000..4427a971 --- /dev/null +++ b/common/src/main/java/com/lunarclient/apollo/module/serverlink/ServerLinkModuleImpl.java @@ -0,0 +1,114 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2026 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.module.serverlink; + +import com.lunarclient.apollo.common.ApolloComponent; +import com.lunarclient.apollo.common.icon.ResourceLocationIcon; +import com.lunarclient.apollo.network.NetworkTypes; +import com.lunarclient.apollo.player.AbstractApolloPlayer; +import com.lunarclient.apollo.recipients.Recipients; +import com.lunarclient.apollo.serverlink.v1.AddServerLinkMessage; +import com.lunarclient.apollo.serverlink.v1.OverrideServerLinkResourceMessage; +import com.lunarclient.apollo.serverlink.v1.RemoveServerLinkMessage; +import com.lunarclient.apollo.serverlink.v1.ResetServerLinkResourceMessage; +import com.lunarclient.apollo.serverlink.v1.ResetServerLinksMessage; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import lombok.NonNull; + +/** + * Provides the server link module. + * + * @since 1.2.5 + */ +public final class ServerLinkModuleImpl extends ServerLinkModule { + + @Override + public void overrideServerLinkResource(@NonNull Recipients recipients, @NonNull ResourceLocationIcon icon) { + OverrideServerLinkResourceMessage message = OverrideServerLinkResourceMessage.newBuilder() + .setIcon(NetworkTypes.toProtobuf(icon)) + .build(); + + recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message)); + } + + @Override + public void resetServerLinkResource(@NonNull Recipients recipients) { + ResetServerLinkResourceMessage message = ResetServerLinkResourceMessage.getDefaultInstance(); + recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message)); + } + + @Override + public void addServerLink(@NonNull Recipients recipients, @NonNull ServerLink serverLink) { + this.addServerLink(recipients, Collections.singletonList(serverLink)); + } + + @Override + public void addServerLink(@NonNull Recipients recipients, @NonNull List serverLinks) { + List serverLinksProto = serverLinks.stream() + .map(this::toProtobuf) + .collect(Collectors.toList()); + + AddServerLinkMessage message = AddServerLinkMessage.newBuilder() + .addAllServerLinks(serverLinksProto) + .build(); + + recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message)); + } + + @Override + public void removeServerLink(@NonNull Recipients recipients, @NonNull String serverLinkId) { + this.removeServerLink(recipients, Collections.singletonList(serverLinkId)); + } + + @Override + public void removeServerLink(@NonNull Recipients recipients, @NonNull ServerLink serverLink) { + this.removeServerLink(recipients, Collections.singletonList(serverLink.getId())); + } + + @Override + public void removeServerLink(@NonNull Recipients recipients, @NonNull List serverLinkIds) { + RemoveServerLinkMessage message = RemoveServerLinkMessage.newBuilder() + .addAllServerLinkIds(serverLinkIds) + .build(); + + recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message)); + } + + @Override + public void resetServerLinks(@NonNull Recipients recipients) { + ResetServerLinksMessage message = ResetServerLinksMessage.getDefaultInstance(); + recipients.forEach(player -> ((AbstractApolloPlayer) player).sendPacket(message)); + } + + private com.lunarclient.apollo.serverlink.v1.ServerLink toProtobuf(ServerLink serverLink) { + return com.lunarclient.apollo.serverlink.v1.ServerLink.newBuilder() + .setId(serverLink.getId()) + .setDisplayNameAdventureJsonLines(ApolloComponent.toJson(serverLink.getDisplayName())) + .setUrl(serverLink.getUrl()) + .build(); + } + +} diff --git a/common/src/main/java/com/lunarclient/apollo/network/NetworkTypes.java b/common/src/main/java/com/lunarclient/apollo/network/NetworkTypes.java index 0ecf1dcd..6d20395f 100644 --- a/common/src/main/java/com/lunarclient/apollo/network/NetworkTypes.java +++ b/common/src/main/java/com/lunarclient/apollo/network/NetworkTypes.java @@ -30,6 +30,7 @@ import com.lunarclient.apollo.common.icon.AdvancedResourceLocationIcon; import com.lunarclient.apollo.common.icon.Icon; import com.lunarclient.apollo.common.icon.ItemStackIcon; +import com.lunarclient.apollo.common.icon.ResourceLocationIcon; import com.lunarclient.apollo.common.icon.SimpleResourceLocationIcon; import com.lunarclient.apollo.common.location.ApolloBlockLocation; import com.lunarclient.apollo.common.location.ApolloLocation; @@ -484,37 +485,15 @@ public static com.lunarclient.apollo.common.v1.Icon toProtobuf(Icon icon) { com.lunarclient.apollo.common.v1.Icon.Builder builder = com.lunarclient.apollo.common.v1.Icon.newBuilder(); if (icon instanceof ItemStackIcon) { - ItemStackIcon item = (ItemStackIcon) icon; - String itemName = item.getItemName(); - - com.lunarclient.apollo.common.v1.ItemStackIcon.Builder itemBuilder = com.lunarclient.apollo.common.v1.ItemStackIcon.newBuilder() - .setItemId(item.getItemId()) - .setCustomModelData(item.getCustomModelData()); - - if (itemName != null) { - itemBuilder.setItemName(itemName); - } - - builder.setItemStack(itemBuilder.build()); + builder.setItemStack(NetworkTypes.toProtobuf((ItemStackIcon) icon)); + } else if (icon instanceof ResourceLocationIcon) { + builder.setResourceLocation(NetworkTypes.toProtobuf((ResourceLocationIcon) icon)); } else if (icon instanceof SimpleResourceLocationIcon) { - SimpleResourceLocationIcon simple = (SimpleResourceLocationIcon) icon; - - builder.setSimpleResourceLocation(com.lunarclient.apollo.common.v1.SimpleResourceLocationIcon.newBuilder() - .setResourceLocation(simple.getResourceLocation()) - .setSize(checkPositive(simple.getSize(), "SimpleResourceLocationIcon#size")) - .build()); + builder.setSimpleResourceLocation(NetworkTypes.toProtobuf((SimpleResourceLocationIcon) icon)); } else if (icon instanceof AdvancedResourceLocationIcon) { - AdvancedResourceLocationIcon advanced = (AdvancedResourceLocationIcon) icon; - - builder.setAdvancedResourceLocation(com.lunarclient.apollo.common.v1.AdvancedResourceLocationIcon.newBuilder() - .setResourceLocation(advanced.getResourceLocation()) - .setWidth(checkPositive(advanced.getWidth(), "AdvancedResourceLocationIcon#width")) - .setHeight(checkPositive(advanced.getHeight(), "AdvancedResourceLocationIcon#height")) - .setMinU(checkRange(advanced.getMinU(), 0, 1, "AdvancedResourceLocationIcon#minU")) - .setMaxU(checkRange(advanced.getMaxU(), 0, 1, "AdvancedResourceLocationIcon#maxU")) - .setMinV(checkRange(advanced.getMinV(), 0, 1, "AdvancedResourceLocationIcon#minV")) - .setMaxV(checkRange(advanced.getMaxV(), 0, 1, "AdvancedResourceLocationIcon#maxV")) - .build()); + builder.setAdvancedResourceLocation(NetworkTypes.toProtobuf((AdvancedResourceLocationIcon) icon)); + } else { + throw new IllegalArgumentException("Unknown icon type: " + icon.getClass().getName()); } return builder.build(); @@ -530,35 +509,150 @@ public static com.lunarclient.apollo.common.v1.Icon toProtobuf(Icon icon) { */ public static Icon fromProtobuf(com.lunarclient.apollo.common.v1.Icon icon) { if (icon.hasItemStack()) { - com.lunarclient.apollo.common.v1.ItemStackIcon item = icon.getItemStack(); - - return ItemStackIcon.builder() - .itemName(item.getItemName()) - .itemId(item.getItemId()) - .customModelData(item.getCustomModelData()) - .build(); + return NetworkTypes.fromProtobuf(icon.getItemStack()); + } else if (icon.hasResourceLocation()) { + return NetworkTypes.fromProtobuf(icon.getResourceLocation()); } else if (icon.hasSimpleResourceLocation()) { - com.lunarclient.apollo.common.v1.SimpleResourceLocationIcon simple = icon.getSimpleResourceLocation(); - - return SimpleResourceLocationIcon.builder() - .resourceLocation(simple.getResourceLocation()) - .size(simple.getSize()) - .build(); + return NetworkTypes.fromProtobuf(icon.getSimpleResourceLocation()); } else if (icon.hasAdvancedResourceLocation()) { - com.lunarclient.apollo.common.v1.AdvancedResourceLocationIcon advanced = icon.getAdvancedResourceLocation(); - - return AdvancedResourceLocationIcon.builder() - .resourceLocation(advanced.getResourceLocation()) - .width(advanced.getWidth()) - .height(advanced.getHeight()) - .minU(advanced.getMinU()) - .maxU(advanced.getMaxU()) - .minV(advanced.getMinV()) - .maxV(advanced.getMaxV()) - .build(); + return NetworkTypes.fromProtobuf(icon.getAdvancedResourceLocation()); } - return null; + throw new IllegalArgumentException("Unknown icon proto type"); + } + + /** + * Converts an {@link ItemStackIcon} to a + * {@link com.lunarclient.apollo.common.v1.ItemStackIcon} proto message. + * + * @param icon the item stack icon + * @return the proto item stack icon message + * @since 1.2.5 + */ + public static com.lunarclient.apollo.common.v1.ItemStackIcon toProtobuf(ItemStackIcon icon) { + com.lunarclient.apollo.common.v1.ItemStackIcon.Builder builder = com.lunarclient.apollo.common.v1.ItemStackIcon.newBuilder() + .setItemId(icon.getItemId()) + .setCustomModelData(icon.getCustomModelData()); + + if (icon.getItemName() != null) { + builder.setItemName(icon.getItemName()); + } + + return builder.build(); + } + + /** + * Converts a {@link com.lunarclient.apollo.common.v1.ItemStackIcon} + * proto message to an {@link ItemStackIcon}. + * + * @param icon the item stack icon message + * @return the item stack icon + * @since 1.2.5 + */ + public static ItemStackIcon fromProtobuf(com.lunarclient.apollo.common.v1.ItemStackIcon icon) { + return ItemStackIcon.builder() + .itemName(icon.getItemName()) + .itemId(icon.getItemId()) + .customModelData(icon.getCustomModelData()) + .build(); + } + + /** + * Converts a {@link ResourceLocationIcon} to a + * {@link com.lunarclient.apollo.common.v1.ResourceLocationIcon} proto message. + * + * @param icon the resource location icon + * @return the proto resource location icon message + * @since 1.2.5 + */ + public static com.lunarclient.apollo.common.v1.ResourceLocationIcon toProtobuf(ResourceLocationIcon icon) { + return com.lunarclient.apollo.common.v1.ResourceLocationIcon.newBuilder() + .setResourceLocation(icon.getResourceLocation()) + .build(); + } + + /** + * Converts a {@link com.lunarclient.apollo.common.v1.ResourceLocationIcon} + * proto message to a {@link ResourceLocationIcon}. + * + * @param icon the resource location icon message + * @return the resource location icon + * @since 1.2.5 + */ + public static ResourceLocationIcon fromProtobuf(com.lunarclient.apollo.common.v1.ResourceLocationIcon icon) { + return ResourceLocationIcon.builder() + .resourceLocation(icon.getResourceLocation()) + .build(); + } + + /** + * Converts a {@link SimpleResourceLocationIcon} to a + * {@link com.lunarclient.apollo.common.v1.SimpleResourceLocationIcon} proto message. + * + * @param icon the simple resource location icon + * @return the proto simple resource location icon message + * @since 1.2.5 + */ + public static com.lunarclient.apollo.common.v1.SimpleResourceLocationIcon toProtobuf(SimpleResourceLocationIcon icon) { + return com.lunarclient.apollo.common.v1.SimpleResourceLocationIcon.newBuilder() + .setResourceLocation(icon.getResourceLocation()) + .setSize(checkPositive(icon.getSize(), "SimpleResourceLocationIcon#size")) + .build(); + } + + /** + * Converts a {@link com.lunarclient.apollo.common.v1.SimpleResourceLocationIcon} + * proto message to a {@link SimpleResourceLocationIcon}. + * + * @param icon the simple resource location icon message + * @return the simple resource location icon + * @since 1.2.5 + */ + public static SimpleResourceLocationIcon fromProtobuf(com.lunarclient.apollo.common.v1.SimpleResourceLocationIcon icon) { + return SimpleResourceLocationIcon.builder() + .resourceLocation(icon.getResourceLocation()) + .size(icon.getSize()) + .build(); + } + + /** + * Converts an {@link AdvancedResourceLocationIcon} to an + * {@link com.lunarclient.apollo.common.v1.AdvancedResourceLocationIcon} proto message. + * + * @param icon the advanced resource location icon + * @return the proto advanced resource location icon message + * @since 1.2.5 + */ + public static com.lunarclient.apollo.common.v1.AdvancedResourceLocationIcon toProtobuf(AdvancedResourceLocationIcon icon) { + return com.lunarclient.apollo.common.v1.AdvancedResourceLocationIcon.newBuilder() + .setResourceLocation(icon.getResourceLocation()) + .setWidth(checkPositive(icon.getWidth(), "AdvancedResourceLocationIcon#width")) + .setHeight(checkPositive(icon.getHeight(), "AdvancedResourceLocationIcon#height")) + .setMinU(checkRange(icon.getMinU(), 0, 1, "AdvancedResourceLocationIcon#minU")) + .setMaxU(checkRange(icon.getMaxU(), 0, 1, "AdvancedResourceLocationIcon#maxU")) + .setMinV(checkRange(icon.getMinV(), 0, 1, "AdvancedResourceLocationIcon#minV")) + .setMaxV(checkRange(icon.getMaxV(), 0, 1, "AdvancedResourceLocationIcon#maxV")) + .build(); + } + + /** + * Converts an {@link com.lunarclient.apollo.common.v1.AdvancedResourceLocationIcon} + * proto message to an {@link AdvancedResourceLocationIcon}. + * + * @param icon the advanced resource location icon message + * @return the advanced resource location icon + * @since 1.2.5 + */ + public static AdvancedResourceLocationIcon fromProtobuf(com.lunarclient.apollo.common.v1.AdvancedResourceLocationIcon icon) { + return AdvancedResourceLocationIcon.builder() + .resourceLocation(icon.getResourceLocation()) + .width(icon.getWidth()) + .height(icon.getHeight()) + .minU(icon.getMinU()) + .maxU(icon.getMaxU()) + .minV(icon.getMinV()) + .maxV(icon.getMaxV()) + .build(); } private NetworkTypes() { diff --git a/docs/developers/lightweight/json/object-util.mdx b/docs/developers/lightweight/json/object-util.mdx index 1a79ade8..de62365e 100644 --- a/docs/developers/lightweight/json/object-util.mdx +++ b/docs/developers/lightweight/json/object-util.mdx @@ -99,6 +99,16 @@ public static JsonObject createItemStackIconObject(@Nullable String itemName, in return iconObject; } +public static JsonObject createResourceLocationIconObject(@NotNull String resourceLocation) { + JsonObject resourceIconObject = new JsonObject(); + resourceIconObject.addProperty("resource_location", resourceLocation); + + JsonObject iconObject = new JsonObject(); + iconObject.add("resource_location", resourceIconObject); + + return iconObject; +} + public static JsonObject createSimpleResourceLocationIconObject(@NotNull String resourceLocation, int size) { JsonObject simpleIconObject = new JsonObject(); simpleIconObject.addProperty("resource_location", resourceLocation); diff --git a/docs/developers/lightweight/protobuf/object-util.mdx b/docs/developers/lightweight/protobuf/object-util.mdx index b4111e5b..bff0bbde 100644 --- a/docs/developers/lightweight/protobuf/object-util.mdx +++ b/docs/developers/lightweight/protobuf/object-util.mdx @@ -97,7 +97,7 @@ public static Location toBukkitPlayerLocation(JsonObject message) { Icon-related methods ```java -public static Icon createItemStackIconProto(@Nullable String itemName, int itemId, int customModelData) { +public static ItemStackIcon createItemStackIconProto(@Nullable String itemName, int itemId, int customModelData) { ItemStackIcon.Builder iconBuilder = ItemStackIcon.newBuilder() .setItemId(itemId) .setCustomModelData(customModelData); @@ -106,21 +106,25 @@ public static Icon createItemStackIconProto(@Nullable String itemName, int itemI iconBuilder.setItemName(itemName); } - return Icon.newBuilder().setItemStack(iconBuilder.build()).build(); + return iconBuilder.build(); } -public static Icon createSimpleResourceLocationIconProto(String resourceLocation, int size) { - SimpleResourceLocationIcon icon = SimpleResourceLocationIcon.newBuilder() +public static ResourceLocationIcon createResourceLocationIconProto(String resourceLocation) { + return ResourceLocationIcon.newBuilder() .setResourceLocation(resourceLocation) - .setSize(size) .build(); +} - return Icon.newBuilder().setSimpleResourceLocation(icon).build(); +public static SimpleResourceLocationIcon createSimpleResourceLocationIconProto(String resourceLocation, int size) { + return SimpleResourceLocationIcon.newBuilder() + .setResourceLocation(resourceLocation) + .setSize(size) + .build(); } -public static Icon createAdvancedResourceLocationIconProto(String resourceLocation, float width, float height, +public static AdvancedResourceLocationIcon createAdvancedResourceLocationIconProto(String resourceLocation, float width, float height, float minU, float maxU, float minV, float maxV) { - AdvancedResourceLocationIcon icon = AdvancedResourceLocationIcon.newBuilder() + return AdvancedResourceLocationIcon.newBuilder() .setResourceLocation(resourceLocation) .setWidth(width) .setHeight(height) @@ -129,7 +133,5 @@ public static Icon createAdvancedResourceLocationIconProto(String resourceLocati .setMinV(minV) .setMaxV(maxV) .build(); - - return Icon.newBuilder().setAdvancedResourceLocation(icon).build(); } ``` diff --git a/docs/developers/modules/_meta.json b/docs/developers/modules/_meta.json index 02faf06d..1f3fba9c 100644 --- a/docs/developers/modules/_meta.json +++ b/docs/developers/modules/_meta.json @@ -20,6 +20,7 @@ "packetenrichment": "Packet Enrichment", "richpresence": "Rich Presence", "saturation": "Saturation", + "serverlink": "Server Link", "serverrule": "Server Rule", "staffmod": "Staff Mod", "stopwatch": "Stopwatch", diff --git a/docs/developers/modules/cooldown.mdx b/docs/developers/modules/cooldown.mdx index 77e4daf0..16c48fe4 100644 --- a/docs/developers/modules/cooldown.mdx +++ b/docs/developers/modules/cooldown.mdx @@ -181,7 +181,9 @@ public void displayCooldownItemExample(Player viewer) { DisplayCooldownMessage message = DisplayCooldownMessage.newBuilder() .setName("enderpearl-cooldown") .setDuration(ProtobufUtil.createDurationProto(Duration.ofSeconds(15))) - .setIcon(ProtobufUtil.createItemStackIconProto("ENDER_PEARL", 0, 0)) + .setIcon(Icon.newBuilder() + .setItemStack(ProtobufUtil.createItemStackIconProto("ENDER_PEARL", 0, 0)) + .build()) .build(); ProtobufPacketUtil.sendPacket(viewer, message); @@ -195,7 +197,9 @@ public void displayCooldownWithStyleExample(Player viewer) { DisplayCooldownMessage message = DisplayCooldownMessage.newBuilder() .setName("book-cooldown") .setDuration(ProtobufUtil.createDurationProto(Duration.ofSeconds(30))) - .setIcon(ProtobufUtil.createItemStackIconProto("BOOK", 0, 0)) + .setIcon(Icon.newBuilder() + .setItemStack(ProtobufUtil.createItemStackIconProto("BOOK", 0, 0)) + .build()) .setStyle(CooldownStyle.newBuilder() .setCircleStartColor(ProtobufUtil.createColorProto(new Color(255, 85, 85))) // ApolloColors.RED .setCircleEndColor(ProtobufUtil.createColorProto(new Color(85, 255, 85))) // ApolloColors.GREEN @@ -215,7 +219,9 @@ public void displayCooldownResourceExample(Player viewer) { DisplayCooldownMessage message = DisplayCooldownMessage.newBuilder() .setName("lunar-cooldown") .setDuration(ProtobufUtil.createDurationProto(Duration.ofSeconds(15))) - .setIcon(ProtobufUtil.createSimpleResourceLocationIconProto("lunar:logo/logo-64x64.png", 24)) + .setIcon(Icon.newBuilder() + .setSimpleResourceLocation(ProtobufUtil.createSimpleResourceLocationIconProto("lunar:logo/logo-64x64.png", 24)) + .build()) .build(); ProtobufPacketUtil.sendPacket(viewer, message); diff --git a/docs/developers/modules/hologram.mdx b/docs/developers/modules/hologram.mdx index 5cc88206..db5ab913 100644 --- a/docs/developers/modules/hologram.mdx +++ b/docs/developers/modules/hologram.mdx @@ -88,7 +88,7 @@ public void resetHologramsExample(Player viewer) { ) ``` -`.lines(Component)` should be a string, or an Adventure `Component`. See the [chat components](https://docs.advntr.dev/text.html) page for more. +`.lines(Component)` is using the Adventure `Component`. See the [chat components](https://docs.advntr.dev/text.html) page for more. ```java .lines(List.of( diff --git a/docs/developers/modules/nametag.mdx b/docs/developers/modules/nametag.mdx index 679cfcf2..5ca13ec0 100644 --- a/docs/developers/modules/nametag.mdx +++ b/docs/developers/modules/nametag.mdx @@ -81,7 +81,7 @@ public void resetNametagsExample(Player viewer) { ### `Nametag` Options -`.lines(Component)` should be a string, or an Adventure `Component`. See the [chat components](https://docs.advntr.dev/text.html) page for more. +`.lines(Component)` is using the Adventure `Component`. See the [chat components](https://docs.advntr.dev/text.html) page for more. ```java .lines(List.of( diff --git a/docs/developers/modules/notification.mdx b/docs/developers/modules/notification.mdx index b88c2b6d..f9b506b1 100644 --- a/docs/developers/modules/notification.mdx +++ b/docs/developers/modules/notification.mdx @@ -41,7 +41,7 @@ public void displayNotificationExample(Player viewer) { .append(Component.newline()) .append(Component.text("Good luck!", NamedTextColor.GOLD)) ) - .resourceLocation("icons/golden_apple.png") // This field is optional + .resourceLocation("textures/items/apple_golden.png") // This field is optional .displayTime(Duration.ofSeconds(5)) .build()); }); @@ -78,7 +78,7 @@ public void resetNotificationsExample(Player viewer) { `.resourceLocation(String)` is the resource location of the shown icon. ```java -.resourceLocation("icons/golden_apple.png") +.resourceLocation("textures/items/apple_golden.png") ``` `.displayTime(java.time.Duration)` is the duration you want to keep the notification on screen. See the [java.time.Duration Javadocs](https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html) for more. @@ -125,7 +125,7 @@ public void displayNotificationExample(Player viewer) { .append(Component.text("Good luck!", NamedTextColor.GOLD)) ) ) - .setResourceLocation("icons/golden_apple.png") // This field is optional + .setResourceLocation("textures/items/apple_golden.png") // This field is optional .setDisplayTime(ProtobufUtil.createDurationProto(Duration.ofSeconds(5))) .build(); @@ -164,7 +164,7 @@ public void displayNotificationExample(Player viewer) { )); message.addProperty("display_time", JsonUtil.createDurationObject(Duration.ofSeconds(5))); - message.addProperty("resource_location", "icons/golden_apple.png"); + message.addProperty("resource_location", "textures/items/apple_golden.png"); JsonPacketUtil.sendPacket(viewer, message); } diff --git a/docs/developers/modules/serverlink.mdx b/docs/developers/modules/serverlink.mdx new file mode 100644 index 00000000..081a2dec --- /dev/null +++ b/docs/developers/modules/serverlink.mdx @@ -0,0 +1,281 @@ +import { Tab, Tabs } from 'nextra-theme-docs' + +# Server Link Module + +## Overview + +The server link module provides enhancements and additional support to the vanilla Minecraft server link feature. Which allows you to display important links to players in a dedicated UI. + +- Adds improvements to the existing server link features + - Ability to set a custom image title resource for the server links menu + - Ability to use chat colors and formats for button names +- Backported legacy version support for all versions below 1.21 + +![Server Link Module Example](/modules/serverlink/overview.png#center) + +## Integration + +### Sample Code +Explore each integration by cycling through each tab, to find the best fit for your requirements and needs. + + + + + +### Override the Server Link Menu resource + +```java +public void overrideServerLinkResourceExample(Player viewer) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + + apolloPlayerOpt.ifPresent(apolloPlayer -> { + this.serverLinkModule.overrideServerLinkResource(apolloPlayer, ResourceLocationIcon.builder() + .resourceLocation("lunar:logo/logo-100x100.png") + .build()); + }); +} +``` + +### Reset the Server Link Menu resource + +```java +public void resetServerLinkResourceExample(Player viewer) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + apolloPlayerOpt.ifPresent(this.serverLinkModule::resetServerLinkResource); +} +``` + +### Add Server Link + +```java +public void addServerLinkExample(Player viewer) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + + apolloPlayerOpt.ifPresent(apolloPlayer -> { + this.serverLinkModule.addServerLink(apolloPlayer, Lists.newArrayList( + ServerLink.builder() + .id("website") + .displayName(Component.text("Website", NamedTextColor.LIGHT_PURPLE)) + .url("https://www.lunarclient.com/") + .build(), + ServerLink.builder() + .id("support") + .displayName(Component.text("Support", NamedTextColor.AQUA)) + .url("https://support.lunarclient.com/") + .build(), + ServerLink.builder() + .id("status") + .displayName(Component.text("Status", NamedTextColor.RED)) + .url("https://status.lunarclient.com/") + .build() + )); + }); +} +``` + +### Remove Server Link + +```java +public void removeServerLinkExample(Player viewer) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + + apolloPlayerOpt.ifPresent(apolloPlayer -> { + this.serverLinkModule.removeServerLink(apolloPlayer, Lists.newArrayList( + "website", "support", "status" + )); + }); +} +``` + +### Resetting all Server Links + +```java +public void resetServerLinksExample(Player viewer) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + apolloPlayerOpt.ifPresent(this.serverLinkModule::resetServerLinks); +} +``` + +### `ServerLink` Options + +`.id(String)` sets a unique identifier for the server link. + +```java +.id("website") +``` + +`.displayName(Component)` is the public-facing name of the server link. It should contain an Adventure `Component`. See the [chat components](https://docs.advntr.dev/text.html) page for more. + +```java +.displayName(Component.text("Website", NamedTextColor.LIGHT_PURPLE)) +``` + +`.url(String)` should be a string that specifies the destination URL that will be opened from the server link. + +```java +.url("https://www.lunarclient.com/") +``` + + + + + +**Override the Server Link Menu resource** + +```java +public void overrideServerLinkResourceExample(Player viewer) { + OverrideServerLinkResourceMessage message = OverrideServerLinkResourceMessage.newBuilder() + .setIcon(ProtobufUtil.createResourceLocationIconProto("lunar:logo/logo-100x100.png")) + .build(); + + ProtobufPacketUtil.sendPacket(viewer, message); +} +``` + +**Reset the Server Link Menu resource** + +```java +public void resetServerLinkResourceExample(Player viewer) { + ResetServerLinkResourceMessage message = ResetServerLinkResourceMessage.getDefaultInstance(); + ProtobufPacketUtil.sendPacket(viewer, message); +} +``` + +**Add Server Link** + +```java +public void addServerLinkExample(Player viewer) { + List serverLinks = Lists.newArrayList( + ServerLink.newBuilder() + .setId("website") + .setDisplayNameAdventureJsonLines(AdventureUtil.toJson( + Component.text("Website", NamedTextColor.LIGHT_PURPLE))) + .setUrl("https://www.lunarclient.com/") + .build(), + ServerLink.newBuilder() + .setId("support") + .setDisplayNameAdventureJsonLines(AdventureUtil.toJson( + Component.text("Support", NamedTextColor.AQUA))) + .setUrl("https://support.lunarclient.com/") + .build(), + ServerLink.newBuilder() + .setId("status") + .setDisplayNameAdventureJsonLines(AdventureUtil.toJson( + Component.text("Status", NamedTextColor.RED))) + .setUrl("https://status.lunarclient.com/") + .build() + ); + + AddServerLinkMessage message = AddServerLinkMessage.newBuilder() + .addAllServerLinks(serverLinks) + .build(); + + ProtobufPacketUtil.sendPacket(viewer, message); +} +``` + +**Remove Server Link** + +```java +public void removeServerLinkExample(Player viewer) { + List serverLinkIds = Lists.newArrayList("website", "support", "status"); + + RemoveServerLinkMessage message = RemoveServerLinkMessage.newBuilder() + .addAllServerLinkIds(serverLinkIds) + .build(); + + ProtobufPacketUtil.sendPacket(viewer, message); +} +``` + +**Resetting all Server Links** + +```java +public void resetServerLinksExample(Player viewer) { + ResetServerLinksMessage message = ResetServerLinksMessage.getDefaultInstance(); + ProtobufPacketUtil.sendPacket(viewer, message); +} +``` + + + + + +**Override the Server Link Menu resource** + +```java +public void overrideServerLinkResourceExample(Player viewer) { + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.serverlink.v1.OverrideServerLinkResourceMessage"); + message.add("icon", JsonUtil.createResourceLocationIconObject("lunar:logo/logo-100x100.png")); + + JsonPacketUtil.sendPacket(viewer, message); +} +``` + +**Reset the Server Link Menu resource** + +```java +public void resetServerLinkResourceExample(Player viewer) { + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.serverlink.v1.ResetServerLinkResourceMessage"); + + JsonPacketUtil.sendPacket(viewer, message); +} +``` + +**Add Server Link** + +```java +public void addServerLinkExample(Player viewer) { + JsonArray serverLinks = Lists.newArrayList( + this.createServerLinkObject("website", Component.text("Website", NamedTextColor.LIGHT_PURPLE), "https://www.lunarclient.com/"), + this.createServerLinkObject("support", Component.text("Support", NamedTextColor.AQUA), "https://support.lunarclient.com/"), + this.createServerLinkObject("status", Component.text("Status", NamedTextColor.RED), "https://status.lunarclient.com/") + ).stream().collect(JsonArray::new, JsonArray::add, JsonArray::addAll); + + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.serverlink.v1.AddServerLinkMessage"); + message.add("server_links", serverLinks); + + JsonPacketUtil.sendPacket(viewer, message); +} + +private JsonObject createServerLinkObject(String id, Component displayName, String url) { + JsonObject serverLinkObject = new JsonObject(); + serverLinkObject.addProperty("id", id); + serverLinkObject.addProperty("display_name_adventure_json_lines", AdventureUtil.toJson(displayName)); + serverLinkObject.addProperty("url", url); + return serverLinkObject; +} +``` + +**Remove Server Link** + +```java +public void removeServerLinkExample(Player viewer) { + JsonArray serverLinkIds = Lists.newArrayList("website", "support", "status") + .stream().collect(JsonArray::new, JsonArray::add, JsonArray::addAll); + + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.serverlink.v1.RemoveServerLinkMessage"); + message.add("server_link_ids", serverLinkIds); + + JsonPacketUtil.sendPacket(viewer, message); +} +``` + +**Resetting all Server Links** + +```java +public void resetServerLinksExample(Player viewer) { + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.serverlink.v1.ResetServerLinksMessage"); + + JsonPacketUtil.sendPacket(viewer, message); +} +``` + + + + diff --git a/docs/developers/utilities/icons.mdx b/docs/developers/utilities/icons.mdx index 4c01099f..449151b7 100644 --- a/docs/developers/utilities/icons.mdx +++ b/docs/developers/utilities/icons.mdx @@ -61,6 +61,40 @@ public static ItemStackIcon itemStackNameIconExample() { } ``` +## `ResourceLocationIcon` Builder + +If you're using a custom resource pack and want to create an icon, you can use the `ResourceLocationIcon` builder. + + + The supplied resource location should point to a texture in the resource pack, or the path to an `svg` file in the resource pack. + + +```java +public class ResourceLocationIcon extends Icon { + + /** + * Returns the icon {@link String} resource location. + * + *

Represents a path to an icon that will appear for the player.

+ * + * @return the icon resource location + * @since 1.2.5 + */ + String resourceLocation; + +} +``` + +### Sample Code + +```java +public static ResourceLocationIcon resourceLocationExample() { + return ResourceLocationIcon.builder() + .resourceLocation("minecraft:textures/item/apple.png") // Resource path location + .build(); +} +``` + ## `SimpleResourceLocation` Builder If you're using a custom resource pack and want to create an icon, you can use the `SimpleResourceLocation` builder. diff --git a/docs/public/modules/serverlink/overview.png b/docs/public/modules/serverlink/overview.png new file mode 100644 index 0000000000000000000000000000000000000000..512543fef9d6efde4d8f4e513e3cf852136522c6 GIT binary patch literal 108691 zcmXtf1ys}D`@f9*|knRqZ?i$S)BHi8HgV8Zyz=T3mXG?1@bl_7Wnnp zT~l8AQRN6V9C-57=Do`MM~`Y^aqrA9f#=U%74+R7J;ML{@8@x^OR?pnN9Y33hxgh( zCJ3l+o0Y65(ipXL<28wg=fU?aN_A*}P=hf&r#LOV?o@-Ac#|;cl=(H!k5e9dlE;ZG zuTT4J^V1zMi3RYBUkHW|z530ITzWU@vD$tva!d#FN8V=})Z5QW+8hUtG#jsuZo9U4 z9eym+sWA4hSojNi7MAkzRmt>8!MLq!^S2?K^L$1=ryrH5+^zr!{2RR5+3Jto2JnA{7>m-nLwwgDL6Qv$31k63DRB-MzsVFv=k+{k zYZP!9l3%xmQ;Xn#vzI2slFd!zE#ZCGyCm#-m zzXmVrFi|pid6dF(n<6&h7Wwo3TS4{tXMblcb`T0HB!B3k0Z!V=S3&*4{Zu}kalg>D z=tA@0;6OS5BgQrj12Y#1X^z~djW0N1yf-ur;}83=wP@ooc(v6sPj2^Y;9ZI^%f{S?wv4 zyLjZDZ3V2tS6XcMVaDJoi0bfbXJIx*(H^HrGpCMXhlT=paS1AKyZ(|hq5(hZwK?_# zul`@UCMH@{Uj_viuHdwEK|9YFqcBo z@-(W*i??1CZfdC*hJ|Im{Ca_Zs9Y6PyBYhY+9YqBbqph<`NLwEnpuWreB&=B(AkJL zSMG0v7!iZWXw4R;9b2i}^t`>Bw(ZB4>OR)Bdha{NWBkcw|Eny~fDDFerQ@2vuJ}Z+ z^V(_ka8c4LLPLh3>ZI-R{Si%+oqI_h&4T#6kn+(qBa2gM&AUZf+wly7 zYqpa<^}I(a;cc}B zw$SdOCJDoOWfTj_D{wYVdg>9VLZ_Sp7un%v5%c@wA-z>D@6ywk)sKV@-6ABiuS*=$ z2AvCdBRyF#y`(@1(jV%jyvb{c;)LjJO%K&YN!%f7dEwQ09cg)lB5YQ|?}EdMR7U;c znYO4k5PG|ci8xM8t#EB@&67PMJC4I#jjSZ6%1$m~x9X6;-{xM+-k6}yeZ)@XD?=A` z1+Xdvryjx~G7LQO8oe4dJXmtD7g(&H`m*FbPT1;DZ1yua%xWF+yh!UFjKE559M{&H z$#()(Ctrz^oL1!0xeYm{)vc~gg8zHMs%{W`Dlazaw{o2qQh?uD%yg#a`!g=sHvPAG zj5O=jOUFsRvciHoYs(lx<;FEvJ8aDW??Xfnir6I zE;zVH$lt}AU1c3<&;Ka03S%3%uK4d^We&%7KGYe*sDN@6`*(ER&XMYW>lurO5yO=3 z{cLciEt~OBdZ-*lPycpM`X|gXJv_0Pg*@>>2ZkN>#mk8W6X5(e>-=CcCUs9UCpY(Z zXs|<-H={JO;JjH?bA(LfR$1S9^&J@$n3d?Qn&htz-ifNfEp$axB-mG-4C+iA{Odt0 zky>QSWbPy)wcUywnMYF%Kiz$Ohe8k``*7i`tRG4*-VZR^p>*rSR6*?;6I2?w`HUm! zATf*hDSNBYkqZ6tdZ?y>7}8s2NMlZgp*zPrGTB-=Gw2{M;i=>4A7po<`<_TYSLG%{ zxUm7RyVTzN)kQoA)rjYnbrz5}e4Y0qnKPp8eQCIUZGNzAqMVYJo>|d~ID`V|LsnQM zGpDb_?Sst=l0{rdD(!8G#ogGu{O=*3Z3QTyL4`xI0;lpX-ir@$1w%ed#*t8skj)>w z+R1ozX_rZM!HSs53}XTUfO9|F)cv>qg9hVT3C3vm@sv%d2c+nQ|_EY>Vgyd^ju6#O~*B^u(Ip*Zfx=vsD zaz+Ic$jYWSg>{S}z1bmzSs^E{c00`8Aiaoic39R>tHLAujfg&(C(fz*XKZtFQk9w_ zlT0^!-7Y$-@AO`FWh8=7vWr2l!-K@xbwjb(*YyUt{`JIO5D^DbUQv)zL&8?zjbb^Ie2Y0@4~7xcqhulOG(k zz__2ijszEk!4Qjd!J-nfC_4@9a`mLF1l!@$m%B$?C}qNJWqtfoJF6VGXtH;3C-1ip ztgbx-zj^5@zPqW+GKR7<{;W|tpB&K_WWM8%V*;(D<%Q(6TWvxtqVu7>1D#IA|L+}n zza%g4Cncr?z7AL1DVD3Zi7p-eA(}n=6QfknyM9EQz1k3@M(*ue!A;&>SwgZM9g_Cu zygUxswIn_CICD<+G1H-uiJc4fogD73V!dCiB35JV$yp?xPwkk}{wftRZ3?q3nsbfG zmTJG7eo`GS9XDg*N@Tmgg7Y3Rp<{Q*WK85n>-Zkpb{Wl60adQco^;CO`@*k{3n>@Z zDi0t8`YyuCgGCo2+P0v)Xn$=ctWczCrh=!~`B=A#4w|NJr z>9|jx_zwTB7fLIDTzywv&(~=b@_4eXoL`WW29b?1&*Z4bRmCudcGOi^g9!T9PBdGG z(hMrdgfmIRdTY2ahG+4eU8-?pME8GTg4 z_-ZaMR&{i!kMDP!L)7`F&vsUmw!+EYF~Sb7DC<6BGnX$fdRwD2!U`))L3q7=n!i@v z1AJ^0U_Y|H?RAv|G>lY29czCG1vcDNPrIQnh&W1zk&cZjg-xXk$i^@4wOX6f1X zg2{UI_aVX$S~>c{^GzP^9z`N&3JF_dGWa4lvMjKTRMUsA<134>M;vpMuJ3Mm(PZjg+LJJK3rHaD=N(m9+PhK0 zMh(z*lU$d}t6h2nVQRM=$NI~__nA2PKKs`;2B2_75$qJQV%loXV>_98CBFH1EXLS# z^NO8D*@ngKu1yIxP=clIV5xf34iOBVkFOI53r+9LerN4~@>95AVJHAwC+5t3$Aswc zgR2MXm-*tw{5A+myiBN<(__VNZ*TEM_d0Z;XUV-Z-UtnO8qX63tg0pN)%A5VTVXLV zF&>`NsYx}dvlGVEn-TB!n+g}FrE0su8LrFQtPbrrs4s|YQQc>AlOh}S;@q#?v8QcD z-`Rwg;{T=GOgEM|6ipst`uNU%B4v@EazD;0y-y^ZO;at>v7Yq#gBKU?^w|FOu3ofJ zixn{^m%7B4%8+ocxo+9^K1ODVwa9vdVlJGPS4S7LxXua{Rmr1?fgKQ)LO4H7bzTFh zB~Dd>_DA@Wk#qHD<_Ph#;GJh9ZYtqePUJRs>vY1nyLw_%&QlKc3nwQhJiXMHtuRz; z)&1e>fvs(p%gB|_Pgz>yG^OUhaW6CX=!QYqgeD_Q5^m(N?Ds5rLX11 z`+XaO>q?ie#M7~)`#jdujhDq(6|Fa#q4cSXZ_~LAE;IivDx-mI-X8b)16j6ZsoC^6 zwoYuNVAfZP_!`#Bcr{iS81ij#=p^nr#yHa-=;C!Kuuk94Yl$ zJogFED`mmM71t{B$C3p} zN@5vUiw3ZkWLxDz|NM)~OM(Tfp6{8AP!_4`pl6R|oJlsx^1gJi3A&{Ib@1!hjPbHl zOo0cWtYa)vTnS1#FmId`1`!HoL#y#exkl1oI!m1})2HX6(vvf*Ib(MXGMQfx5I|7` zE0-*Ex0_mO5?1rI65>T5mM2f{!)V?1YPbW;pySv5YDcMwO)_Ts8=W;4ei+q`2c;$P zd8Pb6d0yMd6?=8PvF)t+76WPSD*2Y!Hp(fil0>vpnHaZBzLS22?bzuMk>n`SjGbCo z7S_h`kyFnce<4~t4I|X3QI>e+^@8TRwbX_&E7;D%PX;M`yCBT0R>HPvo*4a3i9Rox z=t6qT!YO+J^o9y9gbr*ur?a-2fgwV1S{yRTd)``QP=5x|GQGR48x5L0zCQv^U7clr zLYo;Dgpz{7q~3meT%JZiSop0t|HaVNVPayU(JwnJ&5l?Ld5fj(+7G|tkpfJ^&n`Hl ze5<`af>=cqX*WTwxPi`!8cXGX**LwyuSm~5Z|O#Z%A z*YNH;-E;cM&%1<$@e1c6{Znt%RU>9Xyi|=lO6*H>W}G8TAA^Omy=m_lk?2h?!up)ZRPnf?{f*b0Zv-7)%J%q3_t zGe%@*k5D6c>2q&3aPZJqtEQ-hnF>P|mZJO|P=c`EHYEx2xuG_n*}058&hB2*cgmGP zTH#d6k<$Ux9$p_JwvNk&q59ILXEKX@{N?bUci~#TB+s1d?W*E*ct019C+NirXyRxz z{rD7I%7-h>OqmF0VB40Xjj|9n{vM?h{`rYK|A(@78e}65`-gGAO2G~(7!Q&o*`0M6 zt{ZlH^|~*yu~7(b4@x_E!xMYb+S?Z*pvZ?| z^d;4?|EhnC=vi@rQmP&)6TIwib*H5Z8DgRSAQ&s?wqNaG7;p7{Wh7f{g2hzx<01Yd z7Z_Q?5Bt{+LDf-f)HJE;-vXD9b~R=2@%k?J@WyU8!Jg%XUykYR`FV}{-q=curkQ4h z$eVpC;BmAcw55;n!U^eOJe#cxTmvXh-ET;zqa>w-cgg;Jp?)^@sg(O; ztoy!kV&9dER58CS$M0lFrhC07b~KA6#Eb3x^xmn!8aG;za$~1x#`QK+mH|iTzgL7a zxFvQ`llS6HSk^fqAu0Qeu_Q&~GIAVUma6Ls|CYOrg;&qW{$cuc`Fxky&!FzDx#9nQ zCKMT)#$Kq<2IrXYXYW+l`x!bLRrnln152gweRLRNr+PCYJ&X_kGd(-&-FeyzMc*I$ zk4LJS)UTFGq;fZw3D$WYBqEpmN3*?GF3)q(8~rS~ZRlPk!3%tGr0?jW%XH~qd@)3l zmdRZwdHbhhQVzs&#(cwJIv$l^z-}nj!?x+eWsy|i+v%n8$Gbm;#hA;Q?ftAtclY$9 z$qSWqt@4V^@P<2oVqfyE)0BVHpmHdAv?&#WvRuGa8M4y9Jqi-X`KH{TPRh&1jyUl* zRz%?}`aCt*xtwx*4awoj2vgAV;5}0?J5VB}`JT?{s=nxrB%HEiO;eUw9y%^i&FHb* z-=q*j98d_TwYJm3GsQ6^psu+)8m2CT(JK+ehw5%++HPAs!op3fL1iY_Uw6?D$FPF} z?m&30mH%9FxN)nO(_Hm>W$V!c5`7&TMi*p>x;hl|j!{ul8yy--V}c(a(@|1V)6gtC zj7pfEeBFiJsJMv2^NDpU47T;LOJ)xY8ys(rknLy}^p%SgYM#5nah{itZ*%X9yLwi3 z!gPj%pE$9wJPWD)VdZU(QnZIHV%^oN3)jn)HnhRD6HY~6GMy#*Bv-lhCxx*!HU$n= zAJX=ys06MPqGx$)B8F2Yj467!Qx1OxY)DF&4`Gp!CIdM3DujWR7hfju8E|5s6W8YDU_3KTO zn*rUNpoJ1ZCEVBY3r@|gG;BPgLZ1(FRJHBr_#Z8c2wKm&dJZ^wK?^-(Sw_a~SX;~5 zfff*m=+ocpE_vZ9WEQnUp{yMzd#12K!CQzK!uKh- z)zDfE^z7{HtbdQ&yIu6^D)`8qO3)GF@M!$0@NF^UDryCp6?o-=4A z1t&Err&$FJ4W|QQ)ffz?7_m%FUo^OIWDQZ4;AM_c-~|bP85H`qM+{?+N>!cS1BZfwRzxhm6JzS zaq|&8!8ll7gSH9Dmmsj5<1Q9s`bkw6K7hCsgO}o# z?AIyUhXMrx#P&1iNV#NupZZ;lMz1KoF8@`S;8o5wH5wtc(>uj!+JGR1-PL-xZyr|p zFVD-<`gSESD~Xf84?2wuYlrL%=C*I~nci)X)A`v-;*Z@PaPs%OpXUw6%ziNL^oro-36 z8XvX*?T8VpY_R-Q@eFlZZYKEOZ|}5e>0WwVCDme-U}AGBi$GUIU^zr{jucMiKdhz;`CZMi(Ku_@ebXy$zTc1%jlu!=c|$h z=TYRxex3Xy{l7g4@B2HxFCGjXF*$dgSdb2%ROTYGt{>y+lg<&8PRtbdc}g~6RQTOP zFIyK&{4WbfYDDjWCUb!z?fpkh1|O^^Xg(HAIs#xPj0qD^xAtMwZhbE38JBGL5!C8U zOyhCgsO0_qy$+3f)oiZcehJ;mL!JW+vV&`Sy#auj2fk79Nd@qbtU?caH!uYqqbL^Z z2P@S0)La&?I-U^RA#9`;+XMZ1#NME2SMH~^ug{RLB|hvzFns`%&R6N|dQ5+K6Z~&0Y*!>e2>^=~lDZel4cHZ1 z4cdyAFFvHSh)U1MXt~XBkh)ukU00zWZh-@_eD=ej!fWe4`G5^#Fw|;r##HNv_ zVg}(DxO{uLih77{ygv#1R}TNlQ}giiTk2-m0PS=yFIMuPTvrP1JL zr~mRt#SMxy-4t-EO6V5wYx$M!IL^`-L0P-(xM<^uW(@-~ewDKXwxYNvY_msPkTm^y z5m9*c0#!yoNoBkj(~<;)xGv0fU4=DU@fZ_7HQg+CM}V~A+tJPra{u7K|APUC&wQdL1wFh1PSO~6Pz^w60PhSRzr`kp31nZtAc;btI{)b) zCjOF8r$xR|N0+gS*-q~Cf;pswuuADBf64#f6a~%Q@vfbxfm5n0s<_`1y=Uw@3kZmL z^)c&dHCc$ODB0fM+V-~7t7kliTbz7e{*aax(MtWrNG!nf>DhlqG#cZa&lAEo8$6ys9cvIlzT3!7yPgb)`yw>9U3YpIk=lfK0G`; z!Jk9_Q+zhUcg3$Kv5s5O4`D!0jW~Yx(LmXbpVC6iTk^UtciH27m_X{R4}m}ceHfCd z78VwUTm{26W5kYtAIV}Vb9d-UF2oPi&=*0!EA4hp^*{ER*PN<wUOT4~$W<ASasF_ZZF(l2nbP{n)2cNSwW&}K6yGA9-}QP)30te&Bh~(Nll54UcRkh?Dy_V8Tc}JixFXiri@9$Nv>9{Yb7#PzhPZ1kq zHY*ql?nSi3B|WF&n?DZ<^(TJS@fZjRIAteSyrK5nW2h2C)x%DyU_qTfSOCPLyol+o z8?Xr!8HZ`}18_!s?SqoP9tcrJ8*qtiGIRTGQkjBp?TRF!hv@+0E^5C&JmxQvU!8uW zH2%kF(brYCchK~qR>}{JGC7SfHEEf;=hN&-OHWTf9F_E+HTE_J-|Nnn-<-`5kvpby3WL|6X*XUigM-EgwAL2W)u22q=cahcV05&G)RuwWZ<_b)a0-Lt2 zPTUbOV3N=UUT6$n&B>I(fYK6LbsJnb?W6uVp$66h95TE z6-F$l#|6cYwFSO-m$?{{1s6e-?`{|QzJ%)bQR}-&r%aw{HoYUBn}?1OgjDbOq7~ zR*8jm=aSFxDt6Y^)`GEUPbTukeQcQH0t9}w2)^j%&;cJEOL?Q! zXaSWrtCe?x(|2@xFz9BR8~ks~#WcbWfw_DH^j}(k#A#V&`&BzCC~M~Z#m|zdr?VP} zH6~DkAN1j3QVo4kBn3qs`Fq7gtBfiW;Ncyv8=zmld^u;63yl>&E6$4%wO?-WoaCFd zJLcbf;!U364T}9RI;K=!ic3TqxRlYfkCmOp%R%@)7W274nq#2HoxiAIHm(VjeY>+n zO0Dz#_o*pQ=bK+g%5EMESw_6Z5^n8nu<$ajKLgvfN^)^j^z79lPMwP01WB9n4k7PT z>y@6TOY?H>@KTxzj8&36g8df|AwcOW*}C)+rWY&eRt5Pm*=0ekBD6-5hP03TD3uH+ zdE*}@uk^1Gjfm{t!`yZ_AYbxKs??N~#joZzXMtj9gk5GY0!N~&>w^|vg19K}S*7>= zQESk#cP_GRw=e{d?Sv$+X6az}@=~>&JKFuvJd5Q=RzURPPUi550&dZpd{cC^DY{}d z%d?Lm41fu?6|u3g;6n#fG-CB(nE-tKcSx3Um$fJmlBsUsk)TuWSJs@RMZCDCLlevV zL_1l)<8$dkhYlx!Cf@5YKc~(oP6RDHzf=zv#-;a<-x@0z2D4M-T^1Xk^2+-HG&U-B3zhlZ+CYb$`C40#5Cu^R#8!r0RF{c zcBRGhU?x#b($2?6ul3vmsOFnd@XC1(Y62S6~D-c3icCaf5;Np#dZ(H zq{Jg`8u{bHfyL#f$7=sAphbYV)@D7Dnrv)UVsHIBLTnY&rpJ`10Ft0&o%i3Isp(b? z{i{iW+Kk8P3%2i~U#nnzs9(y$%*}~RfEUh>;6^_SrN_ieOzae0q5kUAWpDEtZNh#C zGCb+H0WSzdo$evZtCmacKGITB-X)ugoHK%NcEf1AimzH(78{&UBLEG!L!)+K_pLD4 z{gv31yjo(uPFXgfb^r~=-xS?4do+KCeKf<8d)L(~n|7PMeTden}X>$a9-AN881nBL;OqZT{p^|B$T?csL z)>fiw0HA-k&*)bzc&`RlIJ_gc-}uEHbQ-~BxIDUK!0d#GU(_{`vC_Vm0Xg0Da!o;;E&jqC~^{Fy~Mu zv3h!izF(Mqm>EdsXnx&vKGOPtaxh(OIHV{^c5I=cuh1!@aUbGg$@SQ{#iJ^$m!-5Q zEV9W7yqcG%^SuDjiD8X-caHy|057jOoR6R1<9aU`+R{}}2$TWQ?JhS~Z(CmDKQ zU+X?C+!^(*VihCc`a5z&t!@FAr}qx#>+q&rq9Btrrv7ZTWuMIHw^<8j%nAx=SVrOq->><%4%=mCu*d|>9I4XbbbF@Cp%jAce%P2N z_*-d~O>d>YgwRK;44;OP;6q+7UG8!#OxyRvi?VNlhPc8IM$O4A4p5g2Zd31mn>Vey zE2!5uTsy-*XF-5=$a~kX7IZi4;CXZ3Q|y2b$^cCg87l zth*yffj^>Jxl0jR_CF3(le|gta(|PSogKIZY>dxZa59JP5e)sHlp=f-Nk>Big%@TD zIxkqdyzP0JczpD{pz=K83%lObQ~P_eG$HHHM7vWuyI%T4$}L46)#l^Q0@dhcUTL>f z`c|VyOp_F@`CInT%f4@*s$9F&%J)qjj(`r)!K42v(j+21qfRuLLC^t-f&X$_Zal?K zMHSb-pf%rSqhUkVY`^)D_J0Ke>mqt5E!6};YgwtVJF7FIZ#+BbhkL1joryuf&2e#Y ztqGW~g{aHM zw@$(Nv7s!evh8i+(mhTG@`%tb-Kgn>Cg%gneHzbqJadmTr@c`%;rdBTl2HZfRqP4z z3*GbY^uZHf2|EQM9JS>gWI4POr%N2|9t=CgGtV^Du{Rba>O+e+7nR;0C4|!J_!2HC z{LuO0NYiKWUE~tb`U7Xm2qZ2D%L2^JH}=b_pop{4N>kXMg)K`TpKGC@dtIsPVE2E` z&9_taW?>d~nn$0V>mbggmzU%92E~)E3qu_`0?ZMRhk;RpVNKd!=H5xEL-ubuWW1gVgrP}VVTmm*Tfp6<#YD#O-->Qr5b#yO;EFoERVaPI{%VGQxk0mAtONq-b2Qg{4$$R*H5RGv zyt;aWL!cvHh`ajFnS}vVz{P)FX|!4hd%rSQzG~VYpsuF>TD9-6K7ej>>pwD{u==|l zBm$UbwnEzG;;*u*>ay43q0s8tw;CRl^~61L6%7Epv$jZX?8E2nSsqS98t+!Us0PHW zY?DO)^DS;F>ZW;VmcQ&!7v@AeAzL!eM=DzU=cr83qRpZhL5I5FZCRFFadB}+7ec0CnC@3?GfT@Y zx`$KuW53zs_De1o$@>efOfT2?vRLB8#Df{`r6Pbx^8LksDEEwYSsK+qld7+McME>o9^5Uzw#zL$_R7Z)_2eYQtgI$G z$_kc*InLKw#E4ki_O*AMZfU74U;U*sKL!Ny`%IvjT@%NkS6xuqjqR7ifXF2@tDLX} z98w8@t_7a_!TQ{s`#psPxondg`!FpZv^}I-u2-|M_KhHD)qnN8auu}<^!r|sLWb-K z>{yYGi;JOI*h93TORHxR_ooG^M1Z->-r=# zSxjY!!u;RsL-`x0N19{@7rN`RxxB3XB2>5Cc}$?t&`_ja%amWKRc}l-AkQB##){)u zrEu!I4X_n)8rNEGmnH*fuK2Rt4h%+@nckNIBK^`04)2dPz;^PvK4r=A*;@}|dHq_* zdFlGxR2*{I&ywvT>=d}KoM6NwKX5TL)PqOmeP|y69C`yV80NL!ufpwbO^+>19h5?D z#=5lg(PU0z-s(0X=5us&Y8AG>&O6Zak0v|L$1doN5aTI!%!vJuqMkXG9cSC#6;mbE ziGWl?cQSI-W!feCa(~;u zrK(dQG%O62u^T*`DP-DwJ3w%Mni~Mv(WpNQhE>fw3&%l7|50bKVEwyH9{J3iYKz^G zAN@PIU3||B=4Ibd-fE4lKW&(1i+C<yEWp@r^Txk|~!e^dFk1d}XO5bym$ zlr$MjrMnC~37pd~UU%}94dze)lpi(QaF4fYI5F_Jn5YKeQDxg%h6{K%l-uOb3 zMzSs7h0IDRZTlaq#5bc-g~1Lh{k2wuw^+B$mVSPIz@Ye7VE;U^15Siyoy#%wxAk6z@(?j=&#`G ze3e314!zkiB%Bvkvuh%sev_P&^O<<_dLIx ztz`>R^xNGs@9~rQ?d>&@%@jr1o}pLysGFUyFTc*^GxWWx{xNHMdQk3^E#;fziAa4 z+YUC1`?D9XKyM*lzCjqKA81s6xVtU(Amfk<{cU*qmo?HA+3%n4ejSQw{4|t+{ajcx zX?)<7CsI>fa$;GV>}%5Um=QLStK)6~q?uk}$Hf207og*u`U%JNWLO9o`VSTzlWyC= zWeb{KYNz>s+VZ0N=r(|kBcI)p=Wy6LAQmJKL)5-XF6b~8Tq^}JtH6>u-R25Hw4@1t zYFZh7uuD`Xg@|$!hD)7E#?!HViwLYi^wAd}Lf4>H!mbp5zob5|_ zv5RZDe!o)M`C!c%bT&Q0l>JBMb-9ACHX=Kj>&wk()8VAyO6HXP$e=0TDP(H>pWQhRLqA5ceLvtO!9j8BP#-DdLWh2mX=o`Q=6}43^L~^9C)KWKO;`6 z2Dj4M_}otT?Wvksw^kCEgl8qaXqUH*{c@J~yAm&Ij$`P?Db}MaLP`fwzdI0!v@89u zXB{x!fpOO0+A(u*Ikeh@jO(FJ7AYmBV1>v8{~i#XPG)M5=AA|3SXTbB=hC@GEO(9@ z3t#$4Sad|}yY9-wIseuw+8xMA-j&o@9sUZ>jv_pj=K=wNoHXc_ftd^br+r z{z*P*<_NDu z(LiogphMr=%8g0)1;urSa0I26&)m_kuDk;IJ1;cw&TQa|M=5WN&j8Iq`2J$@30B!~ znha%~NmZ_E=kxbf{^Y2JFMMmP;~_1%)t`?^K0bT=v0?h7_T;Hsf!L?fmFPUe=Nkm* zC{v#=03gGZW1zLf*7S)j6?Rh`Yi1>~NZ~Ri^VreRYY(`=%|Qpi=u-Z3|H8xryDEe6 z@@@n*dE*Bn@#CzD6&RBIKM)^|(x&&SQb1OV5lt@!aPvJ;WXe&}JMl%k_QlUfIb!W^ zSz`-wesa|(S^|NNXN%$D|4e{?Gf$o_Fo`Ux;c`pi>T%A$O3S*5(0w7c%9#N54t6fACm(zn>S!CB$(W&|HZHo09-Wp<}U3uGuekobxRHucy6ulmN~I5kZb4O+C)&+ED}#XWS2W z=!aFA0N_&l!&s||Ktx+?=|Of;--y@Ofsp|&)gq_4hFVv} zC%Ou)mXf17zmwPXr#u8dDIfo>;w_Q3@ekB=Fc-ppZ(t2bAW?iKXIL zK(5?6i97iHV-3Jt0heVammIKL4*x1Wjk4*hRWKTGAkVp6g3cpVB|)uw#L{N8k!9k> z2(CRlp6tV?$=S(eYU}I=8P70cj!s{Eka{ogd6`G5AU|@ij3q-DBaOhb(%h!jmBnhE zZj{h=7jNH_+~990X2*oy!R? zzi^ZNbZMfh=&AAX?ec8){Q^POxx7u*X#!vdEL>&)_EBb|=rw|?75`&GhmOZ` za&jiOKpo$&VF9TK$+NayiDQ~$pWYDiEc8Tbj@c|3Ae){3_|Z!T-dI5e-9@_uSODgP zSG1zSNy0!URxu0q%WXln?i=Q8Y~g`Se(5pQ6B>pO>E^1WZ~cOIa|G2Ejfp}$wsN9I zc#+O=XTv6IY(~Twxo`SIc9OXLO6}9O;7*ILdwT0tw>N%1ApmH`%1N;MgYA5+)sXVC!iMpz);~7Jjz_lW&3P}e}m-5!^v(d>uGMrNo-L`kv z@6E^Zy`-O{F=CQ7Vj&kxT7Te0VZc4KhExx=aIJKLeBh$Yxj}QV+zPp{xhFbO$`DaD~;W+fU)M^_b8%o^nSpacOHSwCGiNQB$Kpr%k zbuWO`GwA~{D53V#VdGY5@JT})1Gk%{|3Sfr5Ye3ciMFz#7(I`>fYr~KFR3McCE9;( zsxZhgsEY0h!2{Kjx0C7(Drz56$OH0+XsoUHwbij}EqX^Xom=4PHaRsykUuxOxu_nY z_8|B~^BQB_IlvUaXk>2d{S_Vb+#7rxdK@sjz;1!B?!phmUEn~hjT{g)uLL7sy_mM; zkBAj9kn<{Pqc5aaJ6AXE&|r?16F5&x^dLJ-!ca!_>qWNKzoYyLDL>fAs~ge&jIC+e z_p!$#E0KuYV4-1xSgm}q%_`D(;n}F~hD)?<7a1{P>l@ z&-?I_Pl_iMZ60G#KjEivi~-#D1`Q)A6>83N)#GoRzO}cv|0^3P5XM>z+T{XzrOi$U za7CgQQ1<@;&6sR4jfuh^2}hA4C!r88Qgg-35a0uM$S{-=P4OC*m8fC}-!jBoHcBag43TOG}#I?M!suZ)ff%88DH{DkKe#YT|%MN1uUulXEc1jZu`t095nhQL8`+jTRM9VR{oBQ3uoiYWTaHyU_ReS^rN#QvIVsH&Vz?+%iS-`0 z7fhlX@j_UU_N!Z99|+eZIVWO3*vNfcBE#bu{Ac9XGwG-5IRQmma(Sm+#0NnE=zAkQ zdem{_DjR?e0U^CX>SnAPuy%=p91G&o@)p~a78+C(Gep_3u?KqK{mkR@U-CAOMY0*Q zhm>6Vl>J8a#k`Klhdq@Ooqy(;9Q+!tVfDY|P-|ztDJjaiok*RDij7U>|8t2%(z*39 z9N+x)HoZ+(gB=GROTfE`<>cl6CHwt?`B9n)Ou!fnMxs;Sum9DauzwFS$L+NM4dv$G z^pK>0y~Wp9XG%2BE{nx>4(U@57qlEjQ>nnoEeHMHiX*BpA0)ui z_WcP?g7*=%;rVtI5FTv#pYi$`2omkH6$M<6K5UiEntES;)P1;efm&Nyc2#aM|5+T! z6j}T7L{${t^#tGc6uH0f>YOtzk!bh3^ksRPq8e+oTq^~rEPqm=Ms*s4)RbqG3CU1H z_zfEdA6pw4m#|pk_@S^qWn(ibrX(?BTqd-1H(7b_0tM-Z%kB|K-zH0Z~A>@wk501gK^+Aj`9l3G|j5 z@a>Y}%3Wc5JA$#eTEoth1OloeX9@0%D%lkOoFrRjv4F2<&KWp?U3iOyDXkC%3YEL6 zj>HU(A#y$-3}*1;HSNb>c>h~^-|})~^4AW_X( z4`v43PDvzATx^s=0iwmj^#fh(F=cLAR#tjWiO|05I1uaj^Cx)y*Ls0c%0G(;$Ty8m z03-RR=Hg^m+~z(MFV)BmE(E(7hQmWr(-m<|Jl1c(*GE#qTX8Z?Cp}ayexv@YNI>HZ z+man2O*I->BRp7Mme>%X%9dG`b?6q6swNpvR~P3BjT;X{>)?vKqSp#wO-Pmu`=3Pv#i3X`E1a%MU?OC z<;y+vKUFqkw(a(0m)beX_c}fd7-v;Y0F@SUS}>}bMcv*$Y>c8202s^j^s9^lOftYp zZ#{$;H9GlQ@6L^s^q26nQNN@HV!`?iy|w=sH{kYA($WI9GLTgO)EROUkMUGkz%oFW z^^zc;GULPe5Pb(PaLxZ-Y08T`B41w^Lv+e--X9&mm49gvX{)-Jk??Oz)+h&F^M+U| zs$V2kCWF@AECiT8)=!t4x$q`7nT*|I^T6KM!?o456jeapg)6s^rT!(rDPZ(cpkp`> zp@hnnY|dee{l^K!_U38*f$TaS0YL?DXXzWh_(?HiEHx!He-990G4Vf4b#A}Gvao1H zEVG;W`1ni@B##CjxvNRtLrhWArh(ICCcZ#R{1@ti-A-5C0%m7@YR=~#K-}~OPGC$- zOea-QVPVkSCLJ0H1`p$i;pAT*(95Hm-o%VNxhWWBYwJ!96^8 z*=KTilbE>J^*B)Kp%;8x1cXCoSL!(Co81v~X!tph)&6XzQK^Y&c6FA`T9>ON1^Wew{fa0$#IslRLawDY6-tt!pVbpofG#*TUF0O=|lL)zg%2et)y$v zUpsvr5T)JoKOBqqcZ30oAaJSc*vJpQ{SOiYrsyQW-GvPhFfbi;Ts7&tX%!cATDdC_ zaCkT6&ld&f+pGpj zb;}>NSRR1$rx*WNK7k3O+4oj=jjy}5NtfP>u7!Wi_J@bxF^`k%HM2xTTO$9{ z5?&mT+DlU94At65N721Pc%>Sa3+N#t9+8-QC>@ zmSEkuJAn{rAh<(tw?O0W?rw8<^Zozx%v{Xe%+=H-H}pPdpQ_rc)>>O+ldAdBh-OLV zVpfDlDiBwP2R@9xSI9S01;G+^oMGxiLzL1G^A}`l<}aJJNbE=IgK^3t)piRF8A5Ir zSE)mTgY%wK3)FYhJx2|DrKMUo7CdB?m6dxiXyfKA$HHTt(Ebn`gy5b2MY32`)%L;< zK-y_R;r;DRVdL;PqKJZhV5EwS+-`Pb5cunxMx6!b!u0xTPX8+fRl_{T0UVg$DF7Y^ zQI~9-4g=e%8Q@AilVw_O^`A1_``$7i+(d>;w=&6L^H(|4cnIP;xO6nu{7RW=r#n4P zWmC0N$6%DEiG8EoNA=4_L5>k>kE;D?UTwc?D_^`hSe|)- z5S150C7&u`{$}}){f{cCo|6*3*;G+Ce0oXz>92+vx%Wq3D+#%~xryuqq5z+agL42g;s% zH)(5?QCE0N4LAcfUFW!_>%P#u2`tL!B7vJ5gR2gTg?O6y+^#6`babk7xck&O+QzDO88 zIizzDpHEd|F*sjura4$4_*}9k=8~Vfggd&8Y9^ZwnQ=ua=MRMdG{;AYi5aZ#`Z97J z>wl_vl6csw+%*v0HO7V zA3#+j^gc+Ki0$hu`u_c-sHn(Gw`d=4)rQly6qwpRrgto!Ch|SZmObtQ3YdG5OARY^ zwz!#@8DLni17ymU+sUVvi<&vJVAYL^9L@ruKwJD5CLVQTKgAx--|guUg#|{Ak&QbD z1+fOlnAUS<5-qf+{ch^2jcAdbTmCK((DRs5ZW1 zdG7vhPD3HUR#giuOd^o}`1saIU)DMXC5{FCB!WxIL!nno?VG9ab@N-mmxSoN zPA*nbyVFjQTAxpKizxPNR!y$AvnbgtrRlcL5zVoNDGdOFRUb$6eb;|*h;+Q+NC4pH z$1Z)p^`)nSCHLqkfx>#7cU2D98V2}&^TQA#tr}M~*qkc{U$=l&TV({Sp$aDg=7Jb_ z>Hd`*ygyDbQt+MtKZMma|C;CdJ)!UDF5eI^!9I^h9_1$YcI3uvp%heid`J5o|D=a!5i=ot2V-Mao~eYH2MSI}y8{axe$bk-jCh z?wdX%ttF`&!1%EqIIEQTK9E0)Sk^lwp)hrO)QFjm_YG3edtQUVZxEWy!uZ}GC}gJ~lkN?JN$5ouhHAsx z(@}H@)-}csVqNs$WWm3ZnIGIQ$*N%b`qURSr>iR3#yLV1UzieCTCOIo{7;CfAA!k} z=gp~z`@V(Op0t-a8f{J6pVK({K49Je^c6ri3n(f37j?*h<1A43Z0GA79US0V@fayz zJ=8AU*3t0D;>pXz(sy*wadZC#277Tpy&Unk97^KmUfbe)e6=1)2Br+DK99gI$^)YEaFm(t`*Wt=?0AgRqZqyH5~MdGcee zRDIq0CWn?{_^{O;&kh#;bnniAOdFPsR)*l0cBi;bVX=I~tMv0xkf=p;GiHr3Nv@64 zCo0s8bkE0gwy03}$g>9%3v1$**=YVju_-&dUIQ-y<-T^_Nj`5e z*?aVzEI{$xtE_yUvjQpX3Ya0Ulf>V*k+LRzWMIk6yMg{&$(oHw0v+E_-t(KX6Q6>G zm3~sWZcH>(5Q9b25Lwi-5zq5Jk%ZKejiS)z4=|tkmeHP;2e=A@K8HWCqTT}w$?io= zy(6@qv*gkh_F0gjGe*5f|9JId>>hT>w0~6Hgw&}omIv0n3ymuZ?cAA8r6_h<{ql(8 z_jJY1|1=NGdIuNFz0WS}??=MK?zgTUuKn)0d8us%vJSEra(>9UeQ~=zm{-Z`RoU26 zGOcs1Z){1Lh&rKI=$`q=-ykQoa-)9pg`yzMXc^SCbF z6E$ScY`-B4X|>Mj#w@}&3VSKQ@bZ5fr*QD9d5aD__?O0l^VGm#39kCVq`{*Ap1UAG z0nHDo$&RO1??>+y)8*&=cL1Q;;XCf4;>WbwO6x|+9E z9(Z-(Wo%})SuTO232JwJi&H(d(^@I?G_@d!9l@5>E3u%>=kIJt8r$V zUeHZTPp>ij!F|vBACOeC6!uKu*)zXV{i+XNM&4IY&sNXdwPXzzsiySx{p@y}mFji3;pk2*O4reiYApR$0dIAO)&zI4u%=F91ib7NB=Q(|hlG7*vSQ6)kxP%^-TcvgMJ zc4{b34v(>t9z6&Hj194?EC1S~mOE^0>{FOjH^BA)m|gCNH^esnX5OFVeU5Z(d5)=S z=w$%{MXjB$6Tq&U&E|K+Zg}VMYdv7aPCO>BALon-TUn<;TOHl25>g+XvaI5E|AP}`I zF~yxme?mFT#zfbfNS)hi*B~Gse7#ZrLb*B-m3Zq=+Tcj|BY2Y*r$8z!vq!8OqiRY{ z4yv}7*_+3VIWClJY1oQ&Mio}WCwpCpnv|)6=9@E>6zh z1`0`1VaQ>jpiuk!N5y9;%gKo&fmP6Ir@(4yL8K~|T)Maqs=)hxWwdi9a$k<8iXS+- zfX%_;kE)-axQBOgWt{?EQ~e#nrR`+ysn08cQLU^JRXM(aaZS*H)(vB(S~HCIUlmTj za^ZG;b!w0*lxF#<6>Cm_fc(NMbi|KTc*aCK@p;wtOBH7O_>M~T#E+n+)Nf`md zjfjbf0Z3I~(d$4l;HaFLnc^sKO~M3utjXWw&3-K#8xv!w<6d6t#sHK$Kwx8JH2%q> zrEq*R+7Ao!oKg0)i=*`Muh?Cs?Of)Eoa($MJGQNFLRws*4BCqPA=l-N@4~iE5!kSc ztvM(Z>s^(`5?oey;`3dh-y&TrAnbMfW^v3f-hVdRfDoO%WGX%MpY#=iOz#7Z8Xw7* zm;=$`V1h86zcamgq?31BCv$I|-Ni84GbENpsO}ZRl$jDqf!EYDY)%V&APt*ZN!7yz z=yQd+Z=pbm(!Z?W_S=Hm|3S>f9I)mg17yHKz-zIbAXojXT3P8@yc8vE3``*Zn=JwQ zylED2ht1sO;KJ3s^Tp&;B>2e4c?BuKw|aJY*&vo4%)`)6hE;bms`Dh``Zxh7M?%|7icoJixnNN&d=~Q&u5%g6zVpdF*}t%f+8l3F2leJ>F!l{|vAY|wXYY_h>PKAgfrj>9+$=sNI#~)e1OV%GeZ!1y@w^IV zgpQnsK>2UrkUzFoa;l$Tm{P4pw7^2baRbb9-)l|1Ax@DC)eusZVHelJ>}HlfD<#rp ziCcJkYLGPw6RR>bNH2U5(ewu-=M{NlJH45+O>9@C-^TU2atBtJ>;hULOr5&%%GqC) zn9|v+fN8e2r}AJFzO-`$W+?#k(kR>Czzo(x8nH;tdQl2x`T|fjaCEgZj^#}^Qy7bOFP#1iF}0n<(h>LJ zZwIZZa8vzobEg0*>0Sz*1cy^x9sl&aPEB3I2l zo9y;fjb(y%wwB9U{WAd0+FTC8o=A5yb8`b|dVnNv79hEKt`rE(R9jDN4yE~@i~{4> zhv+S{t&yQ;8hq=+Tq^*yVAoC+*bUmb^S$O8Q)(FrA~hz>JrY2Na|ivqaj8O2t1MQ_j(GjwWr zj0vDpk`g>5jlADejcmz-<(3g=vNOpnDQy&^GYQJ8v=x=Vo@Wl$76wozU0xr(CnI1!$^Hgs%82hXUmi#=cS#ZJ$4T31L5YTJ1f1Gx@`YSuTJ3k7Gsl1 z#^7a2G(%}SKlmnEl4>wLVvmrk&kf|Ob1yo2OOSW;^I~EOqbycQ_+i{m`LAH{cc(Y| z@g-<0L|1^30&sE`6y_4<6=0yQ%W$3uO@U59-RiB326fg|vNA}rJOFX#V`}BFAkeB6 z$u;UYcI|RNZ%&QDqVITw<4KIIctJhiw4eo4Mp4qhO8LkDeY(f}38R^rSvu@&z&su0 zx;>j|&HDL+s@2(rSCk!+{kT0d5L8gvE$(tSPA|o+^2!dXQBZsFkt=}!+DkWUALdi_ zM$RfBiPqcjLoCp0=2z{+)T3FjpAo%u)uNY+5}sw8uPE-Lh0iC?-LLZX@M<^IMWnC2hOmy3RuuhC6D zuqZ|Yzn5o)`3%~7Sa^K^0So5}zo~v71K7s(85^(vv4{boyIiK_4$y&ZlqbEnjy#@! zDv3pS0hQ--0Z6i9F(p=vSB-`V)tHb;SZul`noCnHLnN>PmiMsV3Wk2UDe~TP zySn_Y&3k;-z#R2l0Zc~Aqh@sgG6{ORq<;Es`FFE`jC~`cCIQ(+Yvgw!LRMy)q`;R? z4rKlx49?Vs_=G)-P!Dz!%!$R6ybEOR3i&5x#uNy?>DQ?=G4SazAT~mvR{S)%WKr+C zoK#FWQoqN9$r-Hwk*RbMK6MZ=n+Z0@>^kBc2G9oF|GG!NiFA?O}Bv6iS~cEwGM4sOaspm0@SLSObH^N82Pvj za&OvdKDyfp606+heZa5tdV{rHm1(Sul%7K=p8kfJKdKBXv2qm59T`BOnChJLlA<8F zwot#I0BuxZozc69u4~SVsZ{OM>abQqlt*Rg&Bo;0U|R1n1=V#X4OIHa|%FFQd(8~b{iR=_njY?HBw9#O__7+~ zbFYvf3yL%qkd0S^*TCBKM=jmSMLR%PHvJie!NwRh=_f3b0qsEGANbD;fb$4-iSFIt zrFq)kw`KyIsxO~Pwx<6|>DK%9SiE7L?n%A!DY^*_D+o#1T;R2QWcq_h-iddRRAh;e z{mB(?LVIu9xx)BMWjh>}7JkKYMcj1ez%4B~5x;AY8v zS`KkGeRW9pmINGIZXRkBJ{0(lHf1oxbhtnSeTy%o@Qy4~$+D)uI9WCNb>{+-x*_0G z`@EjnZ@_%&It%-*7cVFD^Wd1iN)LZXBjz^bwNeVvE+J8OQ7po(MZ_n1{=wvstuHXG zdgu2NGUs>x4_v&80WOFbb6!N6jY7=~)JVED$8$ND=qhu$`Fa{g%@T`UgAaOL!k3$e zfOE(=Fair}tHgXQi_Wj3jex^(O=ZYL=-26@GWv6BOR&1`)|93rx@lt1^=YRPDVCo3 zZoAaUskoHEc)Te4^PcHj|K)hcN4*jP*V!S?T}O}E6x4>d=qV9m4X@CPW?x5Kd|oK> zBb>GvTm1I1aXL8<#Irux^ zuF}xB3d);u`)iAiMFh&A3|rk;I`7ZTOwqb_BA9OG(!qZKk+G2rbIxsgmNKOgh*}b` z*hc578-05F(l%NOH6vwDu2LIy!A)-Wnjlpc#KSsHM;zLey;B5uNfq5LV+K&>%4Lmi z*O3LnfA}qzxJxs;zO96hv8(Piiy?Lvk}MM3u8bCf!DE`qf0o*8+JB~zprl{Q)`hS2 zqj=Mnk#eeBa%%ld^3GWeX&Jt&bh2ixW&F$X5GkQ{UO!rMs`tt9XhBb?)I}|m0Ni-P zI!~OeY4q&d0z-vBw_y`Ije(=oFm_CS06_lmD-$F!Qeadx3`%Qz3NqLYWF& zI@M@EpMTSzm2H+3bfJsC90--_(va$tWmeNF`n*Yl%KuCF7@ZoHxYHZlk>6v6gt)*p zd2PrpxG9LiSL8bDD$eu{o%!m0hJS#{S$}rR(bPbRkou^vDaoK#CRz$4Zl@NJm(>OgQZP=~IzmR8p`1xva1> z9EZALIf;-FCH^bx)f@h${Le4HvdYO}V!TOd$@bqF8dQBCq$uz%sMuwU>rxbuwmCbF z2<$b=C(nJ^$Wt-*akb&|4fmH{KFqg`Ol}_-h;?~0jG_vK3ZtVH@(&<_U-C+N^FDg* zO)Mt+R}~g7$FV)&XE~?gz=6%?yQ-El`_@vG1WAu}13v_d#_6x;*yaN zZf4hwZ^USoW9gA8a6J$#&hi)WO|Gd&R5LPu z5%KAgg?x6cRqw5yR=P3l>O)b`9V$ZYE-BE@c3|XCn?*=?K{2_|!MT+2$!6ongr_ks zq~U{9<|x%ph0a~2swilE3hjIq-JDyrE=XKoU+aL`!tqPAYoQ!;K&oK#1?&<;?357NNM{P39JaPIn|0z zS;w(4DmC~h)tNIyN(J%0y1YW)`N-G73?rZvOR1K=W5@M7EZO|^lYS>UATKR1s={7@ zJ@iKZj)iyDpur-Y)^lfg?z6Ww+i!7=pL7P|O}kJ1KUKe{yJjAc)FgN$ zaKSJL-Knt%LX5U6%oF37*ENRWyY#Vg?3^;?-`zRsR2ASf#D@?a4Ul-uUl+wkDfe+9R>R9h7wHxle^nWifah^m<0+N!v`o!#!W{l)Ce zZIu!C3B?qZa!*csh@=|G8@Ke=&NZ`tbg$)NV7#k|jC_>T&K z+%Xw_g7MsH3|QqD(>}VQTwm))YCINVgngZIN3J5_SxBiyIhgQIyCGfG0hI^Y&YL|; zdI>u3Wg8QFOYrdrbjw-Io|f9BFNH|ywi{CTv8htUA4yXYYQ7*H)K%N}tDT<&V^Dn& z!A;mqX;IT@utc7?1?;G!ycTADo|P=e&u z>->wj>V{6_Mm4-_lCH{D|~4MJx5!QAvSDRb+@T4S(lLCU36u;ch%W6 zN(~0NI)|bE_@%ot^j;+X7ZDOWjq8^(#ImPEMMlO3^pv|lZ@@36>qi&(= zq2S1CUF_?;;_|O4p1}T*X_V4WwyX6k{M|1`{a7vRjCxzC!VhAqruGq4U_TzVS#B3h zNpwc64;933i*wpbCS*}!^Of8M#+~DRD{Ws>dcOhDG;cL%Z~m5&o~Ed7Opo`!tMm(SP`pr5t-Ypuz8$A%y_6K8)s zwy2vE{i^NLRMf9V9$0teJi-rY%M^k`#Dmd?t<%G)QQ4K5&+xRYMBRZ9${zYhAPQj{9a|4J?8daAdUz&K%%AjEh9rIcA&7w&*HLWqy39-%V_0tEgG3NkZMwN zXT-XCex}{OCQrpo;iX@dv^bDzebkwa#~8$%<09IL-wDUFEGU9eXw!2O`0Res zlENUFKLwpif7M<1(5UCB?7z^mQkEygZs@UO$TYN?p2`XRyqn*&MQT}zjOj!MlVIy>ovB`94kMO@}+)OmXcUP zDh!T}8@_Ko;MA46y7|Hors{ou`#n7ix=r}dXsb&v;_Z6>0`~i5{tWtM!C{{87vhx$ zU6c`YN}GlhDgKg-yqyMRV$9Nfe0&RU4aQSFfuzEGEBB}VN*$m6{I67FH?`N5TKpMk zqMJK-bTa*a-y~7j$P_JV|2o!jQAAF6_bQ4k6=@OXKjP}+q*0&yYvN#m))Mlxtz}?7 z>t0aQ$Jxk)_g#`UMg|Tsh|VoWx;mz(9cf=rN9^14AL+-npA$y@lSApJ-fBo2FOH%C zzs6bJ?QZb_Rwt{Jys!8dtdbl{$`$B6Wh=OUBY;{_lJcfJSB-ro^**A6=1wl30vY!A zwmrL`s$5?bav8{@fv0`acPpcqUlZU8@eWzO3VV4^$8h)K=99m_|E;f?S$73a(pyLX zREtH}jj4yR7F#4Ih=O;flr@Y;^o=IIoyslVsIX#tYzGL!d!jAG;mCeUxAFFL8>TfT z+{r;LbI00Jzn!RU$Jwm|cq!=CZhpw;s~T?Q>;xXjl`F3&g>QcHfKcIOu7qgKX^V|=bf;#;V41iaqA*mjg+duCd1TgLe*jF;iXjol zRuj9XA9qU+n7;imMo$rjVeTQP=(ImF#}pG|o_}b4g`ZlUi8&YL8n8*?=$X%bIz6_D zB7MvD%{iuu5lkt+n6Z`n`!}cYvo&xer!}l(C!7~&<0ZzyFO)sBZ}0M=Wayu_KtwVE zOjtO7fCehN$qP=iZr zo>*}bg9Ig0jtR=I$)ubKq->O%zKW{lVl{Mf;+iB%%_FSpP26&t08#bTrw)GRH1-XjNpC3Xq8LM z8f807`mW{7qCXwyxUN_4n555fJx{sxq1-1C@gqpP9t{+SGwp@B+f)ConSEF)d%qqv zD~-?oUAK<&5O0Lf5Z#MCDM%&;53s9&zw5|RP5ouRDCyxCga)QS4 zJE@`u(l@o>$bn#jV8PGHX{Z@F7fZ(F$ll&^9qAksy7}}zEn=A*Q0nn^10;xQ$00h* z$M4~>B`^Qm{3e;vO^S_aFyR-f_(D)~Z4=}U6~@(%q__jgxEmCOdC`eQZz&Si@W(jq zO&yw3$|}yPl@EnL4-}Qo5!b`&r0`pM>D)OK4+*51!FiS~2yEPF!|9`-=pz)i#fsK9F6~8Xy9uR3wcRkav z)VMkQeslJ8J*vTw@x|_BCNIv+-?lhcJ4uP`^zP@xh4-8zyrsWf*O6>@9^-8pHepTL!lq&k#@JITBcCeLjhJm4pnc>FVi(|=rn|+V57A4u-^8%qaF8JHGI%YkN8NnMeAvj zz(>4-KT@--_2H?_p&=>j`2qaI0LEQX|DHgdOeiSn#}jZ1j#ltES)d^S$PII8EAYzG zL70WkG#dTpmZ4`^%jC_XWv?9T_EX@%cGB_r0Y0dqf?z)rlmu}UzTFBD%<#1Mv(L0~_Kz4sU>a5*-9p_Oh zXgQ^Ukf0X#KockV1vUA-lJ|vnlhAa zJ+HPn800LJ(%4&q>Yy_+gHyF?6BIRa>%54@kG^@WyUET%cs0|FzeGKSUws}bTzBfjl`BlXGm9ZL>>_!?f1-QU#J_i3i+@Zb%E1& zgF*qR$?f|Cm`A(y?vS<=zR(_-abK!(zrJ5L29p}I3va(N9xR-KTF?4to?R}9RpZ@8 zG?REfg-@V38Bn(%BH!hT-VTd8%oHf@xVPQ*s==*iNADBYh~q1^OQBHPY#fs44|A;P z5Ny$oVmafsxR0fVkqpHr&dSGLD~C z9ErNr{d2gNzO)%+1WgH72{z$nPYSrVK8$~XFVUXA>Eh6G^$?L*+-TeI^DS2js78lE zaZ0sJBkO(6%#~Fhu+!tIab!9`u#nx1Yoz;+k1wcghO#d}Qspon-X?nl8_RAlu z4X=9EC{BJeMcWDxZQg!+fAgzQHRUszC~jqCeL1nVbVP|j5WJRRfK#;3hBw(O{AP%{ z!f!%vn!-PfyVeH?Mdb2-S-U;a=5!WSMvMcMUyg@U539WGhjd>WHlFZ$9P(QAD_|^{ z9wObOM`YdC)c(NpzzUioQ35<({|Y*Zz%40z3}}xN@e0uFk<#2clpd8KVszwD-S?}H z3zB_`ergOY@t;pyjJG6TB1t?ZP zIQ?@D zubp&fP1y~z2`?!roo&)ak>&EXdvtf4#mI2;8|HX?G zNNDp%{EeR@bk*5^?@{G!NzaK}Z0*xfVjrB~u2c}4Yvj|=Vh}NW?B;4lZ0Fo|g_gc| zk(U5up#6uadLUtMF719A)Q_EL;1;4Q^v~)M5&Nm}>y}mWE!MId5>}25ih;4a| zJ><#q9_{wqqY(?o+j0tvfo4P>#;^%^-W=#tDS{_hT!wN!3;xCj2j%c-)Q=8X*_PsI zlh1n*n|4lcgYrm*?RW}DY`@9;>q^ZivFFo^wmWUH$6h+Mr7>7xrUz}M{xTwqI+?L( zqp7^sQ~uIT#)PPigr#;9u4E;0CP~B9ui}zBv#LDiVJS!U-OzeeS1SMe6NtHX>fymL zHdcoOaTs^)-t|uR~Sn(R~`p11dWlz zzq-aWs+Ya%z8`N~Ob}&(x7=oCZ3DgR2YU@!M{{fX>-Scqap^bUBV%ELLR(z-m91zh2OZp#J=>Q0zI9eeiR#) za`O3cRWV}S3AF7l54RU0<(r1Yb#1C5L~cL+6|QC}hiR2pm#H9+k87C7h*t^x?wFo6 zQqn^Kl`kev^lR5FD6_Z4r(Wjyd@TLb7 z+ic|F9ghVImY{LTR}J)3PlPSmF@w}DmB^9W+$1viiJyD8_bSe~mtKGuLnNoVuIrcW z)G*qm?=JLMt)n5s#0ZO4?bE#fvi5#ALDS|++ZRRA@iiL)Ybtd;&mU(qM4evg46mHl zS>nIJ3p9XyC98X10luB4T{}O&f72E<1iJ}zyl3$-joxr@0Yk6Z{h@7H3~(~L>irtBq!oln^*e zls5J4jXHUO>3-uLI)r;Kr^gp{QYlcm{DfC=P^=V-j594!VU-@wHm$YZHKaX90eTr| z9jF9ncTH7Dx;(+P&DC+|jB6y6qLo2~+PKGF|G!GDQP9dU%ZWWrP73@3XIzujnZ(Ir z^&@F(Dr}wbce}249LigC|N40vnvuT5)=gZBPkkYfz7xvsWDNGYSIurnChy?*!G;$m zk7HyMTeL!fJc(!v5R|vm#4~U$bS;}Q6b{nuW3`cA;kQCczN=-enQBsN=cM_t2RUO$ zpFEJFU4@)s?susJH+q4&T-q3|R(%oECCXnEv2BTvARUGv&%M0O76o%uSPk>S^Q_Q) zv_pdQ)nja}3hM=!t_t1JtY@>GC)s|3TEu_}5}8HNv&zZupcI-g3c+I)I&N_)4l3rh z)XFaUPh19AG=V+w>KGoE5GS5#`86GS5fqDyHJ#7YcoXljgj2%MzM)J#m#;G zSF|MqE)d?b?f2$i@PY?PYy-=!xFp+Cdjz)9jU#88Je{?MRT%YC;!aq5+5;-77k_C& z)>KVozOksZYf|oqDh~&0aDiayhVPx~Hb{r1Ao9O?;r6yFa$`=5XKk3SjkI z%%jU`uuMaoxl(!%>j~M!xt8GBx$&qRQ*7Hdd*9O2h_<-}Al0R_bv(8;gtXCh-8x8j z?O`<$UU*JSzb4TfZZ0QO+qfN%y^e;_=+B0OvU-q~Zjw!xmYcBfmOI`@i@L0pq|RZ% zA5?VR-^nd4$MO?%3ReK7VL~T3me(3aP`){~kBlY7!gv}yd|mVJ1T&*66I;+az8%O5 z{+9|oPs%)(6{uaj-n}mM{FfE`KF~f2%BYul%7`14imwAmd>y5*Mbh3UbjvOYGi4DE z)|m>8ECq1Zb{bD0RR=7ArSVNT)4?H@?P$gu%Vswbq3_(VlI$CO6)ffd{`s4W|1;-cL(+P7TXY^9K*0sr+bWqQzAP{3a{I~E z_}FR)Nd>gO{>v(9A+mtTa5@Sw{>zNh9txsv#2OcK3slOc%*~-C6R|b{o+Z$w}&@X{cm{Ox%9(f%C>=LW7QfD*^Yi8au8lG--CayU4 zNaF8aTJk0Z6V_EFT5tSl@q6>U!_HJS@z~60gB?rz!KE8*Z<-0sWo9!pOLCChen?@B=ttNPRrXX*Ny8qoa`e*ph*>gDnXsXP-s$hQ z%jR}+@b2t<}#!24C#F6;4Bc~EfFE`XYDUe zcOF)Kv9dOeW$hswd;Y0vjOBb^GCpv!jH^*Cmd}jJjx-HJnygA8&5gLpsJ^Zp*ZaM< zn*ujDG5S@R(=0EoZlCz!WF<(l_O}CSmDosCz4yxb<9$j5d$N@~qx0Ok&GAYrVz#?I z=?>aZqrl6ZiE8MscD%#S-!i#TN+~?D`C0C1#h}?7az-^AsSLF6SbQ}4b;-qyI9IMG zlb&3`JOV7c9q8%&2#r$0ftCx@*yX#g7F{=K1l3YXHdDCBYwpVN?TVOBvLieT_jRsF z<{7)n4Z5zyk}c6;Q#OQDC#T3Fv44!3^Qjz+hInbF3lH?@xrsFASqpYTskTbCi-yIw zPp?{7>p*jrhQOs{DLUx+^0`r^Uvcg;`7gcY=Ux%nr^lf6kOqz+uX%(O1%5z873)E1 zNd4h^zmWLf7S}Q!y=!Fqwj+Ti^qpflN=jS;g)wD-<9{bw1#N4pl>w>)0MYQhnAEZ0 zl#iGL2*-+ZE~AhFLi>#)kGq#ih%HP3f~Q=8|6#B#c@STQPuPfimcE7`Rkfy{@zM8W zK#jgO@y&nzNxMz3w^{u7P6G8YCiY?6r>M16>_L>9+ju5SoNPYYiJ$l;#)-t!#TsfswVH&J?@P3#<1)Zj zOJd9pkkt?M&LHZ)$fDXjX#auDR~>v7?)ORu02=*WcT=~oytLfIiYpK|olyKV6=juQ zEFEyA#3TW%7z;DTIP;|X)BiZI_i{3CDQIc`M7;Ug@%wGh(Y$YOkJ|8v2?g7lH4L%= zT>4W`PkBXrK|`(Wsb9kgrjt*+sTyRP9=1U8&e82fQB_q{Qwyw_mYWV&mNBDTPtJYe z&6cd`D!(vEM7Eq41Z1NM(9Y8w zwt+ut0;}^8IXO8l3N&#&sfG)$;^e2r7@RJ?28wPIn~3AX;tU&qV~zddd!^N|b zS#dJM1u?@?M3)D&!wS_Qn-)lH6&v*w7cn5G(%0OC!^vZ%kq-iV2cykMjZ*Ka%~|BvsVxc zOFL2AY{yxPv1V<+O^m78wU4bM)=&lAIV#ZZ&n zXY_9t{FnDNOX{YC6^<)VP==|rFnG&19XAqyvj(hGH?4o=|6BNMhR)ebL2cG#)_)&H zzKxf`P*9d_3@Iik7cALf$#go*28(PL7-bWFe^22z=a8h{E^XgpJ!`rj@F^A%pg4xJc(2@Kc#vQIy)WAt zT>21PRWIEz-n7y9uYl@{t@jog2SLii`iYUhA)$vB_4YO9YQ-( z;;Kj>q-@ltKSw;-fMz|yiOPEV1%nL$GkN za`Vd%c~e~PK#Dcwa^g-1(YN&+Kbf5|U{PgF6>4N$BL=>3we4#Nfcwq(Q9#ca4r_<; z3(9=PW3te5mKu6(H&+ftXB8G$-8`H4Uq!jpM1U&f~J($*x(CE?Nj_+35fpdro&XxqSc0OC~)6?uc-U z_Tz@m3tPaFP~$!o<(6doH#`S16iJ%oU$Jt-DA9LL(;s9CH?c6mX&fYB**%XVT?lxo zLe#YBxE95y#rY~%tOb3b*9Q4FjddE|+48*7COa1k0>zZ`B_fo6ZdoSrVyg+?fne~Y zaZp!-OOys>g73J+s7a^IZ1d>3Lad`E_PJTBcGP6Y!L6=8-QB)C+Yd zoel64ch#f1bm#;h)lUfr4^g6~-Jxopm1CsJ`X@>msYm^rrLq`^4?bL&GAIVCl zv)mzBGX2r3`%50fu{A$WWM#zBIWYa^j3m@MD)pYyp-fZTQoBu4o*&Yk0&mWZxt_;i zqurKAji8;d;b7OJNw7Z96jd#57p4N?r9m;iJ$q(2^rZF(DG79)>d9;l>NNs$GSb-w zR62EBo_vL>$8KXVZ?{d$y;E`e#n^c~^vny)it?#K2gOLBJdNVR^*d=$%ThbwXUVgw z6WqM2Ll62u=fmFa0o=~^hr}7UcnBD^GF>`C_RcBG-^Gla(@YR(eG~q7vSsB82MY^N zw~~RTzo4~r2K571HUZ(=IrrY*MbWb0`X6CA+GhzXPO zx%ZuswqE&WHN)NSWLT(PaxJ{^a5YR$*n(@O#&7X)mALhxi(?ZH>Uzja=Z)^5GyUTX z#IuhKHX=7-kw#hi(fR>DAhWw3m3K|2GuwS~L~6ba$+iKnXK)hNpk?A~TPeXmEUia{ z4&2uHgNvUXxWE^P_nl$eX=gI=*{^9OCnP@ur^TApyZ_+Z=|3A3x(J>10hL7Cq2D}Q zo+F;YfaS8?J$fn7CL&O6nm7g+`vRzJudc~_DBkd!muuDsw*&QT=SU4X*e%XWnq)3; zxt?DK)|}{7y=~TAx~}&k_Xg8(BzzsVH$oGJUr4GW zyEu3hH1WsXv*bigba72581E1xAO0}LpS``#nOX?$qE}+;JmSC4v*IpCbnYu~FQk)- zjYpT^+C-<)Uab{r)qvb8fU#on8;Xm6f2%KQ9WViZk&%=LHNS=D`JmB%#U_DZQjri| zK~g5aBBZs>cX)$>`;5}+kc3jyP}S1fBA_vWmTng9tA>dJczjNscTeMv)XfD>qwQom z+%4FT5JCTEn07S0ImGq7qQ!ty{sNqKBnaJGY;9ER!^b z_rzoyNWQkZ-!ftmmZ5)(qGbOE|CzjH zHb@&?2z1=I`u_sWDv8eFP5tk?nD}p^a8(7t#1%Z55>dDd#xxre_#6yjXCbBaf6_N)N;s?@cdlxYBEk z<=nYr8x?GQI%i`{hwKjCwcK2-GDNPUh@F($+#?CPQ>p!zfmXD=@JYjLVciCQi}wGA zzoL7E6}{Y}n|}QN!wWm_hyWM-M;9HLb)&AJgAPx)GS7Ly9$(FcIZvwf_0N%`yET?? zcoR6^s|6OPN_TUj<3pi!?O`(Y)g=0RLgpksY^pFr5rMhUfY5JsoV2W@OCS&^;~8@; zdcX?|-gB@+_aJx$&oIwnv(faT7)giy4DVo;+nmaVbFsg9Edj@KgIs$?Y>c)lc8zu; zn@}J%mE$)9FLk0H(v6Mb_j5rwc_S7Wd7bE9-p!lkMwEcF4O-?h|34Tdn8_DgFw?Re z#QqiTrc)ZUsR{L#P7# z{vX`EbwE`6zV}ae2uMk%A|*WoL&u zDBa<2v2pLS_qpdh_dL(NzkBcV@HhXgS!;dQ_xt+1Lo=s`=lShOgKZ+!CxeW(xdGRQ zAwa6|EljE4Xlf~*N(?-NT7(_CpBI})$GA}VuqGeGB0=TaeRXX>$dhz@g~*Uh4h17pWAMvz%r>o&Pc**^5&CaBvN^T2|Kn8eg11rJnV?*b=xRw%2merz{~ z;-fZM3*WnJnd2gX1^KvzQ5u=4-jWLkf)PgyGJeNOh^RT^R?$=6ff(1uDU`YlRz?&% zpeV>UsT*hbEPn&xTps7?L8qMTz$)0X9v zE|IHHk~%adz%Vnleb2f-;il@8ct$VX^ z*(3l#(dJw{PCnS^HYX46@Fi-m+ur5=wv>F(pgM6tQR3#W3rr*0(5h~!Bx~eh%bsxa2N%*7$glqt>c@|@(UBueUi{y-^NKZZlpuV}`SZJW-|%d*6e!o1(ZqXVl zFGbuf;Lyo+aa&F1(xDeKOLfm8@3Nc9)%S;0IGn6iy}v_K&lE~Dqr5%#D_6&^_}K>G zn}*uLbNH^~@^L5D*4WXxJo;Fzm>9R?Bcy5k2=p?MM5e~Ls7BcD_)>!GLv^We-$2c) zFLmM`dXNrTq4%4=MeF33-W4m^e4!pcuS~P}ZlK@e3581Jgn#45TASCe?`pnEFyO#y za8;<_oyChH(H5{g7-!FQ7k~J1ch}&VN1OU#lCSt4GkL&6%i_TSdeRi=;K|5hZqemt zhmfaA81{pARU4Jd5JAGhE1S?R63+Ku%H;36;K_*qK7+lq6y(P}obkG`8Zi!HMM+r^ z4PIi=`YDi8ACucaeGAg=F(03$P{do1=uMJJHSRVNVTjcTQ4`~kO5|%rx7V$OEMoJP3fl*Uc1wBO_#yfyn8=W^+j(!yX}H}kR=R-Egiu-+)la^!;b4_jh- z?AZ>JI|t1vyEIB3U#2=T3QF^(G4is-N@n{4IS%nAxuf_<)ll0Hm8q)Tv4SU;OP8ov zr$g?O+Ka2)=@($+eCHHcwmX*^H#7Gp=9#D5uIO2vsJ+vE+(6|3(<9BWq@l~Y-WB@A zq^PN4p5``!;ru={3^6;ZkwSESEpOe*DDd+eQj8ECU++#Fv|1!C!$=PdH)qB)Mn1Gv zTt;4^SSYrMAA8cibg3l$hRJ-c)ra(;8`_$#o?;%FtJBG!pKn^CaMRK##vgbo4LB2c z%a@oO+Kx=U>gP;AIV*K5XFf$Ef=N>1yHeQ5?gZ>ndp0_<*(({}Gd);knahJ3wweU5 z_u^&=Sg8pO#)Q+z7_1u9yy2hlC@UT2lN)*R?7gtKz!B@fIUSPq_il#Kz#B@VLFFUj% zug&OCrfd$@D0MSCrq<~ef2xb7A5zT9G$N^`@u{IH!%!04UN_;OTpR(gGmtZ2dmk}G zhopcNT{=0t6!>ef3FP4(~+rVq80v z2QY!$GQ~-McT*pBKvcr(=YZistNP_KtFeAHf_CcPjOJXFTZt7Lr?6w`AUM z+_P)DPIGY>J0_x(>EiO~<+_3FFCpYTdGFl%1fU<=y;4S-_4$2Nb%2Tzjk&Z9yWFSE zZF>5J+rcH8>_7%{DKBE}63>AOi_ktUIDCw%pj13237nZ|Kw(5MSQcPO3>L5jU7DbD zc;m3;`M7?~-Bk$3x=;0Bvevs)WGUUDa9|iRxum1NLEU_)me_a~dm(RJZp%{yF7tF&xjv zl}K-Ve1nvr)Iv>?JXia))CBCN$wG7Pv}TKPrf5@jf$u^ zz6Ds_xXgX;>U39R)9xEG@sXocj3DU(X&v|XQoF}in@=M*dO9VK22cN|Al?2J97zv-E!3&iDgeg<ZZr9S>5>QHImgeLHNr)>6c*+t0KMb{ zL&T^HTN1!x^8(nr|`EL4G7oXDDYl+llt~Ffeu$RXEBFt7Yvjom2{`?WnyZ#(HauaRe%7~ zr^x?2*_NG;l4d(-Bos)4KgRagUFJKAp_4!C)Ou^!d4%P=P=n`XCGnMA5UqL*I9fqU zw$Q4z^kz=pLd{n*oSMo5tCr#u%|2g@s#iElMj*|Wj1>JOSpzf2kd41UU}GSr0a1em z#|Xq3g;_b1X5o3VxKUg$m3`LpvB`%cP_4+?5g5TqB?T|wG4HyW-ql&6%V#q6wk{C2 z%4j;mat`UhkB%OVmy69|TlkEMT?ekD3?L-V>ZMkD%Iv3+f}JS=i@#`aPWDom=(gp8 z$xLC*57Bmn*Ib0X77%0KQx@#r?$z|+S}G%JC62wmq9Q+a84f$P)5cHhDYbzKUy81hZ=w-W^_=brM@D^KDw8dvWzNjc~H0qdW- zdZ(VuukRX5LeuOU55^fg5dj1-aim-SUx6?nEpX-JPXmCkvCe-A5U$d}KHMZV*}&n? z`E2iq=c_~+i^pB3*-N|~ofH=Ys{g(ER2cl-*XJ1c8%_d;;ilLOn>i(*Y-!I8-?*x;5@Nz2gY58x+xZb9H zk-3|T0zWP~9Uc-pV)+jxyHQ$YXs2x6J*C>{0?}CWs*$|TY3%*<^5hD9M0qf-J%Z6i zvPD7esJQ|ka^wffY)>cbZu0z|K`=?mxeYTwJCGS;TG-BzB1<`Jr+GT)n^#{YjjMEZ zcoHm@2zqA{0>*VaQtw(1C{h0P#hjQmuKM{ivV(;VxjhkEmI|h|Xh7~eTd&S^E(Kh< zmEag3PhF;qtZ(L*8h<6k&~#4G)nft)j2@s>jbk>)k>)^y8xT3V+A9$|m=_XXdG%tl z@adIW4k7vnIZlHI&;t(qO+o>04Di=E-Q1?tZ$1rVK#CiGUqAor(8ZIEi-0-PPiqqz zRWnn+4X+M;uDEvt435|eVQYOk^52Gx8%3?bM}g~rJ{d?P{p!xyv`BhyX?9Cyy*7~z zakF|c#c1P`$vbA}hq&p8CxbWDi(WZ(W&m-~o%+E@Gb8LhPA?Y6ZucxqYb%}!^9mkp zre&|fW)w|t>=IB*j_*JXL_T+t<8{3ux1MJFY4@mL5@=}yY9RN4C~e@WqwkiE^Ed%w zfq`3rGy>*1hOvMgt=SWdv0Gdwtx%HNcTjver~XLddtYI?>JOHSjp`0}p@!hrh@I=J zH@zFp%JC()LbzlW?u8#*^5rs76NsQ5QV9-E5AOnhYt@BMpNDj@$W$S6H2gvIF2guq zFHyw;3B)lmC3uc)CI{$EnK&nrev)I(t;K7s?i(!Cq^aAw{}IM~?}`G2>zH-wLys|Q z0rD)t3jYOQ5o}Su#41#~p)?sci(O#%RCJK=M1fcLa@>0^PeNmw6x*L+_*E1e7?ZUx zK+6W?2*}n&-$$-m7cezB8?qQ3K}JblHip*HN(P_B0rIjxQDmwZJ`>M#p6!Z}vv8o{ zY$j?*%TZwFy7JrJkNX}qi&q8DT{9pDhk4rkR97$v8H4)>j`3;0zWTmuBl-p#G2^{! zeo)qLGKm>wyjMy3@m|dxr*L44f*n0WHv}7P7HaAbpZlD((*Gav&vxsU#Jmb(4-J(@5@C=VeV;U9?$tQsFP@C zeiztn{VWagb6t(t+oO8_&c^oAy|Bk50nR7Pk&aYa^^G_uHuMckCqi_@Q`xYer~B`= zfaU)Mh~D0fs%&uz+pcXYP&!ur%#Rd|e)&ReOwfWb~r|C!2IUY`WV zbN6{7maN!uU3pP?lt%a&^T<5SrktF)@>&#`T0O1yc*-f>jLbI_^!`RDC7L(BTXZW` zF;2uSG?+F7Xf6A~;5Ok@Y2dS2k4h*m+ID^Mgk=tB64^yH6(w%S=#TLug&PEe6z@Fi zVDZd7?#hX%yYf+vOqaK+4d_|w`+&>NCOt1BKtRqDM|P~BOuQEB0p#jAcUv&%L~|Kh zJqyhMsvR7k*2*8u1bN`L=en2qDfWTriz)3&HG#LSPc?ez5+J1pdeaBDZGIn1V^xX=`bXY9(GQeV{Y^0^-0Zc)2a|-X#7BbBF!Coz1EuK&!)jGGY)Ab z6sw(Mp#s8|2nc~)WTwC|>agFu9NXtW85z32$co4hs#?J?LWY zo?T`&+GH75qJSt(Bw}u*vpRCH>dK zi@?-`h`_CP&RC7-9ms=PzL!bu-th@rn{oEMF1b#u~?>9Wu4O zTKy?SKj1da8?6qPMdsQXA#8ta%=1WuD?hooxnI*-cl9m)Kzt2&g4{9 zGLE1|f9vP_8$8Z35C9b7LT$rX!1f+@sh*ulnRp}^z08FX2b2-~*USsdl+m45tdtA7 zWkj8D!m1v1uU6{{?3Y|Ealr>z6WDY!unMwc+*LZ9*vqRejI>2k8@fXnZOfNtR^a_+ zUH#-$4UIV&!!Wo#KdUb*Jse}1;v2LrsqRmS3qI<9Ui!#c3a_l2ZhM{IH%J2*5Nx2@ ztMhc+sBR7C8(2m&GF(~w+VU(#65h3Cw~F@`#UcA^Td(;ijO>vr5!)EYc|+miTUdg+ z=GDsu`9Kt*t)vnXY~#Loi&baaWR;w3RWzA+pfzaQX5K|Wy<@7Crl>>M==dY)EAxX*b#?|*Tj z`_%vKX4HEp;_h6#JFAzc0^xu`$vrDC_4(^(*V4Y*boC{~8R|0yUc%Y`qLxWaokWNc znd4TeOEP8!RW5O`RRSQ-2g(^@(a@lqJsd5_Lv5d^7WDH5)u)e>@iN*5z1ycQ z@r8?5knWzvnFAeRz17J52o*z4az!9MX*{z|%W9wdCfyl=eLQ>z50bw9Ow>Fk%?*FS za6_H=IV6&2^Xbhesp_=hX{66Iqpoj{9;X+w^#7c9gv!*P45}Q2g6)ORGvv z(fP65nq$)`1g8a6^)2C_7Szn0_;(N|wj(dDzCwH_kGkA9cCFPo{u^-wwTF~cOxbNn zg;8)$TvEv4eGc>oD)}`*QMutCuS?!MxolMJo&JeVJFf?{)i%14Nk({z4dqTq^*UQ+ z5amFVLG#~FPBBMZg1=22EyuO{6v!9uJZ7+9l>p9E;e5q$^R>g?4NY^P(rv2JVV!O4 zc`;YKjX=ZT>*wm;`pR+K5%4PdXCkQZ`_WGt8XI=xx|fUMy<6)N)1LJYl9pmj^ zhiUUKCzXophoW;|u&gw!4tCgT z+x_pC%))$nmF*@JAC=e3c|Y$cr2Vy{#OvHxE@|Ajj!YM$ev(kV2Fz~5=TBTD0fCEI zG*D#kq1F*i$LB`SQqA6x3ry#ovMCmFC_0*%8%n>jvl)Tq6J5)qiwu-g#H6LumplLs zRT$iH(RVCk4OhTm=`&#MmC2!93-RD!1HwxU4DiP-_|5s{IMUqXEF-B=v)XZcLo+4{ zgk>N(xr{v=p25_rV5e?h+iu(nYK%!<5cL>c%W$H>m0Z_VGZ&W|<<#9_6#|4ti{Wm< zK-<8eNXTtghfw#R+d}3)lTcqs368Q%54Yk+UlrJ4<;*b`&- z>Wyn|&mp1*HYytT_Br4GB!R5v-?oQuuU-tFEqef?oK7e6aZYO{VHUy?5WySwr13*j zu_UwuLG-Y@%_8Llm>fIprF^p0_lxjJVKi}>FSsaK8$6-YoHC1uK1S0ejuD%#U{J3F zJHg@|yNE>BRezt>ECdwLD^xu+py8>V!U6@wOJX~k!(YFHkQmnZ^-CAM&vIWOzT)_7 zB{3gtCgUR6p3%O`DE9;OQ`xtoK$5NmIvRPVR8n?T&YWlO-Y}i$;U}3Ns{XgJ$bs@= zfhbp_d&<0M)lvFPSE0fF6E-_HD!3(3B+~xEp{P#s_Z>n6!)F=?))U959y8E473S+) z7VjzlDH*-@zeh&zwEdTp(fQves^KEC#edenTK!k)Uz^P-16YKr7pQBfUC$0N?+iJ9 zTC#wY=X!1$lA)sMB!ugB?pgK_0>$q;P7#<4ALn!+mSDNZ@_Bt$uoLG*vI%zo{x({s z?+QL}dL{MmaTws-NrGatl_F`Uc^bL+-Esec4)*R`dKmHn?^^KQrHd`T0p3O**Te)Q zJd@w^q#P;=`P36x0KwDk9=XZ#_j*{V|F|AD{aJRgH}h$uC`7Ga@hMJ`xq5?zMu{~$ z+aj_DkZC}!+>%$BdbX5iEBVD?X(3T-4>e@=O2hvN zw=)#;Ik|_^ekJ%A`DQQh<1bxJ0WpQlxVdw0&K;^xv5i<^T$+(N+szKFQd3?zw78r{ z^BOUS(u&7>ag)Sb|J$Y4k|LFQ7 zzpcc~+ueYQ!`Lht%NvRUkZ9r_MJC6fJ{sUfh#x#7kPQ|jv;I5%xe&Rfb)x}jjz>9<}bel zG2l?b1RzKe<*;n)E4!bLQbPp!FZPeII_Pw$*<=!r(<2MpqciVGOcT2}5KKU+b1Bt+ zU#GoDz zZc+L!E3fFf0DR#MfE}Ouog?Lmy4Av(eCd43%I;k)&@3LNxTQX99foIa8yy302x0TS zY=;_1+C5wb{1N-oXw|c7qWN<376Qv2fDev5a9~B=ye0P;da=(bQ-+Q}O7JYstpbWk zk(2TBt}zE?#$lG`g|S3QMNf~otl^wC7!ZYzD_NfEFro>ofL8$wt>2O*kBcxt!PB?F z3*rYVz6B52-AOwsz{2J)yJfz43v3W88E&?KNz@DqrI23_u0Zy$NLarOSr^?8gaZ*q zM?}N|nl=;HY&Gw)!TRa_3i0-()u$6ZHEzHPlsMOCL1zc^pXDrkm4>nNB0T-FnES@f zgn_Yi-_p!>hR+YzDQMsqic##n*=dDPZan*cm>kOaIx$iZ+Az>dOr9&X2=tFfM z*U8tky(`Mo{yqwIa zeDy8!d)Kp8?d#CiIQF8?If$ap5L3+ji&S?z!UpE459LC~ZIba|?9^?qS(z;?R$=&S z=1gNzU^g?2VJ4b3;4g^1GAYAqz$#pS|=Q*yY#-)k!67%9pe$hpTysZ~lm90l8a6YfpoQ zfOH5ETFB%LVp;IVIL6Q(4XgHcMoMu^0T$0P*HJekhZ$J32;kc&SD@#Q;iEiO%0f98x{1dFMqjdfSeqlu+JbFWPyJU$!=m zoeS&#D+6}9#jjrv(0|pM!nOXSHT{$G-cZXtorVg+mBGwr`3G6H`X*xE(Zmls@Q1nPd{rASpwqLD@3mnPwO?! z)RQkq)8cooyvxjZgj&ZpcPWY(?ketJefcf4euj^hc=+*Mom)W_00P^3+6SO?r|82s zrblmfgn)>z48ZFz5W&CmLiR4r)*`}x{REF>562jommln~b?3iCI02sqU^Zyy08|ct zflSQF`%Z{Qy%Mw2Oe?*3rFS@Yy`xWx4ZasqCuGOVu89g8uGx322e91D#WvY)^q~ZQ zN*dsVzNJP7V3{f=xya3i&HH};!1_(yel(IF9-d?rwOL;87TPo-YRxj7SV~TA7aso7 z?Uw&KAg4fYDj6N9#Gnol(VN&Kvy+!Mt|{Q$sxlqz@+Q_LtukKX885d*Lq;uX0S&uv zHAQ7e!CIyrm0_oAJgh&GS+h5FG$EZ*qahGpfmC_Q;?Gk|yGm}HxjO)--S~>@-+^zq zx!e+pz%D(T{In+VL;>7T7bKh6G4PKSr%$KW*cjS>%m%#(G8TO)xZ)8{muIlE8*(ys z@8Y)*ctm2fZAZ?yEefbj?Wh5F56e$?nV8{CKDS$N*ita+RgMk%Q*MDi4cge6C8d#( z^;?c$HN9N<8u_4pVDvE6uG?+FdFM1OFvwjGYukb#iL{(JHl`*dhv3HzUr zzXtP^#cl`_>?B3SH=3ovm*YI=!y@gh-mU{=_Sgy_i+!qb5w=FUMJBHbz3re5HNjD| zU(0GP0zbI#v7U3WN}9QG+PE>S8Azz*&How#$SPEcgIbsjadTxAZWP^ob$SWbPj}QU z*{WNHf|7J6v4&`kK0nos5pbYjImnA=MyW^^1jTf;5|s1?+tjQ z!R;@4UrN1OWOm<51~c}-1jsCQS9YO(@RrO^fT%_?{6d;G>sK98T9fQ z>$*|hw`cVfHYNv0KAE(rD?@7Jc?&{(4&67_UZ}46T%oaIE^@AS@EJSDQDWp^}ryZO}zCgeM+vayiw${}T*)kD?@fV>)gb;(eoFomJ9` zxyI9NM5MjZkoPq=e8chbEi2$xuaXb%#+G*sl-}B;DKKu9IE=~t?}u+& z83xNuQr1ZoKz8N_5| zzemR~3f@~H3w2YBxe2x%99LpNL0Mu#zi?z0ae)8-7KtNZR?i;TNR*&_O7K*( zy2(2!#6#lZU2j!ZKC3<->HY_^Lp4dm44Q$?tPg_XP=333!M?@3SV)4KMB00o_Gl05 zwZ3Yq8Ar9HRY&i&ZUYKiZPCOaJjY}Ywb17t9Ad(g^yo+{HPr5AX9tcC{@$F{kczPW zl?jBHBOEi31ZJCYjjx*#Ntj1LGmVeU4+RLbVk%%XF}!TZT?W7%L*?@jh~^n{qmq+) zJmnZ&4G0{iOO`lXuOs^dF3h~~B`ZK4$=~FQ*Zv<%4E>5+$}X=rE4jGZ8V+!C3@4Dl zLg`nbYIB3xos%M&s<@2rpYb?^t;1b8a=S=NTs*Gm{t$~%GK2EWjDF2@uwEO z-a`w^>TEOdi}N_h3`g^ohh#qV$I-#NikgBGp}La}PPyXjG)|j#C049DW2Qp3MWp-u ztTJ+4NQv`pNdh2hT*n8T9as*mAN7jR`Dt24_|0Yzt z`4MM$I1@M9y@FB>tU($k8|+JfJk9g`GCAr5$>N7~w2c znTi06>2@*H6%melPw`t$tJ4PWy%GN$cw-wLv_7@XL!?*w2*d(lI)$& z;lPgPB@-P=+BFU`l_=VaeYOgutZHdC!ulk*+q1qeXx@O4&+R^HL>Np!8M_AZ#6Cb9 zuvb!aPSPn5|BzM_%Cq)4d!ZM!uY~v9qIN-?|05o`mjK4BL^Ir}n{+mqD-(BcLY&z`cw-*PHi}eGgu+M=Fi1|-mjT^jc zeF={%*?yauSb1_XUKz_-nQofBZ8k$Ebobw2wyYZ+@4Uq*(ci6paF%j5y2{$h_eYkJ zOY*Jud0(Bm_F~>Mtp;fYSE9(6A1Pr>a(VV9xvC*A!V$}buKVa9-eaRBjYmAmm+s_{+yp9UpVP1quGtS=`{J?GpE~CeL;%wFd}WWF0v>6g+H-l@~!W* zfcY^GuoAQri#A*-xQqBKgw^NwxjE6vr-9<=8!qppI8D*j)q+ET)r~u7;;B?CAUmY zmwp4${mOGHZMb?ilnLQLtDjl5KjrgTdNg%H8h}YU1?TZGWz4&WGP;^_fa>;&<=Kwb z&mo5G;#gk+r+q-YdTYYkB2F7N_Y*g1wcXyy&2P!>i zwMLUkQ^ArYG6FjZ>@M)u;_+bh!yToi&xpQ15Y#*0eiy{F!UMmpmqjV&A3eS%)pQ=xK;JV{ zDF@cxiG|hk()+!NwKN&dW;ua*eH{L@Mn9plglCMN4_Qaydev@3z~HdXg99(aOgDD8 zZ9$pbBbRkAEAQHaN8*Jp-41(edT?0=Q3EOT-of~d2|`(mW4p2Jii{?YxK+-$zQtPJ z0O?82+|BX!b8W6=4`8x?F2eTnpyL%Ri}J@p+@k;bw!*6@p-G+AE8yuOa%9P$PPoHYw$DStf0{MUSYxi0I0 zfVR4nLht;CHN$E6b2?LBpRY52>3R|GFqfF4k=2Hd>)bDM^JoSqrck;Pi)H}f@V34w z0^791rb{mVVmIIzA{Lh=!OA0Z7SKo1t18c8RyRAf;u}Lp^=gVte$&;}^z`M1o_x)G z2_tB!Z`Be}AJwv=3#m8z9w2trzlI07#9?IHsjqFeASQ4%6JGK~##`JT;KO^Pmd`~1 z8EWP(no_+ASlR|*@YIcmyn~k7XnsN@@zais#_!DuRZ6jAxDp(hr)fT2T3KeojX*?R zu-4Dwo==@)!1$1T-8i^H(rJ8%r?0}Q$a{mbWT*wXw`Eqz_-o1MVPt)1L))ot%yr{K z9LGysJrjBxSbO))^EDe|wX~53O)`gK%|Np=V^P5IA$16(TMW+{S-X1A zb_E=V%kS#z9gX!P9%6z_j=j|grTK>BJ<-*XD|{oj%u>-6pIrA@4IBCO?o}X>5QxyZ z3#0(nWq8dITlPHAd-%oDfz>ho+a*G^i$hmim}PGZ<8|qH*D@MGt5T{j06Ow4?gTQM zIe^&pbq0m9aE7=XpCRb|C^8t3F0PA+Ne{1Dq}j7e6(cKa)?3o2fbNe*u5XQyoEYHv z%pKh9LWECsq&a3?O+0hW<>xcZ_q14-#OYK7O^Py%>> zJ-S{=xZ`10lP;?aE7i;h;Fg+v-J{Dhcq^`RIP`WI+FOtfh-zXvhQt8Z&6=tlI27sA z3S>vhm0RK&84&ul2z398_Ulhc5|r6UrXIaWmT0#>Zno+b^3QgovDKnq8{chh>O$6hsAOI5TuiV%Vc_yFepk%uf?{+0-wVE~wsf*;mSc%3G!uSn?t?F@& zZMY$Gq7(kT@#gAEaR2XEq%L5i(9-~S(t!Vb({+Rc>#u1?dlKM+n;JK=Zye@0GU5vT5XDU4Sb)>f%qG@te2 zII2pYIfM6|%vq_!zIfa7k+~9$T+IY-ne>H2@jLmlN=~fDzH&E#^zmpSjjIc0#NZ>& zx^`nC>P7_a8mrtTuGqGl554a@Vted-?VP746fG}#O&CYOymuDD6*$1qR2B}pPGh-X zY9+!2&+24rEq=W2eA^(^Ffym^7!sIjs+4~T^Z?(4?4$qfkcs={19k^I2f~(zP8siO zBkObCscN~M$w_az8^@L5 z2vKg^WCe-+o#LAm0oWwC?<*$k6!`T}dJ_ySo{r&u?+xAOqfU9RXyp4U`}bh>vX9LH+#lWN1=9C_H$9)I@M| z_>`+*YrK53qD#UuSdmMWR7&!Buit}bi&*No&mjrmk9Nq%9W+ucPw%wHOBM(1+mM6{ za@O6XCxMo3xuvReGy6o|(Lr`BbhePPut*&yIR5^a(KeM2n=F`g!;Lu6;7d4Gv>z8x;GOg?(=OK;Gp)7xqD7 z{%;ZX1?PKjDA>-)85$?mFU5~3T&#&1ypT1b?5`4(I?E+tw9hvG z@2yK1C5l_1x5G2=%Yt2qWOLbaMC@@JIG{opQ!aYl*5}r!D4^?`9hBv3SlbF0l+rK$(&>StY;2>);V4Ky5I{>n|9s1t_}|9Y!b(F%q<8Lb8fM--Ue> zBnTY|(e0z3tK?cbSTN7>`YOJ(EA0^(4VbE@?6qFaZ#C%}SK>AG?5HD(BhH#_Z4I^- zan^W*0`hi_=fu#eSJHptItc|ncKrGY@ZEebAGu;l5UTca@3MXr%_Kc(rQ5Z#;w6r! zOc(q2VvC=_BIbHdl)k+!FB+|50oUxo7+qSE%MkG@DqO!k`Wgnr;;yvTtqqo=V%gRu z7j-s`P)4Jw72rQ-WfX=JTx0$S~%>_rIU+$VKHF9-#;G4;gH4oM>>y0fUNx}nq17`6Vv2T$jbw|tJJ7SmS23K_F*)EtJOGi*MH9OC4hLI4 zNK(e(oV;{u?c6cOutkaXyNd>P?isBv_kkSEdTUKIHApI9tfJ>3h-+3_AWcjRO?}t2 z8-iskh9$TaUW!-oqU^ev(<%6pq3!WZVriMnsPd>S)`aOE#Ua}&7V$Zj0uJUUGlYWE z^}j(Wz+|X+-PEQGo|H}d=Mp2NX0GSWBD1Onfy8yenRJMn9o5sW9RFB@o%nU?nfNbH zg35s23VyiA9z@!c; zAH2Xh*S=8Y!Gr=U04Ma?;U5qNX9bv)Fg>mvh{UEk-F%?0W+N6(ZZJ`sMu_nc^^7;5 znyJbtWwUD=BY>9V%VS>o=a|I+-7(Dxo5WzR7}IW>yUnM`x^ri*c}uVx4IB^pHU6~} zOrQ5V4~7;5pi3Tp{WT4z6AhXplFn7LfX*z0-sHv9&w#CS2y4iK4cJ6o$4!SY4`}@B z79K?|oNV`b9!VZ!6$xT{b9Yr5Bjp<>vv*U1Z*LVmRjjfdzr zP#|7D0(1U*QodVA`v2pKq2Ixy`DLp=bH^Df^EBhYb+~-Txof%51j~f9DZLet@w{^W zGOQjWe|B*HBM@RTnXsKr>5KZ!9QX#tFsVbGU<#YICJ?Bja`A9gU0J|Acn3oi0rh=SlmCqj)czTc{fUYAWk^}sKJ5<;fSXK3CG+6Rt2!++wB?DB`b zdfmteHO^gWco;3_H!u}4;w@>}uETWW19!O?Z-X$8jqce3!_^W~N17Gtf5ab8N&Xe_ z-l$vvG|?^JyLTQivj8v#~Gee-spOl(2i}cqU*)vV@%k6 z1Z!6vWzp;ggh`f@-k0^$r(1xUtr$~^$6pLnPsf33MfcU=Hw~LVOt*;)5HCt|K}x=O z;k{giPJkC^>>0R&_hLa~oYB)=8?4~7>&IBXFptV>~Cw&VxW z2s+&Czr&F-c+h3|n|}Gge!O_mLQ^FQqgbPO$=RMDG55wpJR{=F{=`y}G;>s~ij5;; zQ^9SDjnfBP72rdb#^!BVW9CxushxZ7v_YEs>{{HI_d`8{@aRj7^~Wffa4o? zF~3QA{r(X2<%*{5*YDS@PzBdWbDtfn9@x{@j|BVlLdEyvV+GK6H&^z(_pX`5&kYwp zc$&}4c%DZ(Jz#-|0+i2pF@U3-5?;Y$XJ;NeE($Zrvos&MASu9}+7S2>1^VlYiO>4MJkfQB`#$j$cjel$F(HES7rKQ@9WPrELqBeDZu|fa(c+E_;lYXl5O+XeX&*Lc+j-_gpP3R!4*wQ9Guv20g4xWD0 z1$6TK3(1gwWa0hh-1x;DR{`eOFye1V^)ID9E*8-ql;U9#+mX6T9Yswq&HTlp`|l|A z4u4MgR6guZ_=ff=eC6I1+~?7tR!K$>tUbL2612p{Z~mccTH(|>_QN&{^q$+qpA_#p zvTb0C)TMB4>3H%XrmLY46>{5+dwYdBT$-c%Z`{F@YAG^0q22<8gcu(<<0jyQ$? zboNN?N9G?oA{k;haG7$9<@51^>sNSC3wFx9Wp1Y3EKKbiRH56bL#3Sq5O>~#HL8iA zO|P;-DugxD0lkeu{oYvIJd}DqUgm5!#8-HHpEG6U*y7>5zaCePD;8Wh@HV`15!hWU zuX%?*qMU!KrBhQm<|z5H*Jj)Qi*<*q#vbIubg=OE%V)aZxBKKxr)qG<$+3P|R;3J` zaS@JGFQ2=Dn8HM}qsZC>$U2CXry-NeuRrFOv>9`psWsGk`*$ zI@0|)#JMC8F~YH+K!38xFef0smE0`qt~yKQI`955&AQth*HmJh3RVx&@fXB|^Ic~| zhQu|37r)}v`{Xf`n!GtS$>k^1pWm;u`(78WHxsm80dcEj_747RKht(fmJIb#M8tk> z3px8p=yZPdrC=I8y`!4fls{i(PGu0@F01ycyjz!q&cB(9&f9~WtE-tiHn+NkQ?ZTR zw`AN5`(T1(RmZcXx~VO@eA3)Q$)M(kEIsX9`wHW;_F>qaZJQib^oqi516Yns4TL@Q z8`FIY@kmBFm{yCstV0u31&PQ)#_eOTEZb}#b&_UgJl>_fd_tjT!2DXgM5C($-T??2 zIubO^bsfQ15hine>hVk|L!ZI?3-;1UpIL#|UGowNUKHQsii+pf+)OqQMFu8Jla-1% z!#DcZS|opbFnEl&ycmAy=I*o+?<;HpDm^xNqO;G*><#3N)XB!qhwCw%5Z>b~nxTU5 z(a)e+Fs8D$rN2E1iQ#8oDke=`R!<7XL70i{(cc~qv92xISfTjT19V1*&2Rsx8EiJ@ zI*$%ao~TRt6x0%q_*@Ii}#GVmfva)u)Wo9 zk5dsTaZrZ(*!|P8-tq=% zxnaBSyID9s>v$WTUrWKO4ov?ab8j9F_5b$$lYNh}#;DLD3?gJuO5>9vmBzkA*$QJD zV=$I1MJ6qhwfI!BjeTeAqb!p&h`}%z*=DR`8-DNV^S$o-zK-Mf`(4L%T=#un|M-vN z?frf&=lM9F=kv6;ZrUoB4|43Lyyzb}bY8*yoqD}7@A}aRvA}RDi2#jbd_riIqg8wT;o{fp*fy&!U2O3o>vAtm%_R3C5t)1U`aI(ceO|E`bqhf z@rsL!PixXv_Lws_OH>>^jjT>sQPM08Id236yBH^#4%VFSP{?K;-fW(UOFsoSZ&yqe z$t2zXF6?O@Jq0;`Le+`ARrR1cHrjNmbY1wpx^DzV`3;5~Ebu*Ao>eF4h5z)T-UkM2 zgj;yE-Xdzb2Kjg5!MVOP#3wlpuj^eXFGXBdijY%1qIxkydbA%q5GudA0NM6f8%mM6 zZ0}VEeq?6PuOx-a!hGHsD~-o(>)jd!w;0slr*~dATHpTi{ZiHqk1F8fF@jpMmg^sS zzkZ;21N{;`I#_RGcyEJp+o(O)TYz>Gg96_Q{r)M>xaIxlH(uAbzC?{*#N%v6dt4rS z%f3f?+e2OrUejBH$1tABF35X7n4`TNpn9`LF&T>&<44and^naeHW`dIg+>tpGQqzGk{>mXE z$QCbPoLL0U;z;AkN^d7a$g+3CGJ5{fuOsQlg98xeLc{jgqnD!Hi#h2Vkl!cOj|a)C z5(~(Xd7JS(vxAJEp;@|^urEYb-RxwAkmM|imd~a(8Sr>c2pefRUqmi_4Ax&Iu0pTHK7E`(q+GhnX4rM+>? zz_RoA3$DJ=m004aIWe92`CGKwGmM%opC7YVRAY*w#BjBSdWQCh0j9f*rB`E#%=Vy8 zyj5n`@)W7WW$|N06;4;QTqoxA8fT%7PxbR9^IZBKNG->T8g7u{fy$ zx3@jt&L`bh(FWD7T+oGrd|p;FS|p^+?f9W)bsEObi)4T-oHoC^Rh&FcF1VlG5VY~b z)x`AJ3%{P?htEDkgF+Q+QO!-DO^!Fkj}~3Dy&kYBK|9v3x~>hEED0qP*%Z@^q|AC{ zOv1q9@%F%MD2lc{a{3kU6YzR!pqBi(ZvCXI0tswH(h)2Z`eSvoSt#rVafcr^IjqJ~ z^r0r}Qcsr!1eUbBgjM(v>FLr$sEKVd_K($$geFW-^q)ng$`FAW?^oaK=q&nbt3T^- zl}x73qZI_Z>Okb`DooFUuBOT_Y96N!?+6&utsZXc~2=6NW{ucm84<;kKGk9I!% zN~}P`GacTY7Q3XtM-UJuM46t~q!iX>9Mt?xdxqph(Q&fahDt3Fvg(dgG!t~-I)uJNTB`wI00=rLRhWQw8uiGJq- z_*;VmnPI{a_sLZl^SgTUpM_ zS~89oJT=%`#^B*0RNZl;&;pXQCM4tad!HhexPe8_%ctCP{}c+eJ1Vy5SUq=HCQr0P zDu!bF(K&(mN!9ihMVP3Tb&no)7T48F3-!%vwlEl6C=e!W*6WPL5hPr8cz8ckC6OHL* z1ZH}6Sjlv{W=~=fYp;@nc=+NJ_x#-5pn&C6^C3_|dF?~Xc6*yQrQz3RCm)o$^nTjz z!Xt_8gQC<#ta|z=BRdrQO*4l+$KgpcVnKnx_4F3FGyzgeHLnvVTW>(tFvljcgz>!B zNB+bFBTciicN1RAwcj7o*ikK1w=^pDSSeC7S5}67q<~edirjkyu^jy>SrOHRI`0`=|G;h%xAj;j4Q(r zJ!vg6JQ%0Xq&M)_;mdcZtkr3(UppmTd8E}6=Uz9iyZXHOs>Z<%5WZx$?a8p=qx?rrJ z|?LDnKU%c zgCN&SoW57DqGQDP*9B&suA)+;0?tRTADt`#PQN_{&Vd-7ySHgKZ&Q(9Zw_|>>EW?(=k6F~fXVM`zMMmx3(Tb8=z+QRGY&Z623$L@R z#6v0M)(i!Nd3aW$nUhE75CXdEM#F4*j_H|+qzFJtyMF~k(J(79Vi>e~xuA(Myj z@ZD8|eLu|@%0@Ie38?p;4@<~waq&#kP?&CSIyAn7YW zeA=+Jy?+{KfFU4NQ{s91l5Q20j_tGATCJk)hopNVzrSO7uJ(LEgi$g&kr(gCbnts?U2oa{hI?*``Zrt`O?&s%?-<1ZNc!t%qyIZDvbhb4D>#u$LurRcHA_BZ==C&Jl>aa ze5?l88u%paICBXBEN4dDctZvX)H!N73xlt#tUvze!qGUxfJ`0%C8g#pAn6F38}BDW zFBaizCd-0lilUJa#T#LR{pv#BHks!jTq*4rixoYW9K$t5$l9>R-5UP^KJc2%t@L)K zHI1OQAQSM75zACjwIvhnneE5Hy&Ry6m*a&Pr#jXDhKFc-?Sden5?I9EI-Bg~1xW(F zk77-iSSmaAlySQpcIU`#!7DA|3s=b82&(MP5MB|Rbltuo`0@^lud8x@H*4STu`;d4 zu^Vcz-B&88DJYh#67b?a1$xtqge>MWFOuz5CEfSV>|$n6iHdU1c4!)~LYv*mRe%_!BXR~)U*nN_*f;~jQu zuVY7fY_%!t4H5k(ZU)&DS?_zXmEbIPyqYU`l?~H2QJ~yYR);hF##uHGb*933I`02Gv0wy<3Q7H+ZcLLUb{AT2lf>hl4E3|btPxLLa*DuyX7ieX^c(6aS9!QGJ~cVw}4 zn$C+{j$*shLkEnbEV6c|PNwNeUMOF$I!}L?ir#vShKH50)0a5#PhjHcepV!&VG9gV zBFNyEvHROt;#filYpzOL*5E7LOz7vhvuIwZlWfHLsMrE?0oB(i-ZLIQq|1^YRN>f- z4O`D&8BP9}h60JyI@7U5r>?&d`%FOovl{M7Y;$}=W}`qB4LXkO~I9i#}a>w|i^$qSo|K0cm{FumAj> zSPn`w9M|47J8m{1BN&2U%kpkI$yx1p^QgeM!i3UlUictAZVS7=juYckyZMl92-U>! z3}PHO*LrRs&en$?x#%?Tt5QbvNX%K#Y7&{9&R}a}{}!ZBJoc+JTJe>V+i39!+Qm6v zraLs=&M|DB&A?NUdcd^yVex=yyF#&|hlhd?Mm}IL^!7f0C=e zkvAd@R8XMJ9%zwDh4s{z+Y=yex^5gVEIF+$9>N&$#OOInJE>R1no1NcgX!?pBWrYrb)2AER>o`JecSPnJ zT$do)cSDjJE@eF>T%#+oe6H7jCw#}<-cmgAQvCgXYZK|eJO$=!BSR94v-1UyKG%-- zW~T>L;;r+;4fI&F!NpI?FcQ98-5X_r>r&_FnY{ZOockWi6!a>$6r;g-H9!CLV10X| z__88%(Ho6oqCldF$y{3L+w_XBwqMo>QRN+f7Di1Ea2>CW%dvU65ahV`V?F_kt1y)n z!6QMzdE<%aK@}g{|dh*r1%gRXG_2n5lu`5)YIj!xsnls^`_tN+vz-uI<*|saD@f+_aI;IiUrT6M~g%y zdxpZ=N`s^)@*&J7&M58q(Fpes^XSCLPyO{-IB z3T4AT!)Zl8nIA+r#l@sA z4Yh`XF2H&kPJ}Cvn6p+aZ%B1M;NGnRN{0wY8ACz;W{1RMy@qlQfbApfFi2R-zADwK zQu-X-B1h&JHU2EekZ)p2_H$MnZl3g8Km<}3`=x|zQA;zb^$phy8;>6tix1)$TR_-I zyAddJd3%3|_6&Sxpb-oYo~dDAl{Ll0t`4m>jjx7mO~3Af7oFeA&?$7S5#uB==~nq& z6WfPnMCPtaPZSAOD1&Oaz6qM?@*8)M%>UamTnr^>?k81|XPTqdCQ&Kmw5xj7KcsfG znzBFEQG?|F7cWYf1k%#O)Zx|HrHOy80zzpRfwG;i7oW4jXb~ZJh3t^??s^J?DF8QQc1tMVwRCx$`V7OjG$WY_Uh-aC(s+ zF=dAa*^cI}*D~YETg&$#X5TJTQBm=?`}FYq6^urS$lv80PZTV!)t0wQJ(nryi&>*+ z3$C6p$gL%toqZ`2>&!FzBj?Q1K4Pi#*~jcy4bPCT-)BahV>+Xe`d7ETzQr-5v{nL# zMT#B;w-rtRSh8z}AP&PtkfCkU;L;tHlmNsifqTbkkj0@=3k`&i#BS>0njc-$!=Yts-ZxZ%K*C!fp?~ zExNcF7V1^a>n=|Tqz4sxaIE967gc$_g~gLB7gRELURool?8=0eXXth?6XO7}4 z%2y(9u$F!M2~&u_mSttk~3>i zKKzF2#aJS0SpDtf0pX)N7Wbo|%!g*5414w^|5nBs!Kac=7yf*DiO=2Lw&**LNkIFu zv0txzrJC41a5H==^-cMslY?3>bWR9(p1tez`Fn=0ncfTIbJ}*~m{soeqiOG&U)V+! zAw^e3l#c3@#Py$0I59A@j2=CIsifQn?@83ld$mu_RrvdT`NPKw7f<#7;Ljip9G@-j z`@;6|M@sPJ7t3E-mG}omaKWMG3UdE;w*-v^_e%#7p$;SWkM!lph~kUp9f zVlI)U_ z%g~>mRE&3W-OW7cwX8t#Fwo=EIp)>rdwvy?cl$ zIUz=qwqQxJILlW{w1VQm?7yz{%^(iemk zzX#t|;7!r;9d7RKGO!?dZ$9XZqGIgDH6;g$gzwxt0J!D)cJQzCcDa$9<`0aKiXKsw~-Q@gwU3Dm!D2%`W+yiE#DB6c6Do3nvD*j57>BH*m3y7U;2n) zo^_vdGljGJYV%2%@ogM9cY*RN;i+#DwlfKNX7<8x3TNY}~d z4vy2=pGBE9SzI6JifcTtWd5v=bCjMiF49)D7|rzf=M6(6W-8<2go|B2m5pLby%byF8Z(~ z8BXC8mbZN8R_k!m0!zNtVCsUO z!N**O2Rg3T%W^!!&vp%RIO^)O)YeMa+tuGcT*)O@=yl{y$>5z2N=FaXYNsi^@ypv= zf!hZx2ej8v^7&nX68(6*f6uA<;O1eJa8o887z*S=n$g2Rd;f`6j#tkZyq2J<4Xti& z58}cA8WpxC_pxPiSjQga3(oeD>3Mac$#$S!Mu@!pfM+mITaYK$M{dK@8$T+sEwmKo zlWri;6e`kcp(FoxdmxFV;N$)GXyt|qDTywT+?^o_WIEmfpzu0LmZ#}}qC~hq_dw+U zE#hqkB?`LqZIaGAp~JV0GSPHo7O>(=t&``jDMnt)j%n>w7D%d_nS5ZYiga_8cKSEzrG}EUp8k0^fl0 z37*j~d!A+#1O)AL`{sVa*qJiL;TaIL!a76=n^vqF!0Y`iUKf#vUXT03xBBU_H^VH2 zZN;@JsqX^vS2{fR&6$~8gJssI{VY0Z4!!~)Y+v;+ifnh(GuCB*!-qZV{1vcU04l7< zv$^cX#a7S49>94cMlLBcJU?s$0PX-x&5xj2<|@hCQ0jY!Pp~5vU%vQIJy#K@l&qGeHU#RJp4PE zIWUL>M^@nWnKU^RNWU4J(KhHKdWtqv@g!bs{q3JuP!+zynq(n+=#%2$Ito>Unz|cLQj$vQ|1wi zz%YBzF|Kh+Rjs776I%1?0{BYy5f)N=2jBIlQ9_7hk`Zf|py!YKG3&>5I}a!NK-*;? z3>WR9H+MgioZ$tVI@p_b`4XS)5;p>QH_oQ~8c@`ZC!qIMiB@~%vAs+ZRUfv?1V)Nm zX0+QfzjGg7HQQe^Gt#Z!oP*)EJ9iPyAFr^`lvx`@)?q3^dX5#&{KxMXdL;9>lj>Ue zmcYNaN7KV<@rkYHdO}&Ha@jS-x#~x*UwWr_BkxP@VQ6jmA94X%f`rr#3p)7(CTZ_vsRp5liDCLz6=-) z(V`BY`e?v(*V$_T>JZwAzf4`HxdXv;D}ivc2aZd>-j{DW)sSK!NZuo`u;e2Cx_t5W z9>w5}pBg7rf1?ERit?KoCpvfUZ_4iH>>8G|WJ$3u)CD%xO0i<_emzI0j_Pjji0LQW zw|_a&st-_7R0GXuuYr4Odz2OiAZ!F~XLNNDxt7!ktDze@gxzhpf%&6tDRU|ozq!Xl zTSBIrT8Qcp>NS{Ne0jIm5^XVl?RZgp2K$JwCc-qR?CD`Xh0w;HL}-z{?L8xopX3FL~eK zS<%96jjE?tjA>1qM(&&}x><8PhCMV3gx}Ju+1v@ST`d(jyXm`G@ZOF&nc`;Fgx7Hh zO4JWujfP6&7L3=k#h4{;(^P&t0%So7!zc=4oI}*WR%kfwBAIyky z1i>CVcjgPzN5cnspcq}_#FL3~v~42AXl)RJJvEjznL;TjvNTx%FyAmmdJ)wZ zFcz;m0~{uGLQuptOfjT`mmxR{((nCXPb8yj+=kUVD2k|EBVWl-7(IEwv&dc;@=8z;!zD^dylwQfl3pVNaR8Xv`=c& zq>r8`j)fg?xELot_AVA9@fl8D4(c7h(5%!1==``bdllW4KS%G6$2S4RwOXJ8WuVbG za@-JfOnOY?Rb(vdKLji@YQwPCK1v#2;zPK!Uv4)AHBaNPi(o*)b}6zj;`=-Cwr>@&xj2R&OW_pa{T1Y1>pn#nwP#0w$EOW^Rux zQpI1fDW_idREEnJY8K4%uIRKpDLNl+JgKyCBnUF%Txijh1!74Tw`~6b<*#A8zhhMw zEN~>qEE=Kj-?KR=*R%-~>38SmrZv4w06E50Kz}hVNJAb>U7Ed?W_>ppKw>MU+pvGm zy44iF;I(lPLlmf{VZFDRwzoV-3z_Wr>t_$>6eO)rYKMIHidv*1 z08`KHT)phXwvViqa+z}a1Ep(at&L?WPkEXo>?25`tZQ$J1wzw0pwp}Hb-=CwD^|%a zr71^G9eg}oaE8kl(Enivxg9ZU!Od2UimVRTC0dh#t?>)>HtD7lyYmot#8~hG&Op@k zD{?BR6?Yl{qy_Up!VA=biiTHZZRc~_I?^q6Bwv>v*ZQ3)kW44G(w0Il72KuDYz`_NgrnAgpWrChF0!yVQfpoOpt-{DL= zRu5=Rs(zUlJjhevCrn!<1RlFUVcC=k?y39IY}G6C3;+7=vs>l_=0CZ@qpmajjAxNF zxWeRiF3>$pOdA=R{a+;A+ zKcl_2gB5$_3h?Lc+23q>bpdhov!T`EqWKfaY0;%J*@m(K-k0b9M6=!4R$dpShfYv2c<_p+-~4s(y8uX=!$Ga@9=j|BCY{uaFXZ9!g9+fHqxbH_KM^k zkV`~EF#?NCsx&cwivSpajzy#3y?}>7Q1ARf-?w~wzWi`8sjaI{Z)&sY zan;MU#O~7R;s~tNBDao1`st=*zqZ4#_=gOQ$>}Rzz}&0bi5%E(zz%rDR7-1~pX=`7-Fx@|-&GW-m&^PQCHbF(y_A0^?B&4!4`FYf z5yV&MZ<)+MiD%MSEy*RLuO@H}mXQt`YZ-W#aTY26AO=I~_pu{b`#dT%m$6g&MpAKIl@&j zPpcK5=!^%9t9%Gile9yGx_eHC8dwMR4YXb}Xt4b`;XldpObrJ*`~Bx149I;CATs=u zT}e*=bRE_`BZisJ#Q&U(-0yk$PimbBxzB*?j)QGBPn$aklM#nTZ0)wjr4wNxf-ekr zeU(MH;=@7?U;B)7$@i2KN}gLbN4s**TqgQZycp`7MOMLKfLt^jK3geY@Q(-e`hFvAqJWzA)P!)zR8)e3$(qCb#e>HS_ z`yI~4GOJe16mv66{|M}IsF&u){-42(t?LrDA5FwZqKy2y?808oJIoDs3>$1Dk^d4{ zu&T*Mue$w6!a}^x+Inb&Hp0DZJ}r|cZMP4oUPXS!eHv+7zkS4v?wMegdssUIv}@Ds z{9Q&ARD_vV+u8MO^a;-9D>x}pWGJTc8al|(RB7}3s;s$NMx|7SW>6;tmS()z>zjQ9 zu-jUOpWgRMQGsNRj@4h@TuFI(lsZ~!EyeyKZHQdIoMsk@@A!K57ElQy*-hOUlf+h? zj2yY+L3*CwP|vBPq}jXtM7?$W<*oO_+9u5_>JTn~)ID z*sBk)E`F`Oq8sfGtL+d@a?nMHcj;@T4+>SqeyxZs8%vJ_m3WKW;{kbQ2JrN%VeNTT z92H5ldbPa{UWCE$l4HYlwe_~3*4T7Y{LgavOgmr3(~`cHht;r`A}-%vM_X1c_bsfw zIpp@^$5e;N0^PFS7XGPZB}SXodjaZ;Rv8Ort;?v<^@RJJ=)L_AvirCB(GxFz)LX!K z{fg!lEIR_YBy2|(mp^!&9-MjG>U=xeR;wYPEAU+Gn2S9h#^{rIwT0H#`5z;+rbYEP zZ~^lb>8eD+SKrm;$+4Z=*IVY=X5r_%!8Ho$lv~L!UW%d)xl3Nk zL0pnlrrD~5?tcpr4vr+>yu`d-pAHGsUdoEb=zrXICwnq2;h|u>S7P`NImR;>Ip0d(|J* zitEy7OC`1*v~{w&*Y;0g(w89DxG4K$wYXBRn7Ul(9h$Fyk@OK;JjSzM$@<-@{b<%S zl^%^@+Z$u;nAH+4pzva*W{v)@1Ki9`OMSCo4XYqbOx8*B!ger;8_xcyT7w`F;kIFh%i_L6jM6m#DmicC& z&)T6ZT8RpTRqv~u(Q2R-crw)&QWJ9j^RStxcQZUjtUJ=algqnd{SMLMf;g1Nb(#C~ zgQ%Iq(4(UXh9I4_dgN~YKnK~cb!+m`PIgxoa%zWP;L1=N)r zRk#KhLe5{dGfkP$XRM=?0;c`mpCxW%7)Fq@JZ_Zd9A7oIi30>&fF4*o@s|!oQR=@A z)&BQT19xvg2KN5q=;bX#A8`3y!x?GP#PMovKoaSd(64u1#_o~t3q=1LwKYt-)0QWN zuQA0-aHYIqP?knfJq9XN>Q-;A`fnsTrD+I=C+GYQ|(H4}Jn07{m+f-xVwm z6d~y}LyKm!P)jx6WPB}(^qzjm++j;7@j&OZIUjxckgUxz8`-nF1cpY{NiTKj?2rhj z=frJ#t@;;crO4eY0jxu&iN!@KF)(qgWb|UQasEh*#X`la(|nzeRC-UC%%tbxLegP& zA$IVkO~uw9zg4exXL+&q#T)kQz-a}HVc}myTAn*|F(RDH&u*Fi!}m*88>vp}_o-0- z`ZW6E_S}l^bY`qW?Y2hODWHLYIqzVQNCAXzNpe?F&BlwL8{%35G+?PLepccLNI1Ss z!8U(VTmEg!(;+MXmz-w}s&|^#QWuiU!pieyhQ{gsdG z+GPX7QRSiFmSrFkJu@G|I1ZVtQx3wCKYh$9?2vy}-#U=Im1KN>hGCAVq zwR*Uj3bIx1+lh*S86XL6O)@rXvM|_*Od7T+ez@Cv#^zo#$O$sSX30n8AOZ3e2v>83 z^*<2TM{Krs(%9GKs4QOi&7eK1r{t@3Y`t#~j0||*TIuwL%wCes6XJPr79h5h)qz0| z(uP0#`YT+DT#BFNjX?ZzgggU28ZkY~yVh4DMsk?ro$%!StwW2LuNQ9~9^c<%Ob4v~ zboE#iTP8|a@o;$3Ti*}3pxORZF?$SM2vJx2RGNpCElb_tZ79&M-^iCbNR-9#b-8J= zd0KV3QJWhwHdKa1S&Qatb|NfD4}Bm%!j^PdVa>KUK>huEnOkQQgd_Hlxp(r-@1oU2 zfSg6;Ty=UXoIcSjB9=#E87S@HpEnA8c3OHO@riEG(q|vrv+d7o@ROFye)jKc@2EWo zcEMt?RukP-&S&FL*5>79LCi0SDsX&tyXyN%4v3ntjD}8}_%R0n-O>^% zn@b2>+SqDw6Ze_CCue&^v2aCGTdYC!a;dMUE?J5r^ ziD2k2??RScBl3oY2%DOv-PeV@whD5mRaF+gf&@stPJP(rr+ein$^yBYK_ zrGup)ckADa=RQnYdbT5ySQD0==@$V#*f-g#$6H#kBOt96CY0IGVZ2yQw?%qIuLdML=YAkhfdlCy5$Y&+b&qT@YIzH|e zZ=^@hNF+yDI$@0}=C%B_pT`O93mldnbc22!dx=F1{a!zZSt*2Hrwhy;d2huJq`%Fu zDDeF9`1$J@l|4oC&6C~VxBr|e81W$v$zeWs8nP{)SEc;=-2p)Px>={p3oG3flxAqD zKF4kK(2^$#)*Dajb}|paKG^~evyEmL%5J9ZZm50{@<)thh)&4Bx1uokHGiHJAT`g- z5h9072;-MKq4sFzx_aiIVrH2|GDd7c#x;4hopyyH;}uHC92CXL^1pd-1cBNeQ^j+E z;2}ev%vWamMJRqid8Nqw#qwsTkQ6guz!|Vk0EM%E2ifNA{vK_A>^ldpAXIqtGg%OW z@cM=OMct(@**^`Zan_q^2a_)PLg3O!s#38AI+}(umv-oF6nDSRMD=-xt){JLjbU90 za?P!(|Li3KyaDKBzK#Ong@0^FjINT4IDEKTEsi15f9Zbb5CWT_+FhCnQ>M`i@!XB88KBN-R@R$_6G!u+cS*GCHBl24 zZR2-u1ZB91b2!i+vo58t(JDhWTV;#NSG^yoZg27LK@9548r@q4d^Nsj8tktcfH(Gm z`qwF4g}KuXp%VK*FF^h5G^O4zJmrEEmc23Zs4VSkD>Pv$ECWx`L9=m`v0%o58+3b6 zedGfoEfjnphjDy%yA^0Epw}rA#`0%C_`V<=!C1xu3RGY64%Yc6xWr>@==sy-RCD4* z&xhZRo6!FYk?u!LeX<%U?LhAVdEnNGE+f5mtP00?I^1nwbZ2lu69}b<`qkz#mfn@^ zM^`N0Bh7WbX8$N35P?3YwC)_NEjpUT03EgqU`cATTG0AmRJ?EgsCdsjs*uZD(0oAF z6CK<7s!4IcumDi|->Y~>eypZAj%MPC#3*#t<9FVie^kpz+h;fn8}7lHW5@43a+|_g zc!pLP<==0zJJ7L78-Z6OLKjajcV-+?L=>gg%zv|wP@d?uz!$SG(N#gU{$ilQrKc#b zd}}IW9e!utYw@JESE_KQ)6)WR{6tRRkp~927d;~1p^L%+^7;ZzQp?iICAx(mAV z-%?l-CPX{!gf9s3j(n|h54o)`3ma#Zr+YY=yfr_20E^7X?Wy%W%4I&e9Q>4J!x$@` zKAkT@Cq7bpz_Xus+F{T`sJ_*zry$t%9;**Y6@d3g9|GA#9!mH=6R7nAH*Fdq;awbC zt=2IW7su?r@O1vuL3*eofQFon)k(>#Zq4Khi@%N=iL}PlvG1V-a>dNqd;>7cxgLGM zO*ZUlk&&2`TfKf{<7<};XE|NhPboGZmEP{h^yCP84UBBBy@6;Q2U@1?$Ow&eSUZY- z&17+dW(QOSirOOl205y|$r3A!6ZG71LC4SGWuKB&A+KH4hND@YvXK$9nlwc&R~@gP&2M$=Q*uT+RBlrIk^mYmQzlYw^ z2hdgREl&-vZ$)-5?xg-HTcwRe0ib$(gZrh_S>QrDk^;u<`s(yroWz~|xUMwV5?&{( z?-`(Do0WaZ(C)DuiTJLv{olM8QgnHN1LVE7RQN**Bm9T>-p(6{$hlVNl6!TLtFm^> zontYi7w)n`Yf2i1>gWTux+1;Rfk)zW&hsmja%v04vB*+8>A`f=<><5R8-M^{M<7Iu zqT?xj$R!yCPB*%ZtiK{ccqg->c_%%zmoIZwv&%DT=bUkq6lZGaP=}r7{8N?&X*G0F zk$`?F&4}MMa6H~?&i;|yuSo+vOGtWrWABr(gMaE2^{#yfj>m<4T}=g?ICwiFO(>=R zY8if6fdXB66}$fgO!aC8*Z#BhZ|dl+F6`WoPdK}PY#SH%zT5EE#ufBa4GziDl=ONiW0aL0SA!v*>I z`4$M?h8*J1Ifg?x-@skoPUY4e6y1in2Za z(w54&^@T{ZaDkwgx{p~RVenaOV0P(%d7Jg|BupD?>v7IYInJ3LV_=RNyK-^1_q z1$#0G2fGOMKxhBQ6eEBY_-G8`VY%%=Q(j{cT}_$^S7@-isSop=awV}>$v=* zC32a->)YITG3}9HG}t+x3puXI6=&NaT!6aameF8h@I~(1;qjEB4KEMBpkRS08VR|% zzCHg)^L%rHgqUrRow)>A;+A%XshxX!@shD;Gwd?IU(E7y(G`^9f{FqvxU08smA)dqyYaG2xOHv%YfEWiHvcLf7R+oGCEAYn zs1J>ovjCnSVGsB&Mn%znZmNXeL|clbp7;#6EgUFpYX0XTeLp&G-IKxGI3sGF_|cp= zs-}m>#63GAe|JCUyOVgmg}*d@_)9BnphEPrik&R!sG-T1_CF73J$t07?~Zx1+nLO7 z{hzFSZeOTKy`5B9d|Kytq3(&sjiSgb4%FcH4?WSwr=8!3BXyLD*-cDX*^Yx(h25_W z-mmPJEU47vf<9P1bUQAtRQ-KDbD$L$*p<>Dfj28*$VgDt8D5mio#xK)FBkjASw4&* z?w!xPVgc>2ynpz(VPtWU!ri)#I*nW8!fcB6i8C1T9aU~YKKpXfU_6iVX>s&tP`?!o zcuJpRRdy#N9vZ#UUtep*8GaXyzs&w(=vBvBtLTdlt&szYwR4Iw@`(4Wo&18FiIP$R zdf!5xa`iNeDMT$3I<5dha#MM!i?`~!_}SlECAmh?y2PEX9Z8^sXt>;&R|f}SB`XJ; z!*4g;0v^(?VK2OKZYiACWHeVg_QMm&t?Ln|ua-9e?-824;%09W7I@JmK>_y|UH23G z3Dn!Z6|N&{$Ct+WGGV(vs_)K|o4{64oVas5_0#v}M!9Hm@mtD8cj50jA1GqyN8jCM zNfM`3OExQ~XX~j~J4TK3=zRsD(&;w z$UE5ETi=KIuPa_cKKN#P%)R8gJHI?4Hlk~1eY^r4?qt6+3zrV$nIw@?5l2{zu7gv# z4)GV3#Mz@S7*Ix8?Hrrx(veUxps|wPu5 zh_Bc0`0ILtYi5IM!-j$U#y802GG9kcA%__=c7bY171}tuxZ#h>#fh%Rd&Km23&oCS zf2-Q(RxcOx@+`Uf$9(=#H5RfCxJ87{+YsR~RUT1wb?x9TkbW1T--}pG}kM z5ZJZA1#rhD{oWPZ#FHme6+8_J8#wTi)~bBL$7JgP+gS@3tDUq0AkLRB6G*)!9Urs){4Rf>}oyCedEnvofOl^@sE7$~qp|s1P_;wh*h4SHDgF5lKxC%q`4NvkcIZf1lPk#wGuF8SFJ^dvpG7KEcH>DOgi zi|u6|%hivwR7drtuq3L2CQiFHf177ptp9jmu~tM$d$0Dy58oy@*((7ig>l`i1!fmf zbSm$te3wg)#yu-oZj;My%YRuIeJyNUCd(-N8Vlce5ap@j-2xM37eI95w_Hs#5*yg& z8ff75{B17*G+J);B9Z}D3;gozj)aE@C5uDok{I=QF5w?2=TU1Hp`kEw3>e_X4c9y(zkJF&;&TrfO7*Cesj z%7SOTApT$mf!2{CP5U_X{-B1Ln&bW--rmA1%CGMm1*B7k#sQ>Z=uVaHW@v^OS`-<& zR0QenmWH8YL^`FrOOO~EX_OG~jQ8(;p69If=2>UGFMj}gu6^xm@9+N9chPM;(_VQ2 z%^|ghpv%kcqo=1pTZ_*a$14&g(^b(*Xib%di42eh7krOGDh@UeBi#p#XvUBK zIF-X;~wWEtR3uNk?J`g>G9ENgwj-Ixo>h_3n1CGC?+sHmKzKmC|s zt){Cn;oV%pUpg2CjQ$t*p|9b@M_u-;nM$`Qc1MlOiuZ6c76*k8d~`MdhGBx6NPjmp zB3%gYalBuMkLO~qKabcb2Lg279;zGzn#87E%>1d2ReT85cgCYzF{2wLNxD`E1C_?b z)z`zF!02X&S2C01XWh)+PB5R4(@b>Wd*h#f1<0u1fNFZidC$;)_w~h{yhLomiiA@y zDm{e{Wjz1eU)dZcY^X%Wt>#F zN2?wGIx{5hjuU;n((Xyokw0ndiGPBH$!;sv2I<=CZhx$W=3U)MG!RP9{%D**edS*Y z6ta!}7s*aXK`Z^w;`Ds2CW29L*r7>Pax-Y_imw^FQH?*upDJ+ou7mAAmFzq8;MV^& z3zGj9`~OXXoDq;DYyi8lA$VXdM|h!h3^l&e1o@_0`GL|K18pevw1AwY=F>EL4K#Z*?w?ai$d)o zE1~|RpS-W6@y|#^D_1YX$8RO#P^y^W&fArLE7Vw`uB2NOm7o)k{vkj32`LKRu&D9> z2m7&taI?gEO2d3Z_x$+7f>I zXqj&$tZJ4_V|do9S&55a4yZ5X(amXy4T1P?Qt@)`Fn_7zf~S_hMZe&;)79rOGlsqQ z545SSpmH$5=np^zoN)V7{Dty|sh`I_BMg|p%I!iEANQv~^C#)N+vclijxTegjt=`C z_x6X)wwb7Sk4@gyUsmlx+-j}i(fk~)kMt*JY(|`=skO$_x=WCuD9tYzD!t(lm7R8? zIJj`~?y40fV?KcQ8J?VAJX*LRs$1voJW-jXamjX+Y`kI3!nUZ;Vbt&r_=DWRExYXiY@a0 zO`1vlv6$=1^)nyTJT=VpxF4YctK;Gc85lnlJ2l22U*Yx369-H=XT6=8aQGK*+A!0V z`%TA(@I+(%3Gek=;s;>FyXTKOzkk5J`dKPCcpawBQCt?clIG0DooGs z#B^NE3+ZJ2^*g>N%>3n%3vj95qvZOro#(?`BdExnD`6%JoSK^2O{7n4BMi2|7yA#l zp-s(R@LWvg{e+DLP7*5bW9_wWQ{uMwdQ+z?>mUjx^d51Y_ghPr!aL4wQrnKC23)@N zL&g4XZJu1f#zsU(*GD!Gsa`*$YzpQC7|k zLG8#6 z##>zApCRpcdSiA+^Pj?w3ys%>xY{au1-9mJuU)zhKNb$qu?&z6BzTWws9zXecTn}6 zZJ(N`x8DA==%Bja5$oi9k9>QCsxv`twFq_NGZE+>3C`EESi+)80WR>pGItG3II@zHhC8~lvj+wv!euz6wlR~x6`&@&u z?2aI!#&b4_?I+s%jy-8YONRDd;!9g0+BJf_m2Q&i8I-bQ;8Dp2Dq>&f*B z-a9%>3*%oh%>N^mI!d9Ava(qJE2?B0WoZ2+?RH7=d&DkrrVs1knOl77!avW98L=9E znBTcu_l3Nv?fnZqhx`>(;rN%|So%MsRu3}c+1h>gW|)q!hV_9mxaUxzmE$@{o6vO^ zvvw`8ooN2yZyL+CI17p-e(_%6uyx&?;%=V^+hK$64+hR7p4ywWhoiOOQb`}yzhnpe zftS!rpZxB)yxMqh<3BP=EQ~|E_h46DDuWCD7@sc0bodEQQR?lU!uLFg*M5yCw*tQ( zUr;s58cXso5}p30LLdb`=zR95H&nGJau+of41ciA{}Hky!dDywQ`6`MOs=Fe8TN4v z={d$wkuC!-9$*HLmkom{WkF|mCNPwYz56=+;=U5n9!k_!+9So#Vt;o?YITRYV!ZSGd7jz0h$^&;QI++Zs%LSTR`xMZM<*?q zgp!Y9ZvQQn`zBNSL!89wh|<)U{_jy9 zesupADGz%Twx9Yj!n%u)B!^-9Kg;N)&(z;8_Q+}Kh8;an=VD*U+H2XW0SLyQc5HAI z9KE?^zz5v0_tet=sG(eIKn1*VOXR<|P5j98I!7Y)>)f;P&E|&&jOx|~b+mXi2)uRU zWVO}1;@|RhW4yUo1=L)CnvQp>30&8@1U^y$-`{(o{a1R)#_@+KakO_~78liSuBq+= zH0T{U%NKP@M}`zJ09&`ujAYBrHQTX7HrKdceYXM_{Q`i1SN7!gr z0_N)fSETHIkpDAeNbR51)b){;5a-uv%9OpR9KD-?fr*Lz)%PT4GqwMy9_-VcX+NxD&olH*H3r$_>%`|*TtV=1Y|RRJ?uUqr5Gpw_LYv}MC{Zgdbbj$ z5pQzb?nnGlGm0}o|ZoPNSEuz$m(HXtEa=86gNuU{HxU^6jN_ zGkM|9_dd1&s|K(_jbvj z6maq5pVh_Uo;#|t-j>Jr{et=y#NGM&OR9aD9p_8pFX5fmFIa944u%D5@UU^V5o4>I z^S`4s0iwT8)0(`HlX5Z0#r3=$&J^4C!*H5+!sWo5 za;|_OigBpU-PLa{(9rxehNciuF*Ys}_t1t6>r0hXlk4s{-GJQo!~N}(XJ0=T2uJsp z;=M2adUxzF`6<0$Xlf2J|2=3JNqqEDc;U0&yt8XSP=3ArAmOegIACaQDX&4^4hL5a zTi)mze!8>1(_PIv&mG3($`OIWrXQ->Hc=kHPjsn2et+{=$`IVLq58$aL8HH!9~c~~ zOhHSOJN#;`wuuJR428opdmD=|NO70-ReuGqadTEi!6lmV5G~kL-@g0qR^6Hdy?qs6 zg9*RR%J7x zSvVhTd@s~~Sv$o}<40e<;i5oI+^P}As<;Qi6a+`{5zJ*8eiM7pp}&}BjQ zhMIq?D}L;)xAgslGDNJ0(%W^%YY}~G**Yik}=}^+d_6k z*=OSLCk*RU=pkWqGU_Mt7_>rak3N!js<)oYH0Vwd3hP%P2ANtzznS;CmCypun8Gc> zC?p_|x(eJ(Bdkf14ub&HRF#JafCC6&^AzHs_u!@!Wrzx?5R(na>U6T#Lx?P+7=2bp z!O?G4B(R}^^|@vYrF>5q20Zl|op3mse=B)2<>|AbjsqNYJQfa1OkpBi$7rtCha$L~ z@6wb(arWKaj+HqSJKQxpmH8Epj;=FqVHFiz1J^XOXW2|CWQ5^{YU@pD9T?6 z>i81s;#%nZ*3s2AKN=siaFu$KU%2>jL_YM0>$+xGfNs5Q)h2ylMD%q_`4ST9#S17JDJ!s>EoPF zh{p+rg|Dne@{Rza%twP4+<%q>J&JlF^Zz8~&KMMsdORjH7{wZ?QT0IQ1{d{kfgr1A zqmIL&AE~}FA%vk1+#}~Zl~ct9{o;f~U${S~lRuZFGe+F;ms=)qwG4hv21VGPp!&$0 zn)^=XAIQ|=h8v-g2C0Qz&c`-;pkA5l{m&wa<5-+n8e)0GVorVp)&P}*T}8FM6&j@ z)_!9|fbouwmhzmeuC&Q^%dd9qm(eer2WRZ@05FBBa*3QEMVU5?@W)`ulB?Cg%XZ$B z0S?x(?mL61r%;om%U+s03iJG$AmW6E5jg9+yRe=)k&@}>TTTkk-H#{Wh8@?|uOdC6 z6~P2!CgayMk=2Yh^1-dJ3Y`tVqRD6q$4_nwA709=__QCl2=jPwAcM)$R&;qfTM~v= z@s+qp_z#v%UThDus`MtrpOwy#a$sSD0?{CzA*fJ-#{>7a+X;&~BlpzFZ|)nWAj7Y0 z131~C80woKrR~G*t!w%=BssXL$A$?hEB!QNDh`{odL2;i- z!wb$8Ar+31ujw&k@5hI)I0fn2)ix2S5l?W#o93gVg{A~LB%C?K6J~`9d$Pt&^B%(C zxJ!3?>GqoZr{@fXWyM2*FQuN+hJ6^8e^j*@01o;JKXspJ^WkQ`_sl*t8s@fa0wi0? zWM)2y!j8o?Ge`1#CnboLtiZY&wbM(fh)%x~} zei0-35J3F9?F|QB@+I#xMW^{zBmuRAtwxX=g(CSr{x3c`b$jrw~hr)3y?7Ml4S3T{Ff3Gxy;thmp87)VG{wY>q`rdU530 z&chkoUk?>t+_tCYi)6UIRC$2AzQ}J;sRXdt7D-{V_H>QBkG9$tC=mm0p+ps4+oTiv z9Q6wN^+`KBK9kZEb?o=$R-6sg2NWPAGa|EJnJEw65?=bMEB^cMs}qu#uxFa@nc?1% z_*Xoy`UiB2&S`S?oQ*>J#bUg>eAYsQ52Oam5JjGxHJ9>yLwL-jqdxdem=P1@wW$N~ z2pG2~M2QY)APnjpuIX&~{D7N5MeQybE70n{(m!k?ESA3xP<(e5M$=x-W0N_+%qzyOgi;z5_78l;So{*s`*WeQY~Lq$ z>P*(bUBrA7XE=}Jx%1$sULS{}m`D)$2@^qyt7Hz)2DsT>={OJ6aNj4E=yR0LI_H`` za9evGOdjaKB22^ZAx#B!J+{u;* zM~c|wgS+>(pV?+@zw?HYrBDiYtQdlWv|R%3cvF)Y2Hx9E?AmUdPLWO!PA5+TnV^T%+PMCiD;IhT5{GF!9trgv zkq*_;2YxXBcsRP$_w8SX^y-N@S$3=qzO_t(N+zDZzg>mhyl&4t+8n*KfOsz#NH(9OL!KGENqL@*$pl2|Nl>JypW z^=k!~ERHYv&#^}6xkzP&@MZlYX&w&S0m(JSv0N#tkQmJ&L+Mrwk@W|kE(8;@CWA4F zzU&1Ht)^UXPv5}nN@?++7KN5*EgCiIIEEZ!S6*s{k%nV}0OCc7gPp#TgEJcDDWb<==Ady18xJuIk!WIOT9zSQ0W=Jk7E>H5t_&w=8jR zvUeR76*a{fu6jZIgb|>}Dt34)%TG2RYmd%Co2nVTXw`rkRqJ}ok zUZzGaFQUC=*Uj~sJ4W4*spGcCD69CpPAAp-d}Zq0A38GW!vlHQ0KI`CgHd>R(R0SN zi~@9zgSZaZ0Bpr$Ti3M>+o4RloD;&#ogFdGdD!!-ltbP^{(5p1XKxch-LRIq>G&#^ z&k?n7>y<1O`$o0HAnYCbw2izSGMZ3t>2+&)!r&=o!x~_**pbja zf3i*UMn=(GSET+4CIMG@$EdvubN{Ydc5gXXv{r;q_nyxhClBgAGWU{j9O6qp3!AKw zM(rR;f)|Wi>k4%9?TMa|+TId|7&(UsjFQ-8A<0jrm_l$+i)?M%7vb{A$jhU8V?b`A zzX=vZIo*YtE3@aVRF=NX1-Q59(izS1z?1sEoz06;u+Hf{3$bP4YeKTd9clk~H@t@ioM;Hfi+QfV(lE6t-LPBV|o z&M`F1;{o13^`8CuVffL_e66HwZB12E56YE>MCYYS(tf81nBfzB(-VmaO zj7Q%;fsN+LI_nV~-r7ZY0)eJsT?zf*L`U(>e_eX}O zusa9HviC2TG&g%Ra6q&v;QGPAgsW2^?&A5gASE{H?-^9Hy_zpbzZJ0VC4?44F)y9N z2C*LJLOG8FZ$)vCnBDA~3!{otMfIW^o=~-3{m=pSR90#OQ`DwNs`MUYPGDPrHMqyvU4i_d3b= z5v#xR_)v$U!LabID2X9>LD5z%L~`1$OmB2f3`7l_GmTx z$tBcne<93|g$Za5($If*Vbwha#ag3+3(wdl;F7xn>p1iQ2l%Va^MO0tXqBAAvR5YO zIu_YK*W+D_GN%m=;I+_cPxBN>Q_!#q#b(m?y&T59GzwK5<@)UsA*{W?CTrIHR4<&l zLm|_kUaq*!H!Ej4+X4sqeeu9Gmat>2N|uhcLV{wc1(;(-kS6^Vg<~sE$-LX~v1%Zxe~E0J+vdTOe=cZntV1HHVf z+@_-(nnH;AVBvw^YFYaD6&NDPoQHG8>c>JywPSI5iWI^xLc0=AMt{C_3Z2c>tBsCu z{qu0&>p{IEUV&ly8;C8QaW{~@^z}S z8gdZqfS&U*WPiKtBe8K;V{Br{1m`}Y1Ej#E15dP)3i?RE`DF#Zr>Tzy$Yiwwf8a0^ zhEfvN24oCr`MKCd+nFWhcaPdmGWj(;7#sVN4-ekHnd?_9%D5Svo&?l1VJ~cA#za(7 zN9Ey{z|}|Tv8ANjgtYeB zIfaY-itwbKWMcqQaQ3QcLWr`4#z)P$#OGmbg8fXSyz!1PYItt3!;kvSQGb@(x>e)( zIz1~>xIq`b!VxycoR;CBQrsuj8GV z!FBhQQRa&Uc1QQ5fx{C3+Ka?-lM#IfwftcpC`@!=)THk22!IzZ(l1GG&8G0<)n;VV zpK&u(e;FUJI>*7VjfxtkgM^n&Io=F2WWEKFI{f9MH-zc<5Cvb87$xGK(cIrl_M3n; zm0pi*nAu4jPGF?mCvako9$7eR0=z2ksp^ z&||aYqY&%3wu_&t&(xs!wVPJmNabC@?pooxY`S(Crk`QO>Sv%hMp?>)pAI2&+9~h9 zs7}(+iF8UGmAtteY!y(?z~Cw=A2ZrkmAHsGc%CJlbJE zPQtNzu(xX4Ot<*d-n1t_tj?HK#fa*{wcB}HfCUcqXn?r}tKt(^xMtUDq3-W1gOyJ{ zXc{20;Cy~XJqbT5V~(9uEZAcUBJ2BG`ne)bEFhBjYds4w1x>JeZ}&&#RZh}&N@;Jf)~z{&ZVvf)OV-TR@e=>w7WrYKtBWtM!#w+73IFcit`Bb<4BJs(Sp z9gs1G4pWSvOo#}pK#M7C*`%ka@BOfB7WR%?~ zz~fmx2LeD#kkC9%eF%k>i1#9Ow&Hg7#A8Pi80`2WQMYFo+&lEKLG1RQtiO#HCNk0m zQuZ^CK8~Au&BOXhzZDPWk_uu9d)f3k23>{&@F0rbY6@@Sb#)=%xB(g41TUVqXXw9g zVfa`g^Ik2fH@VjmsIePPft6BTU|$Ie>Y;h@R>oj}A|(N|wbC0i+dXEaWT%2PIcg|u zr!)=Dxc_DLM%t}faf+f!IF-2$iKBpc z%_9ha0eyt?H_lxPf)<*nue_I8C}ex}iHx_T4DK6$7GgHTYyxKjX7pT#N*Ig& zCcg+RIRqV4C)wlaC3}J5bbsSVIQBGVOUCQ8;A;}%R`(1ay69ynETK<#YG7^BI(!y} z0ahDcPNyew4q!*Eh}pS;xnAm>XiTyhOeFC?g;AB4D5QoJvRWgwS%T#o=~&+~tLbCx zDb&kd05T56w=w54ux8U4hr>1iZf>1BI@vLNDdi8;aOt4tGU}Km|PM}3AeFx_hiLq3ak1Kxc;rqKvjJ}!Z zQ`tE#wpw}*>2KD?gBBR|hCEWDC6G$#|h`g68! zEaM5`Z$j4#QU<+7Qz<<+=o z^1>x#XY+Jdw3NJ(LviKorx$1F4W+39_h;(N3dTr{35mI48uy0DAf7lMT^L&_CDbI{ zb-sIgx`9IkKKZz1ZLK^=6H56eEFy z>!|ykr#;1N$Y7;h#`kvW6coV82*KLZ8+mJQm{w5pHh=h$sk_TAhl><};uM!C6oJ6a zc6H|9%1rfkpa8Veh4k86-Il|lpC(7d(N8`#eD-z_nQGWdn!&K&2`WKqW)2-mexsXY z*-VS2nGV^PN3ERKgO~?}p7Cd|5#wHcqDJZ$_H!RktVkgg``QuPaA~5JvNQCK&UtRD zvDX%H_&8%mwxpNs7=AoRW@A2I`|T-k>V<^tEr|iMUZI!aK1ul(=)vw{CRSy$Y~14c zda~T@o3dS~1!=UeyRng{yJ6Zok05&+zeM|CYmW)>t+;R^tj%3Z(PRG-b^d%LGDPys zay~0CKEI!Xt_I+b`KJ}D5AjIzUjWkmEhB6w7QRKhdbhksHbCcQ=j?>ZCpXO;r_A~D zs-^F!x6NacTEz)a#HC?kfZK0f1LI(thQz6yW6ZVsl?*-jPHZ(ld@uykfWwJkBBpd} z0WP><5D3jIfd=GIQp{t*km~r!;!oIgjUG2MRVEc2R4TlIg$q=H`i0f7yv=#hHwyER zigotBbICnjkY>EBrDc6;wt%5fN^)D{;IXo0wdl_)} z+UaIXN{Hh^HHgAnGqDNqThxhp%tR{;TrjC-vZozpYjTbC}c?omh3z}G#36DUt9Zgb5W z4cbwUm@6Acnm2R~0Yi|;NL2}W^5WGdflR(<1q#r`A}N7_XDV{w1?edBf{HA8o$!>k z<4e?9-WXhk|6z&_x1wwbUIk)Rm^%t^J zCg~Y@zc?9WXQ0Bg!Zh3T2*LEgCZER{<}w0Yd)oQ+{O@q;qA!WUN3`RkycD$t`}#so ze8}eK-Y#(oQ<&^?2s==;%)Aw@>S&1s;G~eTq%{a~(chIgOB{uKUQoC428^H@V!Y(= z!`h>ph6jsK!N8_{(WkiCSJeW;(Y|<|bCp9P4Bfg3h)#YoNq#4p?04H!g!&g&AG2*F zJkv$|ephfu@4A6?)3O(cQ2~W3Hy`ebF8HmO{w~( zgHDzqDS7LO@Br;uhGrfmjk;(Oz=Bj6JR;>P&mf5{rPsv%+WcE%<%a`&r6H)GU(&L& z#9t6J%Xhj7?13Y!+A3DgTZQZHZt_Y=up5qmF(rz4B%pS=r(4I%+dU&=c0s?)xO(FZ zbbLbiW*GB%@392pCz~E~afTe9*9MTxGwe_MzC+(-^J1oCN%tNYR8<#-$tIy`dq&Z5L$>P+s(5UYJA1EtLPW@w3N4W#K@uVMRm35MYl-^G|;9f*rrq41SF4r zh(#~ZWs*AX;b15mEV>n2_)PAWogvCQ3A;CEPDZh$w4Fe&c};j4{g-#Ut9WBDrGAR? zEhHjak_cu>yr*^Ix1iDdJ&W7kLWKQf;bILux^LIA@sr1+sbVz{s(> zg}0m+`lV*Xr@xI9)}eRK7F20*LIlr`$9m1nTLtf6>zk8l6_9& zR!cZu_5?0niJpLqp)U8B!!2=&)f&xTj2zl7g7e6ZW?wrOPd$F~ooU)hkRsmTo(ESV zgd67`i~prXw_a(jvXiINdIvA6x^RRcs%o#Dj#5ce?^h#2)Z|u}(S9pCppW=4Xvu25 z=_Yx8Iv|dHO-6^3)-hET^K*7b$dI)^W_nQS7mn~*0Fo{ENaoNR(x*1`vuss=yY#+TI4Sk?_IowQS>B7EFk`>k2o9f907dT~BiiPP zA=hI@d*PVuq$p~+GDzzUFGbjp+0v+)x{shF1VRjzNT)PTPwV<(;w8ED9D)frklFT> z#?_3m^Mm+C^X|#vDX$1dso2s<-S6*9sR+fAx}mF9xHFNl!&j&0a=z19VO3>hvNdZ) z$+i4IgGq5MzT(2woTjA%KFZdQHWi_r2E^y}8*G(RdP+Ec!N$LysUnDXQllTnP|o8V zV{f-!@?6VzY>&$Ar_J)x<+7$T5W*2Ivpl|{@XJL-PRNop?cPTca2F9$ zVlAI6F5WNBE&Mb*mSlPTznwi0^5vOlo4FflUR9c1S;Z2e!8YxpAX9>*rp(e{`m-t%F(cDxqUGSVj zB-gYio*Dhw=gDXX1vz)7N&eVrLb={@jI7=CgBf9F3^uk+oeWx!rMj6$MvnKP9;X?f z<5zNhDuumH{%GjuBt4zX?(<;vP)&nk^|G|vPpfj1g#o561zyWD9(7C@Zws7+Hhii^ zoY%g>O(d2xePdeK;OOx|kW`AzML)e1M3!V z)rz)0zdUyE@T@&Bvsc-WB^nbJ<3xd_qEgD-hz8nx7+-gU_3Vv8caUA2u0LRdZ(BlC zeRQj`t(x3gWXu)&;+1}JmBLif*C*l9q0+AsEo7Xz;y%;JwnUh?$QTu3JOPl6toZV6 zF7rSjc=NqMtc)GYTzLCNt<`0e{Bv%->|)OSrj|CQuVh)H?Td^Z+nZPVuFim9S`l2$ z04ZczV2ILlM`P;_*9;iu@;!%$sVMqP{j8mJ;@YR|O{ZR$zjP zVLwDFG9?i~YsFcm^CXCji_J(;&dJW#Jg9}R1<>+b5>R>A7G?K3?NVWYAh&^bW*Wca zqm|O^mwdDNJ1)Dc`5$OV<)7svPLJ^4eP*UK1u(g1ZDnUJ4URg!vS$e|7T64`nQg|u zi_oxBnpvJ%y}CDf`wHl}2+PCsFP>%^y)(6=oloxoE1j)+jGnTa3NL7W%x>9~gZj0+ ztXqjz8RRi)5Y>V*l@w`?abmHCI^k(3grAfo%?v_D0Q3Tc3dbY6kB<3tUxpO)L}(ZV z2`#W6TQ$(Pu$lCV7>X0r6L8Vhx0MOkKV*^7j6{Q;>!*YjKPp;1?K1>F2xHwAS?+d? zig8cF8)Tn&KtCR~!TDMD#!VN;7)QbkxrLDSuGPd(8Vp%ia0~6>S>4%^V!SCs9;jov zl&=m`h@l2MmYLGPHI&8Uk@J-2j442VM*zjGudhc>ub6wSnfw~oSb1Eau}zvl%x=4PvtP*p#l+r8^rk`4;W8c0iYpRA9D(=vWyiMaL$?KEk&uPslp$!7hh1PgJ_Lne2!~^94O7i3bk@Ds? ztlfY;etqA-%VArwFz(#C`M4_NNc6OBBu(tI=MmZtzqsNu@EgtB@$d}x?#T^>=M;OE zvyEL@uE`ekM$>gOv!s%-O3JEzbznWmxkSSY)_7vOC*-lrkm)O85r1${fgl&t#%p{U z&~p%8=Jrz|bXBgHj~rUPgqDTO-4X`6iuD=LT&S(NlcJx#kORMCzi55+G%XTN)RV zuNrTliu65$W(*5V`2#Y-aI$aJAHz#E8Jib_JY4OQC3W!yi&pihNH^nP1q-8KGLZ?R zWlT8$838PqYw;cXQ_X3$w*f+Th&(4_mNw7rjZv7E!5%;rEiE;i7VDGJrUfa<)Z-3T zA+@lb@!f)Ejo{>`*Hb!~&qYZ?q@x%8`m;*D_@t+Ze z1aYcda~yp`oH=E|Sx9Esq5T-1oPJpWAc!oZItP+n{LRinifkzA#c1OI$;sE@uMAW) zd1ab95=rqUOmiaFKyL6sQ5#gr$=ihqi}(ThGoudE#Vf}EydO<~MKPlA<8wdZ>M}Q@ z{K{Z%mZ5go$0E8o%M>-!vQE=vK;-8Jp%b;_h{EM88p7LSvqRi7cFN2zF+J!ojq{8~ zTVcL2PMA<8>GOZdC~QPEN%wIDW1q<0(9(`r5qx2UgERgRS&dNTGHP>GHt#?6fK69% z3)raGC<<69sW2YLrcfRFFzN+(gea_sWb!^|YevOd@bU?fs+i|nDLJ`rI|?gR(b09L zX8f)V72}X)7o?rW9D`$zagj^C4St)MirKxQAOi|61;tIlIc0HxitipX@7KL@O$Mbr zUIT?)_U0idM})rh;Y%TUqr(e$y^mKi0_?_a^tSCd`V8*{SbBR*;Yqr*eS*y68p6}d z4#|=PLzV}!&cR;;B7@b7V)Q;s)zweVUh5KV4lqJXX|XGjkbtCsX|<7+y5UDNOx6d2 z$>SycR_oc+p06DbsvPn0mgjBltC5u?Y)W?!6(J9+2-euUr*l!>$9A66R7GrQOBpo{ zW*!R;ylRCWW8p$%sWd|NmxfWGj#;|k9DP`(R*ag3Ueo9(4|eY(XHv1R&AP&c!yY)s zy<__J$;3wVLZRa<^|q|mG8B1DMB{pU_^OL0=^0sOL_)LACa zb){X(RPIFGqcLji5aC_Q07hAdEIIpQ{*JNd`^}nsK}9LIekMOWjp)zFMU95yzk@Jk z+bM+XaH#8>nVv1Ey*ITAp@_Gi=T2Qgb&T8GvM{Mwm}Ok!VZuA;Nad?5ihRkdpmJy% z#Dp4?ckoa^{wFAvHKAE^nt-h;pXgLd)-X-=l>ytHR2#ATcEj zpSC9=1i>w%P}2|yY{xef6i$dRKI9i#)eeYN0Z!9=uBT*#8Yg9VpQ({fdP?-f(-@xB z^#a(_&u--r`{4~7$MDaG=zd{(2+WZ+l#QVmcfU`l&?7WsSurPuK(%s9PAr&M-o2vR zDJv`)G*97S1|osrP{w{gp4M%Tv{SWp=@t+iZ+pyjh!?uj2wiL_%90JEA!rSi7+oZE zTb`&x0wSy%uU#u38({Md{2JhEALd8du(CYLv zF~J2|AzK8iZSsz#?2r+CQfkU$xF!VDE+5s8|F)OVnOBG`sRzKQ9^SOVazFh%c`P!# z!LR^H33AFp^$cz0+af0LHfPGW$+X8oPR?!nkb|d2?Ok0yghY=+ur5Vc_Y=P?MZ8bT zo8GC_6-#4rJojd5iCVIrwd~J0%*G(iYLyEDx2VB|QU*X-_JKsrbM}2qK`96W0TWgS ziquZh={L4p)A&GCojq=1MlIM{kGPSew^gaxR2X&G8Ia>HUIltm+^AmeQfA5pxu*#= zpCo>IG87V0GyCEjVaGIZN8QjTVA;}H0LMuZps;&DiZgP~$Vi-ehZ3vR4cny1iV^hG zz0Bc>7y>Xl^q4+-e#$|&H6?{xh)t3qkQ5cZ^pd{mVe=8f&AodoF2t21)XkQYXs23& z%7azhJ?(41#(}0b!x%xK+RyNiB-~wc+?P(oPkt`6WGiRf$V;%YtquxH3~*&eR^b}Z zS7_vxljy<_$;N<@NB1+gm!0gHAeKhT`!TBMosxkgu{zzv&( zu3DTzbv(&~+zF|9P1!0}I!&Q_v_ge`9>34sHp zCya$^JWL5rVETw3-`y$$$9-N7{Sa)f@Cr6QdKT-Jxfi<*mf%6aBjwaf|$N2cR|B zO>uI0r*_I;MPDUoX5aShZmw_9Iko9kW3CGa`~A_dL%E`;a9Tz{g=6AD;*gWU60LlsaLTMN^Ryf%;$2lLj#dvIEZixI?U?|-^zUTbh{|GihgAd(&$%jc{ z@_|STXKwxTQqwE$BqkZT@j$hcNs%9pKZfyc58>hZG(yRCZ1-b%7~ow(xINaR#p0~8 za9(z9m_t^ohk;QoO0R`0G=sF@lJpkFmB>7MQ{VfkspXJyBiUXpPF$RIFdi7TL;K|* zZU*7~r|1ra3nWhUuJmk$Ixtdo+qVUY(=yXb%n;0{>mn+g`JkUd?DR1A##V7>x0`?i zmK0fE1?`2+Q_7q!PzZJICjz$j2Z41#GrfAW9s?vzZz76KordvD7j5lb7Mybh#f~2U znF8FEg8d7C(l#Hnni5jB98kt^vDsllVc`8*5NW30QOv= z${D$K2u>9f60x;Ss(wwGbV8ZZoN7sYa30O7v5;=nG%LsdlHGEv(4C8|R5{3|dx~15 zkmj_B)sQKW&tY~pa%f+3fLY@pC!a?91r{u`hiuQ;tKgxDRg1!Mx}un=!$)nBz6`Zo zVFAbEJi;NprDCc$0`wvT@bRS@`$JNkf&Ztfvka>;==wd~2y7ZQAl+S?mTnZOO?NAe zbV!$UcL_+R(y-}H32E4bNP{%uxqY7Vp6fk)-5-W)X6~6;YyH>%cV`0>Bw^vSVpSLM zKO{?3*kgcr2arJ8fZ-i&7!>c;aYN^GCMKwGHBtMLg@Tdud1O;Sq{&~&C)B*svj*eZ zbzI&FUSjTyUe0ERHq=6_qqTGzcUIEemkD>D|2)o)(Pzp#ivGm9D1Thrx)x$BhvvH! zed(e+=u_(rMKiSg{*Fd_Wev@0d`V9(3rweAPR@QgzI* zI{}sC|JF8_t>(bWQAf$7%up3=`hlojZ?iH};A&x^Hg_Q(!*h=}sNsvME3K$klw};d+lHcX25!!_$*O74#26Ci=Kccx zqFrzt)i=q^Jv9|e>BFYj$Z9!R1xufd0;~qC#k9=Wh@FG+x!UT+@&O-#Hzs>Y8XK2= z))+wx4_UEIDlZI=3{Uy_Z^67v^dx}{a5w*K1CWW7e@Y`G&s62%g&!_|Nq~*hdBoN( zV{KQP8{Gf@mzM~x~P^GXM;vKA^SI_9sJ=i?k?G*ZgWW!8@NuaB{B zv$9q@k0Ud`ONy-XNhZffIoMu6D|0F&WaqJgYeWreJ5w!&4W*>Wyc&q<-;&eXnalGo z^K$f+UWA8{Pd@4h6SzM0DySp^)tfy-QLFPw;i_?~;3?NnHOX-FMXB)t#Rs*BcKoMx zQS29IY)c`mM+&{S>=lD_yaAUxYz*4`Df0`lPIP3del8akH(0}&r$$4K?x{L%Og;KT zID;@u`+DIHaVtpVfC1PciUYa*^A#7q5Kbx5_m>AI7DHkKz(U$Fk8}xfHyrx z6WH5~FZ&LwN>pb0wm679ndV~MpL0%9NFS{RMY6J^E;QcR{z@pkVam+Re{s6jhKy;M zHvA?ccNsOhLW>?d<%nK*y}>r>zHWtt&O8nuPwC;>FLkVCG)i3~VR$%%al%wG+^4^n zP2}6B``1!0^;2Z9s&7Op>}e8} zx)VkhhL#BL-0zN&SXuT zEi3g0NY-s%DY>w`)vQ6S$dVi3qV*^a-(Ti_Cfpfo!f2~)-(Pr+nVxGQvg=>OnfgU3 z6y-Ap6ThY0pqJxi?Y~tUk`ZOMCv;k?xiF@Zy!b{Nj~onLRV zlC=K*c+=qNPEGU_`y14AJTK_L4rJUedjlmUdb6!&q^T8Ow?bF@{owM_jp@wyiUzQL zCqNIXAG%2zlYNbBYL{V?4Oc6>0naldzl|D+j&n^nc4?QN|MT*VL{@-Vjaq^7=AT33 zl&3>f_P*%WniXHzT5V_o{Y56!2NR_CJsyhb1LWp7q-$gz$2x1^q;iZw(_sjMIm9kF*EcUmDy3 ziu=dhs#D)MW#%hiR!evj^Q50iYZ7d75(7z`vGCeV346o&Qreh5x(u&xH~tpdPmw*}{foLi-N*FRw=FY|2mA}qcdRko2)!Hne4!k<`G)f9$UC&xvP*(rzH}+O zTj_PbCC^Pnc*!i0XWvf3kpG1#{a2ysqQ?*o;kTZ)xsVSAcV9i*T3hW5h)XX6v{U!| z#7lwrHlnzEasQaZIq9H`KR(P*+sAGzlNQ+nAmN1UL8RjfnQ&qAkq+^FrHID20ryF$ z2-zF=eVj3KwHK0C&Jt=|r8d8Jm^@3CsPMlpH1kV#6}l-fYI{)qRxYhB<}>?FH693* zxd#G2iSRqP$j@k?64Kv@sRf!=Uk1#PG1=)b_-cei;5Y^HIV*+Cb9iqzqxMnRPvD|G85(|0?eo9Ephw|Rf_KcMj4dP@Y zzN3D(1-F zHh~>an$#)B;hatt9)%L=@Nlg|O>v~uNj8jdKtwqEGl~K?VDAiQHySv`h3LY zRf5%JC@x}_Kyd8obsdR9zsVb~2sO9jgA6KEMVT-@2?L*(Z&M7MPipwN*g%N3I`Y7B zz)H-_C$YuzG+6INJH9FX!?;+e*puF%8M$HRKkExi>ST(f#W8xW@XkcJ*3xV&AxzcVnYjfbuy2^2O=9B9(KH= zc%G7XnCa%OfOc6`i=M|JS;Y*5z0zm!7Lzz_^6=-E3KaQAyItw|;C&c#v`(ENhPJP- zx%qu^znl5C3Y4YN{{59%##%K~3ago=o30>zF5yBcYeBSPp^xzC*cl(I`6Y!KC6IRa z*K%_p*~uX_-w3CpeIK`iZwfQcR_&y#&^X~>;Br=6VIiQQT22nvUDv2q(;ud)gfcQ9 zaP<7%)574gME~&L!6ZmWRn4fPrL zM7Ge7+xmsrI#PyEl~5L#3mlV)%DU`VTz}9G5vua|%y`Lx`(d zQ3|V^o-MSqWP4G^VJO)0sQr}WB;ux3XuW4P32uO~H%lcKzQW^)F_7t^Twr z-%2=E7%ecd;}YTt5)|p{;HVZ)$3TQt@J$gNd}rY=s-1D+>>RRv(;s5zq9CDC#U;lu zVd|Na)O= zy2Ys<1~4`775jF>b+=jEyp7oLr2I8tFbIfj_(x$_NQ{c<=-vuhOA!)Ug}H0`W;gcX z(bs6pO!rD<;wujj5K_nS@_VV}=QNdn31ESw#QG>1&#yF}O~j#$SJK8LGS0mcuP30R zHSoJvG^06?73QV|G18>*1V!_*Nhvj6La#GgnP*?3ImU;mu*g~bQmd;kWvo45yL6@G zPzWvSWf&huadZ|X=%=%MvYRgFvkM)3ViYM*{7OrJFV!dA?%VM(I~rj``6mU5?dWtM zQ9JD?eu}J?Z%C1430J(i89WrcpOrFuS~JP}fwWq3{(bP2)=p;N$vYbhmO^#R@TiLY z7-x&YwQsaCqQPd{G)%^RCD8*tTX^v(BGf4CY2CO49HRvLKwI+P3@5tTn+BYyVOz-; zvY?#^Pjk%_i?g*he%6oVSQt$=UkjmCs1u4WInB4RPdibV@>K8vWoERp-&-aPgC04g zO}N`!w$~`F=Hxlw`WxZ*WORD|^&7RMl7J@4SQw5o*fWzWNVMvN-!3Wio~*b^=1bYc zaxezNy9zQazZ5o7%oLj)1Ue8XLZm`K0#v$2I0wp9VgXM9Qq?+r9-1&sOo!!)Fd59} zCu_livB15eeEt&6nG0-iX1a@yPn(>QPkzcGPK&~Xd7v^bF^#&XI(K`01#L#o?vCl! zp*l?mR643d=&&!5%h9SY;$H6|#^@=F(fSP?5pjH&@+z5WYLM=12Mj1EM$0DdT}OJh z7)+qkvcPybSc(eG3)&hNjkI+4wp%Ar7R34mSV|_8TyQ9nqH`OpMveV!BoMpSS-R7= z#t_vtMK<+}K_iy)^^mI{x%#Rvi@yW+BTTuyj;_z2YyW*zWS&4VJQ3E2>3gbMR5lndOc&c_8WsCdL zu}U8PJD><0O6#}YYuJ%@e2p`PuVu=bazo}qU>-!Mj8HWV(>Vujed087%qkAb+$}wZ zR5n-|a`xA~i7kEg24STsddFgu#~13Dvd|-y1`k}$XrvB%<@hFD8K;kez-$PEMx)Ht z`LhL{oyJ+JIci%iSQOOTL33XRN5A|ukd*U6lxNY~j}tKdQZo1CUFkoVF~cYv@V=_c z%BMGu+>(u-4yI>=gOJ3yyDH=m8h^X@NMwIyuhXw!jwuUh`<)epiHwPpbTsXJS9Ht~ z7mP{iCa}%9-R7#5Uew$>@zmAUl4w)of7jVh!6vj+&J=i;O6!?EDN-$;Vj2D3x~uHH z6Mq!wo7e->fmwxu#(3?v~w7h;O{RjE>iiQ_AJ^1dg%l$ zMsK%;sWZNs;x?D1m9Ihsj_<|LuSkSaK;g*uryY5V9qsve}YTF?ZzEIr_xB zP|28-Vk0jL-#5cFp99(&ua>&z*p{D-$g-3K{Fft&w>_^p>e8<;gvi2;s2oG9W8&Zge2pNsQ&r5~UxNguR z8j2Q8r&Y+@PMqiwJaPxKU*!jVTBIP$a9p#EQv?c^slViuMDd|&#@G+q%^V~5S5u$h zQ~uQ<5FyBUwXznkgssBh-rgS2Ru#_J&0#(g$nGI4lL?A!Mj7Jc9-bI?xw3(z{yt^o zXW;CM>rvr#Zp-_I&#eD%Pw|_qsrGIE#O}iu;Cvs=ZA|wqV*lD^_V+g*m(=^rLFt(9Md2zH)dv$|3 zok@?9N0pm0y}rs!&eOY&RYH@0>_J74%5Be{N9q3-V93Gr$gM^Tx}ZDp@=qV|^~sHG zJCNy0k^2ZUpp9V`3%J=tnD$;1iGLQiYSWoIPG@O0$c=z<$Hl3+6fppW z717%__DPgU$RryTicG4&-TYVK5pIzZWO z;|qPdfc~Y;k(hFOjxabx+ibLo^3c}z8_45&_SN7? zO$rfoWLZfH_PBD?=L>TH^8W`~WgMCV9Hh|BsMdMw(MY|0M##s;c;RU195ESzo8;XN zxVj6vZ4O}1<>*_6?^`(TRB0u&SMhuD~bQ;b%o8(ZFIYU7Daz zQ#6P{%>|FuPP<_fVxE_K0O2?fM|V5Qy5qlroL8)wrD2|A;C&VqGgjj&>j=gkxv zyy{CT!B(((&w)u=i6$X;Psj7}Yu%!Sk~% zLVd{zJGFd6pvHkd&4^Tk^m6^~IbD6I?pA3y#m21RClw_ghJi*GB@F(Q)PE}FW=Wxs zKw5bcOr&~;f5@UoBvOKkK94ibhMmP&B*w18VzVgF+TNb6tX@PWWSKnmzAO+;XV$81 z1JaHWDr8uFZ9PZ!22*6X1CEl#W90C8kF`I-Ojqh?E{DONm1><9c?PxM z6hhv1#GFeNAG;*|suQ8Z5xuP6u&Cf`?M{}lYo~0oOf|j-j($}mSQy)b;T-)3TUd8{ zHrbj#!BTL&z(dq|8BnFNVZTJ(zd_RTH&}YCnhFfL$zEzY)Q9f5^2yl1f zYKYXgUe!P3ik`h*$APO|G+6bQ0M;?>TzI^e3kIrSI#t(^q`h>#aVCrUX%R_XDcP%b zsMGdkC&#yQe-7T3tTNhc5a_6lH8Sf~*whE$lNe_hJHskAn52!3_dn^Ie3;1b!1W-N zrEMMfL$)82Fg8-iNRlYT8kR*$JS`Jn^qI`{0E{NAHP4f`zT$lAPruoRX%vLhk5kKrN&Um|MMd;I+h2w2bBj1SI-&2h~u=UYO}m>5Rx2 zym6&XP;3h^j;`^{5m$Qo6$2Np6yLb|$q>(W$k^|^cAKeY@+NV?1D;FY%myRUX&luJ zw6|3@U@PDyulg>UIY zM@}2A9E?d5CEwE-Qp?tiT7?@`h*#X=dUy~cI_iTAnG`{E zFbXFa>2x6PQvccBC^3q-9>`v}=(s2}(AkR+f25+p3K>*KJy`SjV*u*H0BEe?v|i!oiC4S|%Z`aW`RvUzXOPxNT(A=tz%LYWTA-Yb|?s992oskQV}k~<~QdgdL!o$A3`5_aiWIO)~3cBo3L|Nn%kEr=H)+3 zUtex-Kk33qN2BbuqJ;i0$C)uU(wrNkk37&DpaRaoa&M+=3bun)B%_L&BTV`S2#Y-_q0b_v* zxQGaj725jk$MKY60jG;hevKh!&UeKC-v*sUU5wBz8*)KzktR{KD`2lMSKjf94lyn+ znuida-!YIMPUFh*wFZ>Q1lk_Sq*WZ-YSN}Q)&l9trxZ%4L&~a-^-5TBb$z2!#HUepsnEKe3;S+h_CBZTPkH zqbja+-D77hu3Wy&nxf?g zsnK*TyAzC0z75g*^+I)dJ~b=RecZnNhxkvpqD{cw_K_oBkWX-#1c?TV-j61fD6)o;Fo zL=lSDv5iEE$U3|tT{E9_yb#D5hm%AY4%UEHb&gT7$D_NA&*Ztkwp{i!*J*M@LpU&X z&jYEV;cR|3&@?}rg;@MypSiDP%IhF$`!VwnKKK_ea00fuwwaa0V{dYnqn4(a;unV9 zzRzxRDDWl~D)$#z#~L#&Tvf;7-y{}YW1}PpvIs;DBAiJN9b-iDGzd03?y&iS62yk5 zM{+~G!3Sq|{1tgu+g+WVMt3K29F8sS`9OmjifR~^?PB7D(yxwq#W0@q-mF!0zW4+6 zZA_r%)g(t$cR)^aP=}50%Eo7t>JIeNjS;f}zwo!0a;7hrIE93{9L=%c*GJBvZjD&T#*+a>>p~7koV9L<#fDWqN%nU}3kNG4_;SINLCb)m zx`UgK&!LfsZ0Z=ju{%-a&pmNZ;56Z}0{mD|<~`tYeYoJ`!go z#1}E!89JK!DVu;c@Z(+mdwzS-$OICCO+_u6dnc;19Wwk%@$aMe_+mnPt$^?iJxbpR znnDYBrgWq;HBgKlbKV%~F1=sC>ZdSPSiU*`VTZ zKJ0@;@@aej(iGps5d)(~{B>2!RGpxaTeW9C*=}^L{m0XS78h+l;2Jg&?T#0;$0yy~ zf*jQ2?_MtDEeqUzT6*qzm;sD;*HrSm9+?5B0-f9YrsTkY<7D@qdkW2SQ&TLMdGFHl z&Gya?-9bLG>~zg_wD$jr#R3S0#8=GN<{c_VnPEIihs% z^h?7XMX|nr-uVFb;ijby^;Uc***Ukd^g2ehX&|6$b(h1#<_p$d5wog8ag4ji?y|Vc z+LWe_`}p3p)`Xa%Hh_%W7ixOiJM=&QBhvkP%iYs+;m>_B#sYT0L)z3O``wC1`|a~z zZ5qm=FJiTUQD$)pq!oK1K@L%cdjva77y0PE*fbki-VcZ60MF_1pE^qOf` z9X;t**r&M&QU`x<0F>280K?F^E6s?sZ3I`!=WWeLn|0UikyqJi0qN)aInE@G<|56n z=oRx5EX5y`HiUOn5pG$fZ*`nnr^jY1Flt)!Fz$Wy)^EW8%x0?bACObybDP;+cTFVtOlDyRP{( zoO1JS$Q8`p_51DY)FVD*$BP;A!c#oi&*RjnZ61{@n*JvhExKZB&$q2WB8nDU>t&6q z1Ir%opuX(!0M6Yl5d}AK;&_}hynoQEb=GaK2OrXp^rI32bwL|67AL_H7A^p~%aUxd zirzKsmJ;Et%uWqKku2dnwaM)8dRBtiZYj+ScCjQlnvNWgeD>j71%82J>P0sCV|Ur0 z?M;FU$+Jx35Me?TsP64o625!>S9eB4R!GphAxdW=vA=i2Qq;p2d1wBLx8gB$M-)9e zcd-M*`pvT4?hfGgGSM5Tfc1mhifZS$Rlx364rTd(#m09Xrhj0cGVGqHsds^Tx%Pg6 zZ_BPPt*E|5y$h66qY4;owt8?Ix)BFUr$1=wayGUUgNGH{gsOgbaIU~yro(V{k~-W4 zGdEEqamfhvk;zK_uoqaL2lDrfPZjiUVQh&ooae;~?z9Ce2H$?HSPMxZR9D2ozp|INrj2 za4g%n(Ei2rortY^Q;B0R|M(KBnV3jldpntlaio7uCIL7h*>j(KdeS` zwXQP~t}0{e*r%wb`|^jexjTFPsC8!qAhPF`TMJ^*Tweviqsq25Wbp=7qcs><+9I*VNF?u2;1yPkpfl${hnCF?#r~g)PsquX(`iu_j2sQB>t&9cEz}ohtJ#rhk(64fU-|(c@D&B zcK1Ke?C80|+7?8HJpZD)DPBg~sDW{qtY%xU8^fz`;O3O^mKoT-uDR~G<33&}!#Z{U z=vmfTPlqJbqaq;+%U|>mO`Fa&dsGLr2E7dHxgP&i2>IB?kzq=2% zdPK{FrM?F<=FlY8%MtbND^3l^{IX`}B=nTGoTmTNo+%_h+c}k(vY0D)W~p_|Fxhh! z2O#Pt@W`eEl5bjqrBq>$h?Rp#a1kT#DdU&_!{JIi_{ZT=s(*0C&JTYkHo1~S^hyK^ zgQJgMpT9tP3`uIAhJC##f3?hpeS-o2k*OiaeM~^^4QrPKPSteY&KDnR+2a`$(Jo!VNj@hnOJM98&!55|QFf%&IDguG$kff1 zfrTHGetb3!2eX~K_&*@7*u9@vzh~P>5=Zrfse}GLZf5wUc7x>4YpBKwdl<-!Yl(p# zPMek_!aGj8XKn<=NYr_wP^DkbUYvf*Zn zikkBiP8~`Rb3anj$H}OKmUizG#DMiVcFiDHbUt3R|8Tn&u%S$)7m{>-ACs>9sKePZ zpLMq2My|gaU%L#;xR;{H^TscG_*Y_-?ip1-V0-tD{&;U=Cu}h?OgrlO`(*St)-tdU zhpD&?NIF_h|NYWpu~J=_d~L zq(q&n{0R{N!#MnpP^^V-*Q&AUd9e%Fdi9~4>Ufh2kZ-bU7M77twcxKPzL9j| z!OjoFAz!5)e@s{ME;sbXW8@!^`4^yy(aj9H^HPhkpJPyX;$fP=A)?ODestm>w>z&l zko|UF*K|e~1ta(? zzk%{1l3jId{yBxj|08|VnqXGR)P-OhK9`t z`X|z0^3fLwdfxxudZI8Yx9yW}Yi=1B-yL2hpj_Naecc>FIlj0;y*y(o*$Pl@8uLaHG%mZ#^`xS$yokQYakz{ zTVg<$lIO{`2yj(OcCr;_=+#l1dw;&LRYwS#Lt0{Lc1Q6hnWAIL{CpI4GD|#iuHO>2 z=h94n9{<9u&isVEuJi4w=0BrD*-LhTJ74|(gf4~)VP0`e_D+GNjE*?ivIH)>L@VRG zBlqp+-n2p}Y&#EjF=L(K;X)}<=RfZNm{=R*?pXM~y7Q<+n}?A|fA+s)b%Uochvu+R z*7Q48$)bWuH_fRJBqq(KEMunGT=Gc1Pt77V{IlAiRTwuHm-jSs&^P&Qr|5CpQ)e^G zzgVcl__j6EF7>2qQmz@%is{v7^Ki&5*25?s_UZD|hCn=b@r zjgtBE$x2BL9AVuc-;ET+Y~?X44SC1o?Mz(QZ`fwr)w-fo5hd4jU^Q1MfVcl(D)|9N z;O0~Kn`d2&l4L}HIe_&4m}J3CVD$7lp)JVY7r3@0b7rH?fmb<~x6KU)nz*sOU+jzZ zwD56{6U|8mx5}Obfb!82adN1v=wV%2p7}JPu{VmgvLioYrCUpzL|V!Hqw!TPYu~@O zVJkidDc!fRwf)Fz3nGDu5L^?#DpQ>gsTpu!70N1r4ypQs1|EgDy5_`@Z-Um6vgy0Z ziwbuDucjY(iPoaJp!bVmt+~1tly3^Y(kVZ);$P{4flkBj0(?hypZ@8 zCw;`wkXovO&%xk$YRB137n;#L(clm92&LOeL9bayR`#JFYs{B^HC4* zj{At`-%B1X5eGou=&jMiw>ME|0|+(B22+5@15e+F3@5gAt4j zyBqs;s<_IVad|W_`hPmNWxX@#RhrmY2yd&`y(RjAeUn{hca!vff1OYK!7*Qt=uD~M zL+%3ccrx#$UeANhy_0Iof#z1HHWa(R&+F5y9DBSuNj!|;)6#2k3xciZP*vsE+J#(> z`PrrVxSX&cLnoWn{)}8SoqK=fX5fwV8npOF=pvbD?Fpls?Nc|&9onO)_@i{etLnN}z|+Y;gl;erR{9Z@ELU5#(ARv9^l83+^vc|kJ3imNtM)CgP5LrKl|9w9D8wef_y667;8G3Y< zLYo}L1_0F*()x~2+>7$y!CmOb?9f}3g{kCwm2E+^gzC-JnW|`OH-S4s?P^WuqF=10 z0c3UTB*Q+WguEXGOfaiSFHM8~T<_2;xPbwH;?cKl;GdAv2H0_C@S4w{NN0jLw6ChW zDhZUiJX>Jsg+2hx);Y1#7r0Qub=7(V6U)|}$|l26u+RTd1XFX)lb6c&yM%97nr~2d z{JFbbN!sU2pL5Y;HjDK3AZ?|(0`zm@%YzQCnYp`Mlk(FX%7|w^Pe2gB#X7TDRo~7M z;rFt)z~&84_mTYqG0aut(?Y|AzW+nmrr=T%N%z^B_2mJZ2hM6V{WDT%_|Lzs9+?G@ML{VIjp)fBK+;SNYtGCL`sjmaltgL^A zWWAQ&?ciJ-Q^0TKzmbv+=3V2oe;uuOnmgm?iau?e5fRJTP-*ow>`^NJbHgAWawL?X_!qM#_*8yo~%KcyYwn6)gE{3Vn6Dpwb-k7riabPbGhfV8I=c9ZO@mzz@q_ zi=Tlzw4WV6{oLp{5+-y^YwxcuNu#%k$Z+mpu3D(ck5uQAS25Y{_7Yul=fd|B!i`cL zY3^PX=zJlJ_Z{ZnN>J)mkWqc!>P>K2IoD z4}Sw&sWI2@4GBCUktw2T8{@XHD`gG;QaIS>A9Ra3Vm8Mig;6FINTKUk5BFgW9jI{! zscS5nVtnuB>C3A8(!A+eE&fydJcRH7%H88a4`34= zSu*jf`SpSq6p-+|g8uu`3BCEe90mFUX+(lC|HxDW#&Ig`DJX;FQ3Ma`xmyKijwjTA zYB}$KFP;Ry-w(`~b;|LRp0F@Z4AuwBK5w8;wmUevJI`gDrb`MP`J&RId}6GQ#>R^DhS}zLCmJR` zUA=c>5W?93^2WKWJGO#;|6uViy_(e3F#D31y7@MGf`ZDZS|IbWg`sT+1kSCb5iNcC z``5tR_33Il<5mmN!DS;0VQu(a=6hEnc&*>O9A)nJy7liCoP7&hr0Lls zcVV>FRru+oitugtyJ*4u`69S0$=AbMKJUNC32Uqd9rVZ8LsuNnztP6GIr`DWEf@kH zQFJd{PiKEnZ-h#dEMsHG(;maTr?}f4Hg1vX!ye@&uwSMCu^;Ku`0xsCFa7Q-(le9u zQ&NG;v_3vh`E3GMxMx+C_4qXMrkYe*Fp30GX#KIyPlIW zG~IAbLX#Eyi|f4tWg;P)rZnz$n_^Q{@Y|J7Z#&c0RkEqd_k(#`;&UnJMqKhD`ZWOB22wZ~ z@HND%a+GG|eu5LDZK{G6j$IRSD$oZcm#_}eU8;mmni8t~(+{uQ{P%bg6BLh+Tm%qS zhYD29Oz)iU|I2lw+?POG?CX-GCXhYNuSu)3Z4*0iE;(14gm}%7g=UsG>d`p{!-Fx- zUE^`;(7$pb*~Xl}2o`Ja2fe2#hEcM@Cp#|*bg1i+2HZE6X8#w}O({Z6sh0vRJ79U} zk@tUL-7q+O0A{=%@X0}Xhg?7O4m87MNRCt03v}uSsZKNkUfX^ ztE}~>#g^+89=R{F(^mKY62+h=(k0Dmy_9_z;{anqH<>4WN?_Zp9#`PHa=%4RT|#8f zfo7WkQ8n$3NL7^FlfR8HvVq;=d+F@x+XdF;tA8=c>NHS*_SkRfl@b0nC2iogTf5;e zV#oKpcwVP#jWv+-w3BVK%^e+eCCj9zX3PWgfPb|To~fksouPXQhz<9nx50I&dyM(Hn!!=h zGe(($gFYr;r#H2QzgHfgRrAXBS*ewLU3kVA@Ql=jInA?D&ho2^q zZq|C7i7)CyotV0@q_l8oGVl&{D!jyaz%Q*7pK9*h;jKB>dqqpVtI7WqJaEl6DL#e4 zK{TpbnwK!vY4d8Q+H-OGk;Q&Bn~)h<2Qn|J|41oSLi#R4XBOGj9+o5$6x!!r4^)C< z_iUQJT*c1#UIQA4qqD?ivDZ@b&z-(7J)r?WCbh7zu(Fo1Isi1$$Y_yg8q<85z4p?+ zobfjG6m2{3OQ=rvXX31aI{xZJ0R#jNMZLK!wl(`GBvb7gi_e{iYMwGlW<@@Q?Db-W zi7rB1;?mb{t>^8%M>4lBq~xME>~L}fCMhfNh}eBgEFRN_L3e|Omb|0)CK$FrS#s~4 zhTC~x{E|7$95tvjXc4AjakX`VXj8}MmIkgrXA*NTw2FR#X_ZZwgHD+G_{{e4rT32) z4QqW5GaZofY#d_4lD apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + + apolloPlayerOpt.ifPresent(apolloPlayer -> { + this.serverLinkModule.overrideServerLinkResource(apolloPlayer, ResourceLocationIcon.builder() + .resourceLocation("lunar:logo/logo-100x100.png") + .build()); + }); + } + + @Override + public void resetServerLinkResourceExample(Player viewer) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + apolloPlayerOpt.ifPresent(this.serverLinkModule::resetServerLinkResource); + } + + @Override + public void addServerLinkExample(Player viewer) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + + apolloPlayerOpt.ifPresent(apolloPlayer -> { + this.serverLinkModule.addServerLink(apolloPlayer, Lists.newArrayList( + ServerLink.builder() + .id("website") + .displayName(Component.text("Website", NamedTextColor.LIGHT_PURPLE)) + .url("https://www.lunarclient.com/") + .build(), + ServerLink.builder() + .id("support") + .displayName(Component.text("Support", NamedTextColor.AQUA)) + .url("https://support.lunarclient.com/") + .build(), + ServerLink.builder() + .id("status") + .displayName(Component.text("Status", NamedTextColor.RED)) + .url("https://status.lunarclient.com/") + .build() + )); + }); + } + + @Override + public void removeServerLinkExample(Player viewer) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + + apolloPlayerOpt.ifPresent(apolloPlayer -> { + this.serverLinkModule.removeServerLink(apolloPlayer, Lists.newArrayList( + "website", "support", "status" + )); + }); + } + + @Override + public void resetServerLinksExample(Player viewer) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + apolloPlayerOpt.ifPresent(this.serverLinkModule::resetServerLinks); + } + +} diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/IconExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/IconExample.java index ebd6f896..426b63d1 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/IconExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/util/IconExample.java @@ -25,6 +25,7 @@ import com.lunarclient.apollo.common.icon.AdvancedResourceLocationIcon; import com.lunarclient.apollo.common.icon.ItemStackIcon; +import com.lunarclient.apollo.common.icon.ResourceLocationIcon; import com.lunarclient.apollo.common.icon.SimpleResourceLocationIcon; import org.bukkit.Material; @@ -42,6 +43,12 @@ public static ItemStackIcon itemStackNameIconExample() { .build(); } + public static ResourceLocationIcon resourceLocationExample() { + return ResourceLocationIcon.builder() + .resourceLocation("minecraft:textures/item/apple.png") // Resource path location + .build(); + } + public static SimpleResourceLocationIcon simpleResourceLocationIconExample() { return SimpleResourceLocationIcon.builder() .resourceLocation("icons/server-logo.png") // Resource path location diff --git a/example/bukkit/api/src/main/resources/plugin.yml b/example/bukkit/api/src/main/resources/plugin.yml index fbe960bb..042f5363 100644 --- a/example/bukkit/api/src/main/resources/plugin.yml +++ b/example/bukkit/api/src/main/resources/plugin.yml @@ -49,6 +49,8 @@ commands: description: "Pay Now!" richpresence: description: "Rich Presence!" + serverlink: + description: "Server Links!" saturation: description: "Saturation!" serverrule: diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/ApolloExamplePlugin.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/ApolloExamplePlugin.java index f69da42e..81d28966 100644 --- a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/ApolloExamplePlugin.java +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/ApolloExamplePlugin.java @@ -43,6 +43,7 @@ import com.lunarclient.apollo.example.command.PayNowCommand; import com.lunarclient.apollo.example.command.RichPresenceCommand; import com.lunarclient.apollo.example.command.SaturationCommand; +import com.lunarclient.apollo.example.command.ServerLinkCommand; import com.lunarclient.apollo.example.command.ServerRuleCommand; import com.lunarclient.apollo.example.command.StaffModCommand; import com.lunarclient.apollo.example.command.StopwatchCommand; @@ -73,6 +74,7 @@ import com.lunarclient.apollo.example.module.impl.PayNowExample; import com.lunarclient.apollo.example.module.impl.RichPresenceExample; import com.lunarclient.apollo.example.module.impl.SaturationExample; +import com.lunarclient.apollo.example.module.impl.ServerLinkExample; import com.lunarclient.apollo.example.module.impl.ServerRuleExample; import com.lunarclient.apollo.example.module.impl.StaffModExample; import com.lunarclient.apollo.example.module.impl.StopwatchExample; @@ -112,6 +114,7 @@ public abstract class ApolloExamplePlugin extends JavaPlugin { private NotificationExample notificationExample; private PayNowExample payNowExample; private RichPresenceExample richPresenceExample; + private ServerLinkExample serverLinkExample; private SaturationExample saturationExample; private ServerRuleExample serverRuleExample; private StaffModExample staffModExample; @@ -163,6 +166,7 @@ private void registerCommonCommands() { this.getCommand("paynow").setExecutor(new PayNowCommand()); this.getCommand("richpresence").setExecutor(new RichPresenceCommand()); this.getCommand("saturation").setExecutor(new SaturationCommand()); + this.getCommand("serverlink").setExecutor(new ServerLinkCommand()); this.getCommand("serverrule").setExecutor(new ServerRuleCommand()); this.getCommand("staffmod").setExecutor(new StaffModCommand()); this.getCommand("stopwatch").setExecutor(new StopwatchCommand()); diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ServerLinkCommand.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ServerLinkCommand.java new file mode 100644 index 00000000..d5280228 --- /dev/null +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/command/ServerLinkCommand.java @@ -0,0 +1,91 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2026 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.example.command; + +import com.lunarclient.apollo.example.ApolloExamplePlugin; +import com.lunarclient.apollo.example.module.impl.ServerLinkExample; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; + +public class ServerLinkCommand implements CommandExecutor { + + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage("Player only!"); + return true; + } + + Player player = (Player) sender; + + if (args.length != 1) { + player.sendMessage("Usage: /serverlink "); + return true; + } + + ServerLinkExample serverLinkExample = ApolloExamplePlugin.getInstance().getServerLinkExample(); + + switch (args[0].toLowerCase()) { + case "overrideresource": { + serverLinkExample.overrideServerLinkResourceExample(player); + player.sendMessage("Overriding server link resource..."); + break; + } + + case "resetresource": { + serverLinkExample.resetServerLinkResourceExample(player); + player.sendMessage("Resetting server link resource..."); + break; + } + + case "addserverlink": { + serverLinkExample.addServerLinkExample(player); + player.sendMessage("Adding server link..."); + break; + } + + case "removeserverlink": { + serverLinkExample.removeServerLinkExample(player); + player.sendMessage("Removing server link..."); + break; + } + + case "resetserverlinks": { + serverLinkExample.resetServerLinksExample(player); + player.sendMessage("Resetting server links..."); + break; + } + + default: { + player.sendMessage("Usage: /serverlink "); + break; + } + } + + return true; + } +} diff --git a/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ServerLinkExample.java b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ServerLinkExample.java new file mode 100644 index 00000000..26ad56fb --- /dev/null +++ b/example/bukkit/common/src/main/java/com/lunarclient/apollo/example/module/impl/ServerLinkExample.java @@ -0,0 +1,41 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2026 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.example.module.impl; + +import com.lunarclient.apollo.example.module.ApolloModuleExample; +import org.bukkit.entity.Player; + +public abstract class ServerLinkExample extends ApolloModuleExample { + + public abstract void overrideServerLinkResourceExample(Player viewer); + + public abstract void resetServerLinkResourceExample(Player viewer); + + public abstract void addServerLinkExample(Player viewer); + + public abstract void removeServerLinkExample(Player viewer); + + public abstract void resetServerLinksExample(Player viewer); + +} diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/ApolloJsonExamplePlatform.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/ApolloJsonExamplePlatform.java index 6ca73781..196b6f81 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/ApolloJsonExamplePlatform.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/ApolloJsonExamplePlatform.java @@ -43,6 +43,7 @@ import com.lunarclient.apollo.example.json.module.NotificationJsonExample; import com.lunarclient.apollo.example.json.module.PayNowJsonExample; import com.lunarclient.apollo.example.json.module.RichPresenceJsonExample; +import com.lunarclient.apollo.example.json.module.ServerLinkJsonExample; import com.lunarclient.apollo.example.json.module.ServerRuleJsonExample; import com.lunarclient.apollo.example.json.module.StaffModJsonExample; import com.lunarclient.apollo.example.json.module.StopwatchJsonExample; @@ -85,6 +86,7 @@ public void registerModuleExamples() { this.setNotificationExample(new NotificationJsonExample()); this.setPayNowExample(new PayNowJsonExample()); this.setRichPresenceExample(new RichPresenceJsonExample()); + this.setServerLinkExample(new ServerLinkJsonExample()); this.setServerRuleExample(new ServerRuleJsonExample()); this.setStaffModExample(new StaffModJsonExample()); this.setStopwatchExample(new StopwatchJsonExample()); diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NotificationJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NotificationJsonExample.java index c8f92e4a..70c4b1bd 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NotificationJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/NotificationJsonExample.java @@ -51,7 +51,7 @@ public void displayNotificationExample(Player viewer) { )); message.addProperty("display_time", JsonUtil.createDurationObject(Duration.ofSeconds(5))); - message.addProperty("resource_location", "icons/golden_apple.png"); + message.addProperty("resource_location", "textures/items/apple_golden.png"); JsonPacketUtil.sendPacket(viewer, message); } diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ServerLinkJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ServerLinkJsonExample.java new file mode 100644 index 00000000..6cd6f7cd --- /dev/null +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/ServerLinkJsonExample.java @@ -0,0 +1,99 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2026 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.example.json.module; + +import com.google.common.collect.Lists; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.lunarclient.apollo.example.json.util.AdventureUtil; +import com.lunarclient.apollo.example.json.util.JsonPacketUtil; +import com.lunarclient.apollo.example.json.util.JsonUtil; +import com.lunarclient.apollo.example.module.impl.ServerLinkExample; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.entity.Player; + +public class ServerLinkJsonExample extends ServerLinkExample { + + @Override + public void overrideServerLinkResourceExample(Player viewer) { + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.serverlink.v1.OverrideServerLinkResourceMessage"); + message.add("icon", JsonUtil.createResourceLocationIconObject("lunar:logo/logo-100x100.png")); + + JsonPacketUtil.sendPacket(viewer, message); + } + + @Override + public void resetServerLinkResourceExample(Player viewer) { + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.serverlink.v1.ResetServerLinkResourceMessage"); + + JsonPacketUtil.sendPacket(viewer, message); + } + + @Override + public void addServerLinkExample(Player viewer) { + JsonArray serverLinks = Lists.newArrayList( + this.createServerLinkObject("website", Component.text("Website", NamedTextColor.LIGHT_PURPLE), "https://www.lunarclient.com/"), + this.createServerLinkObject("support", Component.text("Support", NamedTextColor.AQUA), "https://support.lunarclient.com/"), + this.createServerLinkObject("status", Component.text("Status", NamedTextColor.RED), "https://status.lunarclient.com/") + ).stream().collect(JsonArray::new, JsonArray::add, JsonArray::addAll); + + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.serverlink.v1.AddServerLinkMessage"); + message.add("server_links", serverLinks); + + JsonPacketUtil.sendPacket(viewer, message); + } + + private JsonObject createServerLinkObject(String id, Component displayName, String url) { + JsonObject serverLinkObject = new JsonObject(); + serverLinkObject.addProperty("id", id); + serverLinkObject.addProperty("display_name_adventure_json_lines", AdventureUtil.toJson(displayName)); + serverLinkObject.addProperty("url", url); + return serverLinkObject; + } + + @Override + public void removeServerLinkExample(Player viewer) { + JsonArray serverLinkIds = Lists.newArrayList("website", "support", "status") + .stream().collect(JsonArray::new, JsonArray::add, JsonArray::addAll); + + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.serverlink.v1.RemoveServerLinkMessage"); + message.add("server_link_ids", serverLinkIds); + + JsonPacketUtil.sendPacket(viewer, message); + } + + @Override + public void resetServerLinksExample(Player viewer) { + JsonObject message = new JsonObject(); + message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.serverlink.v1.ResetServerLinksMessage"); + + JsonPacketUtil.sendPacket(viewer, message); + } + +} diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonUtil.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonUtil.java index dce4fdf0..841a9694 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonUtil.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/util/JsonUtil.java @@ -150,6 +150,16 @@ public static JsonObject createItemStackIconObject(@Nullable String itemName, in return iconObject; } + public static JsonObject createResourceLocationIconObject(@NotNull String resourceLocation) { + JsonObject resourceIconObject = new JsonObject(); + resourceIconObject.addProperty("resource_location", resourceLocation); + + JsonObject iconObject = new JsonObject(); + iconObject.add("resource_location", resourceIconObject); + + return iconObject; + } + public static JsonObject createSimpleResourceLocationIconObject(@NotNull String resourceLocation, int size) { JsonObject simpleIconObject = new JsonObject(); simpleIconObject.addProperty("resource_location", resourceLocation); diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/ApolloProtoExamplePlatform.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/ApolloProtoExamplePlatform.java index 57c5a193..f02c1bfd 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/ApolloProtoExamplePlatform.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/ApolloProtoExamplePlatform.java @@ -43,6 +43,7 @@ import com.lunarclient.apollo.example.proto.module.NotificationProtoExample; import com.lunarclient.apollo.example.proto.module.PayNowProtoExample; import com.lunarclient.apollo.example.proto.module.RichPresenceProtoExample; +import com.lunarclient.apollo.example.proto.module.ServerLinkProtoExample; import com.lunarclient.apollo.example.proto.module.ServerRuleProtoExample; import com.lunarclient.apollo.example.proto.module.StaffModProtoExample; import com.lunarclient.apollo.example.proto.module.StopwatchProtoExample; @@ -85,6 +86,7 @@ public void registerModuleExamples() { this.setNotificationExample(new NotificationProtoExample()); this.setPayNowExample(new PayNowProtoExample()); this.setRichPresenceExample(new RichPresenceProtoExample()); + this.setServerLinkExample(new ServerLinkProtoExample()); this.setServerRuleExample(new ServerRuleProtoExample()); this.setStaffModExample(new StaffModProtoExample()); this.setStopwatchExample(new StopwatchProtoExample()); diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CooldownProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CooldownProtoExample.java index a3b4c2a3..1834aab5 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CooldownProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/CooldownProtoExample.java @@ -23,6 +23,7 @@ */ package com.lunarclient.apollo.example.proto.module; +import com.lunarclient.apollo.common.v1.Icon; import com.lunarclient.apollo.cooldown.v1.CooldownStyle; import com.lunarclient.apollo.cooldown.v1.DisplayCooldownMessage; import com.lunarclient.apollo.cooldown.v1.RemoveCooldownMessage; @@ -41,7 +42,9 @@ public void displayCooldownItemExample(Player viewer) { DisplayCooldownMessage message = DisplayCooldownMessage.newBuilder() .setName("enderpearl-cooldown") .setDuration(ProtobufUtil.createDurationProto(Duration.ofSeconds(15))) - .setIcon(ProtobufUtil.createItemStackIconProto("ENDER_PEARL", 0, 0)) + .setIcon(Icon.newBuilder() + .setItemStack(ProtobufUtil.createItemStackIconProto("ENDER_PEARL", 0, 0)) + .build()) .build(); ProtobufPacketUtil.sendPacket(viewer, message); @@ -52,7 +55,9 @@ public void displayCooldownWithStyleExample(Player viewer) { DisplayCooldownMessage message = DisplayCooldownMessage.newBuilder() .setName("book-cooldown") .setDuration(ProtobufUtil.createDurationProto(Duration.ofSeconds(30))) - .setIcon(ProtobufUtil.createItemStackIconProto("BOOK", 0, 0)) + .setIcon(Icon.newBuilder() + .setItemStack(ProtobufUtil.createItemStackIconProto("BOOK", 0, 0)) + .build()) .setStyle(CooldownStyle.newBuilder() .setCircleStartColor(ProtobufUtil.createColorProto(new Color(255, 85, 85))) // ApolloColors.RED .setCircleEndColor(ProtobufUtil.createColorProto(new Color(85, 255, 85))) // ApolloColors.GREEN @@ -69,7 +74,9 @@ public void displayCooldownResourceExample(Player viewer) { DisplayCooldownMessage message = DisplayCooldownMessage.newBuilder() .setName("lunar-cooldown") .setDuration(ProtobufUtil.createDurationProto(Duration.ofSeconds(15))) - .setIcon(ProtobufUtil.createSimpleResourceLocationIconProto("lunar:logo/logo-64x64.png", 24)) + .setIcon(Icon.newBuilder() + .setSimpleResourceLocation(ProtobufUtil.createSimpleResourceLocationIconProto("lunar:logo/logo-64x64.png", 24)) + .build()) .build(); ProtobufPacketUtil.sendPacket(viewer, message); diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NotificationProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NotificationProtoExample.java index 3fcf905c..0853dca5 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NotificationProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/NotificationProtoExample.java @@ -50,7 +50,7 @@ public void displayNotificationExample(Player viewer) { .append(Component.text("Good luck!", NamedTextColor.GOLD)) ) ) - .setResourceLocation("icons/golden_apple.png") // This field is optional + .setResourceLocation("textures/items/apple_golden.png") // This field is optional .setDisplayTime(ProtobufUtil.createDurationProto(Duration.ofSeconds(5))) .build(); diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ServerLinkProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ServerLinkProtoExample.java new file mode 100644 index 00000000..c39e53cc --- /dev/null +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/ServerLinkProtoExample.java @@ -0,0 +1,106 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2026 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.example.proto.module; + +import com.google.common.collect.Lists; +import com.lunarclient.apollo.example.module.impl.ServerLinkExample; +import com.lunarclient.apollo.example.proto.util.AdventureUtil; +import com.lunarclient.apollo.example.proto.util.ProtobufPacketUtil; +import com.lunarclient.apollo.example.proto.util.ProtobufUtil; +import com.lunarclient.apollo.serverlink.v1.AddServerLinkMessage; +import com.lunarclient.apollo.serverlink.v1.OverrideServerLinkResourceMessage; +import com.lunarclient.apollo.serverlink.v1.RemoveServerLinkMessage; +import com.lunarclient.apollo.serverlink.v1.ResetServerLinkResourceMessage; +import com.lunarclient.apollo.serverlink.v1.ResetServerLinksMessage; +import com.lunarclient.apollo.serverlink.v1.ServerLink; +import java.util.List; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.entity.Player; + +public class ServerLinkProtoExample extends ServerLinkExample { + + @Override + public void overrideServerLinkResourceExample(Player viewer) { + OverrideServerLinkResourceMessage message = OverrideServerLinkResourceMessage.newBuilder() + .setIcon(ProtobufUtil.createResourceLocationIconProto("lunar:logo/logo-100x100.png")) + .build(); + + ProtobufPacketUtil.sendPacket(viewer, message); + } + + @Override + public void resetServerLinkResourceExample(Player viewer) { + ResetServerLinkResourceMessage message = ResetServerLinkResourceMessage.getDefaultInstance(); + ProtobufPacketUtil.sendPacket(viewer, message); + } + + @Override + public void addServerLinkExample(Player viewer) { + List serverLinks = Lists.newArrayList( + ServerLink.newBuilder() + .setId("website") + .setDisplayNameAdventureJsonLines(AdventureUtil.toJson( + Component.text("Website", NamedTextColor.LIGHT_PURPLE))) + .setUrl("https://www.lunarclient.com/") + .build(), + ServerLink.newBuilder() + .setId("support") + .setDisplayNameAdventureJsonLines(AdventureUtil.toJson( + Component.text("Support", NamedTextColor.AQUA))) + .setUrl("https://support.lunarclient.com/") + .build(), + ServerLink.newBuilder() + .setId("status") + .setDisplayNameAdventureJsonLines(AdventureUtil.toJson( + Component.text("Status", NamedTextColor.RED))) + .setUrl("https://status.lunarclient.com/") + .build() + ); + + AddServerLinkMessage message = AddServerLinkMessage.newBuilder() + .addAllServerLinks(serverLinks) + .build(); + + ProtobufPacketUtil.sendPacket(viewer, message); + } + + @Override + public void removeServerLinkExample(Player viewer) { + List serverLinkIds = Lists.newArrayList("website", "support", "status"); + + RemoveServerLinkMessage message = RemoveServerLinkMessage.newBuilder() + .addAllServerLinkIds(serverLinkIds) + .build(); + + ProtobufPacketUtil.sendPacket(viewer, message); + } + + @Override + public void resetServerLinksExample(Player viewer) { + ResetServerLinksMessage message = ResetServerLinksMessage.getDefaultInstance(); + ProtobufPacketUtil.sendPacket(viewer, message); + } + +} diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/ProtobufUtil.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/ProtobufUtil.java index affc6a1f..2c35b3c3 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/ProtobufUtil.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/util/ProtobufUtil.java @@ -28,8 +28,8 @@ import com.lunarclient.apollo.common.v1.BlockLocation; import com.lunarclient.apollo.common.v1.Cuboid2D; import com.lunarclient.apollo.common.v1.EntityId; -import com.lunarclient.apollo.common.v1.Icon; import com.lunarclient.apollo.common.v1.ItemStackIcon; +import com.lunarclient.apollo.common.v1.ResourceLocationIcon; import com.lunarclient.apollo.common.v1.SimpleResourceLocationIcon; import com.lunarclient.apollo.common.v1.Uuid; import java.awt.Color; @@ -114,7 +114,7 @@ public static Location toBukkitLocation(com.lunarclient.apollo.common.v1.PlayerL return location; } - public static Icon createItemStackIconProto(@Nullable String itemName, int itemId, int customModelData) { + public static ItemStackIcon createItemStackIconProto(@Nullable String itemName, int itemId, int customModelData) { ItemStackIcon.Builder iconBuilder = ItemStackIcon.newBuilder() .setItemId(itemId) .setCustomModelData(customModelData); @@ -123,21 +123,25 @@ public static Icon createItemStackIconProto(@Nullable String itemName, int itemI iconBuilder.setItemName(itemName); } - return Icon.newBuilder().setItemStack(iconBuilder.build()).build(); + return iconBuilder.build(); } - public static Icon createSimpleResourceLocationIconProto(String resourceLocation, int size) { - SimpleResourceLocationIcon icon = SimpleResourceLocationIcon.newBuilder() + public static ResourceLocationIcon createResourceLocationIconProto(String resourceLocation) { + return ResourceLocationIcon.newBuilder() .setResourceLocation(resourceLocation) - .setSize(size) .build(); + } - return Icon.newBuilder().setSimpleResourceLocation(icon).build(); + public static SimpleResourceLocationIcon createSimpleResourceLocationIconProto(String resourceLocation, int size) { + return SimpleResourceLocationIcon.newBuilder() + .setResourceLocation(resourceLocation) + .setSize(size) + .build(); } - public static Icon createAdvancedResourceLocationIconProto(String resourceLocation, float width, float height, + public static AdvancedResourceLocationIcon createAdvancedResourceLocationIconProto(String resourceLocation, float width, float height, float minU, float maxU, float minV, float maxV) { - AdvancedResourceLocationIcon icon = AdvancedResourceLocationIcon.newBuilder() + return AdvancedResourceLocationIcon.newBuilder() .setResourceLocation(resourceLocation) .setWidth(width) .setHeight(height) @@ -146,8 +150,6 @@ public static Icon createAdvancedResourceLocationIconProto(String resourceLocati .setMinV(minV) .setMaxV(maxV) .build(); - - return Icon.newBuilder().setAdvancedResourceLocation(icon).build(); } private ProtobufUtil() { diff --git a/platform/bukkit/src/main/java/com/lunarclient/apollo/ApolloBukkitPlatform.java b/platform/bukkit/src/main/java/com/lunarclient/apollo/ApolloBukkitPlatform.java index fd591868..8965682c 100644 --- a/platform/bukkit/src/main/java/com/lunarclient/apollo/ApolloBukkitPlatform.java +++ b/platform/bukkit/src/main/java/com/lunarclient/apollo/ApolloBukkitPlatform.java @@ -68,6 +68,8 @@ import com.lunarclient.apollo.module.richpresence.RichPresenceModule; import com.lunarclient.apollo.module.richpresence.RichPresenceModuleImpl; import com.lunarclient.apollo.module.saturation.SaturationModule; +import com.lunarclient.apollo.module.serverlink.ServerLinkModule; +import com.lunarclient.apollo.module.serverlink.ServerLinkModuleImpl; import com.lunarclient.apollo.module.serverrule.ServerRuleModule; import com.lunarclient.apollo.module.staffmod.StaffModModule; import com.lunarclient.apollo.module.staffmod.StaffModModuleImpl; @@ -152,6 +154,7 @@ public void onEnable() { .addModule(PacketEnrichmentModule.class, new PacketEnrichmentImpl()) .addModule(PayNowModule.class, new PayNowModuleImpl()) .addModule(RichPresenceModule.class, new RichPresenceModuleImpl()) + .addModule(ServerLinkModule.class, new ServerLinkModuleImpl()) .addModule(SaturationModule.class) .addModule(ServerRuleModule.class) .addModule(StaffModModule.class, new StaffModModuleImpl()) diff --git a/platform/bungee/src/main/java/com/lunarclient/apollo/ApolloBungeePlatform.java b/platform/bungee/src/main/java/com/lunarclient/apollo/ApolloBungeePlatform.java index 24d75c18..7e958dc0 100644 --- a/platform/bungee/src/main/java/com/lunarclient/apollo/ApolloBungeePlatform.java +++ b/platform/bungee/src/main/java/com/lunarclient/apollo/ApolloBungeePlatform.java @@ -58,6 +58,8 @@ import com.lunarclient.apollo.module.paynow.PayNowModuleImpl; import com.lunarclient.apollo.module.richpresence.RichPresenceModule; import com.lunarclient.apollo.module.richpresence.RichPresenceModuleImpl; +import com.lunarclient.apollo.module.serverlink.ServerLinkModule; +import com.lunarclient.apollo.module.serverlink.ServerLinkModuleImpl; import com.lunarclient.apollo.module.serverrule.ServerRuleModule; import com.lunarclient.apollo.module.staffmod.StaffModModule; import com.lunarclient.apollo.module.staffmod.StaffModModuleImpl; @@ -131,6 +133,7 @@ public void onEnable() { .addModule(NotificationModule.class, new NotificationModuleImpl()) .addModule(PayNowModule.class, new PayNowModuleImpl()) .addModule(RichPresenceModule.class, new RichPresenceModuleImpl()) + .addModule(ServerLinkModule.class, new ServerLinkModuleImpl()) .addModule(ServerRuleModule.class) .addModule(StaffModModule.class, new StaffModModuleImpl()) .addModule(StopwatchModule.class, new StopwatchModuleImpl()) diff --git a/platform/folia/src/main/java/com/lunarclient/apollo/ApolloFoliaPlatform.java b/platform/folia/src/main/java/com/lunarclient/apollo/ApolloFoliaPlatform.java index dca57648..e28530da 100644 --- a/platform/folia/src/main/java/com/lunarclient/apollo/ApolloFoliaPlatform.java +++ b/platform/folia/src/main/java/com/lunarclient/apollo/ApolloFoliaPlatform.java @@ -64,6 +64,8 @@ import com.lunarclient.apollo.module.paynow.PayNowModuleImpl; import com.lunarclient.apollo.module.richpresence.RichPresenceModule; import com.lunarclient.apollo.module.richpresence.RichPresenceModuleImpl; +import com.lunarclient.apollo.module.serverlink.ServerLinkModule; +import com.lunarclient.apollo.module.serverlink.ServerLinkModuleImpl; import com.lunarclient.apollo.module.serverrule.ServerRuleModule; import com.lunarclient.apollo.module.staffmod.StaffModModule; import com.lunarclient.apollo.module.staffmod.StaffModModuleImpl; @@ -140,6 +142,7 @@ public void onEnable() { .addModule(PacketEnrichmentModule.class, new PacketEnrichmentImpl()) .addModule(PayNowModule.class, new PayNowModuleImpl()) .addModule(RichPresenceModule.class, new RichPresenceModuleImpl()) + .addModule(ServerLinkModule.class, new ServerLinkModuleImpl()) .addModule(ServerRuleModule.class) .addModule(StaffModModule.class, new StaffModModuleImpl()) .addModule(StopwatchModule.class, new StopwatchModuleImpl()) 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 fd1357a8..559d4e5c 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomPlatform.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomPlatform.java @@ -67,6 +67,8 @@ import com.lunarclient.apollo.module.richpresence.RichPresenceModule; import com.lunarclient.apollo.module.richpresence.RichPresenceModuleImpl; import com.lunarclient.apollo.module.saturation.SaturationModule; +import com.lunarclient.apollo.module.serverlink.ServerLinkModule; +import com.lunarclient.apollo.module.serverlink.ServerLinkModuleImpl; import com.lunarclient.apollo.module.serverrule.ServerRuleModule; import com.lunarclient.apollo.module.staffmod.StaffModModule; import com.lunarclient.apollo.module.staffmod.StaffModModuleImpl; @@ -174,6 +176,7 @@ public static void init(ApolloMinestomProperties properties) { .addModule(PacketEnrichmentModule.class, new PacketEnrichmentImpl()) .addModule(PayNowModule.class, new PayNowModuleImpl()) .addModule(RichPresenceModule.class, new RichPresenceModuleImpl()) + .addModule(ServerLinkModule.class, new ServerLinkModuleImpl()) .addModule(SaturationModule.class) .addModule(ServerRuleModule.class) .addModule(StaffModModule.class, new StaffModModuleImpl()) 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 e975fae0..1b8501ed 100644 --- a/platform/velocity/src/main/java/com/lunarclient/apollo/ApolloVelocityPlatform.java +++ b/platform/velocity/src/main/java/com/lunarclient/apollo/ApolloVelocityPlatform.java @@ -58,6 +58,8 @@ import com.lunarclient.apollo.module.paynow.PayNowModuleImpl; import com.lunarclient.apollo.module.richpresence.RichPresenceModule; import com.lunarclient.apollo.module.richpresence.RichPresenceModuleImpl; +import com.lunarclient.apollo.module.serverlink.ServerLinkModule; +import com.lunarclient.apollo.module.serverlink.ServerLinkModuleImpl; import com.lunarclient.apollo.module.serverrule.ServerRuleModule; import com.lunarclient.apollo.module.staffmod.StaffModModule; import com.lunarclient.apollo.module.staffmod.StaffModModuleImpl; @@ -196,6 +198,7 @@ public void onProxyInitialization(ProxyInitializeEvent event) { .addModule(NotificationModule.class, new NotificationModuleImpl()) .addModule(PayNowModule.class, new PayNowModuleImpl()) .addModule(RichPresenceModule.class, new RichPresenceModuleImpl()) + .addModule(ServerLinkModule.class, new ServerLinkModuleImpl()) .addModule(ServerRuleModule.class) .addModule(StaffModModule.class, new StaffModModuleImpl()) .addModule(StopwatchModule.class, new StopwatchModuleImpl())