Add some missing javadocs to not generate warnings

This commit is contained in:
Aurora Lahtela 2024-01-06 17:59:29 +02:00
parent 6fa2d0ab87
commit bc4aef8b2b
67 changed files with 200 additions and 88 deletions

View File

@ -64,6 +64,9 @@ public interface CapabilityService {
return Capability.getByName(capabilityName).isPresent();
}
/**
* Singleton holder for listeners.
*/
class ListHolder {
static final AtomicReference<List<Consumer<Boolean>>> enableListeners = new AtomicReference<>(
new CopyOnWriteArrayList<>()

View File

@ -89,7 +89,7 @@ public interface ComponentService {
* Converts the given input into a {@link Component}.
* Input example {@code §ctext}.
*
* @param legacy the input legacy
* @param legacy the input legacy
* @param character the character to use as the color prefix, usually {@code §}.
* @return a {@link Component}
* @see #fromLegacy(String)
@ -115,7 +115,7 @@ public interface ComponentService {
* Input example: {@code &#rrggbbtext}.
*
* @param adventureLegacy the input adventure legacy
* @param character the character to use as the color prefix, usually {@code &}.
* @param character the character to use as the color prefix, usually {@code &}.
* @return a {@link Component}
* @see #fromAdventureLegacy(String)
* @see Component#SECTION
@ -139,7 +139,7 @@ public interface ComponentService {
* Input example: {@code §x§r§r§g§g§b§btext}.
*
* @param bungeeLegacy the input bungee legacy
* @param character the character to use as the color prefix, usually {@code §}.
* @param character the character to use as the color prefix, usually {@code §}.
* @return a {@link Component}
* @see Component#SECTION
* @see Component#AMPERSAND
@ -164,6 +164,9 @@ public interface ComponentService {
*/
Component fromJson(String json);
/**
* Singleton holder for ComponentService.
*/
class Holder {
static final AtomicReference<ComponentService> service = new AtomicReference<>();

View File

@ -1,6 +1,5 @@
/**
* PageExtension API for extending the webserver and the website.
*
* <a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5-PageExtension-API">Documentation</a>
*/
package com.djrapitops.plan.delivery.web;

View File

@ -46,6 +46,11 @@ public final class CompositeResolver implements Resolver {
this.resolvers = new ArrayList<>();
}
/**
* Create a new builder for a .
*
* @return a builder.
*/
public static CompositeResolver.Builder builder() {
return new Builder();
}
@ -100,6 +105,9 @@ public final class CompositeResolver implements Resolver {
return getResolver(forThis.getPath()).map(resolver -> resolver.requiresAuth(forThis)).orElse(true);
}
/**
* Builder class for {@link CompositeResolver}.
*/
public static class Builder {
private final CompositeResolver composite;
@ -132,6 +140,11 @@ public final class CompositeResolver implements Resolver {
return this;
}
/**
* Build the final result after adding all resolvers.
*
* @return The {@link CompositeResolver}
*/
public CompositeResolver build() {
return composite;
}

View File

@ -22,11 +22,20 @@ import java.util.Optional;
import java.util.function.Function;
import java.util.function.Predicate;
/**
* Utility class for constructing a {@link Resolver} with Functional Interfaces.
*/
public class FunctionalResolverWrapper implements Resolver {
private final Function<Request, Optional<Response>> resolver;
private final Predicate<Request> accessCheck;
/**
* Default constructor.
*
* @param resolver Function that solves the {@link Request} into an Optional {@link Response}.
* @param accessCheck Predicate that checks if {@link Request} is allowed or if 403 Forbidden should be given.
*/
public FunctionalResolverWrapper(Function<Request, Optional<Response>> resolver, Predicate<Request> accessCheck) {
this.resolver = resolver;
this.accessCheck = accessCheck;

View File

@ -72,10 +72,21 @@ public interface Resolver {
*/
Optional<Response> resolve(Request request);
/**
* Creates a new {@link ResponseBuilder} for a {@link Response}.
*
* @return a new builder.
*/
default ResponseBuilder newResponseBuilder() {
return Response.builder();
}
/**
* Used to check if the resolver requires authentication to be used.
*
* @param request Incoming request that you can use to figure out if authentication is required.
* @return true if you want 401 to be given when user has not logged in.
*/
default boolean requiresAuth(Request request) {
return true;
}

View File

@ -33,7 +33,7 @@ public class ResponseBuilder {
/**
* Set MIME Type of the Response.
*
* @param mimeType MIME type of the Response https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types
* @param mimeType MIME type of the Response <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">Documentation</a>
* @return this builder.
* @see MimeType for common MIME types.
*/
@ -46,7 +46,7 @@ public class ResponseBuilder {
* <p>
* Default status code is 200 (OK) if not set.
*
* @param code 1xx, 2xx, 3xx, 4xx, 5xx, https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
* @param code 1xx, 2xx, 3xx, 4xx, 5xx, <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status">Documentation</a>
* @return this builder.
*/
public ResponseBuilder setStatus(int code) {
@ -57,7 +57,7 @@ public class ResponseBuilder {
/**
* Set HTTP Response header.
*
* @param header Key of the header. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
* @param header Key of the header. <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers">Documentation</a>
* @param value Value for the header.
* @return this builder.
*/
@ -75,7 +75,7 @@ public class ResponseBuilder {
* Utility method for building redirects.
*
* @param url URL to redirect the client to with 302 Found.
* @return https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Location
* @return <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Location">Documentation</a>
*/
public ResponseBuilder redirectTo(String url) {
return setStatus(302).setHeader("Location", url).setContent(new byte[0]);

View File

@ -26,6 +26,11 @@ package com.djrapitops.plan.delivery.web.resolver.exception;
*/
public class BadRequestException extends IllegalArgumentException {
/**
* Default constructor.
*
* @param message Error message - avoid including any input incoming in the request to prevent XSS.
*/
public BadRequestException(String message) {
super(message);
}

View File

@ -1,6 +1,5 @@
/**
* Classes for implementing functionality with {@link com.djrapitops.plan.delivery.web.ResolverService}.
*
* <a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5-PageExtension-API#resolverservice">Documentation</a>
*/
package com.djrapitops.plan.delivery.web.resolver;

View File

@ -43,7 +43,7 @@ public final class Request {
* @param path Requested path /example/target
* @param query Request parameters ?param=value etc
* @param user Web user doing the request (if authenticated)
* @param headers Request headers https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
* @param headers Request headers <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers">Documentation</a>
* @param requestBody Raw body as bytes, if present
*/
public Request(String method, URIPath path, URIQuery query, WebUser user, Map<String, String> headers, byte[] requestBody) {
@ -57,6 +57,11 @@ public final class Request {
/**
* Special constructor that figures out URIPath and URIQuery from "/path/and?query=params" and has no request body.
*
* @param method HTTP requst method
* @param target The requested path and query, e.g. "/path/and?query=params"
* @param user User that made the request
* @param headers HTTP request headers
*/
public Request(String method, String target, WebUser user, Map<String, String> headers) {
this.method = method;
@ -121,7 +126,7 @@ public final class Request {
/**
* Get a header in the request.
*
* @param key https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
* @param key <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers">Documentation</a>
* @return Value if it is present in the request.
*/
public Optional<String> getHeader(String key) {

View File

@ -1,6 +1,5 @@
/**
* Classes for implementing functionality with {@link com.djrapitops.plan.delivery.web.ResourceService}.
*
* <a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5-PageExtension-API#resourceservice">Documentation</a>
*/
package com.djrapitops.plan.delivery.web.resource;

View File

@ -113,6 +113,7 @@ public interface DataExtension {
* <p>
* Requires Capability DATA_EXTENSION_BUILDER_API
*
* @param text Text that is displayed next to the value.
* @return new builder.
*/
default ValueBuilder valueBuilder(String text) {

View File

@ -81,6 +81,9 @@ public interface ExtensionService {
*/
void unregister(DataExtension extension);
/**
* Singleton holder for {@link ExtensionService}.
*/
class Holder {
static final AtomicReference<ExtensionService> service = new AtomicReference<>();

View File

@ -42,6 +42,12 @@ public enum FormatType {
*/
NONE;
/**
* Get a format type by the enum name without exception.
*
* @param name FormatType#name()
* @return Optional if the format type is found by that name, empty if not found.
*/
public static Optional<FormatType> getByName(String name) {
if (name == null) {
return Optional.empty();
@ -51,4 +57,5 @@ public enum FormatType {
} catch (IllegalArgumentException e) {
return Optional.empty();
}
}}
}
}

View File

@ -30,6 +30,11 @@ package com.djrapitops.plan.extension;
*/
public interface Group {
/**
* Get the name of the group.
*
* @return Name of the group given by a {@link com.djrapitops.plan.extension.annotation.GroupProvider}, e.g. "Miner"
*/
String getGroupName();
}

View File

@ -89,7 +89,7 @@ public @interface BooleanProvider {
/**
* Name of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Name of the icon, if name is not valid no icon is shown.
*/
@ -98,7 +98,7 @@ public @interface BooleanProvider {
/**
* Family of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Family that matches an icon, if there is no icon for this family no icon is shown.
*/

View File

@ -76,7 +76,7 @@ public @interface ComponentProvider {
/**
* Name of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Name of the icon, if name is not valid no icon is shown.
*/
@ -85,7 +85,7 @@ public @interface ComponentProvider {
/**
* Family of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Family that matches an icon, if there is no icon for this family no icon is shown.
*/

View File

@ -67,7 +67,7 @@ public @interface DoubleProvider {
/**
* Name of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Name of the icon, if name is not valid no icon is shown.
*/
@ -76,7 +76,7 @@ public @interface DoubleProvider {
/**
* Family of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Family that matches an icon, if there is no icon for this family no icon is shown.
*/

View File

@ -62,7 +62,7 @@ public @interface GroupProvider {
/**
* Name of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Name of the icon, if name is not valid no icon is shown.
*/
@ -71,7 +71,7 @@ public @interface GroupProvider {
/**
* Family of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Family that matches an icon, if there is no icon for this family no icon is shown.
*/

View File

@ -39,10 +39,18 @@ public @interface InvalidateMethod {
*/
String value();
/**
* Multiple {@link InvalidateMethod} annotations are supported per class.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@interface Multiple {
/**
* All the annotations.
*
* @return All InvalidateMethod annotations in the class.
*/
InvalidateMethod[] value();
}

View File

@ -79,7 +79,7 @@ public @interface NumberProvider {
/**
* Name of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Name of the icon, if name is not valid no icon is shown.
*/
@ -88,7 +88,7 @@ public @interface NumberProvider {
/**
* Family of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Family that matches an icon, if there is no icon for this family no icon is shown.
*/

View File

@ -70,7 +70,7 @@ public @interface PercentageProvider {
/**
* Name of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Name of the icon, if name is not valid no icon is shown.
*/
@ -79,7 +79,7 @@ public @interface PercentageProvider {
/**
* Family of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Family that matches an icon, if there is no icon for this family no icon is shown.
*/

View File

@ -44,7 +44,7 @@ public @interface PluginInfo {
/**
* Name of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Name of the icon, if name is not valid no icon is shown.
*/
@ -53,7 +53,7 @@ public @interface PluginInfo {
/**
* Family of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Family that matches an icon, if there is no icon for this family no icon is shown.
*/

View File

@ -79,7 +79,7 @@ public @interface StringProvider {
/**
* Name of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Name of the icon, if name is not valid no icon is shown.
*/
@ -88,7 +88,7 @@ public @interface StringProvider {
/**
* Family of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Family that matches an icon, if there is no icon for this family no icon is shown.
*/

View File

@ -41,7 +41,7 @@ public @interface TabInfo {
/**
* Name of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Name of the icon, if name is not valid no icon is shown.
*/
@ -50,7 +50,7 @@ public @interface TabInfo {
/**
* Family of Font Awesome icon.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @return Family that matches an icon, if there is no icon for this family no icon is shown.
*/

View File

@ -18,7 +18,10 @@ package com.djrapitops.plan.extension.builder;
import com.djrapitops.plan.component.Component;
import com.djrapitops.plan.extension.FormatType;
import com.djrapitops.plan.extension.annotation.*;
import com.djrapitops.plan.extension.annotation.BooleanProvider;
import com.djrapitops.plan.extension.annotation.Conditional;
import com.djrapitops.plan.extension.annotation.StringProvider;
import com.djrapitops.plan.extension.annotation.Tab;
import com.djrapitops.plan.extension.extractor.ExtensionMethod;
import com.djrapitops.plan.extension.icon.Color;
import com.djrapitops.plan.extension.icon.Family;
@ -64,7 +67,7 @@ public interface ValueBuilder {
/**
* Icon displayed next to the value.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons
*
* @param iconName Name of the icon
* @param iconFamily Family of the icon
@ -78,7 +81,7 @@ public interface ValueBuilder {
/**
* Icon displayed next to the value.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons
*
* @param icon Icon built using the methods in {@link Icon}.
* @return This builder.

View File

@ -47,6 +47,12 @@ public enum Color {
BLACK,
NONE;
/**
* Get a color by the enum name without exception.
*
* @param name Color#name()
* @return Optional if the color is found by that name, empty if not found.
*/
public static Optional<Color> getByName(String name) {
if (name == null) {
return Optional.empty();
@ -56,4 +62,5 @@ public enum Color {
} catch (IllegalArgumentException e) {
return Optional.empty();
}
}}
}
}

View File

@ -37,6 +37,12 @@ public enum Family {
*/
BRAND;
/**
* Get a family by the enum name without exception.
*
* @param name Family#name()
* @return Optional if the family is found by that name, empty if not found.
*/
public static Optional<Family> getByName(String name) {
if (name == null) {
return Optional.empty();

View File

@ -21,7 +21,7 @@ import java.util.Objects;
/**
* Object that represents an icon on the website.
* <p>
* See https://fontawesome.com/icons (select 'free')) for icons and their {@link Family}.
* See <a href="https://fontawesome.com/icons">FontAwesome</a> (select 'free')) for icons and their {@link Family}.
*
* @author AuroraLS3
*/
@ -92,6 +92,9 @@ public class Icon {
return "Icon{" + type.name() + ", '" + name + '\'' + ", " + color.name() + '}';
}
/**
* Builder for an {@link Icon}.
*/
public static class Builder {
private final Icon icon;

View File

@ -1,6 +1,5 @@
/**
* DataExtension API and related classes.
*
* <a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API">Documentation</a>
*/
package com.djrapitops.plan.extension;

View File

@ -62,14 +62,44 @@ public interface CommonQueries {
*/
long fetchLastSeen(UUID playerUUID, UUID serverUUID);
/**
* Get the UUIDs of all servers Plan has registered.
*
* @return Set of Server UUIDs
*/
Set<UUID> fetchServerUUIDs();
/**
* Fetch UUID of a player by name.
*
* @param playerName Name of the player
* @return UUID if it is found by Plan or empty if not found.
*/
Optional<UUID> fetchUUIDOf(String playerName);
/**
* Fetch name of a player by UUID.
*
* @param playerUUID UUID of the player
* @return Name if it is known by Plan or empty if not.
*/
Optional<String> fetchNameOf(UUID playerUUID);
/**
* Check that schema has table you are using in your queries.
*
* @param table Name of the table, e.g. plan_users.
* @return true if table exists.
*/
boolean doesDBHaveTable(String table);
/**
* Check that schema table has a column you are using in your queries.
*
* @param table Name of the table, e.g. plan_users.
* @param column Name of the column, e.g. id
* @return true if table and column exist.
*/
boolean doesDBHaveTableColumn(String table, String column);
/**

View File

@ -126,7 +126,7 @@ public interface QueryService {
CommonQueries getCommonQueries();
/**
* See https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
* See <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html">Functional Interfaces</a>
*/
@FunctionalInterface
interface ThrowingConsumer<T> {
@ -134,7 +134,7 @@ public interface QueryService {
}
/**
* See https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
* See <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html">Functional Interfaces</a>
*/
@FunctionalInterface
interface ThrowingFunction<T, R> {
@ -142,7 +142,7 @@ public interface QueryService {
}
/**
* See https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
* See <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html">Functional Interfaces</a>
*/
@FunctionalInterface
interface VoidFunction {

View File

@ -1,6 +1,5 @@
/**
* Query API related classes.
*
* <a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5-Query-API">Documentation</a>
*/
package com.djrapitops.plan.query;

View File

@ -51,6 +51,9 @@ public interface ListenerService {
*/
void registerListenerForPlan(Object listener);
/**
* Singleton holder for listeners.
*/
class Holder {
static final AtomicReference<ListenerService> service = new AtomicReference<>();

View File

@ -25,7 +25,7 @@ import java.util.stream.Collectors;
/**
* UserImportRefiner attempts to find any crucial information that is missing.
*
* <p>
* - Finds UUIDs if only name is present.
* - Finds Names if only UUID is present.
* - Removes any importers that do not have any identifiers.

View File

@ -53,7 +53,7 @@ import java.util.logging.Logger;
* Task that handles player ping calculation on Bukkit based servers.
* <p>
* Modified PingManager from LagMonitor plugin.
* https://github.com/games647/LagMonitor/blob/master/src/main/java/com/github/games647/lagmonitor/task/PingManager.java
* <a href="https://github.com/games647/LagMonitor/blob/master/src/main/java/com/github/games647/lagmonitor/task/PingManager.java">original</a>
*
* @author games647
*/

View File

@ -32,7 +32,7 @@ import java.lang.reflect.Field;
* An utility class that simplifies reflection in Bukkit plugins.
* <p>
* Modified Reflection utility from LagMonitor plugin.
* https://github.com/games647/LagMonitor/blob/master/src/main/java/com/github/games647/lagmonitor/traffic/Reflection.java
* <a href="https://github.com/games647/LagMonitor/blob/master/src/main/java/com/github/games647/lagmonitor/traffic/Reflection.java">original code</a>
*
* @author Kristian
*/

View File

@ -43,7 +43,7 @@ import java.util.stream.Collectors;
* PlanAPI extension for all implementations.
*
* @author AuroraLS3
* @deprecated Plan API v4 has been deprecated, use the APIv5 instead (https://github.com/plan-player-analytics/Plan/wiki/APIv5).
* @deprecated Plan API v4 has been deprecated, use the APIv5 instead (<a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5">wiki</a>).
*/
@Singleton
@Deprecated(forRemoval = true, since = "5.0")

View File

@ -35,7 +35,7 @@ import java.util.UUID;
* Interface for PlanAPI methods.
*
* @author AuroraLS3
* @deprecated Plan API v4 has been deprecated, use the APIv5 instead (https://github.com/plan-player-analytics/Plan/wiki/APIv5).
* @deprecated Plan API v4 has been deprecated, use the APIv5 instead (<a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5">wiki</a>).
*/
@Deprecated(since = "5.0")
public interface PlanAPI {
@ -65,7 +65,7 @@ public interface PlanAPI {
}
/**
* @deprecated PluginData API has been deprecated - see https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API for new API.
* @deprecated PluginData API has been deprecated - see <a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API">wiki</a> for new API.
*/
@Deprecated
void addPluginDataSource(PluginData pluginData);

View File

@ -29,7 +29,7 @@ import java.util.Optional;
* The Keys might change in the future, but the Optional API should help dealing with those cases.
*
* @author AuroraLS3
* @deprecated Plan API v4 has been deprecated, use the APIv5 instead (https://github.com/plan-player-analytics/Plan/wiki/APIv5).
* @deprecated Plan API v4 has been deprecated, use the APIv5 instead (<a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5">wiki</a>).
*/
@Deprecated(since = "5.0")
public class PlayerContainer {

View File

@ -28,7 +28,7 @@ import java.util.Optional;
* The Keys might change in the future, but the Optional API should help dealing with those cases.
*
* @author AuroraLS3
* @deprecated Plan API v4 has been deprecated, use the APIv5 instead (https://github.com/plan-player-analytics/Plan/wiki/APIv5).
* @deprecated Plan API v4 has been deprecated, use the APIv5 instead (<a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5">wiki</a>).
*/
@Deprecated(forRemoval = true, since = "5.0")
public class ServerContainer {

View File

@ -27,7 +27,7 @@ import java.util.UUID;
* @author AuroraLS3
* @see TableContainer
* @see InspectContainer
* @deprecated PluginData API has been deprecated - see https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API for new API.
* @deprecated PluginData API has been deprecated - see <a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API">wiki</a> for new API.
*/
@Deprecated(since = "5.0")
public final class AnalysisContainer extends InspectContainer {

View File

@ -27,7 +27,7 @@ import java.util.TreeMap;
*
* @author AuroraLS3
* @see TableContainer
* @deprecated PluginData API has been deprecated - see https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API for new API.
* @deprecated PluginData API has been deprecated - see <a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API">wiki</a> for new API.
*/
@Deprecated(since = "5.0")
public class InspectContainer {

View File

@ -26,7 +26,7 @@ import java.util.List;
* Container used for creating Html tables.
*
* @author AuroraLS3
* @deprecated PluginData API has been deprecated - see https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API for new API.
* @deprecated PluginData API has been deprecated - see <a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API">wiki</a> for new API.
*/
@Deprecated(since = "5.0")
public class TableContainer {

View File

@ -23,7 +23,7 @@ import java.util.UUID;
* Interface for PluginData objects that affect Ban state of players.
*
* @author AuroraLS3
* @deprecated PluginData API has been deprecated - see https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API for new API.
* @deprecated PluginData API has been deprecated - see <a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API">wiki</a> for new API.
*/
@Deprecated(since = "5.0")
public interface BanData {

View File

@ -20,7 +20,7 @@ package com.djrapitops.plan.data.plugin;
* Enum class for PluginData to estimate the required width of the contained items.
*
* @author AuroraLS3
* @deprecated PluginData API has been deprecated - see https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API for new API.
* @deprecated PluginData API has been deprecated - see <a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API">wiki</a> for new API.
*/
@Deprecated
public enum ContainerSize {

View File

@ -33,7 +33,7 @@ import java.util.UUID;
* to register objects extending this class.
*
* @author AuroraLS3
* @deprecated PluginData API has been deprecated - see https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API for new API.
* @deprecated PluginData API has been deprecated - see <a href="https://github.com/plan-player-analytics/Plan/wiki/APIv5---DataExtension-API">wiki</a> for new API.
*/
@Deprecated(since = "5.0")
public abstract class PluginData {

View File

@ -139,7 +139,6 @@ public interface DataContainer {
/**
* Get formatted Value identified by the Key.
* <p>
*
* @param key Key that identifies the Value
* @param formatter Formatter for the Optional returned by {@link DataContainer#getValue(Key)}

View File

@ -38,15 +38,16 @@ import java.util.concurrent.TimeUnit;
* <p>
* Activity for a single week is calculated using {@code A(t) = (1 / (pi/2 * (t/T) + 1))}.
* A(t) is based on function f(x) = 1 / (x + 1), which has property f(0) = 1, decreasing from there, but not in a straight line.
* You can see the function plotted here https://www.wolframalpha.com/input/?i=1+%2F+(x%2B1)+from+-1+to+2
* You can see the function plotted <a href="https://www.wolframalpha.com/input/?i=1+%2F+(x%2B1)+from+-1+to+2">here</a>
* <p>
* To fine tune the curve pi/2 is used since it felt like a good curve.
* <p>
* Activity index A is calculated by using the formula:
* {@code A = 5 - 5 * [A(t1) + A(t2) + A(t3)] / 3}
* <p>
* <a href="https://www.wolframalpha.com/input/?i=plot+y+%3D+5+-+5+*+(1+%2F+(pi%2F2+*+x%2B1))+and+y+%3D1+and+y+%3D+2+and+y+%3D+3+and+y+%3D+3.75+from+-0.5+to+3">
* Plot for A and limits
* https://www.wolframalpha.com/input/?i=plot+y+%3D+5+-+5+*+(1+%2F+(pi%2F2+*+x%2B1))+and+y+%3D1+and+y+%3D+2+and+y+%3D+3+and+y+%3D+3.75+from+-0.5+to+3
* </a>
* <p>
* New Limits for A would thus be
* {@code < 1: Inactive}

View File

@ -24,7 +24,7 @@ import java.util.TimeZone;
/**
* Formats timestamps to the Last-Modified header time format.
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
* <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified">Documentation for the header</a>
*
* @author AuroraLS3
*/

View File

@ -42,8 +42,6 @@ import java.util.stream.Collectors;
/**
* Utility for creating jQuery Datatables JSON for a Players Table.
* <p>
* See https://www.datatables.net/manual/data/orthogonal-data#HTML-5 for sort kinds
*
* @author AuroraLS3
*/

View File

@ -31,9 +31,6 @@ import java.util.Objects;
/**
* Configuration utility for storing settings in a .yml file.
* <p>
* Based on
* https://github.com/AuroraLS3/Abstract-Plugin-Framework/blob/72e221d3571ef200727713d10d3684c51e9f469d/AbstractPluginFramework/api/src/main/java/com/djrapitops/plugin/config/Config.java
*
* @author AuroraLS3
*/

View File

@ -34,9 +34,6 @@ import java.util.stream.Collectors;
/**
* Represents a single node in a configuration file
* <p>
* Based on
* https://github.com/AuroraLS3/Abstract-Plugin-Framework/blob/72e221d3571ef200727713d10d3684c51e9f469d/AbstractPluginFramework/api/src/main/java/com/djrapitops/plugin/config/ConfigNode.java
*
* @author AuroraLS3
*/

View File

@ -27,7 +27,7 @@ public enum LangCode {
EN("English", "AuroraLS3"),
ES("Español", "Catalina, itaquito, Elguerrero & 4drian3d"),
CN("\u6C49\u8BED", "f0rb1d (\u4f5b\u58c1\u706f), qsefthuopq, shaokeyibb, Fur_xia, 10935336, SkipM4, TheLittle_Yang & jhqwqmc"), // Simplified Chinese
CS("čeština", "Shadowhackercz, QuakyCZ, MrFriggo & WolverStones"),
CS("\u010de\u0161tina", "Shadowhackercz, QuakyCZ, MrFriggo & WolverStones"),
DE("Deutsch", "Eyremba, fuzzlemann, Morsmorse, hallo1142 & DubHacker"),
FI("suomi", "AuroraLS3, KasperiP"),
FR("français", "CyanTech, Aurelien & Nogapra"),
@ -35,9 +35,9 @@ public enum LangCode {
JA("\u65E5\u672C\u8A9E", "yukieji, inductor, lis2a, yu_solt , Jumala9163 & ringoXD"),
KO("\uD55C\uAD6D\uC5B4", "Guinness_Akihiko"),
NL("Nederlands", "Sander0542"),
RU("русский", "Saph1s, Perhun_Pak, BratishkaErik & stashenko"),
RU("ру\u0441\u0441к\u0438\u0439", "Saph1s, Perhun_Pak, BratishkaErik & stashenko"),
TR("Türkçe", "TDJisvan, BruilsiozPro & EyuphanMandiraci"),
UK("українська мова", "xlanyleeet"),
UK("україн\u0441ька \u043cо\u0432а", "xlanyleeet"),
PT_BR("Português", "jvmuller"),
ZH_TW("\u6F22\u8A9E", "\u6d1b\u4f0a & zisunny104");

View File

@ -50,15 +50,16 @@ import static com.djrapitops.plan.storage.database.sql.building.Sql.*;
* <p>
* Activity for a single week is calculated using {@code A(t) = (1 / (pi/2 * (t/T) + 1))}.
* A(t) is based on function f(x) = 1 / (x + 1), which has property f(0) = 1, decreasing from there, but not in a straight line.
* You can see the function plotted here https://www.wolframalpha.com/input/?i=1+%2F+(x%2B1)+from+-1+to+2
* You can see the function plotted <a href="https://www.wolframalpha.com/input/?i=1+%2F+(x%2B1)+from+-1+to+2">here</a>
* <p>
* To fine tune the curve pi/2 is used since it felt like a good curve.
* <p>
* Activity index A is calculated by using the formula:
* {@code A = 5 - 5 * [A(t1) + A(t2) + A(t3)] / 3}
* <p>
* <a href="https://www.wolframalpha.com/input/?i=plot+y+%3D+5+-+5+*+(1+%2F+(pi%2F2+*+x%2B1))+and+y+%3D1+and+y+%3D+2+and+y+%3D+3+and+y+%3D+3.75+from+-0.5+to+3">
* Plot for A and limits
* https://www.wolframalpha.com/input/?i=plot+y+%3D+5+-+5+*+(1+%2F+(pi%2F2+*+x%2B1))+and+y+%3D1+and+y+%3D+2+and+y+%3D+3+and+y+%3D+3.75+from+-0.5+to+3
* </a>
* <p>
* New Limits for A would thus be
* {@code < 1: Inactive}

View File

@ -46,15 +46,16 @@ import static com.djrapitops.plan.storage.database.sql.building.Sql.*;
* <p>
* Activity for a single week is calculated using {@code A(t) = (1 / (pi/2 * (t/T) + 1))}.
* A(t) is based on function f(x) = 1 / (x + 1), which has property f(0) = 1, decreasing from there, but not in a straight line.
* You can see the function plotted here https://www.wolframalpha.com/input/?i=1+%2F+(x%2B1)+from+-1+to+2
* You can see the function plotted <a href="https://www.wolframalpha.com/input/?i=1+%2F+(x%2B1)+from+-1+to+2">here</a>
* <p>
* To fine tune the curve pi/2 is used since it felt like a good curve.
* <p>
* Activity index A is calculated by using the formula:
* {@code A = 5 - 5 * [A(t1) + A(t2) + A(t3)] / 3}
* <p>
* <a href="https://www.wolframalpha.com/input/?i=plot+y+%3D+5+-+5+*+(1+%2F+(pi%2F2+*+x%2B1))+and+y+%3D1+and+y+%3D+2+and+y+%3D+3+and+y+%3D+3.75+from+-0.5+to+3">
* Plot for A and limits
* https://www.wolframalpha.com/input/?i=plot+y+%3D+5+-+5+*+(1+%2F+(pi%2F2+*+x%2B1))+and+y+%3D1+and+y+%3D+2+and+y+%3D+3+and+y+%3D+3.75+from+-0.5+to+3
* </a>
* <p>
* New Limits for A would thus be
* {@code < 1: Inactive}

View File

@ -33,8 +33,9 @@ import static com.djrapitops.plan.storage.database.sql.building.Sql.*;
/**
* Transaction for removing duplicate data in plan_user_info.
* <p>
* https://github.com/plan-player-analytics/Plan/issues/956
* https://github.com/plan-player-analytics/Plan/issues/967
* Related issues:
* <a href="https://github.com/plan-player-analytics/Plan/issues/956">Issue #956</a>
* <a href="https://github.com/plan-player-analytics/Plan/issues/967">Issue #967</a>
*
* @author AuroraLS3
*/

View File

@ -28,7 +28,7 @@ import static com.djrapitops.plan.storage.database.sql.building.Sql.*;
/**
* Patch to fix incorrect register dates for nukkit.
* https://github.com/plan-player-analytics/Plan/issues/1320
* <a href="https://github.com/plan-player-analytics/Plan/issues/1320">Related issue</a>
*
* @author AuroraLS3
*/

View File

@ -19,7 +19,7 @@ package com.djrapitops.plan.storage.database.transactions.patches;
/**
* Patch that removes plan_commandusages table.
* <p>
* See https://github.com/plan-player-analytics/Plan/issues/1240 for more details
* See <a href="https://github.com/plan-player-analytics/Plan/issues/1240">related issue</a> for more details
*
* @author AuroraLS3
*/

View File

@ -31,7 +31,7 @@ import java.util.Set;
import static com.djrapitops.plan.storage.database.sql.building.Sql.*;
/**
* Removes invalid data caused by https://github.com/plan-player-analytics/Plan/issues/1355.
* Removes invalid data caused by <a href="https://github.com/plan-player-analytics/Plan/issues/1355">issue #1355</a>.
*
* @author AuroraLS3
*/

View File

@ -28,7 +28,7 @@ import static com.djrapitops.plan.storage.database.sql.building.Sql.WHERE;
/**
* Adds a is_proxy field to remove technical debt assuming name field "BungeeCord" being the proxy.
* <p>
* See https://github.com/plan-player-analytics/Plan/issues/1678 for more details
* See <a href="https://github.com/plan-player-analytics/Plan/issues/1678">issue #1678</a> for more details
*
* @author AuroraLS3
*/

View File

@ -30,7 +30,7 @@ import java.util.Base64;
/**
* Password Encryption utility.
* <p>
* https://github.com/defuse/password-hashing/blob/master/PasswordStorage.java
* <a href="https://github.com/defuse/password-hashing/blob/master/PasswordStorage.java">Based on this code</a>
*
* @author Defuse
*/

View File

@ -24,7 +24,7 @@ import java.util.List;
/**
* Formats chat messages in different ways.
* <p>
* Original code: https://hastebin.com/uziyajirag.avrasm
* <a href="https://hastebin.com/uziyajirag.avrasm">Original code</a>
*/
public class ChatFormatter {
private static final int CENTER_PX = 154;

View File

@ -19,7 +19,7 @@ package com.djrapitops.plan.utilities.chat;
/**
* Contains width of characters in the chat with default font.
* <p>
* Original code form https://www.spigotmc.org/threads/free-code-sending-perfectly-centered-chat-message.95872/page-2
* <a href="https://www.spigotmc.org/threads/free-code-sending-perfectly-centered-chat-message.95872/page-2">Original code</a>
*/
public enum DefaultFontInfo {

View File

@ -81,7 +81,7 @@ public class Lists {
* @param mapper Function to change object of type A to type B
* @param <A> Type of the old list objects
* @param <B> Type of the new list objects
* @return List with elements in original that keep returned true for.
* @return Set with elements in original that keep returned true for.
*/
public static <A, B> Set<B> mapUnique(Collection<A> original, Function<A, B> mapper) {
Set<B> mapped = new HashSet<>();

View File

@ -19,7 +19,7 @@ package com.djrapitops.plan.version;
import java.util.Objects;
/**
* Data class for reading version.txt in https://github.com/AuroraLS3/Plan-PlayerAnalytics.
* Data class for reading version.txt in <a href="https://github.com/plan-player-analytics/Plan">Github Repository</a>.
*
* @author AuroraLS3
*/

View File

@ -49,9 +49,6 @@ import java.util.concurrent.TimeUnit;
/**
* Task that handles player ping calculation on Nukkit based servers.
* <p>
* Modified PingManager from LagMonitor plugin.
* https://github.com/games647/LagMonitor/blob/master/src/main/java/com/github/games647/lagmonitor/task/PingManager.java
*
* @author games647
*/