Skip to content

Commit 21df20e

Browse files
authored
Merge pull request #37 from BitAspire/croabeast
feat: expand the about command
2 parents 27ac3eb + 1ad3b0f commit 21df20e

8 files changed

Lines changed: 73 additions & 27 deletions

File tree

.github/workflows/build.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@ jobs:
1818
- name: Checkout repository
1919
uses: actions/checkout@v4
2020

21+
# settings.gradle.kts picks this checkout up as an included build. Keep the path
22+
# in sync with the candidates listed there, otherwise the build cannot resolve it.
23+
- name: Checkout CyberCore dependency
24+
uses: actions/checkout@v4
25+
with:
26+
repository: BitAspire/CyberCore
27+
path: CyberCore
28+
2129
- name: Set up JDK (Temurin 21)
2230
uses: actions/setup-java@v4
2331
with:

.github/workflows/release.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,14 @@ jobs:
2929
ref: ${{ github.event.workflow_run.head_sha }}
3030
fetch-depth: 0
3131

32+
# settings.gradle.kts picks this checkout up as an included build. Keep the path
33+
# in sync with the candidates listed there, otherwise the build cannot resolve it.
34+
- name: Checkout CyberCore dependency
35+
uses: actions/checkout@v4
36+
with:
37+
repository: BitAspire/CyberCore
38+
path: CyberCore
39+
3240
- name: Set up Java
3341
uses: actions/setup-java@v4
3442
with:

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ plugins {
1010
}
1111

1212
group = "com.bitaspire"
13-
version = "1.2.9"
13+
version = "1.3.0"
1414

