Skip to content

Commit 571e345

Browse files
committed
- translations
- ElasticBuffer support
1 parent fe4c06e commit 571e345

File tree

19 files changed

+377
-114
lines changed

19 files changed

+377
-114
lines changed

.idea/jarRepositories.xml

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pom.xml

+11-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>betterbox.mine.game</groupId>
88
<artifactId>BetterRanks</artifactId>
9-
<version>5.1.37-SNAPSHOT</version> <!-- Statyczna wartość wersji -->
9+
<version>6.0.2-SNAPSHOT</version> <!-- Statyczna wartość wersji -->
1010
<packaging>jar</packaging>
1111

1212
<name>BetterRanks</name>
@@ -112,6 +112,10 @@
112112
<id>sonatype</id>
113113
<url>https://oss.sonatype.org/content/groups/public/</url>
114114
</repository>
115+
<repository>
116+
<id>jitpack.io</id>
117+
<url>https://jitpack.io</url>
118+
</repository>
115119
</repositories>
116120

117121
<dependencies>
@@ -128,5 +132,11 @@
128132
<version>3.0.2</version>
129133
<scope>compile</scope>
130134
</dependency>
135+
<dependency>
136+
<groupId>com.github.Grzybol</groupId>
137+
<artifactId>ElasticBuffer</artifactId>
138+
<version>v1.2.1</version>
139+
<scope>provided</scope>
140+
</dependency>
131141
</dependencies>
132142
</project>

src/main/java/betterbox/mine/game/betterranks/BetterRanks.java

+24-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package betterbox.mine.game.betterranks;
22

3+
import org.betterbox.elasticBuffer.ElasticBuffer;
4+
import org.betterbox.elasticBuffer.ElasticBufferAPI;
35
import org.bstats.bukkit.Metrics;
46
import org.bukkit.Bukkit;
57
import org.bukkit.OfflinePlayer;
68
import org.bukkit.configuration.file.FileConfiguration;
79
import org.bukkit.configuration.file.YamlConfiguration;
810
import org.bukkit.entity.Player;
11+
import org.bukkit.plugin.PluginManager;
912
import org.bukkit.plugin.java.JavaPlugin;
1013

