33import dansplugins .simpleskills .bstats .Metrics ;
44import dansplugins .simpleskills .commands .*;
55import dansplugins .simpleskills .commands .tab .TabCommand ;
6+ import dansplugins .simpleskills .listeners .PlayerJoinEventListener ;
67import dansplugins .simpleskills .playerrecord .PlayerRecordRepository ;
78import dansplugins .simpleskills .config .ConfigService ;
89import dansplugins .simpleskills .message .MessageService ;
1819import org .bukkit .command .Command ;
1920import org .bukkit .command .CommandSender ;
2021import org .bukkit .command .PluginCommand ;
21- import org .bukkit .event .EventHandler ;
22- import org .bukkit .event .Listener ;
2322import org .jetbrains .annotations .NotNull ;
2423import preponderous .ponder .minecraft .bukkit .PonderMC ;
2524import preponderous .ponder .minecraft .bukkit .abs .AbstractPluginCommand ;
2827
2928import java .util .ArrayList ;
3029import 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}
0 commit comments