Skip to content

Commit c99bce2

Browse files
Merge pull request #99 from Dans-Plugins/develop
Develop
2 parents 2c4a709 + ad7b03c commit c99bce2

File tree

12 files changed

+131
-110
lines changed

12 files changed

+131
-110
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>dansplugins</groupId>
88
<artifactId>SimpleSkills</artifactId>
9-
<version>2.2.0-SNAPSHOT</version>
9+
<version>2.2.1-SNAPSHOT</version>
1010
<packaging>jar</packaging>
1111

1212
<name>SimpleSkills</name>

src/main/java/dansplugins/simpleskills/SimpleSkills.java

Lines changed: 42 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import dansplugins.simpleskills.bstats.Metrics;
44
import dansplugins.simpleskills.commands.*;
55
import dansplugins.simpleskills.commands.tab.TabCommand;
6+
import dansplugins.simpleskills.listeners.PlayerJoinEventListener;
67
import dansplugins.simpleskills.playerrecord.PlayerRecordRepository;
78
import dansplugins.simpleskills.config.ConfigService;
89
import dansplugins.simpleskills.message.MessageService;
@@ -18,8 +19,6 @@
1819
import org.bukkit.command.Command;
1920
import org.bukkit.command.CommandSender;
2021
import org.bukkit.command.PluginCommand;
21-
import org.bukkit.event.EventHandler;
22-
import org.bukkit.event.Listener;
2322
import org.jetbrains.annotations.NotNull;
2423
import preponderous.ponder.minecraft.bukkit.PonderMC;
2524
import preponderous.ponder.minecraft.bukkit.abs.AbstractPluginCommand;
@@ -28,23 +27,23 @@
2827

2928
import java.util.ArrayList;
3029
import java.util.Arrays;
31-
import java.util.logging.Level;
3230

