22
33import dev .geco .gsit .api .event .GSitLoadedEvent ;
44import dev .geco .gsit .api .event .GSitReloadEvent ;
5- import dev .geco .gsit .cmd .GBellyFlopCommand ;
5+ import dev .geco .gsit .cmd .GBellyflopCommand ;
66import dev .geco .gsit .cmd .GCrawlCommand ;
7+ import dev .geco .gsit .cmd .GLayBackCommand ;
78import dev .geco .gsit .cmd .GLayCommand ;
89import dev .geco .gsit .cmd .GSitCommand ;
910import dev .geco .gsit .cmd .GSitReloadCommand ;
2223import dev .geco .gsit .link .PlaceholderAPILink ;
2324import dev .geco .gsit .link .PlotSquaredLink ;
2425import dev .geco .gsit .link .WorldGuardLink ;
26+ import dev .geco .gsit .model .PoseType ;
2527import dev .geco .gsit .service .ConfigService ;
2628import dev .geco .gsit .service .CrawlService ;
2729import dev .geco .gsit .service .DataService ;
3638import dev .geco .gsit .service .VersionService ;
3739import dev .geco .gsit .service .message .PaperMessageService ;
3840import dev .geco .gsit .service .message .SpigotMessageService ;
39- import dev .geco .gsit .util .EntityUtil ;
41+ import dev .geco .gsit .util .LegacyEntityUtil ;
4042import dev .geco .gsit .util .EnvironmentUtil ;
41- import dev .geco .gsit .util .IEntityUtil ;
43+ import dev .geco .gsit .util .EntityUtil ;
4244import dev .geco .gsit .util .PassengerUtil ;
4345import org .bukkit .Bukkit ;
4446import org .bukkit .command .CommandSender ;
4749import org .bukkit .plugin .java .JavaPlugin ;
4850
4951import java .util .Map ;
52+ import java .util .stream .Collectors ;
5053
5154public class GSitMain extends JavaPlugin {
5255
@@ -70,11 +73,12 @@ public class GSitMain extends JavaPlugin {
7073 private EntityEventHandler entityEventHandler ;
7174 private PassengerUtil passengerUtil ;
7275 private EnvironmentUtil environmentUtil ;
73- private IEntityUtil entityUtil ;
76+ private EntityUtil entityUtil ;
7477 private GriefPreventionLink griefPreventionLink ;
7578 private PlaceholderAPILink placeholderAPILink ;
7679 private PlotSquaredLink plotSquaredLink ;
7780 private WorldGuardLink worldGuardLink ;
81+ private BStatsMetric bStatsMetric ;
7882 private boolean supportsTaskFeature = false ;
7983 private boolean isPaperServer = false ;
8084 private boolean isFoliaServer = false ;
@@ -111,7 +115,7 @@ public class GSitMain extends JavaPlugin {
111115
112116 public EnvironmentUtil getEnvironmentUtil () { return environmentUtil ; }
113117
114- public IEntityUtil getEntityUtil () { return entityUtil ; }
118+ public EntityUtil getEntityUtil () { return entityUtil ; }
115119
116120 public GriefPreventionLink getGriefPreventionLink () { return griefPreventionLink ; }
117121
@@ -156,7 +160,7 @@ public void onLoad() {
156160 public void onEnable () {
157161 if (!versionCheck ()) return ;
158162
159- entityUtil = versionService .isNewerOrVersion (18 , 0 ) ? (IEntityUtil ) versionService .getPackageObjectInstance ("util.EntityUtil" , this ) : new EntityUtil (this );
163+ entityUtil = versionService .isNewerOrVersion (18 , 0 ) ? (EntityUtil ) versionService .getPackageObjectInstance ("util.EntityUtil" , this ) : new LegacyEntityUtil (this );
160164
161165 loadPluginDependencies ();
162166 loadSettings (Bukkit .getConsoleSender ());
@@ -175,6 +179,7 @@ public void onEnable() {
175179
176180 public void onDisable () {
177181 unload ();
182+ bStatsMetric .shutdown ();
178183 messageService .sendMessage (Bukkit .getConsoleSender (), "Plugin.plugin-disabled" );
179184 }
180185
@@ -216,7 +221,10 @@ private void setupCommands() {
216221 getCommand ("glay" ).setExecutor (new GLayCommand (this ));
217222 getCommand ("glay" ).setTabCompleter (new EmptyTabComplete ());
218223 getCommand ("glay" ).setPermissionMessage (messageService .getMessage ("Messages.command-permission-error" ));
219- getCommand ("gbellyflop" ).setExecutor (new GBellyFlopCommand (this ));
224+ getCommand ("glayback" ).setExecutor (new GLayBackCommand (this ));
225+ getCommand ("glayback" ).setTabCompleter (new EmptyTabComplete ());
226+ getCommand ("glayback" ).setPermissionMessage (messageService .getMessage ("Messages.command-permission-error" ));
227+ getCommand ("gbellyflop" ).setExecutor (new GBellyflopCommand (this ));
220228 getCommand ("gbellyflop" ).setTabCompleter (new EmptyTabComplete ());
221229 getCommand ("gbellyflop" ).setPermissionMessage (messageService .getMessage ("Messages.command-permission-error" ));
222230 getCommand ("gspin" ).setExecutor (new GSpinCommand (this ));
@@ -317,23 +325,30 @@ private void printPluginLinks(CommandSender sender) {
317325 }
318326
319327 private void setupBStatsMetric () {
320- BStatsMetric bStatsMetric = new BStatsMetric (this , BSTATS_RESOURCE_ID );
328+ bStatsMetric = new BStatsMetric (this , BSTATS_RESOURCE_ID );
321329
322330 bStatsMetric .addCustomChart (new BStatsMetric .SimplePie ("plugin_language" , () -> configService .L_LANG ));
323331 bStatsMetric .addCustomChart (new BStatsMetric .AdvancedPie ("minecraft_version_player_amount" , () -> Map .of (versionService .getServerVersion (), Bukkit .getOnlinePlayers ().size ())));
324- bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("use_sit_feature" , () -> sitService .getSitUsageCount ()));
325- bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("seconds_sit_feature" , () -> (int ) sitService .getSitUsageTimeInSeconds ()));
326- bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("use_psit_feature" , () -> playerSitService .getPlayerSitUsageCount ()));
327- bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("seconds_psit_feature" , () -> (int ) playerSitService .getPlayerSitUsageTimeInSeconds ()));
328- bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("use_pose_feature" , () -> poseService .getPoseUsageCount ()));
329- bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("seconds_pose_feature" , () -> (int ) poseService .getPoseUsageTimeInSeconds ()));
330- bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("use_crawl_feature" , () -> crawlService .getCrawlUsageCount ()));
331- bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("seconds_crawl_feature" , () -> (int ) crawlService .getCrawlUsageTimeInSeconds ()));
332-
333- sitService .resetSitUsageStats ();
334- playerSitService .resetPlayerSitUsageStats ();
335- poseService .resetPoseUsageStats ();
336- crawlService .resetCrawlUsageStats ();
332+ bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("sit_count" , () -> sitService .getSitCount ()));
333+ bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("sit_time" , () -> sitService .getSitTime ()));
334+ bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("player_sit_count" , () -> playerSitService .getPlayerSitCount ()));
335+ bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("player_sit_time" , () -> playerSitService .getPlayerSitTime ()));
336+ bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("pose_count" , () -> poseService .getPoseCount ().values ().stream ().mapToInt (Integer ::intValue ).sum ()));
337+ bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("pose_time" , () -> poseService .getPoseTime ().values ().stream ().mapToInt (Integer ::intValue ).sum ()));
338+ bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("crawl_count" , () -> crawlService .getCrawlCount ()));
339+ bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart ("crawl_time" , () -> crawlService .getCrawlTime ()));
340+
341+ for (PoseType poseType : PoseType .values ()) {
342+ bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart (poseType .getName () + "_count" , () -> poseService .getPoseCount ().getOrDefault (poseType ,0 )));
343+ bStatsMetric .addCustomChart (new BStatsMetric .SingleLineChart (poseType .getName () + "_time" , () -> Math .toIntExact (poseService .getPoseTime ().getOrDefault (poseType , 0 ))));
344+ }
345+
346+ bStatsMetric .setCollectCallback (() -> {
347+ sitService .resetSitStats ();
348+ playerSitService .resetPlayerSitStats ();
349+ poseService .resetPoseStats ();
350+ crawlService .resetCrawlStats ();
351+ });
337352 }
338353
339354}
0 commit comments