Skip to content

Commit 4c6aeb4

Browse files
committed
fix update required version logic
1 parent 2a4fde4 commit 4c6aeb4

File tree

6 files changed

+61
-33
lines changed

6 files changed

+61
-33
lines changed

bukkit/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@
2525

2626
import com.lunarclient.apollo.Apollo;
2727
import com.lunarclient.apollo.ApolloManager;
28+
import com.lunarclient.apollo.api.response.VersionResponse;
2829
import com.lunarclient.apollo.event.ApolloListener;
2930
import com.lunarclient.apollo.event.ApolloReceivePacketEvent;
3031
import com.lunarclient.apollo.event.EventBus;
3132
import com.lunarclient.apollo.event.Listen;
3233
import com.lunarclient.apollo.player.ApolloPlayerManagerImpl;
3334
import com.lunarclient.apollo.player.v1.PlayerHandshakeMessage;
35+
import com.lunarclient.apollo.version.ApolloVersionManager;
3436
import com.lunarclient.apollo.wrapper.BukkitApolloPlayer;
3537
import org.bukkit.Bukkit;
3638
import org.bukkit.ChatColor;
@@ -86,14 +88,19 @@ private void onPlayerQuit(PlayerQuitEvent event) {
8688

8789
@EventHandler
8890
private void onPlayerJoin(PlayerJoinEvent event) {
89-
String version = ApolloManager.getVersionManager().getLatestVersion();
91+
VersionResponse updateAssets = ApolloManager.getVersionManager().getUpdateAssets();
92+
if (updateAssets == null) {
93+
return;
94+
}
9095

91-
if (version == null) {
96+
if (!Apollo.getPlatform().getOptions().get(ApolloVersionManager.SEND_UPDATE_MESSAGE)) {
9297
return;
9398
}
9499

95100
Player player = event.getPlayer();
96-
if (player.isOp()) {
101+
String version = updateAssets.getVersion();
102+
103+
if (version != null && player.isOp()) {
97104
String message = ChatColor.YELLOW + "[Apollo] A new version of Apollo is available! Latest release: "
98105
+ ChatColor.GOLD + version
99106
+ ChatColor.YELLOW + " Please update by running "

common/src/main/java/com/lunarclient/apollo/api/ApolloHttpManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
import org.jetbrains.annotations.Nullable;
4747

4848
/**
49-
* Manages Apollo http requests & responses.
49+
* Manages Apollo http requests and responses.
5050
*
5151
* @since 1.0.0
5252
*/

common/src/main/java/com/lunarclient/apollo/version/ApolloVersion.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public class ApolloVersion {
4141
* Constructs the {@link ApolloVersion} by the
4242
* provided version string.
4343
*
44-
* <p>Divides the version string by the major, minor & patch version.</p>
44+
* <p>Divides the version string by the major, minor and patch version.</p>
4545
*
4646
* @param version the version
4747
* @since 1.0.0
@@ -75,8 +75,14 @@ public ApolloVersion(String version) {
7575
public boolean isUpdateAvailable(ApolloVersion version) {
7676
if (version.getMajor() > this.major) {
7777
return true;
78-
} else if (version.getMinor() > this.minor) {
78+
} else if (version.getMajor() < this.major) {
79+
return false;
80+
}
81+
82+
if (version.getMinor() > this.minor) {
7983
return true;
84+
} else if (version.getMinor() < this.minor) {
85+
return false;
8086
}
8187

8288
return version.getPatch() > this.patch;

common/src/main/java/com/lunarclient/apollo/version/ApolloVersionManager.java

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,7 @@ public final class ApolloVersionManager {
5656
.node("send-updater-message").type(TypeToken.get(Boolean.class))
5757
.defaultValue(true).build();
5858

59-
@Getter
60-
private String latestVersion;
61-
private VersionResponse.Assets assets;
59+
@Getter private VersionResponse updateAssets;
6260

6361
private final AtomicBoolean updated = new AtomicBoolean(false);
6462

@@ -79,8 +77,6 @@ public ApolloVersionManager() {
7977
public void checkForUpdates() {
8078
ApolloManager.getHttpManager().request(VersionRequest.builder().build())
8179
.onSuccess(response -> {
82-
this.assets = response.getAssets();
83-
8480
ApolloPlatform platform = Apollo.getPlatform();
8581
String version = response.getVersion();
8682

@@ -91,7 +87,7 @@ public void checkForUpdates() {
9187
return;
9288
}
9389

94-
this.latestVersion = version;
90+
this.updateAssets = response;
9591

9692
if (!platform.getOptions().get(ApolloVersionManager.SEND_UPDATE_MESSAGE)) {
9793
return;
@@ -124,31 +120,23 @@ public void forceUpdate(ApolloPlatform.Platform platform, Consumer<Component> me
124120
return;
125121
}
126122

127-
if (this.latestVersion == null) {
123+
if (this.updateAssets == null) {
128124
message.accept(Component.text(
129125
"This server is already running the latest version of Apollo.",
130126
NamedTextColor.RED)
131127
);
132128
return;
133129
}
134130

135-
if (this.assets == null) {
131+
String downloadUrl = this.getPlatformUrl(platform);
132+
if (downloadUrl == null) {
136133
message.accept(Component.text(
137134
"Unable to find assets to update from.",
138135
NamedTextColor.RED)
139136
);
140137
return;
141138
}
142139

143-
String platformUrl = this.getPlatformUrl(platform);
144-
if (platformUrl == null) {
145-
message.accept(Component.text(
146-
"Unable to find platform url.",
147-
NamedTextColor.RED)
148-
);
149-
return;
150-
}
151-
152140
// Find the current running Apollo jar
153141
URL url = Apollo.getPlatform().getPlugin()
154142
.getClass()
@@ -165,14 +153,14 @@ public void forceUpdate(ApolloPlatform.Platform platform, Consumer<Component> me
165153
}
166154

167155
// Find name of the new Apollo jar
168-
String[] urlArgs = platformUrl.split("/");
156+
String[] urlArgs = downloadUrl.split("/");
169157
String fileName = urlArgs[urlArgs.length - 1];
170158

171159
// Create a path for the downloaded Apollo jar
172160
Path updatedJarPath = Paths.get(file.getParent() + File.separator + fileName);
173161

174162
DownloadFileRequest request = DownloadFileRequest.builder()
175-
.url(platformUrl)
163+
.url(downloadUrl)
176164
.target(updatedJarPath)
177165
.build();
178166

@@ -198,21 +186,23 @@ public void forceUpdate(ApolloPlatform.Platform platform, Consumer<Component> me
198186
}
199187

200188
private String getPlatformUrl(ApolloPlatform.Platform platform) {
189+
VersionResponse.Assets assets = this.updateAssets.getAssets();
190+
201191
switch (platform) {
202192
case BUKKIT: {
203-
return this.assets.getBukkit();
193+
return assets.getBukkit();
204194
}
205195

206196
case BUNGEE: {
207-
return this.assets.getBungee();
197+
return assets.getBungee();
208198
}
209199

210200
case VELOCITY: {
211-
return this.assets.getVelocity();
201+
return assets.getVelocity();
212202
}
213203

214204
case FOLIA: {
215-
return this.assets.getFolia();
205+
return assets.getFolia();
216206
}
217207
}
218208

folia/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@
2525

2626
import com.lunarclient.apollo.Apollo;
2727
import com.lunarclient.apollo.ApolloManager;
28+
import com.lunarclient.apollo.api.response.VersionResponse;
2829
import com.lunarclient.apollo.event.ApolloListener;
2930
import com.lunarclient.apollo.event.ApolloReceivePacketEvent;
3031
import com.lunarclient.apollo.event.EventBus;
3132
import com.lunarclient.apollo.event.Listen;
3233
import com.lunarclient.apollo.player.ApolloPlayerManagerImpl;
3334
import com.lunarclient.apollo.player.v1.PlayerHandshakeMessage;
35+
import com.lunarclient.apollo.version.ApolloVersionManager;
3436
import com.lunarclient.apollo.wrapper.FoliaApolloPlayer;
3537
import net.kyori.adventure.text.Component;
3638
import net.kyori.adventure.text.format.NamedTextColor;
@@ -87,14 +89,19 @@ private void onPlayerQuit(PlayerQuitEvent event) {
8789

8890
@EventHandler
8991
private void onPlayerJoin(PlayerJoinEvent event) {
90-
String version = ApolloManager.getVersionManager().getLatestVersion();
92+
VersionResponse updateAssets = ApolloManager.getVersionManager().getUpdateAssets();
93+
if (updateAssets == null) {
94+
return;
95+
}
9196

92-
if (version == null) {
97+
if (!Apollo.getPlatform().getOptions().get(ApolloVersionManager.SEND_UPDATE_MESSAGE)) {
9398
return;
9499
}
95100

96101
Player player = event.getPlayer();
97-
if (player.isOp()) {
102+
String version = updateAssets.getVersion();
103+
104+
if (version != null && player.isOp()) {
98105
Component message = Component.text("[Apollo] A new version of Apollo is available! Latest release: ", NamedTextColor.YELLOW)
99106
.append(Component.text(version, NamedTextColor.GOLD))
100107
.append(Component.text(" Please update by running ", NamedTextColor.YELLOW))

minestom/src/main/java/com/lunarclient/apollo/listener/ApolloPlayerListener.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,14 @@
2626
import com.lunarclient.apollo.Apollo;
2727
import com.lunarclient.apollo.ApolloManager;
2828
import com.lunarclient.apollo.ApolloMinestomPlatform;
29+
import com.lunarclient.apollo.api.response.VersionResponse;
2930
import com.lunarclient.apollo.event.ApolloListener;
3031
import com.lunarclient.apollo.event.ApolloReceivePacketEvent;
3132
import com.lunarclient.apollo.event.EventBus;
3233
import com.lunarclient.apollo.event.Listen;
3334
import com.lunarclient.apollo.player.ApolloPlayerManagerImpl;
3435
import com.lunarclient.apollo.player.v1.PlayerHandshakeMessage;
36+
import com.lunarclient.apollo.version.ApolloVersionManager;
3537
import com.lunarclient.apollo.wrapper.MinestomApolloPlayer;
3638
import java.util.Arrays;
3739
import java.util.List;
@@ -100,11 +102,27 @@ private void onPlayerDisconnect(PlayerDisconnectEvent event) {
100102
private void onPlayerSpawn(PlayerSpawnEvent event) {
101103
Player player = event.getPlayer();
102104

105+
this.sendRegisterPacket(player);
106+
this.sendUpdateMessage(player);
107+
}
108+
109+
private void sendRegisterPacket(Player player) {
103110
if (ApolloMinestomPlatform.getInstance().getProperties().isSendRegisterPacket()) {
104111
player.sendPluginMessage("minecraft:register", ApolloManager.PLUGIN_MESSAGE_CHANNEL);
105112
}
113+
}
114+
115+
private void sendUpdateMessage(Player player) {
116+
VersionResponse updateAssets = ApolloManager.getVersionManager().getUpdateAssets();
117+
if (updateAssets == null) {
118+
return;
119+
}
120+
121+
if (!Apollo.getPlatform().getOptions().get(ApolloVersionManager.SEND_UPDATE_MESSAGE)) {
122+
return;
123+
}
106124

107-
String version = ApolloManager.getVersionManager().getLatestVersion();
125+
String version = updateAssets.getVersion();
108126
if (version != null && player.getPermissionLevel() == 4) {
109127
Component message = Component.text("[Apollo] A new version of Apollo is available! Latest release: ", NamedTextColor.YELLOW)
110128
.append(Component.text(version, NamedTextColor.GOLD));

0 commit comments

Comments
 (0)