Update comments and javadoc

This commit is contained in:
JeremyStar™ 2024-06-27 20:29:08 +02:00
parent f39223b4da
commit 9cb5cbffd3
Signed by: JeremyStarTM
GPG key ID: E366BAEF67E4704D
41 changed files with 155 additions and 147 deletions

View file

@ -92,7 +92,7 @@ public final class Engine implements SubsystemMainClass {
* @since 1-alpha0
*/
public Engine() {
// Check if sos!engine is already loaded
// Only allow one instance
if (instance == null)
instance = this;
else {
@ -201,15 +201,17 @@ public final class Engine implements SubsystemMainClass {
* @since 1-alpha0
*/
public void precomputeEventListeners() {
// Internal events
EventHelper.precomputeEventListeners(InternalEngineShutdownEvent.class);
// General events
EventHelper.precomputeEventListeners(EngineCrashEvent.class);
EventHelper.precomputeEventListeners(EngineShutdownEvent.class);
EventHelper.precomputeEventListeners(LogEvent.class);
}
/**
* Starts base engine threads.
* Starts engine threads.
*
* @since 1-alpha1
*/
@ -220,18 +222,21 @@ public final class Engine implements SubsystemMainClass {
/**
* Shuts the engine and JVM down.
*
* @param exitCode the code to exit with, from 0-255
* @param exitCode code to exit with, from 0-255
* @since 1-alpha0
*/
public void shutdown(@Range(from = 0, to = 255) int exitCode) {
logger.info("Shutting engine down");
shuttingDown = true;
logger.verb("Notifiying classes about shutdown");
new EngineShutdownEvent().callEvent();
logger.verb("Notifying subsystems about shutdown");
new InternalEngineShutdownEvent().callEvent();
logger.verb("Shutting down JVM with code " + exitCode);
Logger.flushLogMessages();
Logger.flushLogMessages(); // Flush all log messages before exiting
Runtime.getRuntime().exit(exitCode);
}

View file

@ -252,6 +252,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
else
Logger.crash(new LogIssuer(getClass(), CodePart.ENGINE), "Tried initializing " + getClass().getName() + " twice");
// Load default configuration
loadDefaultConfiguration();
}
@ -260,6 +261,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
// Define variables
PropertyParser parser = new PropertyParser(properties);
// Loop through all properties
for (String property : properties.stringPropertyNames()) {
// Check if property name starts with group
if (!property.startsWith(group)) continue;
@ -267,7 +269,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
// Skip to important stuff
property = property.substring(group.length());
// Match settings
// Overwrite matching settings
try {
switch (property) {
case "debug" -> debug = parser.getBoolean(group + property);
@ -294,7 +296,7 @@ public final class EngineConfiguration implements SubsystemConfiguration {
} catch (NullPointerException ignored) {}
}
// Disable all debug options if 'debug' is disabled
// Disable all debugging switches if 'debug' is disabled
if (!debug) {
debugEvents = false;
debugShortcodeConverter = false;

View file

@ -42,7 +42,7 @@ public interface Placeholder {
/**
* Replaces the placeholder with it's appropriate content.
*
* @param text the text to process
* @param text text to process
* @return the processed text
* @since 1-alpha0
*/

View file

@ -49,7 +49,7 @@ public interface SubsystemConfiguration {
* Loads the subsystem configuration from the specified {@link Properties}.<br/>
* Unless you want to allow configuration overriding, resetting the configuration using {@code loadDefaultConfiguration()} is advised.
*
* @param properties the {@link Properties} object
* @param properties {@link Properties} object
* @see SubsystemConfiguration#loadDefaultConfiguration()
* @since 1-alpha0
*/
@ -76,8 +76,8 @@ public interface SubsystemConfiguration {
/**
* Returns a configuration setting.
*
* @param setting the setting name
* @return the setting's value or {@code null} if not found
* @param setting setting name
* @return setting's value or {@code null} if not found
*/
Object getSetting(@NotNull String setting);
}

View file

@ -65,11 +65,12 @@ public class EventHelper {
* @since 1-alpha0
*/
public static void logCall(@NotNull Class<? extends Event> clazz, @NotNull Object ... arguments) {
// Print event call if event debugging is enabled
if (EngineConfiguration.getInstance().isDebugEvents())
if (arguments.length == 0)
Logger.diag(new LogIssuer(clazz), "Event " + clazz.getName() + " called");
Logger.diag(new LogIssuer(clazz), "Event " + clazz.getName() + " emitted");
else
Logger.diag(new LogIssuer(clazz), "Event " + clazz.getName() + " called with arguments " + ListFormatter.formatArray(arguments));
Logger.diag(new LogIssuer(clazz), "Event " + clazz.getName() + " emitted, passing arguments " + ListFormatter.formatArray(arguments));
}
/**
@ -86,6 +87,7 @@ public class EventHelper {
if (forceScanning || !cachedEventListeners.containsKey(clazz)) {
// Scan entire classpath through Reflections library
// (enforced or not cached)
Reflections reflections = new Reflections(
new ConfigurationBuilder()
.setUrls(ClasspathHelper.forJavaClassPath())
@ -100,7 +102,7 @@ public class EventHelper {
if (method.getAnnotation(EventListener.class).event() == clazz)
methods.add(method);
// Sort 'methods' linked list
// Sort 'methods' linked list after event priority
methods.sort(Comparator.comparing(method0 -> method0.getAnnotation(EventListener.class).priority()));
} else
// 'forcedScanning' is false and matching event listeners are cached
@ -147,7 +149,7 @@ public class EventHelper {
}
/**
* Precomputes all event listeners listening on some event.
* Caches all event listeners listening on some event.
* Will recompute all event listeners if the specified event is already cached.
*
* @param clazz event listeners to (p)recompute, set to {@code null} to recompute all cached events
@ -170,7 +172,7 @@ public class EventHelper {
/**
* Removes events from the event listener cache.
*
* @param clazz event class to remove cached event listeners for, set to {@code null} to remove all cached event listeners
* @param clazz event class to remove cached event listeners for or {@code null} to remove all cached event listeners
* @since 1-alpha0
*/
public static void removePrecomputedEventListeners(@Nullable Class<? extends Event> clazz) {

View file

@ -75,7 +75,7 @@ public class LogIssuer {
/**
* Constructor.
*
* @param clazz the issuing class
* @param clazz issuing class
* @param additionalInformation additional information about the issuer
* @param codePart identifies to which part of the program the class belongs to
* @since 1-alpha0
@ -90,7 +90,7 @@ public class LogIssuer {
/**
* Constructor.
*
* @param clazz the issuing class
* @param clazz issuing class
* @param additionalInformation additional information about the issuer
* @since 1-alpha0
*/
@ -104,7 +104,7 @@ public class LogIssuer {
/**
* Constructor.
*
* @param clazz the issuing class
* @param clazz issuing class
* @param codePart identifies to which part of the program the class belongs to
* @since 1-alpha0
*/
@ -117,7 +117,7 @@ public class LogIssuer {
/**
* Constructor.
*
* @param clazz the issuing class
* @param clazz issuing class
* @since 1-alpha0
*/
public LogIssuer(@NotNull Class<?> clazz) {

View file

@ -225,12 +225,12 @@ public final class EngineInformation {
return;
}
// Load properties from gradle.properties
// Load properties from bundled gradle.properties
Properties properties = new Properties();
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("gradle.properties");
if (inputStream == null) {
logger.crash("Unable to load build information: InputStream is null");
logger.crash("Unable to load build information: The bundled gradle.properties file could not be found. Do symlinks work on the system that built this JAR?");
return;
}

View file

@ -48,10 +48,10 @@ public final class JvmInformation {
public static int getJavaVersion() {
String version = System.getProperty("java.version");
if (version.startsWith("1."))
if (version.startsWith("1.")) // Omit "1." (if present)
version = version.substring(2, 3);
else {
if (version.contains("."))
if (version.contains(".")) // Only get MAJOR version
version = version.substring(0, version.indexOf("."));
}

View file

@ -53,9 +53,9 @@ public final class LogEvent implements Event {
/**
* Calls the event and notifies all annotated methods.
*
* @param level the log level
* @param logIssuer the log issuer
* @param message the log message
* @param level log level
* @param logIssuer log issuer
* @param message log message
* @since 1-alpha0
*/
public void callEvent(@NotNull LogLevel level, @NotNull LogIssuer logIssuer, @NotNull String message) {

View file

@ -44,13 +44,6 @@ import java.util.*;
*/
@SuppressWarnings({ "unused", "JavadocDeclaration", "JavadocBlankLines" })
public final class CrashHandler {
/**
* Hopefully {@code false} :)<br/>
* Note: Switching this to true might cause issues. Just don't do it ^^
*
* @since 1-alpha0
*/
public static boolean crashed = false;
/**
* Contains the template used to print a crash report.
@ -115,13 +108,12 @@ public final class CrashHandler {
* @since 1-alpha0
*/
public static void handleCrash(@NotNull LogIssuer logIssuer, @NotNull String message, @Nullable Throwable throwable) {
crashed = true;
String base = crashTemplate;
// Convert crashContent to String and replace %content% in crashTemplate with the result
// Replace '%content%' with crash content
base = base.replace("%content%", processCrashContent()); // This is so simple we don't need the PlaceholderEngine to do it for us
// Execute LoggerImpl#prePlaceholder
// Invoke LoggerImpl#prePlaceholder
base = Logger.getLoggerImplementation().prePlaceholder(LogLevel.CRASH, logIssuer, base);
// Create list of temporary placeholders
@ -140,13 +132,13 @@ public final class CrashHandler {
// Replace placeholders
base = PlaceholderEngine.getInstance().process(base, temporaryPlaceholders);
// Execute LoggerImpl#postPlaceholder
// Invoke LoggerImpl#postPlaceholder
base = Logger.getLoggerImplementation().postPlaceholder(LogLevel.CRASH, logIssuer, base);
// Print log message
// Print log message by invoking LoggerImpl#print
Logger.getLoggerImplementation().print(LogLevel.CRASH, logIssuer, base);
// Send EngineCrash event
// Emit EngineCrashEvent
new EngineCrashEvent().callEvent();
// Shutdown (engine &) JVM
@ -159,8 +151,8 @@ public final class CrashHandler {
/**
* Internal method for generating the crash message content. Do not call.
*
* @param map the {@link LinkedHashMap} to process
* @param indentationSize the indentation level
* @param map {@link LinkedHashMap} to process
* @param indentationSize indentation level
* @return crash content string
* @see CrashHandler#processCrashContent()
* @since 1-alpha0
@ -170,11 +162,10 @@ public final class CrashHandler {
* We can safely ignore this as this method
* 1. checks data types as best as it can,
* 2. only works on a String and not on a File or something which could cause damage, and
* 3. we can trust our own engine and the application not doing shit in here.
* as an application or subsystem developer you'll likely want useful crash information.
* 3. we can trust our own engine and possibly subsystems not doing shit in here.
* As a subsystem developer you'll likely want useful crash information.
*
* But hey, if someone breaks this method (which may be possible idk didn't test it) then congrats!
* If someone opens a pull requests wanting to "fix" this method, I'll happily decline it :)
*/
@NotNull
private static String processCrashContent(@NotNull LinkedHashMap<Object, Object> map, int indentationSize) {
@ -189,6 +180,11 @@ public final class CrashHandler {
// Invalid content value, skip
continue;
/*
* I'm too lazy to describe what you are seeing down below,
* so uuhhh just try breaking it and see what happens.
*/
if (!content.isEmpty())
content.append("\n");
@ -205,11 +201,9 @@ public final class CrashHandler {
else content.append(" ".repeat(indentationSize)).append("-> ");
content.append(key).append("\n");
// We are the types in this function already
//noinspection unchecked
content.append(processCrashContent((LinkedHashMap<Object, Object>) map.get(key), indentationSize + 1));
}
}
return content.toString();

View file

@ -65,7 +65,7 @@ public final class Logger {
* -- SETTER --
* Sets the active {@link LoggerImpl}.
*
* @param loggerImplementation the new active {@link LoggerImpl}
* @param loggerImplementation new active {@link LoggerImpl}
* @see LoggerImpl
* @since 1-alpha0
*/

View file

@ -58,7 +58,7 @@ public final class LoggerInstance {
/**
* Prints a diagnostic message.
*
* @param message the diagnostic message
* @param message diagnostic message
* @since 1-alpha0
*/
public void diag(@NotNull String message) {
@ -68,7 +68,7 @@ public final class LoggerInstance {
/**
* Prints a verbose message.
*
* @param message the verbose message
* @param message verbose message
* @since 1-alpha0
*/
public void verb(@NotNull String message) {
@ -78,7 +78,7 @@ public final class LoggerInstance {
/**
* Prints a silent warning message.
*
* @param message the silent warning message
* @param message silent warning message
* @since 1-alpha0
*/
public void sarn(@NotNull String message) {
@ -88,7 +88,7 @@ public final class LoggerInstance {
/**
* Prints an informational message.
*
* @param message the informational message
* @param message informational message
* @since 1-alpha0
*/
public void info(@NotNull String message) {
@ -98,7 +98,7 @@ public final class LoggerInstance {
/**
* Prints a warning message.
*
* @param message the warning message
* @param message warning message
* @since 1-alpha0
*/
public void warn(@NotNull String message) {
@ -108,7 +108,7 @@ public final class LoggerInstance {
/**
* Prints an error message.
*
* @param message the error message
* @param message error message
* @since 1-alpha0
*/
public void error(@NotNull String message) {
@ -118,8 +118,8 @@ public final class LoggerInstance {
/**
* Crashes the entire engine.
*
* @param message the diagnostic message
* @param throwable the throwable that caused this crash
* @param message diagnostic message
* @param throwable throwable that caused this crash
* @see CrashHandler
* @since 1-alpha0
*/
@ -130,7 +130,7 @@ public final class LoggerInstance {
/**
* Crashes the entire engine.
*
* @param message the diagnostic message
* @param message diagnostic message
* @see CrashHandler
* @since 1-alpha0
*/

View file

@ -42,7 +42,7 @@ public final class IssuerClass implements Placeholder {
/**
* Constructor.
*
* @param logIssuer the {@link LogIssuer} to use
* @param logIssuer {@link LogIssuer} to use
* @since 1-alpha0
*/
public IssuerClass(@NotNull LogIssuer logIssuer) {

View file

@ -42,7 +42,7 @@ public final class IssuerCodePart implements Placeholder {
/**
* Constructor.
*
* @param logIssuer the {@link LogIssuer} to use
* @param logIssuer {@link LogIssuer} to use
* @since 1-alpha0
*/
public IssuerCodePart(@NotNull LogIssuer logIssuer) {

View file

@ -42,7 +42,7 @@ public final class IssuerInfo implements Placeholder {
/**
* Constructor.
*
* @param logIssuer the {@link LogIssuer} to use
* @param logIssuer {@link LogIssuer} to use
* @since 1-alpha0
*/
public IssuerInfo(@NotNull LogIssuer logIssuer) {

View file

@ -41,7 +41,7 @@ public final class IssuerMessage implements Placeholder {
/**
* Constructor.
*
* @param message the message to use
* @param message message to use
* @since 1-alpha0
*/
public IssuerMessage(@NotNull String message) {

View file

@ -42,7 +42,7 @@ public final class IssuerPackage implements Placeholder {
/**
* Constructor.
*
* @param logIssuer the {@link LogIssuer} to use
* @param logIssuer {@link LogIssuer} to use
* @since 1-alpha0
*/
public IssuerPackage(@NotNull LogIssuer logIssuer) {

View file

@ -42,7 +42,7 @@ public final class IssuerPath implements Placeholder {
/**
* Constructor.
*
* @param logIssuer the {@link LogIssuer} to use
* @param logIssuer {@link LogIssuer} to use
* @since 1-alpha0
*/
public IssuerPath(@NotNull LogIssuer logIssuer) {

View file

@ -43,7 +43,7 @@ public final class Stacktrace implements Placeholder {
/**
* Constructor.
*
* @param throwable the {@link Throwable} to use
* @param throwable {@link Throwable} to use
* @since 1-alpha0
*/
public Stacktrace(@Nullable Throwable throwable) {

View file

@ -42,7 +42,7 @@ public final class LogClass implements Placeholder {
/**
* Constructor.
*
* @param logIssuer the {@link LogIssuer} to use
* @param logIssuer {@link LogIssuer} to use
* @since 1-alpha0
*/
public LogClass(@NotNull LogIssuer logIssuer) {

View file

@ -42,7 +42,7 @@ public final class LogCodePart implements Placeholder {
/**
* Constructor.
*
* @param logIssuer the {@link LogIssuer} to use
* @param logIssuer {@link LogIssuer} to use
* @since 1-alpha0
*/
public LogCodePart(@NotNull LogIssuer logIssuer) {

View file

@ -42,7 +42,7 @@ public final class LogColorPrimary implements Placeholder {
/**
* Constructor.
*
* @param level the {@link LogLevel} to use
* @param level {@link LogLevel} to use
* @since 1-alpha0
*/
public LogColorPrimary(@NotNull LogLevel level) {

View file

@ -42,7 +42,7 @@ public final class LogColorSecondary implements Placeholder {
/**
* Constructor.
*
* @param level the {@link LogLevel} to use
* @param level {@link LogLevel} to use
* @since 1-alpha0
*/
public LogColorSecondary(@NotNull LogLevel level) {

View file

@ -42,7 +42,7 @@ public final class LogInfo implements Placeholder {
/**
* Constructor.
*
* @param logIssuer the {@link LogIssuer} to use
* @param logIssuer {@link LogIssuer} to use
* @since 1-alpha0
*/
public LogInfo(@NotNull LogIssuer logIssuer) {

View file

@ -41,7 +41,7 @@ public final class LogLevel implements Placeholder {
/**
* Constructor.
*
* @param level the {@link de.staropensource.sosengine.base.classes.logging.LogLevel} to use
* @param level {@link de.staropensource.sosengine.base.classes.logging.LogLevel} to use
* @since 1-alpha0
*/
public LogLevel(@NotNull de.staropensource.sosengine.base.classes.logging.LogLevel level) {

View file

@ -41,7 +41,7 @@ public final class LogMessage implements Placeholder {
/**
* Constructor.
*
* @param message the message to use
* @param message message to use
* @since 1-alpha0
*/
public LogMessage(@NotNull String message) {

View file

@ -42,7 +42,7 @@ public final class LogPackage implements Placeholder {
/**
* Constructor.
*
* @param logIssuer the {@link LogIssuer} to use
* @param logIssuer {@link LogIssuer} to use
* @since 1-alpha0
*/
public LogPackage(@NotNull LogIssuer logIssuer) {

View file

@ -42,7 +42,7 @@ public final class LogPath implements Placeholder {
/**
* Constructor.
*
* @param logIssuer the {@link LogIssuer} to use
* @param logIssuer {@link LogIssuer} to use
* @since 1-alpha0
*/
public LogPath(@NotNull LogIssuer logIssuer) {

View file

@ -39,13 +39,13 @@ public class Vec2 {
* -- GETTER --
* Returns the X axis value.
*
* @return the X axis value
* @return X axis value
* @since 1-alpha0
*
* -- SETTER --
* Sets the X axis value.
*
* @param x the X axis value
* @param x X axis value
* @since 1-alpha0
*/
private float x;
@ -58,13 +58,13 @@ public class Vec2 {
* -- GETTER --
* Returns the Y axis value.
*
* @return the Y axis value
* @return Y axis value
* @since 1-alpha0
*
* -- SETTER --
* Sets the Y axis value.
*
* @param y the Y axis value
* @param y Y axis value
* @since 1-alpha0
*/
private float y;
@ -72,8 +72,8 @@ public class Vec2 {
/**
* Constructor.
*
* @param x the X axis value
* @param y the Y axis value
* @param x X axis value
* @param y Y axis value
* @since 1-alpha0
*/
public Vec2(float x, float y) {

View file

@ -45,7 +45,7 @@ public class Vec2i {
* -- SETTER --
* Sets the X axis value.
*
* @param x the X axis value
* @param x X axis value
* @since 1-alpha0
*/
private int x;
@ -58,13 +58,13 @@ public class Vec2i {
* -- GETTER --
* Returns the Y axis value.
*
* @return the Y axis value
* @return Y axis value
* @since 1-alpha0
*
* -- SETTER --
* Sets the Y axis value.
*
* @param y the Y axis value
* @param y Y axis value
* @since 1-alpha0
*/
private int y;
@ -72,8 +72,8 @@ public class Vec2i {
/**
* Constructor.
*
* @param x the X axis value
* @param y the Y axis value
* @param x X axis value
* @param y Y axis value
* @since 1-alpha0
*/
public Vec2i(int x, int y) {

View file

@ -39,13 +39,13 @@ public class Vec3 {
* -- GETTER --
* Returns the X axis value.
*
* @return the X axis value
* @return X axis value
* @since 1-alpha0
*
* -- SETTER --
* Sets the X axis value.
*
* @param x the X axis value
* @param x X axis value
* @since 1-alpha0
*/
private float x;
@ -58,13 +58,13 @@ public class Vec3 {
* -- GETTER --
* Returns the Y axis value.
*
* @return the Y axis value
* @return Y axis value
* @since 1-alpha0
*
* -- SETTER --
* Sets the Y axis value.
*
* @param y the Y axis value
* @param y Y axis value
* @since 1-alpha0
*/
private float y;
@ -77,13 +77,13 @@ public class Vec3 {
* -- GETTER --
* Returns the Z axis value.
*
* @return the Z axis value
* @return Z axis value
* @since 1-alpha0
*
* -- SETTER --
* Sets the Z axis value.
*
* @param z the Z axis value
* @param z Z axis value
* @since 1-alpha0
*/
private float z;
@ -91,9 +91,9 @@ public class Vec3 {
/**
* Constructor.
*
* @param x the X axis value
* @param y the Y axis value
* @param z the Z axis value
* @param x X axis value
* @param y Y axis value
* @param z Z axis value
* @since 1-alpha0
*/
public Vec3(float x, float y, float z) {

View file

@ -39,13 +39,13 @@ public class Vec3i {
* -- GETTER --
* Returns the X axis value.
*
* @return the X axis value
* @return X axis value
* @since 1-alpha0
*
* -- SETTER --
* Sets the X axis value.
*
* @param x the X axis value
* @param x X axis value
* @since 1-alpha0
*/
private int x;
@ -58,13 +58,13 @@ public class Vec3i {
* -- GETTER --
* Returns the Y axis value.
*
* @return the Y axis value
* @return Y axis value
* @since 1-alpha0
*
* -- SETTER --
* Sets the Y axis value.
*
* @param y the Y axis value
* @param y Y axis value
* @since 1-alpha0
*/
private int y;
@ -77,13 +77,13 @@ public class Vec3i {
* -- GETTER --
* Returns the Z axis value.
*
* @return the Z axis value
* @return Z axis value
* @since 1-alpha0
*
* -- SETTER --
* Sets the Z axis value.
*
* @param z the Z axis value
* @param z Z axis value
* @since 1-alpha0
*/
private int z;
@ -91,9 +91,9 @@ public class Vec3i {
/**
* Constructor.
*
* @param x the X axis value
* @param y the Y axis value
* @param z the Z axis value
* @param x X axis value
* @param y Y axis value
* @param z Z axis value
* @since 1-alpha0
*/
public Vec3i(int x, int y, int z) {

View file

@ -28,6 +28,7 @@ import java.util.Set;
/**
* Converts various data types to {@link String}s.
* This class is unfinished.
*
* @since 1-alpha0
*/

View file

@ -73,7 +73,7 @@ public final class Miscellaneous {
/**
* Measures the execution time of a {@link Runnable}.
*
* @param runnable the {@link Runnable} to execute
* @param runnable {@link Runnable} to execute
* @return execution time in milliseconds
* @see Runnable
* @since 1-alpha0

View file

@ -122,7 +122,7 @@ public final class PlaceholderEngine {
/**
* Process all placeholders for a given {@code text}.
*
* @param text the text to process
* @param text text to process
* @param temporaryPlaceholders placeholders to process only for this run
* @return the processed text
* @since 1-alpha0
@ -145,7 +145,7 @@ public final class PlaceholderEngine {
/**
* Process all placeholders for a given {@code text}.
*
* @param text the text to process
* @param text text to process
* @return the processed text
* @since 1-alpha0
*/

View file

@ -82,7 +82,7 @@ public class PropertyParser {
/**
* Constructor.
*
* @param properties the {@link Properties} to use
* @param properties {@link Properties} to use
* @since 1-alpha0
*/
public PropertyParser(@NotNull Properties properties) {
@ -93,7 +93,7 @@ public class PropertyParser {
/**
* Just returns the property value.
*
* @param name the property name
* @param name property name
* @return a {@link String}
* @throws NullPointerException if the specified property does not exist
* @see String
@ -111,7 +111,7 @@ public class PropertyParser {
/**
* Parses a property as a {@link Boolean}.
*
* @param name the property name
* @param name property name
* @return a {@link Boolean}
* @throws NullPointerException if the specified property does not exist
* @see Boolean
@ -137,7 +137,7 @@ public class PropertyParser {
/**
* Parses a property as a {@link Tristate}.
*
* @param name the property name
* @param name property name
* @return a {@link Tristate}
* @throws NullPointerException if the specified property does not exist
* @see Tristate
@ -166,7 +166,7 @@ public class PropertyParser {
/**
* Parses a property as a {@link Byte}.
*
* @param name the property name
* @param name property name
* @return a {@link Byte}
* @throws NullPointerException if the specified property does not exist
* @throws NumberFormatException if the specified property cannot be parsed as a {@link Byte}
@ -191,7 +191,7 @@ public class PropertyParser {
/**
* Parses a property as a {@link Short}.
*
* @param name the property name
* @param name property name
* @return a {@link Short}
* @throws NullPointerException if the specified property does not exist
* @throws NumberFormatException if the specified property cannot be parsed as a {@link Short}
@ -216,7 +216,7 @@ public class PropertyParser {
/**
* Parses a property as an {@link Integer}.
*
* @param name the property name
* @param name property name
* @param unsigned determines if the {@link Integer} is unsigned
* @return an {@link Integer}
* @throws NullPointerException if the specified property does not exist
@ -245,7 +245,7 @@ public class PropertyParser {
/**
* Parses a property as a {@link Long}.
*
* @param name the property name
* @param name property name
* @param unsigned determines if the {@link Long} is unsigned
* @return a {@link Long}
* @throws NullPointerException if the specified property does not exist
@ -274,7 +274,7 @@ public class PropertyParser {
/**
* Parses a property as a {@link Float}.
*
* @param name the property name
* @param name property name
* @return a {@link Float}
* @throws NullPointerException if the specified property does not exist
* @throws NumberFormatException if the specified property cannot be parsed as an {@link Float}
@ -299,7 +299,7 @@ public class PropertyParser {
/**
* Parses a property as a {@link Double}.
*
* @param name the property name
* @param name property name
* @return a {@link Double}
* @throws NullPointerException if the specified property does not exist
* @throws NumberFormatException if the specified property cannot be parsed as an {@link Double}

View file

@ -78,7 +78,7 @@ public class ShortcodeConverter {
/**
* Converts shortcodes into ANSI escape sequences.
*
* @param text the text to process
* @param text text to process
* @param noErrors prevents printing tag/shortcode errors, overrides the engine configuration setting
* @return {@link Ansi} sequence
* @see EngineConfiguration#errorShortcodeConverter
@ -87,12 +87,15 @@ public class ShortcodeConverter {
@NotNull
public Ansi process(@NotNull String text, boolean noErrors) {
Ansi ansi = Ansi.ansi();
boolean tagActive = false;
String part = "";
boolean tagActive = false; // Indicates that a tag is being parsed
String part = ""; // Current part. May be a tag, may be regular text
// Iterate through every character
for (char character : text.toCharArray()) {
if (tagActive) {
// A tag is being parsed
if (character == '>') {
// Tag is ending, disable tag parsing
tagActive = false;
// fg:*
@ -213,29 +216,28 @@ public class ShortcodeConverter {
ansi.a("<" + part + ">");
}
// Reset part
// Empty 'part'
part = "";
} else
// Add character to part
// Tag has not ended yet, add character to 'part'
//noinspection StringConcatenationInLoop // It bloats the code to do it with StringBuilder
part += character;
} else {
// Detect if character is start of tag
// Regular text is being parsed
if (character == '<') {
// Insert previous text
// Tag is starting, insert previous text
ansi.a(part);
// Prepare variables
part = "";
tagActive = true;
part = ""; // Empty 'part'
tagActive = true; // Enable tag processing
} else
// Add character to part
// Regular text, add character to 'part'
//noinspection StringConcatenationInLoop // It bloats the code to do it with StringBuilder
part += character;
}
}
// Insert remaining characters
// Processing ended, insert leftover text
ansi.a(part);
return ansi;
@ -244,7 +246,7 @@ public class ShortcodeConverter {
/**
* Converts shortcodes into ANSI escape sequences.
*
* @param text the text to process
* @param text text to process
* @return {@link Ansi} sequence
* @since 1-alpha0
*/

View file

@ -49,7 +49,7 @@ public class StackTraceParser {
/**
* Constructor.
*
* @param throwable the throwable to use
* @param throwable throwable to use
* @since 1-alpha0
*/
public StackTraceParser(@NotNull Throwable throwable) {

View file

@ -38,7 +38,7 @@ public class UnitLogger {
/**
* Constructor.
*
* @param clazz the parent class
* @param clazz parent class
*/
public UnitLogger(Class<?> clazz) {
this.clazz = clazz;
@ -47,8 +47,8 @@ public class UnitLogger {
/**
* Prints a log message.
*
* @param level the log level
* @param message the log message (and arguments if called with level {@code SILENT_WARNING})
* @param level log level
* @param message log message (and arguments if called with level {@code SILENT_WARNING})
*/
private void log(@NotNull LogLevel level, @NotNull String message, List<@Nullable Object> additionalStuff) {
String messageSingle = message;
@ -92,7 +92,7 @@ public class UnitLogger {
/**
* Prints a diagnostic message.
*
* @param message the diagnostic log message
* @param message diagnostic log message
*/
public void diag(@NotNull String message) {
log(LogLevel.DIAGNOSTIC, message, null);
@ -101,7 +101,7 @@ public class UnitLogger {
/**
* Prints a verbose message.
*
* @param message the verbose log message
* @param message verbose log message
*/
public void verb(@NotNull String message) {
log(LogLevel.VERBOSE, message, null);
@ -120,7 +120,7 @@ public class UnitLogger {
/**
* Prints a informational message.
*
* @param message the informational log message
* @param message informational log message
*/
public void info(@NotNull String message) {
log(LogLevel.INFORMATIONAL, message, null);
@ -129,7 +129,7 @@ public class UnitLogger {
/**
* Prints a warning message.
*
* @param message the warning log message
* @param message warning log message
*/
public void warn(@NotNull String message) {
log(LogLevel.WARNING, message, null);
@ -138,7 +138,7 @@ public class UnitLogger {
/**
* Prints a error message.
*
* @param message the error log message
* @param message error log message
*/
public void error(@NotNull String message) {
log(LogLevel.ERROR, message, null);

View file

@ -89,13 +89,15 @@ public final class VulkanSubsystem implements ApiMainClass {
return;
}
long initTime = Miscellaneous.measureExecutionTime(() -> {
// Warn about instability
logger.warn("The Vulkan Graphics API is in an unfinished state. Trying to initialize the Graphics API will cause an engine crash.");
// Register Graphics API
GraphicsSubsystem.getInstance().registerGraphicsApi(this);
});
logger.info("Initialized subsystem");
logger.info("Initialized subsystem in " + initTime + "ms");
}
/** {@inheritDoc} */

View file

@ -157,11 +157,11 @@ public class CompatibilityLogger extends LegacyAbstractLogger {
/**
* Just redirects to {@code forwardLogCall}.
*
* @param level the SLF4J level for this event
* @param marker The marker to be used for this event, may be null.
* @param messagePattern The message pattern which will be parsed and formatted
* @param arguments the array of arguments to be formatted, may be null
* @param throwable The exception whose stack trace should be logged, may be null
* @param level SLF4J level for this event
* @param marker marker to be used for this event, may be null.
* @param messagePattern message pattern which will be parsed and formatted
* @param arguments array of arguments to be formatted, may be null
* @param throwable exception whose stack trace should be logged, may be null
* @see CompatibilityLogger#forwardLogCall(Level, String, Object[], Throwable)
*/
@Override