33import dansplugins .simpleskills .bstats .Metrics ;
44import dansplugins .simpleskills .commands .*;
55import dansplugins .simpleskills .commands .tab .TabCommand ;
6- import dansplugins .simpleskills .playerrecord .PlayerRecord ;
76import dansplugins .simpleskills .playerrecord .PlayerRecordRepository ;
87import dansplugins .simpleskills .config .ConfigService ;
98import dansplugins .simpleskills .message .MessageService ;
1312import dansplugins .simpleskills .chance .ChanceCalculator ;
1413import dansplugins .simpleskills .experience .ExperienceCalculator ;
1514
16- import dansplugins .simpleskills .logging .Logger ;
15+ import dansplugins .simpleskills .logging .Log ;
1716import dansplugins .simpleskills .skill .skills .*;
1817import org .bukkit .Bukkit ;
1918import org .bukkit .command .Command ;
2019import org .bukkit .command .CommandSender ;
2120import org .bukkit .command .PluginCommand ;
21+ import org .bukkit .event .EventHandler ;
22+ import org .bukkit .event .Listener ;
2223import org .jetbrains .annotations .NotNull ;
2324import preponderous .ponder .minecraft .bukkit .PonderMC ;
2425import preponderous .ponder .minecraft .bukkit .abs .AbstractPluginCommand ;
3233/**
3334 * @author Daniel Stephenson
3435 */
35- public class SimpleSkills extends PonderBukkitPlugin {
36+ public class SimpleSkills extends PonderBukkitPlugin implements Listener {
3637 private final String pluginVersion = "v" + getDescription ().getVersion ();
3738 private PonderMC ponder ;
3839
39- private final Logger logger = new Logger (this );
40+ private final Log log = new Log (this );
4041 private final MessageService messageService = new MessageService (this );
4142 private final ConfigService configService = new ConfigService (this );
4243 private final ExperienceCalculator experienceCalculator = new ExperienceCalculator ();
43- private final PlayerRecordRepository playerRecordRepository = new PlayerRecordRepository ();
4444 private final SkillRepository skillRepository = new SkillRepository ();
45- private final StorageService storageService = new StorageService (playerRecordRepository , skillRepository , messageService , configService , experienceCalculator , logger );
46- private final ChanceCalculator chanceCalculator = new ChanceCalculator (playerRecordRepository , configService , skillRepository , messageService , experienceCalculator , logger );
45+ private final PlayerRecordRepository playerRecordRepository = new PlayerRecordRepository (log , messageService , skillRepository , configService , experienceCalculator );
46+ private final StorageService storageService = new StorageService (playerRecordRepository , skillRepository , messageService , configService , experienceCalculator , log );
47+ private final ChanceCalculator chanceCalculator = new ChanceCalculator (playerRecordRepository , configService , skillRepository , messageService , experienceCalculator , log );
4748
4849
4950 /**
@@ -56,21 +57,26 @@ public void onEnable() {
5657 setTabCompleterForCoreCommands ();
5758 configService .createconfig ();
5859 setupMetrics ();
60+ getLogger ().log (Level .INFO , "Loading files." );
5961 storageService .load ();
62+ getLogger ().log (Level .INFO , "Creating language files." );
6063 messageService .createlang ();
6164 initializeSkills ();
62- registerEvents ();
65+ registerEventListeners ();
6366 initializeCommandService ();
6467 checkFilesVersion ();
6568 }
6669
6770 /**
68- * This runs when the sever stops.
71+ * This runs when the server stops.
6972 */
7073 @ Override
7174 public void onDisable () {
75+ getLogger ().log (Level .INFO , "Saving files." );
7276 storageService .save ();
77+ getLogger ().log (Level .INFO , "Saving language files." );
7378 messageService .savelang ();
79+ getLogger ().log (Level .INFO , "Saving config files." );
7480 configService .saveconfig ();
7581 }
7682
@@ -111,6 +117,7 @@ public boolean isDebugEnabled() {
111117 }
112118
113119 private void checkFilesVersion () {
120+ getLogger ().log (Level .INFO , "Checking config and message files for version compatibility." );
114121 if (messageService .getlang ().getDouble ("message-version" ) != 0.2 ) {
115122 getLogger ().log ( Level .SEVERE , "Outdated message.yml! Please backup & update message.yml file and restart server again!!" );
116123 }
@@ -122,15 +129,16 @@ private void checkFilesVersion() {
122129 private void performNMSChecks () {
123130 final NMSAssistant nmsAssistant = new NMSAssistant ();
124131 if (nmsAssistant .isVersionGreaterThan (12 )) {
125- getLogger ().log (Level .INFO , "Loading Data For " + nmsAssistant .getNMSVersion ().toString ());
132+ getLogger ().log (Level .INFO , "Loading data For " + nmsAssistant .getNMSVersion ().toString ());
126133 } else {
127134 getLogger ().warning ("The server version is not suitable to load the plugin" );
128- getLogger ().warning ("Support version 1.13.x - 1.18.x " );
135+ getLogger ().warning ("This plugin is tested on a 1.21.4 server. " );
129136 Bukkit .getServer ().getPluginManager ().disablePlugin (this );
130137 }
131138 }
132139
133140 private void setupMetrics () {
141+ getLogger ().log (Level .INFO , "Setting up bStats metrics for SimpleSkills." );
134142 int pluginId = 13470 ;
135143 Metrics metrics = new Metrics (this , pluginId );
136144
@@ -151,6 +159,7 @@ private void setupMetrics() {
151159
152160
153161 private void setTabCompleterForCoreCommands () {
162+ getLogger ().log (Level .INFO , "Setting up tab completers for core commands." );
154163 for (String key : getDescription ().getCommands ().keySet ()) {
155164 PluginCommand command = getCommand (key );
156165 if (command == null ) {
@@ -160,16 +169,21 @@ private void setTabCompleterForCoreCommands() {
160169 }
161170 }
162171
163- private void registerEvents () {
172+ private void registerEventListeners () {
173+ getLogger ().log (Level .INFO , "Registering events..." );
164174 for (AbstractSkill skill : skillRepository .getSkills ()) {
175+ getLogger ().log (Level .INFO , "Registering events for skill: " + skill .getName ());
165176 skill .register ();
166177 }
178+
179+ Bukkit .getPluginManager ().registerEvents (this , this );
167180 }
168181
169182 private void initializeCommandService () {
183+ getLogger ().log (Level .INFO , "Initializing command service..." );
170184 ArrayList <AbstractPluginCommand > commands = new ArrayList <>(Arrays .asList (
171185 new HelpCommand (messageService ),
172- new InfoCommand (playerRecordRepository , messageService , skillRepository , configService , experienceCalculator , logger ),
186+ new InfoCommand (playerRecordRepository , messageService , skillRepository , configService , experienceCalculator , log ),
173187 new StatsCommand (messageService , playerRecordRepository , skillRepository ),
174188 new ForceCommand (playerRecordRepository , skillRepository ),
175189 new SkillCommand (messageService , skillRepository ),
@@ -180,26 +194,39 @@ private void initializeCommandService() {
180194 }
181195
182196 private void initializeSkills () {
183- skillRepository .addSkill (new Athlete (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
184- skillRepository .addSkill (new Boating (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
185- skillRepository .addSkill (new Breeding (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
186- skillRepository .addSkill (new Cardio (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
187- skillRepository .addSkill (new Crafting (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
188- skillRepository .addSkill (new Digging (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
189- skillRepository .addSkill (new Dueling (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
190- skillRepository .addSkill (new Enchanting (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
191- skillRepository .addSkill (new Farming (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
192- skillRepository .addSkill (new Fishing (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
193- skillRepository .addSkill (new Floriculture (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
194- skillRepository .addSkill (new Gliding (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
195- skillRepository .addSkill (new Hardiness (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
196- skillRepository .addSkill (new Woodcutting (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
197- skillRepository .addSkill (new Mining (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
198- skillRepository .addSkill (new MonsterHunting (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
199- skillRepository .addSkill (new Pyromaniac (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
200- skillRepository .addSkill (new Quarrying (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
201- skillRepository .addSkill (new Riding (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
202- skillRepository .addSkill (new Strength (configService , logger , playerRecordRepository , this , messageService , chanceCalculator ));
197+ getLogger ().log (Level .INFO , "Initializing skills..." );
198+ skillRepository .addSkill (new Athlete (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
199+ skillRepository .addSkill (new Boating (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
200+ skillRepository .addSkill (new Breeding (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
201+ skillRepository .addSkill (new Cardio (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
202+ skillRepository .addSkill (new Crafting (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
203+ skillRepository .addSkill (new Digging (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
204+ skillRepository .addSkill (new Dueling (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
205+ skillRepository .addSkill (new Enchanting (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
206+ skillRepository .addSkill (new Farming (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
207+ skillRepository .addSkill (new Fishing (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
208+ skillRepository .addSkill (new Floriculture (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
209+ skillRepository .addSkill (new Gliding (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
210+ skillRepository .addSkill (new Hardiness (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
211+ skillRepository .addSkill (new Woodcutting (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
212+ skillRepository .addSkill (new Mining (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
213+ skillRepository .addSkill (new MonsterHunting (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
214+ skillRepository .addSkill (new Pyromaniac (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
215+ skillRepository .addSkill (new Quarrying (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
216+ skillRepository .addSkill (new Riding (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
217+ skillRepository .addSkill (new Strength (configService , log , playerRecordRepository , this , messageService , chanceCalculator ));
218+ }
219+
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+ }
203230 }
204231
205232}
0 commit comments