mirror of
https://github.com/itHotL/PlayerStats.git
synced 2025-01-07 19:27:47 +01:00
Added javadoc configuration and improved documentation (#100)
This commit is contained in:
parent
93b44da8c7
commit
7c9f03038f
@ -7,7 +7,8 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
<component name="JavadocGenerationManager">
|
<component name="JavadocGenerationManager">
|
||||||
<option name="OUTPUT_DIRECTORY" value="$PROJECT_DIR$/javadoc" />
|
<option name="OUTPUT_DIRECTORY" value="$PROJECT_DIR$/target/apidocs" />
|
||||||
|
<option name="OPTION_SCOPE" value="public" />
|
||||||
</component>
|
</component>
|
||||||
<component name="MavenProjectsManager">
|
<component name="MavenProjectsManager">
|
||||||
<option name="originalFiles">
|
<option name="originalFiles">
|
||||||
|
@ -115,7 +115,7 @@
|
|||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<artifactId>maven-javadoc-plugin</artifactId>
|
<artifactId>maven-javadoc-plugin</artifactId>
|
||||||
<version>3.2.0</version>
|
<version>3.4.1</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>attach-javadocs</id>
|
<id>attach-javadocs</id>
|
||||||
@ -124,6 +124,43 @@
|
|||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
|
<configuration>
|
||||||
|
<name>PlayerStats Javadocs</name>
|
||||||
|
<docTitle>PlayerStats Javadocs</docTitle>
|
||||||
|
<additionalOptions>-Xdoclint:none</additionalOptions>
|
||||||
|
<failOnError>false</failOnError>
|
||||||
|
<quiet>true</quiet>
|
||||||
|
<show>protected</show>
|
||||||
|
<groups>
|
||||||
|
<group>
|
||||||
|
<title>API</title>
|
||||||
|
<packages>com.github.artemis.the.gr8.playerstats.api</packages>
|
||||||
|
</group>
|
||||||
|
</groups>
|
||||||
|
<detectLinks>true</detectLinks>
|
||||||
|
<dependencyLinks>
|
||||||
|
<dependencyLink>
|
||||||
|
<groupId>org.spigotmc</groupId>
|
||||||
|
<artifactId>spigot-api</artifactId>
|
||||||
|
<url>https://hub.spigotmc.org/javadocs/bukkit/</url>
|
||||||
|
</dependencyLink>
|
||||||
|
<dependencyLink>
|
||||||
|
<groupId>net.kyori</groupId>
|
||||||
|
<artifactId>adventure-api</artifactId>
|
||||||
|
<url>https://jd.adventure.kyori.net/api/4.11.0/</url>
|
||||||
|
</dependencyLink>
|
||||||
|
<dependencyLink>
|
||||||
|
<groupId>net.kyori</groupId>
|
||||||
|
<artifactId>adventure-text-minimessage</artifactId>
|
||||||
|
<url>https://jd.adventure.kyori.net/text-minimessage/4.11.0/</url>
|
||||||
|
</dependencyLink>
|
||||||
|
<dependencyLink>
|
||||||
|
<groupId>net.kyori</groupId>
|
||||||
|
<artifactId>adventure-platform-bukkit</artifactId>
|
||||||
|
<url>https://jd.adventure.kyori.net/</url>
|
||||||
|
</dependencyLink>
|
||||||
|
</dependencyLinks>
|
||||||
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
40
pom.xml
40
pom.xml
@ -209,7 +209,7 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-javadoc-plugin</artifactId>
|
<artifactId>maven-javadoc-plugin</artifactId>
|
||||||
<version>3.2.0</version>
|
<version>3.4.1</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>attach-javadocs</id>
|
<id>attach-javadocs</id>
|
||||||
@ -218,6 +218,44 @@
|
|||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
|
<configuration>
|
||||||
|
<additionalOptions>-Xdoclint:none</additionalOptions>
|
||||||
|
<failOnError>false</failOnError>
|
||||||
|
<quiet>true</quiet>
|
||||||
|
<show>protected</show>
|
||||||
|
<groups>
|
||||||
|
<group>
|
||||||
|
<title>API</title>
|
||||||
|
<packages>com.github.artemis.the.gr8.playerstats.api</packages>
|
||||||
|
</group>
|
||||||
|
</groups>
|
||||||
|
<detectLinks>true</detectLinks>
|
||||||
|
<dependencyLinks>
|
||||||
|
<dependencyLink>
|
||||||
|
<groupId>org.spigotmc</groupId>
|
||||||
|
<artifactId>spigot-api</artifactId>
|
||||||
|
<url>https://hub.spigotmc.org/javadocs/bukkit/</url>
|
||||||
|
</dependencyLink>
|
||||||
|
|
||||||
|
<dependencyLink>
|
||||||
|
<groupId>net.kyori</groupId>
|
||||||
|
<artifactId>adventure-api</artifactId>
|
||||||
|
<url>https://jd.adventure.kyori.net/api/4.11.0/</url>
|
||||||
|
</dependencyLink>
|
||||||
|
|
||||||
|
<dependencyLink>
|
||||||
|
<groupId>net.kyori</groupId>
|
||||||
|
<artifactId>adventure-text-minimessage</artifactId>
|
||||||
|
<url>https://jd.adventure.kyori.net/text-minimessage/4.11.0/</url>
|
||||||
|
</dependencyLink>
|
||||||
|
|
||||||
|
<dependencyLink>
|
||||||
|
<groupId>net.kyori</groupId>
|
||||||
|
<artifactId>adventure-platform-bukkit</artifactId>
|
||||||
|
<url>https://jd.adventure.kyori.net/</url>
|
||||||
|
</dependencyLink>
|
||||||
|
</dependencyLinks>
|
||||||
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
@ -26,6 +26,10 @@ import org.bukkit.plugin.java.JavaPlugin;
|
|||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PlayerStats' Main class
|
||||||
|
*/
|
||||||
public final class Main extends JavaPlugin {
|
public final class Main extends JavaPlugin {
|
||||||
|
|
||||||
private static Main instance;
|
private static Main instance;
|
||||||
@ -77,6 +81,10 @@ public final class Main extends JavaPlugin {
|
|||||||
this.getLogger().info("Disabled PlayerStats!");
|
this.getLogger().info("Disabled PlayerStats!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Adventure's BukkitAudiences object
|
||||||
|
* @throws IllegalStateException if PlayerStats is not enabled
|
||||||
|
*/
|
||||||
public static @NotNull BukkitAudiences getAdventure() throws IllegalStateException {
|
public static @NotNull BukkitAudiences getAdventure() throws IllegalStateException {
|
||||||
if (adventure == null) {
|
if (adventure == null) {
|
||||||
throw new IllegalStateException("Tried to access Adventure without PlayerStats being enabled!");
|
throw new IllegalStateException("Tried to access Adventure without PlayerStats being enabled!");
|
||||||
@ -84,6 +92,10 @@ public final class Main extends JavaPlugin {
|
|||||||
return adventure;
|
return adventure;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return PlayerStats' ConfigHandler
|
||||||
|
* @throws IllegalStateException if PlayerStats is not enabled
|
||||||
|
*/
|
||||||
public static @NotNull ConfigHandler getConfigHandler() throws IllegalStateException {
|
public static @NotNull ConfigHandler getConfigHandler() throws IllegalStateException {
|
||||||
if (config == null) {
|
if (config == null) {
|
||||||
throw new IllegalStateException("PlayerStats does not seem to be loaded!");
|
throw new IllegalStateException("PlayerStats does not seem to be loaded!");
|
||||||
@ -105,6 +117,10 @@ public final class Main extends JavaPlugin {
|
|||||||
return languageKeyHandler;
|
return languageKeyHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the EnumHandler. If there is no EnumHandler, one will be created.
|
||||||
|
* @return PlayerStat's EnumHandler
|
||||||
|
*/
|
||||||
public static @NotNull EnumHandler getEnumHandler() {
|
public static @NotNull EnumHandler getEnumHandler() {
|
||||||
if (enumHandler == null) {
|
if (enumHandler == null) {
|
||||||
enumHandler = new EnumHandler();
|
enumHandler = new EnumHandler();
|
||||||
|
@ -9,8 +9,9 @@ import org.bukkit.Statistic;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Formats messages meant for usage outside PlayerStats. For more information
|
* Formats messages meant for usage outside PlayerStats.
|
||||||
* about the default formatting PlayerStats uses, see the class description of
|
* <p> For more information about the default formatting
|
||||||
|
* PlayerStats uses, see the class description of
|
||||||
* StatResult.
|
* StatResult.
|
||||||
|
|
||||||
* @see StatResult
|
* @see StatResult
|
||||||
|
@ -5,8 +5,10 @@ import com.github.artemis.the.gr8.playerstats.statistic.request.StatRequest;
|
|||||||
import org.jetbrains.annotations.Contract;
|
import org.jetbrains.annotations.Contract;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/** The outgoing API that you can use to access the core functionality of PlayerStats!
|
/**
|
||||||
* To work with the API, you need to call PlayerStats.{@link #getAPI()} to get an instance of
|
* The outgoing API that represents the core functionality of PlayerStats!
|
||||||
|
*
|
||||||
|
* <p> To work with it, you'll need to call PlayerStats.{@link #getAPI()} to get an instance of
|
||||||
* {@link PlayerStatsAPI}. You can then use this object to access any of the further methods.
|
* {@link PlayerStatsAPI}. You can then use this object to access any of the further methods.
|
||||||
* <br>
|
* <br>
|
||||||
* <br>Since calculating a top or server statistics can take some time, I strongly
|
* <br>Since calculating a top or server statistics can take some time, I strongly
|
||||||
|
@ -7,7 +7,7 @@ import org.bukkit.Statistic;
|
|||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/** Is responsible for creating an executable {@link StatRequest}. This Request holds all
|
/** Creates an executable {@link StatRequest}. This Request holds all
|
||||||
* the information PlayerStats needs to work with, and is used by the {@link StatCalculator}
|
* the information PlayerStats needs to work with, and is used by the {@link StatCalculator}
|
||||||
* to get the desired statistic data.*/
|
* to get the desired statistic data.*/
|
||||||
public interface RequestGenerator<T> {
|
public interface RequestGenerator<T> {
|
||||||
|
@ -1,7 +1,11 @@
|
|||||||
package com.github.artemis.the.gr8.playerstats.api;
|
package com.github.artemis.the.gr8.playerstats.api;
|
||||||
|
|
||||||
|
import com.github.artemis.the.gr8.playerstats.statistic.request.StatRequest;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Turns user input into a {@link StatRequest} that can be used to get statistic data
|
||||||
|
*/
|
||||||
public interface StatManager {
|
public interface StatManager {
|
||||||
|
|
||||||
/** Gets a RequestGenerator that can be used to create a PlayerStatRequest.
|
/** Gets a RequestGenerator that can be used to create a PlayerStatRequest.
|
||||||
@ -34,4 +38,4 @@ public interface StatManager {
|
|||||||
*
|
*
|
||||||
* @return the RequestGenerator*/
|
* @return the RequestGenerator*/
|
||||||
RequestGenerator<LinkedHashMap<String, Integer>> totalTopStatRequest();
|
RequestGenerator<LinkedHashMap<String, Integer>> totalTopStatRequest();
|
||||||
}
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
/**
|
||||||
|
* The PlayerStats API
|
||||||
|
*/
|
||||||
|
package com.github.artemis.the.gr8.playerstats.api;
|
@ -4,10 +4,13 @@ import com.github.artemis.the.gr8.playerstats.ThreadManager;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
|
||||||
/** Listens for new Players that join, and reloads PlayerStats
|
/**
|
||||||
|
* Listens for new Players that join, and reloads PlayerStats
|
||||||
* if someone joins that hasn't joined before.
|
* if someone joins that hasn't joined before.
|
||||||
*/
|
*/
|
||||||
|
@ApiStatus.Internal
|
||||||
public class JoinListener implements Listener {
|
public class JoinListener implements Listener {
|
||||||
|
|
||||||
private static ThreadManager threadManager;
|
private static ThreadManager threadManager;
|
||||||
|
@ -11,6 +11,7 @@ import org.bukkit.configuration.file.YamlConfiguration;
|
|||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@ -28,6 +29,9 @@ public final class LanguageKeyHandler {
|
|||||||
private static File languageKeyFile;
|
private static File languageKeyFile;
|
||||||
private static FileConfiguration languageKeys;
|
private static FileConfiguration languageKeys;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param plugin an instance of PlayerStats' Main class
|
||||||
|
*/
|
||||||
public LanguageKeyHandler(Main plugin) {
|
public LanguageKeyHandler(Main plugin) {
|
||||||
LanguageKeyHandler.plugin = plugin;
|
LanguageKeyHandler.plugin = plugin;
|
||||||
statNameKeys = generateStatNameKeys();
|
statNameKeys = generateStatNameKeys();
|
||||||
@ -42,6 +46,7 @@ public final class LanguageKeyHandler {
|
|||||||
languageKeys = YamlConfiguration.loadConfiguration(languageKeyFile);
|
languageKeys = YamlConfiguration.loadConfiguration(languageKeyFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Internal
|
||||||
public static void reloadFile() {
|
public static void reloadFile() {
|
||||||
if (!languageKeyFile.exists()) {
|
if (!languageKeyFile.exists()) {
|
||||||
loadFile();
|
loadFile();
|
||||||
@ -54,6 +59,9 @@ public final class LanguageKeyHandler {
|
|||||||
/**
|
/**
|
||||||
* Checks if a given Key is the language key "stat_type.minecraft.killed"
|
* Checks if a given Key is the language key "stat_type.minecraft.killed"
|
||||||
* or "commands.kill.success.single" (which results in "Killed %s").
|
* or "commands.kill.success.single" (which results in "Killed %s").
|
||||||
|
*
|
||||||
|
* @param statKey the Key to check
|
||||||
|
* @return true if this Key is key for kill-entity
|
||||||
*/
|
*/
|
||||||
public static boolean isKeyForKillEntity(String statKey) {
|
public static boolean isKeyForKillEntity(String statKey) {
|
||||||
return statKey.equalsIgnoreCase("stat_type.minecraft.killed") ||
|
return statKey.equalsIgnoreCase("stat_type.minecraft.killed") ||
|
||||||
@ -72,6 +80,9 @@ public final class LanguageKeyHandler {
|
|||||||
/**
|
/**
|
||||||
* Checks if a given Key is the language key "stat_type.minecraft.killed_by"
|
* Checks if a given Key is the language key "stat_type.minecraft.killed_by"
|
||||||
* or "stat.minecraft.deaths" (which results in "Number of Deaths").
|
* or "stat.minecraft.deaths" (which results in "Number of Deaths").
|
||||||
|
*
|
||||||
|
* @param statKey the Key to check
|
||||||
|
* @return true if this Key is a key for entity-killed-by
|
||||||
*/
|
*/
|
||||||
public static boolean isKeyForEntityKilledBy(String statKey) {
|
public static boolean isKeyForEntityKilledBy(String statKey) {
|
||||||
return statKey.equalsIgnoreCase("stat_type.minecraft.killed_by") ||
|
return statKey.equalsIgnoreCase("stat_type.minecraft.killed_by") ||
|
||||||
@ -91,6 +102,9 @@ public final class LanguageKeyHandler {
|
|||||||
/**
|
/**
|
||||||
* Checks if a given Key is the language key "book.byAuthor"
|
* Checks if a given Key is the language key "book.byAuthor"
|
||||||
* (which results in "by %s").
|
* (which results in "by %s").
|
||||||
|
*
|
||||||
|
* @param statKey the Key to Check
|
||||||
|
* @return true if this Key is the key for book.byAuthor
|
||||||
*/
|
*/
|
||||||
public static boolean isKeyForEntityKilledByArg(String statKey) {
|
public static boolean isKeyForEntityKilledByArg(String statKey) {
|
||||||
return statKey.equalsIgnoreCase("book.byAuthor");
|
return statKey.equalsIgnoreCase("book.byAuthor");
|
||||||
@ -106,6 +120,10 @@ public final class LanguageKeyHandler {
|
|||||||
return "book.byAuthor";
|
return "book.byAuthor";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param key the String to turn into a normal name
|
||||||
|
* @return a pretty name
|
||||||
|
*/
|
||||||
public static String convertToName(String key) {
|
public static String convertToName(String key) {
|
||||||
if (key.equalsIgnoreCase("soundCategory.block")) {
|
if (key.equalsIgnoreCase("soundCategory.block")) {
|
||||||
return Unit.BLOCK.getLabel();
|
return Unit.BLOCK.getLabel();
|
||||||
@ -154,6 +172,11 @@ public final class LanguageKeyHandler {
|
|||||||
return languageKeys.getString(realKey);
|
return languageKeys.getString(realKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param statistic the Statistic to get the Key for
|
||||||
|
* @return the official Key from the NameSpacedKey for this Statistic,
|
||||||
|
* or return null if no enum constant can be retrieved.
|
||||||
|
*/
|
||||||
public String getStatKey(@NotNull Statistic statistic) {
|
public String getStatKey(@NotNull Statistic statistic) {
|
||||||
if (statistic.getType() == Statistic.Type.UNTYPED) {
|
if (statistic.getType() == Statistic.Type.UNTYPED) {
|
||||||
return "stat.minecraft." + statNameKeys.get(statistic);
|
return "stat.minecraft." + statNameKeys.get(statistic);
|
||||||
@ -164,8 +187,9 @@ public final class LanguageKeyHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the official Key from the NameSpacedKey for this entityType,
|
* @param entity the EntityType to get the Key for
|
||||||
* or return null if no enum constant can be retrieved or entityType is UNKNOWN.
|
* @return the official Key from the NameSpacedKey for this EntityType,
|
||||||
|
* or return null if no enum constant can be retrieved or EntityType is UNKNOWN.
|
||||||
*/
|
*/
|
||||||
public @Nullable String getEntityKey(EntityType entity) {
|
public @Nullable String getEntityKey(EntityType entity) {
|
||||||
if (entity == null || entity == EntityType.UNKNOWN) return null;
|
if (entity == null || entity == EntityType.UNKNOWN) return null;
|
||||||
@ -175,7 +199,8 @@ public final class LanguageKeyHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the official Key from the NameSpacedKey for this item Material,
|
* @param item the Material to get the Key for
|
||||||
|
* @return the official Key from the NameSpacedKey for this item Material,
|
||||||
* or return null if no enum constant can be retrieved.
|
* or return null if no enum constant can be retrieved.
|
||||||
*/
|
*/
|
||||||
public @Nullable String getItemKey(Material item) {
|
public @Nullable String getItemKey(Material item) {
|
||||||
@ -189,7 +214,8 @@ public final class LanguageKeyHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the official Key from the NameSpacedKey for the block Material provided,
|
* @param block the Material to get the Key for
|
||||||
|
* @return the official Key from the NameSpacedKey for the block Material provided,
|
||||||
* or return null if no enum constant can be retrieved.
|
* or return null if no enum constant can be retrieved.
|
||||||
*/
|
*/
|
||||||
public @Nullable String getBlockKey(Material block) {
|
public @Nullable String getBlockKey(Material block) {
|
||||||
@ -204,6 +230,10 @@ public final class LanguageKeyHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param unit the Unit to get the Key for
|
||||||
|
* @return "soundCategory.block" for Unit.Block, null otherwise
|
||||||
|
*/
|
||||||
public @Nullable String getUnitKey(Unit unit) {
|
public @Nullable String getUnitKey(Unit unit) {
|
||||||
if (unit == Unit.BLOCK) {
|
if (unit == Unit.BLOCK) {
|
||||||
return "soundCategory.block";
|
return "soundCategory.block";
|
||||||
|
Loading…
Reference in New Issue
Block a user