3331
/**
3432
* @author Daniel Stephenson
3533
*/
36-
public class SimpleSkills extends PonderBukkitPlugin implements Listener {
34+
public class SimpleSkills extends PonderBukkitPlugin {
3735
private final String pluginVersion = "v" + getDescription().getVersion();
3836
private PonderMC ponder;
3937

40-
private final Log log = new Log(this);
41-
private final MessageService messageService = new MessageService(this);
4238
private final ConfigService configService = new ConfigService(this);
39+
private final Log log = new Log(this, configService);
40+
private final MessageService messageService = new MessageService(this);
4341
private final ExperienceCalculator experienceCalculator = new ExperienceCalculator();
4442
private final SkillRepository skillRepository = new SkillRepository();
4543
private final PlayerRecordRepository playerRecordRepository = new PlayerRecordRepository(log, messageService, skillRepository, configService, experienceCalculator);
4644
private final StorageService storageService = new StorageService(playerRecordRepository, skillRepository, messageService, configService, experienceCalculator, log);
4745
private final ChanceCalculator chanceCalculator = new ChanceCalculator(playerRecordRepository, configService, skillRepository, messageService, experienceCalculator, log);
46+
private final PlayerJoinEventListener playerJoinEventListener = new PlayerJoinEventListener(playerRecordRepository, log);
4847

4948

5049
/**
@@ -53,13 +52,13 @@ public class SimpleSkills extends PonderBukkitPlugin implements Listener {
5352
@Override
5453
public void onEnable() {
5554
this.ponder = new PonderMC(this);
55+
configService.createConfig();
5656
performNMSChecks();
5757
setTabCompleterForCoreCommands();
58-
configService.createconfig();
5958
setupMetrics();
60-
getLogger().log(Level.INFO, "Loading files.");
59+
log.debug("Loading files.");
6160
storageService.load();
62-
getLogger().log(Level.INFO, "Creating language files.");
61+
log.debug("Creating language files.");
6362
messageService.createlang();
6463
initializeSkills();
6564
registerEventListeners();
@@ -72,12 +71,12 @@ public void onEnable() {
7271
*/
7372
@Override
7473
public void onDisable() {
75-
getLogger().log(Level.INFO, "Saving files.");
74+
log.debug("Saving files.");
7675
storageService.save();
77-
getLogger().log(Level.INFO, "Saving language files.");
76+
log.debug("Saving language files.");
7877
messageService.savelang();
79-
getLogger().log(Level.INFO, "Saving config files.");
80-
configService.saveconfig();
78+
log.debug("Saving config files.");
79+
configService.saveConfig();
8180
}
8281

8382
/**
@@ -98,56 +97,48 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @N
9897
return ponder.getCommandService().interpretAndExecuteCommand(sender, label, args);
9998
}
10099

101-
/**
102-
* This can be used to get the version of the plugin.
103-
*
104-
* @return A string containing the version preceded by 'v'
105-
*/
106100
public String getVersion() {
107101
return pluginVersion;
108102
}
109103

110-
/**
111-
* Checks if debug is enabled.
112-
*
113-
* @return Whether debug is enabled.
114-
*/
115-
public boolean isDebugEnabled() {
116-
return configService.getconfig().getBoolean("debugMode");
117-
}
118-
119104
private void checkFilesVersion() {
120-
getLogger().log(Level.INFO, "Checking config and message files for version compatibility.");
105+
log.debug("Checking config and message files for version compatibility.");
121106
if (messageService.getlang().getDouble("message-version") != 0.2) {
122-
getLogger().log( Level.SEVERE, "Outdated message.yml! Please backup & update message.yml file and restart server again!!");
107+
log.error("Outdated message.yml! Please backup & update message.yml file and restart server again!!");
123108
}
124-
if (configService.getconfig().getDouble("config-version") != 0.1) {
125-
getLogger().log( Level.SEVERE, "Outdated config.yml! Please backup & update config.yml file and restart server again!!");
109+
if (configService.getConfig().getDouble("config-version") != 0.1) {
110+
log.error("Outdated config.yml! Please backup & update config.yml file and restart server again!!");
126111
}
127112
}
128113

129114
private void performNMSChecks() {
130-
final NMSAssistant nmsAssistant = new NMSAssistant();
131-
if (nmsAssistant.isVersionGreaterThan(12)) {
132-
getLogger().log(Level.INFO, "Loading data For " + nmsAssistant.getNMSVersion().toString());
133-
} else {
134-
getLogger().warning("The server version is not suitable to load the plugin");
135-
getLogger().warning("This plugin is tested on a 1.21.4 server.");
136-
Bukkit.getServer().getPluginManager().disablePlugin(this);
115+
try {
116+
final NMSAssistant nmsAssistant = new NMSAssistant();
117+
if (nmsAssistant.isVersionGreaterThan(12)) {
118+
log.info("Loading data for NMS " + nmsAssistant.getNMSVersion().toString());
119+
} else {
120+
log.warning("The server version is not suitable to load the plugin");
121+
log.warning("This plugin is tested on a 1.21.4 server.");
122+
Bukkit.getServer().getPluginManager().disablePlugin(this);
123+
}
124+
} catch(NumberFormatException e) {
125+
log.warning("Failed to determine NMS version due to NumberFormatException. Some features may not work correctly.");
126+
} catch (Exception e) {
127+
log.warning("Failed to determine NMS version due to an exception. Some features may not work correctly. Error: " + e.getMessage());
137128
}
138129
}
139130

140131
private void setupMetrics() {
141-
getLogger().log(Level.INFO, "Setting up bStats metrics for SimpleSkills.");
132+
log.debug("Setting up bStats metrics for SimpleSkills.");
142133
int pluginId = 13470;
143134
Metrics metrics = new Metrics(this, pluginId);
144135

145-
double configVersion = configService.getconfig().getDouble("config-version");
146-
int defaultMaxLevel = configService.getconfig().getInt("defaultMaxLevel");
147-
int defaultBaseExperienceRequirement = configService.getconfig().getInt("defaultBaseExperienceRequirement");
148-
double defaultExperienceIncreaseFactor = configService.getconfig().getDouble("defaultExperienceIncreaseFactor");
149-
boolean levelUpAlert = configService.getconfig().getBoolean("levelUpAlert");
150-
boolean benefitAlert = configService.getconfig().getBoolean("benefitAlert");
136+
double configVersion = configService.getConfig().getDouble("config-version");
137+
int defaultMaxLevel = configService.getConfig().getInt("defaultMaxLevel");
138+
int defaultBaseExperienceRequirement = configService.getConfig().getInt("defaultBaseExperienceRequirement");
139+
double defaultExperienceIncreaseFactor = configService.getConfig().getDouble("defaultExperienceIncreaseFactor");
140+
boolean levelUpAlert = configService.getConfig().getBoolean("levelUpAlert");
141+
boolean benefitAlert = configService.getConfig().getBoolean("benefitAlert");
151142

152143
metrics.addCustomChart(new Metrics.SimplePie("config_version", () -> String.valueOf(configVersion)));
153144
metrics.addCustomChart(new Metrics.SimplePie("default_max_level", () -> String.valueOf(defaultMaxLevel)));
@@ -159,7 +150,7 @@ private void setupMetrics() {
159150

160151

161152
private void setTabCompleterForCoreCommands() {
162-
getLogger().log(Level.INFO, "Setting up tab completers for core commands.");
153+
log.debug("Setting up tab completers for core commands.");
163154
for (String key : getDescription().getCommands().keySet()) {
164155
PluginCommand command = getCommand(key);
165156
if (command == null) {
@@ -170,17 +161,17 @@ private void setTabCompleterForCoreCommands() {
170161
}
171162

172163
private void registerEventListeners() {
173-
getLogger().log(Level.INFO, "Registering events...");
164+
log.debug("Registering events...");
174165
for (AbstractSkill skill : skillRepository.getSkills()) {
175-
getLogger().log(Level.INFO, "Registering events for skill: " + skill.getName());
166+
log.debug("Registering events for skill: " + skill.getName());
176167
skill.register();
177168
}
178169

179-
Bukkit.getPluginManager().registerEvents(this, this);
170+
Bukkit.getPluginManager().registerEvents(playerJoinEventListener, this);
180171
}
181172

182173
private void initializeCommandService() {
183-
getLogger().log(Level.INFO, "Initializing command service...");
174+
log.debug("Initializing command service...");
184175
ArrayList<AbstractPluginCommand> commands = new ArrayList<>(Arrays.asList(
185176
new HelpCommand(messageService),
186177
new InfoCommand(playerRecordRepository, messageService, skillRepository, configService, experienceCalculator, log),
@@ -194,7 +185,7 @@ private void initializeCommandService() {
194185
}
195186

196187
private void initializeSkills() {
197-
getLogger().log(Level.INFO, "Initializing skills...");
188+
log.debug("Initializing skills...");
198189
skillRepository.addSkill(new Athlete(configService, log, playerRecordRepository, this, messageService, chanceCalculator));
199190
skillRepository.addSkill(new Boating(configService, log, playerRecordRepository, this, messageService, chanceCalculator));
200191
skillRepository.addSkill(new Breeding(configService, log, playerRecordRepository, this, messageService, chanceCalculator));
@@ -217,16 +208,4 @@ private void initializeSkills() {
217208
skillRepository.addSkill(new Strength(configService, log, playerRecordRepository, this, messageService, chanceCalculator));
218209
}
219210

220-
@EventHandler
221-
public void onPlayerJoin(@NotNull org.bukkit.event.player.PlayerJoinEvent event) {
222-
if (playerRecordRepository.getPlayerRecord(event.getPlayer().getUniqueId()) == null) {
223-
getLogger().log(Level.INFO, "No player record found for " + event.getPlayer().getName() + ". Creating a new one.");
224-
boolean success = playerRecordRepository.createPlayerRecord(event.getPlayer().getUniqueId());
225-
if (!success) {
226-
event.getPlayer().sendMessage("Error creating player record. Please try again later.");
227-
log.info("Error creating player record for " + event.getPlayer().getName() + ". Please check the logs for more details.");
228-
}
229-
}
230-
}
231-
232211
}

src/main/java/dansplugins/simpleskills/chance/ChanceCalculator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public boolean roll(UUID playerUUID, int skillID, double nerfFactor) {
3737
if (playerRecord == null) {
3838
boolean success = playerRecordRepository.createPlayerRecord(playerUUID);
3939
if (!success) {
40-
log.info("Failed to create player record for UUID: " + playerUUID);
40+
log.error("Failed to create player record for UUID: " + playerUUID);
4141
return false;
4242
}
4343
playerRecord = playerRecordRepository.getPlayerRecord(playerUUID);
@@ -49,7 +49,7 @@ public boolean roll(UUID playerUUID, int skillID, double nerfFactor) {
4949
public boolean roll(PlayerRecord playerRecord, AbstractSkill skill, double nerfFactor) {
5050
final Random random = new Random();
5151
double skillLevel = playerRecord.getSkillLevel(skill.getId(), true);
52-
double maxLevel = configService.getconfig().getInt("defaultMaxLevel");
52+
double maxLevel = configService.getConfig().getInt("defaultMaxLevel");
5353
double chance = skillLevel / maxLevel;
5454
double result = random.nextDouble() * maxLevel;
5555
double threshold = maxLevel * chance * nerfFactor;

src/main/java/dansplugins/simpleskills/commands/InfoCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public boolean execute(CommandSender commandSender) {
4949
Player player = (Player) commandSender;
5050
PlayerRecord playerRecord = playerRecordRepository.getPlayerRecord(player.getUniqueId());
5151
if (playerRecord == null) {
52-
log.info("No player record found for " + player.getName() + ". Creating a new one.");
52+
log.debug("No player record found for " + player.getName() + ". Creating a new one.");
5353
boolean success = playerRecordRepository.createPlayerRecord(player.getUniqueId());
5454
if (!success) {
5555
commandSender.sendMessage("Error creating player record. Please try again later.");

src/main/java/dansplugins/simpleskills/commands/ReloadCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public ReloadCommand(MessageService messageService, ConfigService configService)
2525
@Override
2626
public boolean execute(CommandSender commandSender) {
2727
messageService.reloadlang();
28-
configService.reloadconfig();
28+
configService.reloadConfig();
2929
commandSender.sendMessage(ChatColor.GREEN + "Reloaded");
3030
return true;
3131
}

src/main/java/dansplugins/simpleskills/config/ConfigService.java

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,12 @@
11
package dansplugins.simpleskills.config;
22

3-
/*
4-
To add a new config option, the following methods must be altered:
5-
- saveMissingConfigDefaultsIfNotPresent
6-
- setConfigOption()
7-
- sendConfigList()
8-
*/
9-
103
import dansplugins.simpleskills.SimpleSkills;
114
import org.bukkit.configuration.InvalidConfigurationException;
125
import org.bukkit.configuration.file.FileConfiguration;
136
import org.bukkit.configuration.file.YamlConfiguration;
147

158
import java.io.File;
169
import java.io.IOException;
17-
import java.util.logging.Level;
1810

1911
/**
2012
* @author Daniel Stephenson
@@ -30,8 +22,8 @@ public ConfigService(SimpleSkills simpleSkills) {
3022
this.simpleSkills = simpleSkills;
3123
}
3224

33-
public void createconfig() {
34-
simpleSkills.getLogger().log(Level.INFO, "Creating config.yml file...");
25+
public void createConfig() {
26+
simpleSkills.getLogger().info("Creating config.yml file..."); // note: must use simpleSkills.getLogger() to avoid circular dependency issues
3527
configFile = new File(simpleSkills.getDataFolder(), "config.yml");
3628

3729
if (!configFile.exists()) simpleSkills.saveResource("config.yml", false);
@@ -40,20 +32,19 @@ public void createconfig() {
4032
try {
4133
config.load(configFile);
4234
} catch (IOException | InvalidConfigurationException e) {
43-
e.printStackTrace();
35+
simpleSkills.getLogger().severe("Failed to load config.yml file."); // note: must use simpleSkills.getLogger() to avoid circular dependency issues
4436
}
4537
}
4638

47-
public FileConfiguration getconfig() {
39+
public FileConfiguration getConfig() {
4840
return config;
4941
}
5042

51-
52-
public void reloadconfig() {
43+
public void reloadConfig() {
5344
config = YamlConfiguration.loadConfiguration(configFile);
5445
}
5546

56-
public void saveconfig() {
47+
public void saveConfig() {
5748
try {
5849
config.save(configFile);
5950
} catch (IOException ignored) {
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package dansplugins.simpleskills.listeners;
2+
3+
import dansplugins.simpleskills.logging.Log;
4+
import dansplugins.simpleskills.playerrecord.PlayerRecordRepository;
5+
import org.bukkit.event.EventHandler;
6+
import org.bukkit.event.Listener;
7+
import org.jetbrains.annotations.NotNull;
8+
9+
public class PlayerJoinEventListener implements Listener {
10+
private final PlayerRecordRepository playerRecordRepository;
11+
private final Log log;
12+
13+
public PlayerJoinEventListener(@NotNull PlayerRecordRepository playerRecordRepository, @NotNull Log log) {
14+
this.playerRecordRepository = playerRecordRepository;
15+
this.log = log;
16+
}
17+
18+
@EventHandler
19+
public void onPlayerJoin(@NotNull org.bukkit.event.player.PlayerJoinEvent event) {
20+
if (playerRecordRepository.getPlayerRecord(event.getPlayer().getUniqueId()) == null) {
21+
log.debug("No player record found for " + event.getPlayer().getName() + ". Creating a new one.");
22+
boolean success = playerRecordRepository.createPlayerRecord(event.getPlayer().getUniqueId());
23+
if (!success) {
24+
log.error("Failed to create player record for " + event.getPlayer().getName() + ". Please check the database connection.");
25+
event.getPlayer().sendMessage("Error creating SimpleSkills player record. Please try again later.");
26+
}
27+
}
28+
}
29+
30+
}

0 commit comments

Comments
 (0)