1515
repositories {
1616
mavenLocal()
@@ -37,7 +37,7 @@ dependencies {
3737
// Spigot API
3838
compileOnly("org.spigotmc:spigot-api:1.16.5-R0.1-SNAPSHOT")
3939

40-
implementation(files("libraries/CyberCore-2.0.0.jar"))
40+
implementation("com.bitaspire:CyberCore:2.1.0")
4141

4242
compileOnly("me.clip:placeholderapi:2.11.6")
4343
compileOnly(files("libraries/RivalHarvesterHoesAPI.jar"))

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.0-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
44
networkTimeout=10000
55
retries=0
66
retryBackOffMs=500

libraries/CyberCore-2.0.0.jar

-1.93 MB
Binary file not shown.

settings.gradle.kts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,12 @@
11
rootProject.name = "CyberLevels"
2+
3+
// Builds these from source and substitutes them for their com.bitaspire coordinates, so this
4+
// plugin can be developed against unpublished changes. Locally the checkouts are sibling folders;
5+
// CI checks them out inside this repository instead. They are not on any maven repository, so the
6+
// checkout is required rather than a fallback.
7+
listOf("CyberCore").forEach { dependency ->
8+
listOf("../$dependency", dependency)
9+
.map(::file)
10+
.firstOrNull { it.resolve("settings.gradle.kts").isFile }
11+
?.let(::includeBuild)
12+
}

src/main/java/com/bitaspire/cyberlevels/CyberLevels.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.bitaspire.cyberlevels;
22

3+
import com.bitaspire.cybercore.TextLibrary;
34
import com.bitaspire.libs.common.CollectionBuilder;
45
import com.bitaspire.libs.vnc.VNC;
56
import com.bitaspire.cybercore.CoreSettings;
@@ -279,7 +280,7 @@ public double serverVersion() {
279280
*
280281
* @return active Takion library facade
281282
*/
282-
public TakionLib library() {
283+
public TextLibrary library() {
283284
return core.getLibrary();
284285
}
285286

src/main/java/com/bitaspire/cyberlevels/command/CLVCommand.java

Lines changed: 41 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,17 @@
33
import com.bitaspire.cyberlevels.CyberLevels;
44
import com.bitaspire.cyberlevels.cache.Lang;
55
import com.bitaspire.cyberlevels.level.LevelSystem;
6+
import com.bitaspire.cyberlevels.user.Database;
67
import com.bitaspire.cyberlevels.user.LevelUser;
78
import com.bitaspire.libs.common.util.ReplaceUtils;
9+
import com.bitaspire.libs.prismatic.PrismaticAPI;
10+
import com.bitaspire.libs.vnc.VNC;
811
import java.util.Arrays;
912
import java.util.LinkedHashMap;
1013
import java.util.List;
1114
import java.util.Map;
1215
import java.util.function.Function;
1316
import lombok.Getter;
14-
import org.bukkit.Bukkit;
15-
import org.bukkit.ChatColor;
1617
import org.bukkit.OfflinePlayer;
1718
import org.bukkit.command.Command;
1819
import org.bukkit.command.CommandExecutor;
@@ -90,23 +91,7 @@ public boolean onCommand(
9091
switch (sub) {
9192
case "about":
9293
if (isRestricted(player, "player.about")) return true;
93-
if (player == null) {
94-
main.logger(
95-
" &d&lCyber&f&lLevels &fv" +
96-
main.getDescription().getVersion() +
97-
" &7(&7&nhttps://bit.ly/2YSlqYq&7).",
98-
" &fDeveloped by &d" + main.getAuthors() + "&f.",
99-
" A leveling system plugin with MySQL support and custom events."
100-
);
101-
return true;
102-
}
103-
return main.createSender(player).send(
104-
" &d&lCyber&f&lLevels &fv" +
105-
main.getDescription().getVersion() +
106-
" &7(&7&nhttps://bit.ly/2YSlqYq&7).",
107-
" &fDeveloped by &d" + main.getAuthors() + "&f.",
108-
" A leveling system plugin with MySQL support and custom events."
109-
);
94+
return sendAbout(sender, player);
11095
case "reload":
11196
if (isRestricted(player, "admin.reload")) return true;
11297

@@ -281,6 +266,35 @@ public boolean onCommand(
281266
return sendLangMessage(sender, player, Lang::getNoPermission);
282267
}
283268

269+
private boolean sendAbout(CommandSender sender, Player player) {
270+
Database<?> database = main.userManager() == null ?
271+
null :
272+
main.userManager().getDatabase();
273+
boolean databaseEnabled = main.cache().config().database().isEnabled();
274+
boolean databaseConnected = database != null && database.isConnected();
275+
276+
String[] lines = new String[] {
277+
" &d&lCyber&f&lLevels &fv" + main.getDescription().getVersion() + "&7.",
278+
" &7Server: &f" + serverInfo(),
279+
" &7Authors: &f" + main.getAuthors(),
280+
" &7Database: &f" + databaseConnected + " &7(enabled: &f" + databaseEnabled +
281+
"&7, type: &f" + main.cache().config().database().getType() + "&7)",
282+
" &7Config: &fauto-save " + main.cache().config().isAutoSaveEnabled() +
283+
" / " + main.cache().config().getAutoSaveInterval() + "s&7, &fleaderboard " +
284+
main.cache().config().isLeaderboardEnabled() + " / " +
285+
main.cache().config().getLeaderboardMaxPositions() + " positions",
286+
" &7Engine: &f" + (main.cache().config().useBigDecimalSystem() ? "BigDecimal" : "Double") +
287+
"&7, &fEXP integer-only " + main.cache().config().isExpIntegerOnly()
288+
};
289+
290+
if (player == null) {
291+
main.logger(lines);
292+
return true;
293+
}
294+
295+
return main.createSender(player).send(lines);
296+
}
297+
284298
private boolean sendLangMessage(
285299
CommandSender cmdSender,
286300
Player player,
@@ -297,7 +311,7 @@ private boolean sendLangMessage(
297311
String out = stripConsoleChannels(line);
298312
if (!out.isEmpty()) {
299313
cmdSender.sendMessage(
300-
ChatColor.translateAlternateColorCodes('&', out)
314+
PrismaticAPI.colorize(out)
301315
);
302316
}
303317
}
@@ -348,7 +362,7 @@ private boolean sendLangMessage(
348362
out = stripConsoleChannels(out);
349363
if (!out.isEmpty()) {
350364
cmdSender.sendMessage(
351-
ChatColor.translateAlternateColorCodes('&', out)
365+
PrismaticAPI.colorize(out)
352366
);
353367
}
354368
}
@@ -369,15 +383,19 @@ private LevelUser<?> resolveUserByName(String name) {
369383
LevelUser<?> user = main.userManager().getUser(name);
370384
if (user != null) return user;
371385

372-
Player online = Bukkit.getPlayerExact(name);
386+
Player online = main.getServer().getPlayerExact(name);
373387
if (online != null) return main.userManager().getUser(online);
374388

375-
OfflinePlayer offline = Bukkit.getOfflinePlayer(name);
389+
OfflinePlayer offline = main.getServer().getOfflinePlayer(name);
376390
if (!offline.hasPlayedBefore() && !offline.isOnline()) return null;
377391

378392
return main.userManager().getUser(offline.getUniqueId());
379393
}
380394

395+
private static String serverInfo() {
396+
return VNC.SERVER != null ? VNC.SERVER.getImplementationVersion() : "Unknown";
397+
}
398+
381399
private boolean sendLevelInfo(Player player) {
382400
if (player == null) return true;
383401

0 commit comments

Comments
 (0)