Get rid of unwanted annotations at compile time

This commit is contained in:
Vankka 2024-07-07 13:29:01 +03:00
parent d6ece0abe7
commit 62afe293e0
No known key found for this signature in database
GPG Key ID: 62E48025ED4E7EBB
22 changed files with 54 additions and 49 deletions

View File

@ -4,7 +4,6 @@ apply plugin: 'maven-publish'
dependencies {
// Annotations
compileOnlyApi(libs.jetbrains.annotations)
compileOnlyApi(libs.findbugs.annotations)
// JDA
api(libs.jda) {
@ -17,6 +16,7 @@ dependencies {
// Relocations are in buildscript/api.gradle
sourceSets {
// Annotation Processor
ap {
java {
compileClasspath += sourceSets.main.compileClasspath + sourceSets.main.output

View File

@ -37,6 +37,15 @@ subprojects {
runtimeClasspath.extendsFrom runtimeExclude
runtimeDownloadOnly.extendsFrom runtimeExclude
// Exclude dependencies at compile time
compileExclude {
// Stuff we aren't using but is included with dependencies
exclude group: 'org.checkerframework', module: 'checker-qual'
exclude group: 'com.google.code.findbugs', module: 'jsr305'
exclude group: 'com.google.errorprone', module: 'error_prone_annotations'
}
compileClasspath.extendsFrom compileExclude
// Create runtimeDownloadApi configuration (compileOnlyApi + runtimeDownloadOnly)
runtimeDownloadApi
compileOnlyApi.extendsFrom runtimeDownloadApi
@ -141,7 +150,7 @@ subprojects {
if (rootProject.version.endsWith("-SNAPSHOT")) {
var gitHash = indraGit.commit().getName()
if (gitHash.length() > 7) {
gitHash = gitHash.substring(0, 7);
gitHash = gitHash.substring(0, 7)
}
archiveClassifier = gitHash
}

View File

@ -23,6 +23,7 @@ import org.bukkit.command.BlockCommandSender;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ProxiedCommandSender;
import org.bukkit.entity.Entity;
import org.jetbrains.annotations.MustBeInvokedByOverriders;
import org.jetbrains.annotations.NotNull;
public interface IFoliaScheduler extends ServerScheduler, IBukkitScheduler {
@ -52,16 +53,19 @@ public interface IFoliaScheduler extends ServerScheduler, IBukkitScheduler {
}
@Override
@MustBeInvokedByOverriders
default void runOnMainThread(@NotNull Runnable task) {
runWithArgs((server, plugin) -> server.getGlobalRegionScheduler().execute(plugin, task));
}
@Override
@MustBeInvokedByOverriders
default void runOnMainThreadLaterInTicks(@NotNull Runnable task, int ticks) {
runWithArgs((server, plugin) -> server.getGlobalRegionScheduler().runDelayed(plugin, r -> task.run(), ticks));
}
@Override
@MustBeInvokedByOverriders
default void runOnMainThreadAtFixedRateInTicks(@NotNull Runnable task, int initialTicks, int rateTicks) {
runWithArgs((server, plugin) -> server.getGlobalRegionScheduler().execute(plugin, task));
}

View File

@ -96,10 +96,10 @@ import okhttp3.OkHttpClient;
import okhttp3.Request;
import org.apache.commons.lang3.StringUtils;
import org.intellij.lang.annotations.Language;
import org.jetbrains.annotations.MustBeInvokedByOverriders;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.annotation.OverridingMethodsMustInvokeSuper;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Constructor;
@ -558,7 +558,7 @@ public abstract class AbstractDiscordSRV<
}
}
@OverridingMethodsMustInvokeSuper
@MustBeInvokedByOverriders
protected void enable() throws Throwable {
if (eventBus == null) {
// Error that should only occur with new platforms
@ -627,7 +627,7 @@ public abstract class AbstractDiscordSRV<
throw new StorageException("Unknown storage backend \"" + backend + "\"");
}
@OverridingMethodsMustInvokeSuper
@MustBeInvokedByOverriders
protected void disable() {
Status status = this.status.get();
if (status == Status.INITIALIZED || status.isShutdown()) {
@ -647,7 +647,7 @@ public abstract class AbstractDiscordSRV<
this.status.set(Status.SHUTDOWN);
}
@OverridingMethodsMustInvokeSuper
@MustBeInvokedByOverriders
public List<ReloadResult> reload(Set<ReloadFlag> flags, boolean initial) throws Throwable {
if (!initial) {
logger().info("Reloading DiscordSRV...");

View File

@ -26,9 +26,9 @@ import com.discordsrv.common.messageforwarding.game.AwardMessageModule;
import com.discordsrv.common.messageforwarding.game.DeathMessageModule;
import com.discordsrv.common.player.provider.ServerPlayerProvider;
import com.discordsrv.common.scheduler.ServerScheduler;
import org.jetbrains.annotations.MustBeInvokedByOverriders;
import org.jetbrains.annotations.NotNull;
import javax.annotation.OverridingMethodsMustInvokeSuper;
import java.util.concurrent.CompletableFuture;
public abstract class ServerDiscordSRV<
@ -79,7 +79,7 @@ public abstract class ServerDiscordSRV<
});
}
@OverridingMethodsMustInvokeSuper
@MustBeInvokedByOverriders
protected void serverStarted() {
serverStarted = true;
moduleManager().enableModules();

View File

@ -18,7 +18,7 @@
package com.discordsrv.common.config.configurate.fielddiscoverer;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.configurate.objectmapping.ConfigSerializable;
import org.spongepowered.configurate.objectmapping.FieldDiscoverer;
import org.spongepowered.configurate.serialize.SerializationException;

View File

@ -18,7 +18,7 @@
package com.discordsrv.common.config.configurate.fielddiscoverer;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.configurate.objectmapping.FieldData;
import org.spongepowered.configurate.objectmapping.FieldDiscoverer;
import org.spongepowered.configurate.serialize.SerializationException;

View File

@ -161,7 +161,7 @@ public abstract class ConfigurateConfigManager<T, LT extends AbstractConfigurati
}
@Override
public void serialize(Type type, @org.checkerframework.checker.nullness.qual.Nullable String obj, ConfigurationNode node) {
public void serialize(Type type, @Nullable String obj, ConfigurationNode node) {
RepresentationHint<ScalarStyle> hint = YamlConfigurationLoader.SCALAR_STYLE;
ScalarStyle style = node.hint(hint);

View File

@ -19,7 +19,7 @@
package com.discordsrv.common.config.configurate.serializer;
import com.discordsrv.api.color.Color;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.serialize.SerializationException;
import org.spongepowered.configurate.serialize.TypeSerializer;

View File

@ -22,7 +22,7 @@ import com.discordsrv.api.color.Color;
import com.discordsrv.api.discord.entity.message.DiscordMessageEmbed;
import com.discordsrv.common.config.configurate.manager.abstraction.ConfigurateConfigManager;
import net.dv8tion.jda.api.entities.Role;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.serialize.SerializationException;
import org.spongepowered.configurate.serialize.TypeSerializer;

View File

@ -20,7 +20,7 @@ package com.discordsrv.common.config.configurate.serializer;
import com.discordsrv.common.logging.Logger;
import io.leangen.geantyref.GenericTypeReflector;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.serialize.SerializationException;
import org.spongepowered.configurate.serialize.TypeSerializer;

View File

@ -19,7 +19,7 @@
package com.discordsrv.common.config.configurate.serializer;
import com.discordsrv.common.config.helper.MinecraftMessage;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.serialize.SerializationException;
import org.spongepowered.configurate.serialize.TypeSerializer;

View File

@ -19,7 +19,7 @@
package com.discordsrv.common.config.configurate.serializer;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.serialize.SerializationException;
import org.spongepowered.configurate.serialize.TypeSerializer;

View File

@ -21,7 +21,7 @@ package com.discordsrv.common.config.configurate.serializer;
import com.discordsrv.api.discord.entity.message.DiscordMessageEmbed;
import com.discordsrv.api.discord.entity.message.SendableDiscordMessage;
import com.discordsrv.common.config.configurate.manager.abstraction.ConfigurateConfigManager;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.serialize.SerializationException;
import org.spongepowered.configurate.serialize.TypeSerializer;

View File

@ -19,7 +19,7 @@
package com.discordsrv.common.config.main.channels.base;
import com.discordsrv.common.config.main.generic.DestinationConfig;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.objectmapping.ObjectMapper;
import org.spongepowered.configurate.serialize.SerializationException;

View File

@ -27,7 +27,6 @@ import com.discordsrv.common.config.messages.MessagesConfig;
import com.discordsrv.common.debug.file.DebugFile;
import com.discordsrv.common.debug.file.KeyValueDebugFile;
import com.discordsrv.common.debug.file.TextDebugFile;
import com.discordsrv.common.exception.ConfigException;
import com.discordsrv.common.paste.Paste;
import com.discordsrv.common.paste.PasteService;
import com.discordsrv.common.plugin.Plugin;

View File

@ -55,8 +55,6 @@ import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
import net.dv8tion.jda.api.entities.emoji.CustomEmoji;
import net.dv8tion.jda.api.exceptions.ErrorResponseException;
import net.dv8tion.jda.api.requests.ErrorResponse;
import org.checkerframework.checker.index.qual.NonNegative;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -324,7 +322,7 @@ public class DiscordAPIImpl implements DiscordAPI {
private class WebhookCacheLoader implements AsyncCacheLoader<Long, WebhookClient<Message>> {
@Override
public @NonNull CompletableFuture<WebhookClient<Message>> asyncLoad(@NonNull Long channelId, @NonNull Executor executor) {
public @NotNull CompletableFuture<WebhookClient<Message>> asyncLoad(@NotNull Long channelId, @NotNull Executor executor) {
JDA jda = discordSRV.jda();
if (jda == null) {
return notReady();
@ -393,17 +391,17 @@ public class DiscordAPIImpl implements DiscordAPI {
}
@Override
public long expireAfterCreate(@NonNull Long channelId, @NonNull WebhookClient webhookClient, long currentTime) {
public long expireAfterCreate(@NotNull Long channelId, @NotNull WebhookClient webhookClient, long currentTime) {
return expireAfterWrite(channelId);
}
@Override
public long expireAfterUpdate(@NonNull Long channelId, @NonNull WebhookClient webhookClient, long currentTime, @NonNegative long currentDuration) {
public long expireAfterUpdate(@NotNull Long channelId, @NotNull WebhookClient webhookClient, long currentTime, long currentDuration) {
return expireAfterWrite(channelId);
}
@Override
public long expireAfterRead(@NonNull Long channelId, @NonNull WebhookClient webhookClient, long currentTime, @NonNegative long currentDuration) {
public long expireAfterRead(@NotNull Long channelId, @NotNull WebhookClient webhookClient, long currentTime, long currentDuration) {
return isConfiguredChannel(channelId) ? Long.MAX_VALUE : TimeUnit.MINUTES.toNanos(10);
}
}

View File

@ -32,9 +32,9 @@ import com.discordsrv.common.groupsync.enums.GroupSyncCause;
import com.discordsrv.common.groupsync.enums.GroupSyncResult;
import com.discordsrv.common.someone.Someone;
import com.discordsrv.common.sync.AbstractSyncModule;
import com.discordsrv.common.sync.result.ISyncResult;
import com.discordsrv.common.sync.SyncFail;
import com.discordsrv.common.sync.result.GenericSyncResults;
import com.discordsrv.common.sync.result.ISyncResult;
import com.github.benmanes.caffeine.cache.Cache;
import org.jetbrains.annotations.Nullable;

View File

@ -27,8 +27,6 @@ import com.github.benmanes.caffeine.cache.AsyncCacheLoader;
import com.github.benmanes.caffeine.cache.AsyncLoadingCache;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Expiry;
import org.checkerframework.checker.index.qual.NonNegative;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.jetbrains.annotations.NotNull;
import java.util.Optional;
@ -55,26 +53,26 @@ public abstract class CachedLinkProvider implements LinkProvider {
this.playerToUser = discordSRV.caffeineBuilder()
.expireAfter(new Expiry<UUID, Long>() {
@Override
public long expireAfterCreate(@NonNull UUID key, @NonNull Long value, long currentTime) {
public long expireAfterCreate(@NotNull UUID key, @NotNull Long value, long currentTime) {
return TimeUnit.MINUTES.toNanos(5);
}
@Override
public long expireAfterUpdate(
@NonNull UUID key,
@NonNull Long value,
@NotNull UUID key,
@NotNull Long value,
long currentTime,
@NonNegative long currentDuration
long currentDuration
) {
return currentDuration;
}
@Override
public long expireAfterRead(
@NonNull UUID key,
@NonNull Long value,
@NotNull UUID key,
@NotNull Long value,
long currentTime,
@NonNegative long currentDuration
long currentDuration
) {
return currentDuration;
}
@ -86,15 +84,15 @@ public abstract class CachedLinkProvider implements LinkProvider {
})
.buildAsync(new AsyncCacheLoader<UUID, Long>() {
@Override
public @NonNull CompletableFuture<Long> asyncLoad(@NonNull UUID key, @NonNull Executor executor) {
public @NotNull CompletableFuture<Long> asyncLoad(@NotNull UUID key, @NotNull Executor executor) {
return queryUserId(key, linkingAllowed.remove(key)).thenApply(opt -> opt.orElse(UNLINKED_USER));
}
@Override
public @NonNull CompletableFuture<Long> asyncReload(
@NonNull UUID key,
@NonNull Long oldValue,
@NonNull Executor executor
public @NotNull CompletableFuture<Long> asyncReload(
@NotNull UUID key,
@NotNull Long oldValue,
@NotNull Executor executor
) {
if (discordSRV.playerProvider().player(key) == null) {
// Don't keep players that aren't online in cache

View File

@ -20,10 +20,9 @@ package com.discordsrv.common.module.type;
import com.discordsrv.common.DiscordSRV;
import com.discordsrv.common.logging.Logger;
import org.jetbrains.annotations.MustBeInvokedByOverriders;
import org.jetbrains.annotations.NotNull;
import javax.annotation.OverridingMethodsMustInvokeSuper;
public abstract class PluginIntegration<DT extends DiscordSRV> extends AbstractModule<DT> {
public PluginIntegration(DT discordSRV) {
@ -42,7 +41,7 @@ public abstract class PluginIntegration<DT extends DiscordSRV> extends AbstractM
public abstract String getIntegrationName();
@Override
@OverridingMethodsMustInvokeSuper
@MustBeInvokedByOverriders
public boolean isEnabled() {
if (discordSRV.config().integrations.disabledIntegrations.contains(getIntegrationName())) {
return false;

View File

@ -33,9 +33,8 @@ import com.discordsrv.common.placeholder.provider.AnnotationPlaceholderProvider;
import com.github.benmanes.caffeine.cache.CacheLoader;
import com.github.benmanes.caffeine.cache.LoadingCache;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@ -342,7 +341,7 @@ public class PlaceholderServiceImpl implements PlaceholderService {
}
@Override
public @Nullable Set<PlaceholderProvider> load(@NonNull Class<?> key) {
public @Nullable Set<PlaceholderProvider> load(@NotNull Class<?> key) {
return loadProviders(key, null);
}
}

View File

@ -35,14 +35,14 @@ dependencyResolutionManagement {
library('velocity', 'com.velocitypowered', 'velocity-api').version('3.0.0')
// DependencyDownload
version('dependencydownload', '1.3.1-SNAPSHOT')
version('dependencydownload', '1.3.1')
plugin('dependencydownload-plugin', 'dev.vankka.dependencydownload.plugin').versionRef('dependencydownload')
library('dependencydownload-runtime', 'dev.vankka', 'dependencydownload-runtime').versionRef('dependencydownload')
library('dependencydownload-jarinjar-bootstrap', 'dev.vankka', 'dependencydownload-jarinjar-bootstrap').versionRef('dependencydownload')
library('dependencydownload-jarinjar-loader', 'dev.vankka', 'dependencydownload-jarinjar-loader').versionRef('dependencydownload')
// MinecraftDependencyDownload
version('mcdependencydownload', '1.0.0-SNAPSHOT')
version('mcdependencydownload', '1.0.0')
library('mcdependencydownload-bukkit-bootstrap', 'dev.vankka', 'minecraftdependencydownload-bukkit').versionRef('mcdependencydownload')
library('mcdependencydownload-bukkit-loader', 'dev.vankka', 'minecraftdependencydownload-bukkit-loader').versionRef('mcdependencydownload')
library('mcdependencydownload-bungee-bootstrap', 'dev.vankka', 'minecraftdependencydownload-bungee').versionRef('mcdependencydownload')
@ -51,7 +51,6 @@ dependencyResolutionManagement {
// Annotations
library('jetbrains-annotations', 'org.jetbrains', 'annotations').version('24.1.0')
library('findbugs-annotations', 'com.google.code.findbugs', 'jsr305').version('3.0.2')
// JDA
library('jda', 'net.dv8tion', 'JDA').version('5.0.0-beta.20')