1114
import java.io.File;
@@ -24,6 +27,7 @@ public final class BetterRanks extends JavaPlugin {
2427
FileConfiguration gmUsersConfig;
2528
DataManager dataManager;
2629
ConfigManager configManager;
30+
private Lang lang;
2731

2832
@Override
2933
public void onEnable() {
@@ -42,13 +46,14 @@ public void onEnable() {
4246
try{
4347
configManager = new ConfigManager(this, pluginLogger, folderPath);
4448
pluginLogger.log(PluginLogger.LogLevel.DEBUG, "BetterRanks: onEnable: calling DataManager");
49+
lang = new Lang(this, pluginLogger);
4550
}catch (Exception e){
4651
getServer().getLogger().warning("configManager Exception: " + e.getMessage());
4752
}
48-
dataManager = new DataManager(this, pluginLogger);
53+
dataManager = new DataManager(this, pluginLogger,lang);
4954

5055
// Set the command executor to the new command handler class
51-
this.getCommand("br").setExecutor(new BetterRanksCommandHandler(this,pluginLogger,configManager));
56+
this.getCommand("br").setExecutor(new BetterRanksCommandHandler(this,pluginLogger,configManager,lang));
5257
pluginLogger.log(PluginLogger.LogLevel.INFO,"Plugin has been enabled!");
5358

5459
// Load the users.yml file relative to the plugins directory
@@ -82,6 +87,23 @@ public void onEnable() {
8287
getLogger().info("Version: "+getDescription().getVersion());
8388

8489
}
90+
private void loadElasticBuffer(){
91+
try{
92+
PluginManager pm = Bukkit.getPluginManager();
93+
try {
94+
// Opóźnienie o 5 sekund, aby dać ElasticBuffer czas na pełną inicjalizację
95+
Thread.sleep(1000);
96+
} catch (InterruptedException e) {
97+
pluginLogger.log(PluginLogger.LogLevel.WARNING, "[BetterElo] Initialization delay interrupted: " + e.getMessage());
98+
Thread.currentThread().interrupt(); // Przywrócenie statusu przerwania wątku
99+
}
100+
ElasticBuffer elasticBuffer = (ElasticBuffer) pm.getPlugin("ElasticBuffer");
101+
pluginLogger.isElasticBufferEnabled=true;
102+
pluginLogger.api= new ElasticBufferAPI(elasticBuffer);
103+
}catch (Exception e){
104+
pluginLogger.log(PluginLogger.LogLevel.ERROR, "ElasticBufferAPI instance found via ServicesManager, exception: "+e.getMessage());
105+
}
106+
}
85107

86108
private void checkRankExpiry() {
87109
List<String> names = new ArrayList<>();

src/main/java/betterbox/mine/game/betterranks/BetterRanksCommandHandler.java

+117-81
Large diffs are not rendered by default.

src/main/java/betterbox/mine/game/betterranks/DataManager.java

+9-7
Original file line numberDiff line numberDiff line change
@@ -25,28 +25,30 @@ public class DataManager {
2525
private final Random random = new Random();
2626
public String poolName =null;
2727
String usedPoolsPath=null;
28+
private final Lang lang;
2829

29-
public DataManager(JavaPlugin plugin,PluginLogger pluginLogger) {
30+
public DataManager(JavaPlugin plugin,PluginLogger pluginLogger,Lang lang) {
3031
this.pluginLogger = pluginLogger;
32+
this.lang = lang;
3133
pluginLogger.log(PluginLogger.LogLevel.DEBUG,"DataManager called");
3234
this.plugin = plugin;
3335

3436
pluginLogger.log(PluginLogger.LogLevel.DEBUG,"DataManager: calling setup()");
3537
setup();
3638
}
3739
// Metoda, która zwraca pozostały czas dla danego UUID w formacie "xx d xx m xx s"
38-
public String getRemainingTimeFormatted(UUID uuid) {
39-
pluginLogger.log(PluginLogger.LogLevel.DEBUG,"DataManager: getRemainingTimeFormatted: called UUID "+uuid);
40+
public String getRemainingTimeFormatted(UUID uuid, String transactionID) {
41+
pluginLogger.log(PluginLogger.LogLevel.DEBUG,"DataManager: getRemainingTimeFormatted: called UUID "+uuid,transactionID);
4042
long expiryTime = getExpiryTime(uuid);
41-
pluginLogger.log(PluginLogger.LogLevel.DEBUG,"DataManager: getRemainingTimeFormatted: expiryTime " +expiryTime);
43+
pluginLogger.log(PluginLogger.LogLevel.DEBUG,"DataManager: getRemainingTimeFormatted: expiryTime " +expiryTime,transactionID);
4244
if (expiryTime == -1) {
43-
return "No expiry time set"; // Lub inną wiadomość wskazującą, że czas wygaśnięcia nie jest ustawiony
45+
return lang.noExpiryTmeSet; // Lub inną wiadomość wskazującą, że czas wygaśnięcia nie jest ustawiony
4446

4547
}
4648

4749
long currentTime = System.currentTimeMillis();
4850
if (currentTime >= expiryTime) {
49-
return "Expired"; // Lub inną wiadomość, jeśli czas wygaśnięcia już minął
51+
return lang.expired; // Lub inną wiadomość, jeśli czas wygaśnięcia już minął
5052
}
5153

5254
long remainingTime = expiryTime - currentTime;
@@ -69,7 +71,7 @@ public String getRemainingTimeFormatted(UUID uuid) {
6971
sb.append(seconds).append(" s");
7072
}
7173

72-
return "Rank expires in "+sb.toString().trim();
74+
return lang.rankExpiresIn+sb.toString().trim();
7375
}
7476

7577
public void setup() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
package betterbox.mine.game.betterranks;
2+
3+
import org.bukkit.ChatColor;
4+
import org.bukkit.configuration.file.FileConfiguration;
5+
import org.bukkit.configuration.file.YamlConfiguration;
6+
import org.bukkit.plugin.java.JavaPlugin;
7+
8+
import java.io.File;
9+
import java.io.IOException;
10+
import java.util.List;
11+
import java.util.UUID;
12+
13+
public class Lang {
14+
private final JavaPlugin plugin;
15+
private final PluginLogger pluginLogger;
16+
public String currentBonusString = "§6§lCurrent Bonus: ";
17+
public String noPermission = " You do not have permission to use this command!";
18+
public String higherRank = " You already have a higher rank.";
19+
public String poolAlreadyUsed = " You already used a code from that pool!";
20+
public String codeUsedSuccessfully = " Code used successfully!";
21+
public String invalidOrExpiredCode = " Invalid or expired code!";
22+
public String invalidCommand = "Invalid command usage. Check the command syntax.";
23+
public String timeLeftMessage = "Time left: ";
24+
public String timeLeftHelpMessage = " - returns time left on your current rank.";
25+
public String noExpiryTmeSet = "No expiry time set for this rank.";
26+
public String expired = "Expired";
27+
public String rankExpiresIn = "Rank expires in: ";
28+
29+
30+
public Lang(JavaPlugin plugin, PluginLogger pluginLogger) {
31+
this.plugin = plugin;
32+
this.pluginLogger = pluginLogger;
33+
loadLangFile();
34+
}
35+
36+
public void loadLangFile() {
37+
String transactionID = UUID.randomUUID().toString();
38+
pluginLogger.log(PluginLogger.LogLevel.DEBUG, "Lang.loadLangFile called", transactionID);
39+
File langDir = new File(plugin.getDataFolder(), "lang");
40+
if (!langDir.exists()) {
41+
pluginLogger.log(PluginLogger.LogLevel.DEBUG, "Creating lang directory...", transactionID);
42+
langDir.mkdirs();
43+
}
44+
45+
File langFile = new File(langDir, "lang.yml");
46+
if (!langFile.exists()) {
47+
pluginLogger.log(PluginLogger.LogLevel.DEBUG, "Creating lang.yml file...", transactionID);
48+
createDefaultLangFile(langFile, transactionID);
49+
}
50+
51+
pluginLogger.log(PluginLogger.LogLevel.DEBUG, "Loading lang.yml file...", transactionID);
52+
FileConfiguration config = YamlConfiguration.loadConfiguration(langFile);
53+
validateAndLoadConfig(config, langFile, transactionID);
54+
}
55+
56+
private void createDefaultLangFile(File langFile, String transactionID) {
57+
try {
58+
pluginLogger.log(PluginLogger.LogLevel.DEBUG, "Creating lang.yml file...", transactionID);
59+
langFile.createNewFile();
60+
FileConfiguration config = YamlConfiguration.loadConfiguration(langFile);
61+
setDefaultValues(config);
62+
config.save(langFile);
63+
pluginLogger.log(PluginLogger.LogLevel.DEBUG, "lang.yml file created successfully!", transactionID);
64+
} catch (IOException e) {
65+
pluginLogger.log(PluginLogger.LogLevel.ERROR, "Error creating lang.yml file: " + e.getMessage(), transactionID);
66+
}
67+
}
68+
69+
private void setDefaultValues(FileConfiguration config) {
70+
config.set("currentBonusString", currentBonusString);
71+
config.set("noPermission", noPermission);
72+
}
73+
74+
private void validateAndLoadConfig(FileConfiguration config, File langFile, String transactionID) {
75+
boolean saveRequired = false;
76+
77+
if (!config.contains("currentBonusString")) {
78+
config.set("currentBonusString", currentBonusString);
79+
saveRequired = true;
80+
} else {
81+
currentBonusString = config.getString("currentBonusString");
82+
}
83+
84+
if (!config.contains("noPermission")) {
85+
config.set("noPermission", noPermission);
86+
saveRequired = true;
87+
} else {
88+
noPermission = config.getString("noPermission");
89+
}
90+
91+
92+
if (saveRequired) {
93+
try {
94+
config.save(langFile);
95+
pluginLogger.log(PluginLogger.LogLevel.DEBUG, "lang.yml file updated with missing values", transactionID);
96+
} catch (IOException e) {
97+
pluginLogger.log(PluginLogger.LogLevel.ERROR, "Error saving lang.yml file: " + e.getMessage(), transactionID);
98+
}
99+
}
100+
}
101+
}

0 commit comments

Comments
 (0)