diff --git a/buildSrc/src/main/kotlin/cc-tweaked.java-convention.gradle.kts b/buildSrc/src/main/kotlin/cc-tweaked.java-convention.gradle.kts index 84029760b..e5c26619d 100644 --- a/buildSrc/src/main/kotlin/cc-tweaked.java-convention.gradle.kts +++ b/buildSrc/src/main/kotlin/cc-tweaked.java-convention.gradle.kts @@ -94,9 +94,8 @@ sourceSets.all { check("InlineMeSuggester", CheckSeverity.OFF) // Minecraft uses @Deprecated liberally // Too many false positives right now. Maybe we need an indirection for it later on. check("ReferenceEquality", CheckSeverity.OFF) - check("UnusedVariable", CheckSeverity.OFF) // Too many false positives with records. + check("EnumOrdinal", CheckSeverity.OFF) // For now. We could replace most of these with EnumMap. check("OperatorPrecedence", CheckSeverity.OFF) // For now. - check("AlreadyChecked", CheckSeverity.OFF) // Seems to be broken? check("NonOverridingEquals", CheckSeverity.OFF) // Peripheral.equals makes this hard to avoid check("FutureReturnValueIgnored", CheckSeverity.OFF) // Too many false positives with Netty diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/CCTweakedExtension.kt b/buildSrc/src/main/kotlin/cc/tweaked/gradle/CCTweakedExtension.kt index c254d55b6..3066459e0 100644 --- a/buildSrc/src/main/kotlin/cc/tweaked/gradle/CCTweakedExtension.kt +++ b/buildSrc/src/main/kotlin/cc/tweaked/gradle/CCTweakedExtension.kt @@ -35,7 +35,6 @@ import java.io.File import java.io.IOException import java.net.URI -import java.net.URL import java.util.regex.Pattern abstract class CCTweakedExtension( @@ -226,12 +225,12 @@ fun jacoco(task: NamedDomainObjectProvider) where T : Task, T : JavaForkO * where possible. */ fun downloadFile(label: String, url: String): File { - val url = URL(url) - val path = File(url.path) + val uri = URI(url) + val path = File(uri.path) project.repositories.ivy { name = label - setUrl(URI(url.protocol, url.userInfo, url.host, url.port, path.parent, null, null)) + setUrl(URI(uri.scheme, uri.userInfo, uri.host, uri.port, path.parent, null, null)) patternLayout { artifact("[artifact].[ext]") } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fd7a87ec9..42534f269 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ jmh = "1.37" cctJavadoc = "1.8.2" checkstyle = "10.14.1" curseForgeGradle = "1.0.14" -errorProne-core = "2.23.0" +errorProne-core = "2.27.0" errorProne-plugin = "3.1.0" fabric-loom = "1.6.7" forgeGradle = "6.0.21" diff --git a/projects/common/src/main/java/dan200/computercraft/shared/peripheral/generic/GenericPeripheralProvider.java b/projects/common/src/main/java/dan200/computercraft/shared/peripheral/generic/GenericPeripheralProvider.java index 09670ac20..0bdce7984 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/peripheral/generic/GenericPeripheralProvider.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/peripheral/generic/GenericPeripheralProvider.java @@ -13,8 +13,6 @@ import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.block.entity.BlockEntity; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.annotation.Nullable; import java.util.ArrayList; @@ -29,8 +27,6 @@ * @param A platform-specific type, used for the invalidation callback. */ public final class GenericPeripheralProvider { - private static final Logger LOG = LoggerFactory.getLogger(GenericPeripheralProvider.class); - private final List> lookups = new ArrayList<>(); /** diff --git a/projects/common/src/main/java/dan200/computercraft/shared/util/IDAssigner.java b/projects/common/src/main/java/dan200/computercraft/shared/util/IDAssigner.java index fd6ec23ab..30c17f2a0 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/util/IDAssigner.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/util/IDAssigner.java @@ -33,7 +33,6 @@ public final class IDAssigner { private final Path idFile; private final Path newIdFile; - private boolean atomicMove = true; private @Nullable Map ids; public IDAssigner(Path path) { diff --git a/projects/common/src/main/java/dan200/computercraft/shared/util/TickScheduler.java b/projects/common/src/main/java/dan200/computercraft/shared/util/TickScheduler.java index fd459e5c1..f54baf78e 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/util/TickScheduler.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/util/TickScheduler.java @@ -4,6 +4,7 @@ package dan200.computercraft.shared.util; +import com.google.errorprone.annotations.Keep; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceKey; import net.minecraft.server.level.ChunkLevel; @@ -132,6 +133,7 @@ public static class Token { /** * The current state of this token. */ + @Keep private volatile State $state = State.IDLE; public Token(BlockEntity owner) { diff --git a/projects/common/src/testMod/java/dan200/computercraft/mixin/gametest/GameTestSequenceMixin.java b/projects/common/src/testMod/java/dan200/computercraft/mixin/gametest/GameTestSequenceMixin.java index 48d2eaed0..33a970a7c 100644 --- a/projects/common/src/testMod/java/dan200/computercraft/mixin/gametest/GameTestSequenceMixin.java +++ b/projects/common/src/testMod/java/dan200/computercraft/mixin/gametest/GameTestSequenceMixin.java @@ -42,6 +42,7 @@ public void tickAndContinue(long ticks) { } @Shadow + @SuppressWarnings("unused") private void tick(long tick) { } } diff --git a/projects/common/src/testMod/java/dan200/computercraft/mixin/gametest/client/MinecraftMixin.java b/projects/common/src/testMod/java/dan200/computercraft/mixin/gametest/client/MinecraftMixin.java index 52ab5c742..801bd81b6 100644 --- a/projects/common/src/testMod/java/dan200/computercraft/mixin/gametest/client/MinecraftMixin.java +++ b/projects/common/src/testMod/java/dan200/computercraft/mixin/gametest/client/MinecraftMixin.java @@ -38,7 +38,7 @@ class MinecraftMixin implements MinecraftExtensions { private final AtomicBoolean isStable = new AtomicBoolean(false); @Inject(method = "runTick", at = @At("TAIL")) - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private void updateStable(boolean render, CallbackInfo ci) { isStable.set( level != null && player != null && diff --git a/projects/common/src/testMod/java/dan200/computercraft/mixin/gametest/client/WorldOpenFlowsMixin.java b/projects/common/src/testMod/java/dan200/computercraft/mixin/gametest/client/WorldOpenFlowsMixin.java index ec3c861b7..f0fbbd9c4 100644 --- a/projects/common/src/testMod/java/dan200/computercraft/mixin/gametest/client/WorldOpenFlowsMixin.java +++ b/projects/common/src/testMod/java/dan200/computercraft/mixin/gametest/client/WorldOpenFlowsMixin.java @@ -22,7 +22,7 @@ public class WorldOpenFlowsMixin { * @reason Makes it easier to run tests. We can switch to an @Inject if this becomes a problem. */ @Overwrite - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private void askForBackup(Screen screen, String level, boolean customised, Runnable action) { action.run(); } diff --git a/projects/fabric/src/client/java/dan200/computercraft/mixin/client/GameRendererMixin.java b/projects/fabric/src/client/java/dan200/computercraft/mixin/client/GameRendererMixin.java index b0ca49e29..a7d123974 100644 --- a/projects/fabric/src/client/java/dan200/computercraft/mixin/client/GameRendererMixin.java +++ b/projects/fabric/src/client/java/dan200/computercraft/mixin/client/GameRendererMixin.java @@ -27,7 +27,7 @@ class GameRendererMixin { private Map shaders; @Inject(method = "reloadShaders", at = @At(value = "TAIL")) - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private void onReloadShaders(ResourceProvider resourceManager, CallbackInfo ci) { try { ClientRegistry.registerShaders(resourceManager, (shader, callback) -> { diff --git a/projects/fabric/src/client/java/dan200/computercraft/mixin/client/ItemFrameRendererMixin.java b/projects/fabric/src/client/java/dan200/computercraft/mixin/client/ItemFrameRendererMixin.java index 88b766edc..5be6df1b9 100644 --- a/projects/fabric/src/client/java/dan200/computercraft/mixin/client/ItemFrameRendererMixin.java +++ b/projects/fabric/src/client/java/dan200/computercraft/mixin/client/ItemFrameRendererMixin.java @@ -22,7 +22,7 @@ class ItemFrameRendererMixin { at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/vertex/PoseStack;mulPose(Lorg/joml/Quaternionf;)V", ordinal = 2, shift = At.Shift.AFTER), cancellable = true ) - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private void render(ItemFrame entity, float yaw, float partialTicks, PoseStack pose, MultiBufferSource buffers, int light, CallbackInfo ci) { if (ClientHooks.onRenderItemFrame(pose, buffers, entity, entity.getItem(), light)) { ci.cancel(); diff --git a/projects/fabric/src/client/java/dan200/computercraft/mixin/client/ItemInHandRendererMixin.java b/projects/fabric/src/client/java/dan200/computercraft/mixin/client/ItemInHandRendererMixin.java index 7f934cb4e..3692af1d3 100644 --- a/projects/fabric/src/client/java/dan200/computercraft/mixin/client/ItemInHandRendererMixin.java +++ b/projects/fabric/src/client/java/dan200/computercraft/mixin/client/ItemInHandRendererMixin.java @@ -19,7 +19,7 @@ @Mixin(ItemInHandRenderer.class) class ItemInHandRendererMixin { @Inject(method = "renderArmWithItem", at = @At("HEAD"), cancellable = true) - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private void onRenderItem( AbstractClientPlayer player, float partialTicks, float pitch, InteractionHand hand, float swingProgress, ItemStack stack, float equippedProgress, PoseStack transform, MultiBufferSource buffer, int combinedLight, CallbackInfo ci diff --git a/projects/fabric/src/client/java/dan200/computercraft/mixin/client/MinecraftMixin.java b/projects/fabric/src/client/java/dan200/computercraft/mixin/client/MinecraftMixin.java index 262439220..23244e8b9 100644 --- a/projects/fabric/src/client/java/dan200/computercraft/mixin/client/MinecraftMixin.java +++ b/projects/fabric/src/client/java/dan200/computercraft/mixin/client/MinecraftMixin.java @@ -25,13 +25,13 @@ class MinecraftMixin { private ReloadableResourceManager resourceManager; @Inject(method = "clearLevel(Lnet/minecraft/client/gui/screens/Screen;)V", at = @At("HEAD")) - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private void clearLevel(Screen screen, CallbackInfo ci) { ClientHooks.onWorldUnload(); } @Inject(method = "setLevel", at = @At("HEAD")) - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private void setLevel(ClientLevel screen, CallbackInfo ci) { ClientHooks.onWorldUnload(); } @@ -44,6 +44,7 @@ private void setLevel(ClientLevel screen, CallbackInfo ci) { ordinal = 0 ) ) + @SuppressWarnings("unused") public void beforeInitialResourceReload(GameConfig gameConfig, CallbackInfo ci) { ClientRegistry.registerReloadListeners(resourceManager::registerReloadListener, (Minecraft) (Object) this); } diff --git a/projects/fabric/src/client/java/dan200/computercraft/mixin/client/MultiPlayerGameModeMixin.java b/projects/fabric/src/client/java/dan200/computercraft/mixin/client/MultiPlayerGameModeMixin.java index 85377cebc..484389104 100644 --- a/projects/fabric/src/client/java/dan200/computercraft/mixin/client/MultiPlayerGameModeMixin.java +++ b/projects/fabric/src/client/java/dan200/computercraft/mixin/client/MultiPlayerGameModeMixin.java @@ -31,7 +31,7 @@ class MultiPlayerGameModeMixin { cancellable = true, locals = LocalCapture.CAPTURE_FAILHARD ) - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private void onBlockBreak(BlockPos pos, CallbackInfoReturnable cir, Level level, BlockState state, Block block) { if (!FabricCommonHooks.onBlockDestroy(level, minecraft.player, pos, state, null)) cir.setReturnValue(true); } diff --git a/projects/fabric/src/client/java/dan200/computercraft/mixin/client/SoundEngineMixin.java b/projects/fabric/src/client/java/dan200/computercraft/mixin/client/SoundEngineMixin.java index 95b1c7555..943d3207a 100644 --- a/projects/fabric/src/client/java/dan200/computercraft/mixin/client/SoundEngineMixin.java +++ b/projects/fabric/src/client/java/dan200/computercraft/mixin/client/SoundEngineMixin.java @@ -26,13 +26,13 @@ class SoundEngineMixin { private static SoundEngine self; @Inject(method = "play", at = @At(value = "HEAD")) - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private void playSound(SoundInstance sound, CallbackInfo ci) { self = (SoundEngine) (Object) this; } @Inject(at = @At("TAIL"), method = "method_19755") - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private static void onStream(AudioStream stream, Channel channel, CallbackInfo ci) { SpeakerManager.onPlayStreaming(assertNonNull(self), channel, stream); } diff --git a/projects/fabric/src/main/java/dan200/computercraft/mixin/ChunkMapMixin.java b/projects/fabric/src/main/java/dan200/computercraft/mixin/ChunkMapMixin.java index 29512445b..f99aca02b 100644 --- a/projects/fabric/src/main/java/dan200/computercraft/mixin/ChunkMapMixin.java +++ b/projects/fabric/src/main/java/dan200/computercraft/mixin/ChunkMapMixin.java @@ -29,13 +29,13 @@ class ChunkMapMixin { ServerLevel level; @Inject(method = "playerLoadedChunk", at = @At("TAIL")) - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private void onPlayerLoadedChunk(ServerPlayer player, MutableObject packetCache, LevelChunk chunk, CallbackInfo callback) { CommonHooks.onChunkWatch(chunk, player); } @Inject(method = "updateChunkScheduling", at = @At("HEAD")) - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private void onUpdateChunkScheduling(long chunkPos, int newLevel, @Nullable ChunkHolder holder, int oldLevel, CallbackInfoReturnable callback) { CommonHooks.onChunkTicketLevelChanged(level, chunkPos, oldLevel, newLevel); } diff --git a/projects/fabric/src/main/java/dan200/computercraft/mixin/EntityMixin.java b/projects/fabric/src/main/java/dan200/computercraft/mixin/EntityMixin.java index 5e97f4e5c..8014b5dee 100644 --- a/projects/fabric/src/main/java/dan200/computercraft/mixin/EntityMixin.java +++ b/projects/fabric/src/main/java/dan200/computercraft/mixin/EntityMixin.java @@ -20,7 +20,7 @@ class EntityMixin { at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;addFreshEntity(Lnet/minecraft/world/entity/Entity;)Z"), cancellable = true ) - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private void spawnAtLocation(ItemStack stack, float yOffset, CallbackInfoReturnable cb) { if (CommonHooks.onLivingDrop((Entity) (Object) this, stack)) cb.setReturnValue(null); } diff --git a/projects/fabric/src/main/java/dan200/computercraft/mixin/ItemEntityMixin.java b/projects/fabric/src/main/java/dan200/computercraft/mixin/ItemEntityMixin.java index 71c94154f..8dc004b9e 100644 --- a/projects/fabric/src/main/java/dan200/computercraft/mixin/ItemEntityMixin.java +++ b/projects/fabric/src/main/java/dan200/computercraft/mixin/ItemEntityMixin.java @@ -16,7 +16,7 @@ @Mixin(ItemEntity.class) abstract class ItemEntityMixin { @Inject(method = "tick", at = @At("HEAD")) - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private void onTick(CallbackInfo ci) { var stack = getItem(); if (stack.getItem() instanceof PocketComputerItem pocket) { diff --git a/projects/fabric/src/main/java/dan200/computercraft/mixin/TagsProviderMixin.java b/projects/fabric/src/main/java/dan200/computercraft/mixin/TagsProviderMixin.java index 2e844e5c8..bcef75dca 100644 --- a/projects/fabric/src/main/java/dan200/computercraft/mixin/TagsProviderMixin.java +++ b/projects/fabric/src/main/java/dan200/computercraft/mixin/TagsProviderMixin.java @@ -21,7 +21,7 @@ @Mixin(TagsProvider.class) class TagsProviderMixin { @Inject(at = @At("HEAD"), method = "method_49658", cancellable = true) - @SuppressWarnings("UnusedMethod") + @SuppressWarnings("unused") private static void onVerifyPresent(Predicate predicate1, Predicate predicate2, TagEntry tag, CallbackInfoReturnable cir) { var element = ((TagEntryAccessor) tag).computercraft$elementOrTag(); if (element.tag() && element.id().getNamespace().equals("minecraft")) cir.setReturnValue(false);