diff --git a/build.gradle b/build.gradle index 678f16aaeb..15f3708d66 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,5 @@ plugins { id 'fabric-loom' version '1.6-SNAPSHOT' - id 'io.github.juuxel.loom-quiltflower' version '1.7.3' id 'maven-publish' } diff --git a/src/main/java/carpet/api/settings/SettingsManager.java b/src/main/java/carpet/api/settings/SettingsManager.java index b8a0430f72..3faa94ce26 100644 --- a/src/main/java/carpet/api/settings/SettingsManager.java +++ b/src/main/java/carpet/api/settings/SettingsManager.java @@ -78,7 +78,7 @@ public class SettingsManager { private MinecraftServer server; private final List observers = new ArrayList<>(); private static final List staticObservers = new ArrayList<>(); - static record ConfigReadResult(Map ruleMap, boolean locked) {} + record ConfigReadResult(Map ruleMap, boolean locked) {} /** *

Defines a class that can be notified about a {@link CarpetRule} changing.

@@ -88,7 +88,7 @@ static record ConfigReadResult(Map ruleMap, boolean locked) {} * @see SettingsManager#registerGlobalRuleObserver(RuleObserver) */ @FunctionalInterface - public static interface RuleObserver { + public interface RuleObserver { /** *

Notifies this {@link RuleObserver} about the change of a {@link CarpetRule}.

* @@ -362,7 +362,7 @@ private void disableBooleanCommands() if (rule.suggestions().contains("false")) rule.set(server.createCommandSourceStack(), "false"); else - CarpetSettings.LOG.warn("Couldn't disable command rule "+ rule.name() + ": it doesn't suggest false as a valid option"); + CarpetSettings.LOG.warn("Couldn't disable command rule {}: it doesn't suggest false as a valid option", rule.name()); } catch (InvalidRuleValueException e) { throw new IllegalStateException(e); // contract of CarpetRule.suggestions() } @@ -569,7 +569,7 @@ static CompletableFuture suggestMatchingContains(Stream str String query = suggestionsBuilder.getRemaining().toLowerCase(Locale.ROOT); stream.forEach((listItem) -> { // Regex camelCase Search - var words = Arrays.stream(listItem.split("(? s.toLowerCase(Locale.ROOT)).collect(Collectors.toList()); + var words = Arrays.stream(listItem.split("(? s.toLowerCase(Locale.ROOT)).toList(); var prefixes = new ArrayList(words.size()); for (int i = 0; i < words.size(); i++) prefixes.add(String.join("", words.subList(i, words.size()))); @@ -658,8 +658,8 @@ private int displayRuleMenu(CommandSourceStack source, CarpetRule rule) //TOD tags.add(Messenger.c("c ["+ translated +"]", "^g "+ String.format(tr(TranslationKeys.LIST_ALL_CATEGORY), translated),"!/"+identifier+" list "+t)); tags.add(Messenger.c("w , ")); } - tags.remove(tags.size() - 1); - Messenger.m(source, tags.toArray(new Object[0])); + tags.removeLast(); + Messenger.m(source, tags.toArray()); Messenger.m(source, "w "+ tr(TranslationKeys.CURRENT_VALUE)+": ", String.format("%s %s (%s value)", RuleHelper.getBooleanValue(rule) ? "lb" : "nb", RuleHelper.toRuleString(rule.value()), RuleHelper.isInDefaultValue(rule) ? "default" : "modified")); List options = new ArrayList<>(); @@ -669,9 +669,9 @@ private int displayRuleMenu(CommandSourceStack source, CarpetRule rule) //TOD options.add(makeSetRuleButton(rule, o, false)); options.add(Messenger.c("w ")); } - options.remove(options.size()-1); + options.removeLast(); options.add(Messenger.c("y ]")); - Messenger.m(source, options.toArray(new Object[0])); + Messenger.m(source, options.toArray()); return 1; } @@ -736,8 +736,8 @@ private Component displayInteractiveSetting(CarpetRule rule) args.add(makeSetRuleButton(rule, RuleHelper.toRuleString(rule.value()), true)); args.add("w "); } - args.remove(args.size()-1); - return Messenger.c(args.toArray(new Object[0])); + args.removeLast(); + return Messenger.c(args.toArray()); } private Component makeSetRuleButton(CarpetRule rule, String option, boolean brackets) @@ -780,8 +780,8 @@ private int listAllSettings(CommandSourceStack source) tags.add("!/"+identifier+" list " + t); tags.add("w "); } - tags.remove(tags.size() - 1); - Messenger.m(source, tags.toArray(new Object[0])); + tags.removeLast(); + Messenger.m(source, tags.toArray()); return count; } diff --git a/src/main/java/carpet/commands/InfoCommand.java b/src/main/java/carpet/commands/InfoCommand.java index 4e36964c7e..6c1bb365eb 100644 --- a/src/main/java/carpet/commands/InfoCommand.java +++ b/src/main/java/carpet/commands/InfoCommand.java @@ -50,15 +50,13 @@ public static void printBlock(List messages, CommandSourceStack sourc { Pattern p = Pattern.compile(grep); Messenger.m(source, messages.get(0)); - for (int i = 1; i { Matcher m = p.matcher(line.getString()); if (m.find()) { Messenger.m(source, line); } - } + }); } else { diff --git a/src/main/java/carpet/commands/LogCommand.java b/src/main/java/carpet/commands/LogCommand.java index bd9cd4eade..3cbb59a8c0 100644 --- a/src/main/java/carpet/commands/LogCommand.java +++ b/src/main/java/carpet/commands/LogCommand.java @@ -129,7 +129,7 @@ private static int listLogs(CommandSourceStack source) comp.add("^w Click to unsubscribe"); comp.add("!/log "+lname); } - Messenger.m(player,comp.toArray(new Object[0])); + Messenger.m(player,comp.toArray()); } return 1; } diff --git a/src/main/java/carpet/commands/SpawnCommand.java b/src/main/java/carpet/commands/SpawnCommand.java index e8824aface..664406951f 100644 --- a/src/main/java/carpet/commands/SpawnCommand.java +++ b/src/main/java/carpet/commands/SpawnCommand.java @@ -1,7 +1,6 @@ package carpet.commands; import carpet.CarpetSettings; -import carpet.fakes.SpawnGroupInterface; import carpet.helpers.HopperCounter; import carpet.utils.CommandHelper; import carpet.utils.Messenger; @@ -210,10 +209,7 @@ private static int generalMobcaps(CommandSourceStack source) private static int resetSpawnRates(CommandSourceStack source) { - for (MobCategory s: SpawnReporter.spawn_tries.keySet()) - { - SpawnReporter.spawn_tries.put(s,1); - } + SpawnReporter.spawn_tries.replaceAll((s, v) -> 1); Messenger.m(source, "gi Spawn rates brought to 1 round per tick for all groups."); return 1; @@ -229,7 +225,7 @@ private static int setSpawnRates(CommandSourceStack source, String mobtype, int private static int setMobcaps(CommandSourceStack source, int hostile_cap) { - double desired_ratio = (double)hostile_cap/ ((SpawnGroupInterface)(Object)MobCategory.MONSTER).getInitialSpawnCap(); + double desired_ratio = (double)hostile_cap/ MobCategory.MONSTER.getMaxInstancesPerChunk(); SpawnReporter.mobcap_exponent = 4.0*Math.log(desired_ratio)/Math.log(2.0); Messenger.m(source, String.format("gi Mobcaps for hostile mobs changed to %d, other groups will follow", hostile_cap)); return 1; diff --git a/src/main/java/carpet/fakes/ChunkTicketManagerInterface.java b/src/main/java/carpet/fakes/ChunkTicketManagerInterface.java index 2a01ed8c6a..164e36a550 100644 --- a/src/main/java/carpet/fakes/ChunkTicketManagerInterface.java +++ b/src/main/java/carpet/fakes/ChunkTicketManagerInterface.java @@ -4,11 +4,9 @@ import net.minecraft.server.level.ChunkHolder; import net.minecraft.server.level.Ticket; import net.minecraft.util.SortedArraySet; -import net.minecraft.world.level.ChunkPos; public interface ChunkTicketManagerInterface { - void changeSpawnChunks(ChunkPos pos, int distance); Long2ObjectOpenHashMap>> getTicketsByPosition(); diff --git a/src/main/java/carpet/fakes/IngredientInterface.java b/src/main/java/carpet/fakes/IngredientInterface.java deleted file mode 100644 index f6d938547f..0000000000 --- a/src/main/java/carpet/fakes/IngredientInterface.java +++ /dev/null @@ -1,14 +0,0 @@ -package carpet.fakes; - -import java.util.Collection; -import java.util.List; -import net.minecraft.world.item.ItemStack; - -public interface IngredientInterface -{ - /** - * Gets all the stacks of the ingredients for a given item recipe. Also used for {@link carpet.helpers.HopperCounter#guessColor} - * to guess the colour of an item to display it prettily - */ - List> getRecipeStacks(); -} diff --git a/src/main/java/carpet/fakes/RedstoneWireBlockInterface.java b/src/main/java/carpet/fakes/RedstoneWireBlockInterface.java index 8d6b771696..61de004137 100644 --- a/src/main/java/carpet/fakes/RedstoneWireBlockInterface.java +++ b/src/main/java/carpet/fakes/RedstoneWireBlockInterface.java @@ -7,5 +7,4 @@ public interface RedstoneWireBlockInterface { BlockState updateLogicPublic(Level world_1, BlockPos blockPos_1, BlockState blockState_1); void setWiresGivePower(boolean wiresGivePower); - boolean getWiresGivePower(); } diff --git a/src/main/java/carpet/fakes/SpawnGroupInterface.java b/src/main/java/carpet/fakes/SpawnGroupInterface.java deleted file mode 100644 index 6f28807e6e..0000000000 --- a/src/main/java/carpet/fakes/SpawnGroupInterface.java +++ /dev/null @@ -1,6 +0,0 @@ -package carpet.fakes; - -public interface SpawnGroupInterface -{ - int getInitialSpawnCap(); -} diff --git a/src/main/java/carpet/helpers/EntityPlayerActionPack.java b/src/main/java/carpet/helpers/EntityPlayerActionPack.java index e0601ea28c..8ea3b43022 100644 --- a/src/main/java/carpet/helpers/EntityPlayerActionPack.java +++ b/src/main/java/carpet/helpers/EntityPlayerActionPack.java @@ -181,7 +181,7 @@ public EntityPlayerActionPack mount(boolean onlyRideables) { entities = player.level().getEntities(player, player.getBoundingBox().inflate(3.0D, 1.0D, 3.0D)); } - if (entities.size()==0) + if (entities.isEmpty()) return this; Entity closest = null; double distance = Double.POSITIVE_INFINITY; diff --git a/src/main/java/carpet/helpers/HopperCounter.java b/src/main/java/carpet/helpers/HopperCounter.java index 3e419e8336..3cafc898f5 100644 --- a/src/main/java/carpet/helpers/HopperCounter.java +++ b/src/main/java/carpet/helpers/HopperCounter.java @@ -1,7 +1,6 @@ package carpet.helpers; import carpet.CarpetServer; -import carpet.fakes.IngredientInterface; import carpet.fakes.RecipeManagerInterface; import carpet.utils.Messenger; import it.unimi.dsi.fastutil.objects.Object2LongLinkedOpenHashMap; @@ -32,13 +31,11 @@ import net.minecraft.world.level.material.MapColor; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.EnumMap; import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.stream.Collectors; import static java.util.Map.entry; @@ -177,7 +174,7 @@ public static List formatAll(MinecraftServer server, boolean realtime public List format(MinecraftServer server, boolean realTime, boolean brief) { long ticks = Math.max(realTime ? (System.currentTimeMillis() - startMillis) / 50 : server.overworld().getGameTime() - startTick, 1); - if (startTick < 0 || ticks == 0) + if (startTick < 0) { if (brief) { @@ -222,7 +219,7 @@ public List format(MinecraftServer server, boolean realTime, boolean "g : ","wb "+count,"g , ", String.format("wb %.1f", count * (20.0 * 60.0 * 60.0) / ticks), "w /h" ); - }).collect(Collectors.toList())); + }).toList()); return items; } @@ -378,14 +375,11 @@ public static TextColor guessColor(Item item, RegistryAccess registryAccess) { for (Ingredient ingredient: r.getIngredients()) { - for (Collection stacks : ((IngredientInterface) (Object) ingredient).getRecipeStacks()) + for (ItemStack iStak : ingredient.getItems()) { - for (ItemStack iStak : stacks) - { - TextColor cand = fromItem(iStak.getItem(), registryAccess); - if (cand != null) - return cand; - } + TextColor cand = fromItem(iStak.getItem(), registryAccess); + if (cand != null) + return cand; } } } diff --git a/src/main/java/carpet/helpers/RedstoneWireTurbo.java b/src/main/java/carpet/helpers/RedstoneWireTurbo.java index 30a1c37de1..6d59b5e42a 100644 --- a/src/main/java/carpet/helpers/RedstoneWireTurbo.java +++ b/src/main/java/carpet/helpers/RedstoneWireTurbo.java @@ -963,6 +963,6 @@ public void updateNeighborShapes(Level level, BlockPos pos, BlockState state) { private static int getMaxCurrentStrength(final UpdateNode upd, final int strength) { if (upd.type != UpdateNode.Type.REDSTONE) return strength; final int i = upd.currentState.getValue(RedStoneWireBlock.POWER); - return i > strength ? i : strength; + return Math.max(i, strength); } } \ No newline at end of file diff --git a/src/main/java/carpet/logging/HUDController.java b/src/main/java/carpet/logging/HUDController.java index b29fbab6e7..4ce55153af 100644 --- a/src/main/java/carpet/logging/HUDController.java +++ b/src/main/java/carpet/logging/HUDController.java @@ -108,7 +108,7 @@ public static void update_hud(MinecraftServer server, List force) { ClientboundTabListPacket packet = new ClientboundTabListPacket( scarpet_headers.getOrDefault(player.getScoreboardName(), Component.literal("")), - Messenger.c(player_huds.getOrDefault(player, List.of()).toArray(new Object[0])) + Messenger.c(player_huds.getOrDefault(player, List.of()).toArray()) ); player.connection.send(packet); } diff --git a/src/main/java/carpet/logging/logHelpers/ExplosionLogHelper.java b/src/main/java/carpet/logging/logHelpers/ExplosionLogHelper.java index 972ec1a5c0..8f5b7e8f85 100644 --- a/src/main/java/carpet/logging/logHelpers/ExplosionLogHelper.java +++ b/src/main/java/carpet/logging/logHelpers/ExplosionLogHelper.java @@ -96,7 +96,7 @@ public void onEntityImpacted(Entity entity, Vec3 accel) } - public static record EntityChangedStatusWithCount(Vec3 pos, EntityType type, Vec3 accel) + public record EntityChangedStatusWithCount(Vec3 pos, EntityType type, Vec3 accel) { public EntityChangedStatusWithCount(Entity e, Vec3 accel) { diff --git a/src/main/java/carpet/logging/logHelpers/TrajectoryLogHelper.java b/src/main/java/carpet/logging/logHelpers/TrajectoryLogHelper.java index 064510dd31..98c864266d 100644 --- a/src/main/java/carpet/logging/logHelpers/TrajectoryLogHelper.java +++ b/src/main/java/carpet/logging/logHelpers/TrajectoryLogHelper.java @@ -51,7 +51,7 @@ public void onFinish() line.add(String.format("^w Tick: %d\nx: %f\ny: %f\nz: %f\n------------\nmx: %f\nmy: %f\nmz: %f", i, pos.x, pos.y, pos.z, mot.x, mot.y, mot.z)); if ((((i + 1) % MAX_TICKS_PER_LINE) == 0) || i == positions.size() - 1) { - comp.add(Messenger.c(line.toArray(new Object[0]))); + comp.add(Messenger.c(line.toArray())); line.clear(); } } diff --git a/src/main/java/carpet/mixins/DistanceManager_spawnChunksMixin.java b/src/main/java/carpet/mixins/DistanceManager_spawnChunksMixin.java deleted file mode 100644 index e4a24c65ea..0000000000 --- a/src/main/java/carpet/mixins/DistanceManager_spawnChunksMixin.java +++ /dev/null @@ -1,55 +0,0 @@ -package carpet.mixins; - -import carpet.fakes.ChunkTicketManagerInterface; -import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; -import net.minecraft.server.level.DistanceManager; -import net.minecraft.server.level.Ticket; -import net.minecraft.server.level.TicketType; -import net.minecraft.util.SortedArraySet; -import net.minecraft.util.Unit; -import net.minecraft.world.level.ChunkPos; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; - -import java.util.Iterator; - -@Mixin(DistanceManager.class) -public abstract class DistanceManager_spawnChunksMixin implements ChunkTicketManagerInterface -{ - @Shadow @Final private Long2ObjectOpenHashMap>> tickets; - - @Shadow protected abstract void removeTicket(long pos, Ticket ticket); - - @Shadow public abstract void addRegionTicket(TicketType type, ChunkPos pos, int radius, T argument); - - @Override - public void changeSpawnChunks(ChunkPos chunkPos, int distance) - { - long pos = chunkPos.toLong(); - SortedArraySet> set = tickets.get(pos); - Ticket existingTicket = null; - if (set != null) - { - Iterator> iter = set.iterator(); - while(iter.hasNext()) - { - Ticket ticket = iter.next(); - if (ticket.getType() == TicketType.START) - { - existingTicket = ticket; - iter.remove(); - } - } - set.add(existingTicket); - } - // the reason we are removing the ticket this way is that there are sideeffects of removal - if (existingTicket != null) - { - removeTicket(pos, existingTicket); - } - // set optionally new spawn ticket - if (distance > 0) - addRegionTicket(TicketType.START, chunkPos, distance, Unit.INSTANCE); - } -} diff --git a/src/main/java/carpet/mixins/DynamicGraphMinFixedPoint_resetChunkInterface.java b/src/main/java/carpet/mixins/DynamicGraphMinFixedPoint_resetChunkInterface.java deleted file mode 100644 index cc8f8e0972..0000000000 --- a/src/main/java/carpet/mixins/DynamicGraphMinFixedPoint_resetChunkInterface.java +++ /dev/null @@ -1,15 +0,0 @@ -package carpet.mixins; - -import net.minecraft.world.level.lighting.DynamicGraphMinFixedPoint; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -@Mixin(DynamicGraphMinFixedPoint.class) -public interface DynamicGraphMinFixedPoint_resetChunkInterface -{ - @Invoker("checkEdge") - void cmInvokeUpdateLevel(long sourceId, long id, int level, boolean decrease); - - @Invoker("computeLevelFromNeighbor") - int cmCallGetPropagatedLevel(long sourceId, long targetId, int level); -} diff --git a/src/main/java/carpet/mixins/Explosion_optimizedTntMixin.java b/src/main/java/carpet/mixins/Explosion_optimizedTntMixin.java index 3cf32d6cf8..eeacddb3e8 100644 --- a/src/main/java/carpet/mixins/Explosion_optimizedTntMixin.java +++ b/src/main/java/carpet/mixins/Explosion_optimizedTntMixin.java @@ -28,7 +28,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; -@Mixin(value = Explosion.class) +@Mixin(Explosion.class) public abstract class Explosion_optimizedTntMixin { @Shadow diff --git a/src/main/java/carpet/mixins/Ingredient_scarpetMixin.java b/src/main/java/carpet/mixins/Ingredient_scarpetMixin.java deleted file mode 100644 index 4d33697e80..0000000000 --- a/src/main/java/carpet/mixins/Ingredient_scarpetMixin.java +++ /dev/null @@ -1,24 +0,0 @@ -package carpet.mixins; - -import carpet.fakes.IngredientInterface; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; - -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.Ingredient; - -@Mixin(Ingredient.class) -public class Ingredient_scarpetMixin implements IngredientInterface -{ - @Shadow @Final private Ingredient.Value[] values; - - @Override - public List> getRecipeStacks() - { - return Arrays.stream(values).map(Ingredient.Value::getItems).toList(); - } -} diff --git a/src/main/java/carpet/mixins/LevelEntityGetterAdapter_scarpetMixin.java b/src/main/java/carpet/mixins/LevelEntityGetterAdapter_scarpetMixin.java index 51ae92127c..f91b4e21a2 100644 --- a/src/main/java/carpet/mixins/LevelEntityGetterAdapter_scarpetMixin.java +++ b/src/main/java/carpet/mixins/LevelEntityGetterAdapter_scarpetMixin.java @@ -21,7 +21,7 @@ public class LevelEntityGetterAdapter_scarpetMixin imple @Override public List getChunkEntities(ChunkPos chpos) { - return this.sectionStorage.getExistingSectionsInChunk(chpos.toLong()).flatMap(EntitySection::getEntities).collect(Collectors.toList()); + return this.sectionStorage.getExistingSectionsInChunk(chpos.toLong()).flatMap(EntitySection::getEntities).toList(); } } diff --git a/src/main/java/carpet/mixins/Level_movableBEMixin.java b/src/main/java/carpet/mixins/Level_movableBEMixin.java index d5820368ae..0563e0ea02 100644 --- a/src/main/java/carpet/mixins/Level_movableBEMixin.java +++ b/src/main/java/carpet/mixins/Level_movableBEMixin.java @@ -31,9 +31,6 @@ public abstract class Level_movableBEMixin implements LevelInterface, LevelAcces @Shadow public abstract BlockState getBlockState(BlockPos blockPos_1); - //@Shadow - //public abstract ChunkManager getChunkManager(); - @Shadow public abstract void setBlocksDirty(BlockPos blockPos_1, BlockState s1, BlockState s2); @@ -50,8 +47,6 @@ public abstract class Level_movableBEMixin implements LevelInterface, LevelAcces @Shadow public abstract void updateNeighbourForOutputSignal(BlockPos pos, Block block); - //@Shadow public abstract boolean setBlockState(BlockPos pos, BlockState state, int flags); - @Shadow public abstract boolean isDebug(); /** diff --git a/src/main/java/carpet/mixins/MinecraftServer_scarpetMixin.java b/src/main/java/carpet/mixins/MinecraftServer_scarpetMixin.java index a52d55a0f9..b21aaf425f 100644 --- a/src/main/java/carpet/mixins/MinecraftServer_scarpetMixin.java +++ b/src/main/java/carpet/mixins/MinecraftServer_scarpetMixin.java @@ -39,7 +39,7 @@ public MinecraftServer_scarpetMixin(String string_1) super(string_1); } - @Shadow protected abstract void tickServer(BooleanSupplier booleanSupplier_1); + @Shadow public abstract void tickServer(BooleanSupplier booleanSupplier_1); @Shadow @Final protected LevelStorageSource.LevelStorageAccess storageSource; diff --git a/src/main/java/carpet/mixins/MobCategory_spawnMixin.java b/src/main/java/carpet/mixins/MobCategory_spawnMixin.java index dcbf87c9aa..81715f3789 100644 --- a/src/main/java/carpet/mixins/MobCategory_spawnMixin.java +++ b/src/main/java/carpet/mixins/MobCategory_spawnMixin.java @@ -1,6 +1,5 @@ package carpet.mixins; -import carpet.fakes.SpawnGroupInterface; import carpet.utils.SpawnReporter; import net.minecraft.world.entity.MobCategory; import org.spongepowered.asm.mixin.Final; @@ -11,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(MobCategory.class) -public class MobCategory_spawnMixin implements SpawnGroupInterface +public class MobCategory_spawnMixin { @Shadow @Final private int max; @@ -20,10 +19,4 @@ private void getModifiedCapacity(CallbackInfoReturnable cir) { cir.setReturnValue ((int) ((double)max*(Math.pow(2.0,(SpawnReporter.mobcap_exponent/4))))); } - - @Override - public int getInitialSpawnCap() - { - return max; - } } diff --git a/src/main/java/carpet/mixins/RedstoneWireBlock_fastMixin.java b/src/main/java/carpet/mixins/RedstoneWireBlock_fastMixin.java index 0ac25bd107..d5ec8898ef 100644 --- a/src/main/java/carpet/mixins/RedstoneWireBlock_fastMixin.java +++ b/src/main/java/carpet/mixins/RedstoneWireBlock_fastMixin.java @@ -36,10 +36,6 @@ private void updatePowerStrength(Level world_1, BlockPos blockPos_1, BlockState @Accessor("shouldSignal") public abstract void setWiresGivePower(boolean wiresGivePower); - @Override - @Accessor("shouldSignal") - public abstract boolean getWiresGivePower(); - // = private RedstoneWireTurbo wireTurbo = null; diff --git a/src/main/java/carpet/mixins/Villager_aiMixin.java b/src/main/java/carpet/mixins/Villager_aiMixin.java index 359fbcf6f0..47facee821 100644 --- a/src/main/java/carpet/mixins/Villager_aiMixin.java +++ b/src/main/java/carpet/mixins/Villager_aiMixin.java @@ -13,7 +13,6 @@ import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; import net.minecraft.core.BlockPos; import net.minecraft.core.GlobalPos; import net.minecraft.core.particles.BlockParticleOption; @@ -27,7 +26,6 @@ import net.minecraft.world.entity.ai.memory.MemoryModuleType; import net.minecraft.world.entity.ai.village.poi.PoiManager; import net.minecraft.world.entity.ai.village.poi.PoiRecord; -import net.minecraft.world.entity.ai.village.poi.PoiType; import net.minecraft.world.entity.npc.AbstractVillager; import net.minecraft.world.entity.npc.Villager; import net.minecraft.world.entity.player.Player; @@ -65,14 +63,7 @@ private void ontick(CallbackInfo ci) { long time; Optional> last_seen = this.brain.getMemories().get(MemoryModuleType.GOLEM_DETECTED_RECENTLY); - if (!last_seen.isPresent()) - { - time = 0; - } - else - { - time = last_seen.get().getTimeToLive(); - } + time = last_seen.map(ExpirableValue::getTimeToLive).orElse(0L); boolean recentlySeen = time > 0; Optional optional_11 = this.brain.getMemory(MemoryModuleType.LAST_SLEPT); //Optional optional_22 = this.brain.getOptionalMemory(MemoryModuleType.LAST_WORKED_AT_POI); diff --git a/src/main/java/carpet/script/CarpetScriptHost.java b/src/main/java/carpet/script/CarpetScriptHost.java index 7a8d8412f5..a60d7b3958 100644 --- a/src/main/java/carpet/script/CarpetScriptHost.java +++ b/src/main/java/carpet/script/CarpetScriptHost.java @@ -164,7 +164,7 @@ public LiteralArgumentBuilder addPathToCommand( ) throws CommandSyntaxException { String hostName = main.name(); - List commandArgs = path.stream().filter(t -> t.isArgument).map(t -> t.surface).collect(Collectors.toList()); + List commandArgs = path.stream().filter(t -> t.isArgument).map(t -> t.surface).toList(); if (commandArgs.size() != (functionSpec.function.getNumParams() - functionSpec.args.size())) { throw CommandArgument.error("Number of parameters in function " + functionSpec.function.fullName() + " doesn't match parameters for a command"); @@ -518,7 +518,7 @@ private Boolean addLegacyCommand(Consumer notifier) boolean hasTypeSupport = appConfig.getOrDefault(StringValue.of("legacy_command_type_support"), Value.FALSE).getBoolean(); - for (String function : globalFunctionNames(main, s -> !s.startsWith("_")).sorted().collect(Collectors.toList())) + for (String function : globalFunctionNames(main, s -> !s.startsWith("_")).sorted().toList()) { if (hasTypeSupport) { diff --git a/src/main/java/carpet/script/Expression.java b/src/main/java/carpet/script/Expression.java index 7f427a40a8..bf45dd742b 100644 --- a/src/main/java/carpet/script/Expression.java +++ b/src/main/java/carpet/script/Expression.java @@ -1143,7 +1143,7 @@ private ExpressionNode RPNToParseTree(List tokens, Context cont { nodeStack.pop(); } - List params = p.stream().map(n -> n.op).collect(Collectors.toList()); + List params = p.stream().map(n -> n.op).toList(); nodeStack.push(new ExpressionNode( (c, t) -> f.lazyEval(c, t, this, token, params).evalValue(c, t), p, token @@ -1509,7 +1509,7 @@ private LazyValue extractOp(Context ctx, ExpressionNode node, Context.Type expec { ILazyFunction f = functions.get(token.surface); Context.Type requestedType = f.staticType(expectedType); - List params = node.args.stream().map(n -> extractOp(ctx, n, requestedType)).collect(Collectors.toList()); + List params = node.args.stream().map(n -> extractOp(ctx, n, requestedType)).toList(); return (c, t) -> f.lazyEval(c, t, this, token, params).evalValue(c, t); } case CONSTANT: diff --git a/src/main/java/carpet/script/Module.java b/src/main/java/carpet/script/Module.java index 30264e6b0c..aad8dd012d 100644 --- a/src/main/java/carpet/script/Module.java +++ b/src/main/java/carpet/script/Module.java @@ -26,7 +26,7 @@ public static Module fromPath(Path path) try { String name = path.getFileName().toString().replaceFirst("\\.scl?", "").toLowerCase(Locale.ROOT); - String code = new String(Files.readAllBytes(path), StandardCharsets.UTF_8); + String code = Files.readString(path); return new Module(name, code, library); } catch (IOException e) diff --git a/src/main/java/carpet/script/ScriptCommand.java b/src/main/java/carpet/script/ScriptCommand.java index e8bc716a4f..64ac5386ad 100644 --- a/src/main/java/carpet/script/ScriptCommand.java +++ b/src/main/java/carpet/script/ScriptCommand.java @@ -69,7 +69,7 @@ public static List suggestFunctions(ScriptHost host, String previous, St int maxLen = prefix.length() < 3 ? (prefix.length() * 2 + 1) : 1234; String eventPrefix = prefix.startsWith("__on_") ? prefix.substring(5) : null; List scarpetMatches = scarpetFunctions.stream(). - filter(s -> s.startsWith(prefix) && s.length() <= maxLen).map(s -> s + "(").collect(Collectors.toList()); + filter(s -> s.startsWith(prefix) && s.length() <= maxLen).map(s -> s + "(").toList(); scarpetMatches.addAll(APIFunctions.stream(). filter(s -> s.startsWith(prefix) && s.length() <= maxLen).map(s -> s + "(").toList()); // not that useful in commandline, more so in external scripts, so skipping here @@ -315,7 +315,7 @@ public static void register(CommandDispatcher dispatcher, Co executes(ScriptCommand::listEvents). then(literal("add_to"). then(argument("event", StringArgumentType.word()). - suggests((cc, bb) -> suggest(CarpetEventServer.Event.publicEvents(ss(cc)).stream().map(ev -> ev.name).collect(Collectors.toList()), bb)). + suggests((cc, bb) -> suggest(CarpetEventServer.Event.publicEvents(ss(cc)).stream().map(ev -> ev.name).toList(), bb)). then(argument("call", StringArgumentType.word()). suggests((cc, bb) -> suggest(suggestFunctionCalls(cc), bb)). executes((cc) -> ss(cc).events.addEventFromCommand( @@ -337,7 +337,7 @@ public static void register(CommandDispatcher dispatcher, Co ) ? 1 : 0)))))). then(literal("remove_from"). then(argument("event", StringArgumentType.word()). - suggests((cc, bb) -> suggest(CarpetEventServer.Event.publicEvents(ss(cc)).stream().filter(CarpetEventServer.Event::isNeeded).map(ev -> ev.name).collect(Collectors.toList()), bb)). + suggests((cc, bb) -> suggest(CarpetEventServer.Event.publicEvents(ss(cc)).stream().filter(CarpetEventServer.Event::isNeeded).map(ev -> ev.name).toList(), bb)). then(argument("call", StringArgumentType.greedyString()). suggests((cc, bb) -> suggest(CarpetEventServer.Event.getEvent(StringArgumentType.getString(cc, "event"), ss(cc)).handler.inspectCurrentCalls().stream().map(CarpetEventServer.Callback::toString), bb)). executes((cc) -> ss(cc).events.removeEventFromCommand( @@ -391,7 +391,7 @@ private static CarpetScriptHost getHost(CommandContext conte private static Collection suggestFunctionCalls(CommandContext c) throws CommandSyntaxException { CarpetScriptHost host = getHost(c); - return host.globalFunctionNames(host.main, s -> !s.startsWith("_")).sorted().collect(Collectors.toList()); + return host.globalFunctionNames(host.main, s -> !s.startsWith("_")).sorted().toList(); } private static int listEvents(CommandContext context) diff --git a/src/main/java/carpet/script/Tokenizer.java b/src/main/java/carpet/script/Tokenizer.java index 90994f0069..f41d0008ac 100644 --- a/src/main/java/carpet/script/Tokenizer.java +++ b/src/main/java/carpet/script/Tokenizer.java @@ -56,12 +56,12 @@ public class Tokenizer implements Iterator public List postProcess() { Iterable iterable = () -> this; - List originalTokens = StreamSupport.stream(iterable.spliterator(), false).collect(Collectors.toList()); + List originalTokens = StreamSupport.stream(iterable.spliterator(), false).toList(); List cleanedTokens = new ArrayList<>(); Token last = null; while (!originalTokens.isEmpty()) { - Token current = originalTokens.remove(originalTokens.size() - 1); + Token current = originalTokens.removeLast(); if (current.type == Token.TokenType.MARKER && current.surface.startsWith("//")) { continue; diff --git a/src/main/java/carpet/script/api/Auxiliary.java b/src/main/java/carpet/script/api/Auxiliary.java index ca3c22b49f..511b7e87fa 100644 --- a/src/main/java/carpet/script/api/Auxiliary.java +++ b/src/main/java/carpet/script/api/Auxiliary.java @@ -618,7 +618,7 @@ else if (!interactable && targetBlock == null) } AtomicInteger total = new AtomicInteger(0); - List targetList = targets.collect(Collectors.toList()); + List targetList = targets.toList(); if (!soundsTrue) // null or empty string { targetList.forEach(target -> { @@ -1206,7 +1206,7 @@ else if (fdesc.type == FileArgument.Type.JSON) resourcePackProfile.getDefaultPosition().insert(list, resourcePackProfile, Pack::selectionConfig, false); - server.reloadResources(list.stream().map(Pack::getId).collect(Collectors.toList())). + server.reloadResources(list.stream().map(Pack::getId).toList()). exceptionally(exc -> { successful[0] = false; return null; diff --git a/src/main/java/carpet/script/api/Inventories.java b/src/main/java/carpet/script/api/Inventories.java index 11bab7e735..328868b9bd 100644 --- a/src/main/java/carpet/script/api/Inventories.java +++ b/src/main/java/carpet/script/api/Inventories.java @@ -98,7 +98,7 @@ public static void apply(Expression expression) expression.addContextFunction("recipe_data", -1, (c, t, lv) -> { CarpetContext cc = (CarpetContext) c; - if (lv.size() < 1) + if (lv.isEmpty()) { throw new InternalExpressionException("'recipe_data' requires at least one argument"); } @@ -128,15 +128,17 @@ public static void apply(Expression expression) // I am flattening ingredient lists per slot. // consider recipe_data('wooden_sword','crafting') and ('iron_nugget', 'blasting') and notice difference // in depths of lists. - List> stacks = Vanilla.Ingredient_getRecipeStacks(ingredient); - if (stacks.isEmpty()) + ItemStack[] items = ingredient.getItems(); + if (items.length == 0) { ingredientValue.add(Value.NULL); } else { List alternatives = new ArrayList<>(); - stacks.forEach(col -> col.stream().map(is -> ValueConversions.of(is, regs)).forEach(alternatives::add)); + for (ItemStack item : items) { + alternatives.add(ValueConversions.of(item, regs)); + } ingredientValue.add(ListValue.wrap(alternatives)); } }); diff --git a/src/main/java/carpet/script/api/WorldAccess.java b/src/main/java/carpet/script/api/WorldAccess.java index ae60ed0d99..683aea03c9 100644 --- a/src/main/java/carpet/script/api/WorldAccess.java +++ b/src/main/java/carpet/script/api/WorldAccess.java @@ -28,7 +28,6 @@ import carpet.script.value.Value; import carpet.script.value.ValueConversions; -import com.mojang.brigadier.exceptions.CommandSyntaxException; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.LongSet; import net.minecraft.Util; @@ -79,9 +78,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import net.minecraft.commands.arguments.item.ItemInput; import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.Tag; import net.minecraft.network.protocol.game.ClientboundExplodePacket; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundSource; @@ -1251,7 +1248,6 @@ LivingEntity getIndirectSourceEntity() Optional> tagSet = blocks.getTag(TagKey.create(Registries.BLOCK, InputValidator.identifierOf(tag))); return tagSet.isEmpty() ? Value.NULL : BooleanValue.of(blockLocator.block.getBlockState().is(tagSet.get())); }); - expression.addContextFunction("biome", -1, (c, t, lv) -> { CarpetContext cc = (CarpetContext) c; ServerLevel world = cc.level(); diff --git a/src/main/java/carpet/script/command/CommandArgument.java b/src/main/java/carpet/script/command/CommandArgument.java index 5d0fbabe28..895cae7e78 100644 --- a/src/main/java/carpet/script/command/CommandArgument.java +++ b/src/main/java/carpet/script/command/CommandArgument.java @@ -423,7 +423,7 @@ public CompletableFuture suggest( protected List suggestFor(CommandContext context, String prefix, CarpetScriptHost host) throws CommandSyntaxException { - return getOptions(context, host).stream().filter(s -> optionMatchesPrefix(prefix, s)).collect(Collectors.toList()); + return getOptions(context, host).stream().filter(s -> optionMatchesPrefix(prefix, s)).toList(); } protected Collection getOptions(CommandContext context, CarpetScriptHost host) throws CommandSyntaxException @@ -448,7 +448,7 @@ protected Collection getOptions(CommandContext conte { throw error("Custom suggester should return a list of options" + " for custom type " + suffix); } - Collection res = ((ListValue) response).getItems().stream().map(Value::getString).collect(Collectors.toList()); + Collection res = ((ListValue) response).getItems().stream().map(Value::getString).toList(); currentSection.run(); return res; } diff --git a/src/main/java/carpet/script/external/Vanilla.java b/src/main/java/carpet/script/external/Vanilla.java index f046ae623c..3f8a8af08e 100644 --- a/src/main/java/carpet/script/external/Vanilla.java +++ b/src/main/java/carpet/script/external/Vanilla.java @@ -7,7 +7,6 @@ import carpet.fakes.ChunkTicketManagerInterface; import carpet.fakes.CommandDispatcherInterface; import carpet.fakes.EntityInterface; -import carpet.fakes.IngredientInterface; import carpet.fakes.InventoryBearerInterface; import carpet.fakes.ItemEntityInterface; import carpet.fakes.LivingEntityInterface; @@ -63,8 +62,6 @@ import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.DataSlot; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeManager; import net.minecraft.world.item.crafting.RecipeType; @@ -84,7 +81,6 @@ import net.minecraft.world.scores.Scoreboard; import net.minecraft.world.scores.criteria.ObjectiveCriteria; -import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -108,11 +104,6 @@ public static Map ChunkMap_regenerateChunkRegion(ChunkMap chunk return Map.of(); //return ((ThreadedAnvilChunkStorageInterface) chunkMap).regenerateChunkRegion(requestedChunks); } - public static List> Ingredient_getRecipeStacks(Ingredient ingredient) - { - return ((IngredientInterface) (Object) ingredient).getRecipeStacks(); - } - public static List> RecipeManager_getAllMatching(RecipeManager recipeManager, RecipeType type, ResourceLocation output, RegistryAccess registryAccess) { return ((RecipeManagerInterface) recipeManager).getAllMatching(type, output, registryAccess); diff --git a/src/main/java/carpet/script/language/ControlFlow.java b/src/main/java/carpet/script/language/ControlFlow.java index d96d1209ea..9da3965d92 100644 --- a/src/main/java/carpet/script/language/ControlFlow.java +++ b/src/main/java/carpet/script/language/ControlFlow.java @@ -58,7 +58,7 @@ public static void apply(Expression expression) // public just to get the javado } if (lv.size() % 2 == 1) { - Value ret = lv.get(lv.size() - 1).evalValue(c, t); + Value ret = lv.getLast().evalValue(c, t); return (cc, tt) -> ret; } return (cc, tt) -> Value.NULL; diff --git a/src/main/java/carpet/script/value/ListValue.java b/src/main/java/carpet/script/value/ListValue.java index dfea225378..cffcdd6c44 100644 --- a/src/main/java/carpet/script/value/ListValue.java +++ b/src/main/java/carpet/script/value/ListValue.java @@ -472,7 +472,7 @@ private boolean put(Value ind, Value value, boolean replace, boolean extend) if (extend && value instanceof AbstractListValue) { Iterable iterable = ((AbstractListValue) value)::iterator; - List appendix = StreamSupport.stream(iterable.spliterator(), false).collect(Collectors.toList()); + List appendix = StreamSupport.stream(iterable.spliterator(), false).toList(); items.addAll(index, appendix); return true; } diff --git a/src/main/java/carpet/script/value/MapValue.java b/src/main/java/carpet/script/value/MapValue.java index ba4b16707e..9c134c3e15 100644 --- a/src/main/java/carpet/script/value/MapValue.java +++ b/src/main/java/carpet/script/value/MapValue.java @@ -41,7 +41,7 @@ public MapValue(Set keySet) @Override public Iterator iterator() { - return new ArrayList<>(map.keySet()).iterator(); + return map.keySet().iterator(); } @Override @@ -53,7 +53,7 @@ public List unpack() @Override public String getString() { - return "{" + map.entrySet().stream().map(p -> p.getKey().getString() + ": " + p.getValue().getString()).collect(Collectors.joining(", ")) + "}"; + return map.toString(); } @Override diff --git a/src/main/java/carpet/settings/ParsedRule.java b/src/main/java/carpet/settings/ParsedRule.java index b02bfec5b1..5ed8284437 100644 --- a/src/main/java/carpet/settings/ParsedRule.java +++ b/src/main/java/carpet/settings/ParsedRule.java @@ -234,7 +234,7 @@ else if (this.type.isEnum()) } if (isStrict && !this.options.isEmpty()) { - this.realValidators.add(0, new Validator.StrictValidator<>()); // at 0 prevents validators with side effects from running when invalid + this.realValidators.addFirst(new Validator.StrictValidator<>()); // at 0 prevents validators with side effects from running when invalid } if (converter0 == null) { @SuppressWarnings("unchecked") diff --git a/src/main/java/carpet/utils/CarpetProfiler.java b/src/main/java/carpet/utils/CarpetProfiler.java index a4a0206719..6efc5ea56f 100644 --- a/src/main/java/carpet/utils/CarpetProfiler.java +++ b/src/main/java/carpet/utils/CarpetProfiler.java @@ -74,7 +74,7 @@ public enum TYPE TILEENTITY } - public static record ProfilerToken(TYPE type, Object section, long start, Level world) + public record ProfilerToken(TYPE type, Object section, long start, Level world) { public ProfilerToken(TYPE type, Object section, Level world) { diff --git a/src/main/java/carpet/utils/Messenger.java b/src/main/java/carpet/utils/Messenger.java index 36af4c1789..2b7fc9fe8f 100644 --- a/src/main/java/carpet/utils/Messenger.java +++ b/src/main/java/carpet/utils/Messenger.java @@ -215,7 +215,7 @@ public static Component dblt(String style, double ... doubles) } //components.remove(components.size()-1); components.add(style+" ]"); - return c(components.toArray(new Object[0])); + return c(components.toArray()); } private static Component getCoordsTextComponent(String style, float x, float y, float z, boolean isInt) diff --git a/src/main/java/carpet/utils/SpawnReporter.java b/src/main/java/carpet/utils/SpawnReporter.java index 512431c9e3..e459e9252a 100644 --- a/src/main/java/carpet/utils/SpawnReporter.java +++ b/src/main/java/carpet/utils/SpawnReporter.java @@ -102,8 +102,8 @@ public static List printMobcapsForDimension(ServerLevel world, boolea lst.add(Messenger.s(String.format("Mobcaps for %s:",name))); NaturalSpawner.SpawnState lastSpawner = world.getChunkSource().getLastSpawnState(); Object2IntMap dimCounts = lastSpawner.getMobCategoryCounts(); - int chunkcount = chunkCounts.getOrDefault(dim, -1); - if (dimCounts == null || chunkcount < 0) + int chunkCount = chunkCounts.getOrDefault(dim, -1); + if (chunkCount < 0) { lst.add(Messenger.c("g --UNAVAILABLE--")); return lst; @@ -113,7 +113,7 @@ public static List printMobcapsForDimension(ServerLevel world, boolea for (MobCategory category : cachedMobCategories()) { int cur = dimCounts.getOrDefault(category, -1); - int max = (int)(chunkcount * ((double)category.getMaxInstancesPerChunk() / MAGIC_NUMBER)); // from ServerChunkManager.CHUNKS_ELIGIBLE_FOR_SPAWNING + int max = (int)(chunkCount * ((double)category.getMaxInstancesPerChunk() / MAGIC_NUMBER)); // from ServerChunkManager.CHUNKS_ELIGIBLE_FOR_SPAWNING String color = Messenger.heatmap_color(cur, max); String mobColor = Messenger.creatureTypeColor(category); if (multiline) @@ -136,8 +136,8 @@ public static List printMobcapsForDimension(ServerLevel world, boolea { if (shortCodes.size() > 0) { - shortCodes.remove(shortCodes.size() - 1); - lst.add(Messenger.c(shortCodes.toArray(new Object[0]))); + shortCodes.removeLast(); + lst.add(Messenger.c(shortCodes.toArray())); } else { diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index 6b68dcff13..c13087abce 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -41,12 +41,10 @@ "LevelEntityGetterAdapter_scarpetMixin", "ChunkHolder_scarpetChunkCreationMixin", "ThreadedLevelLightEngine_scarpetMixin", - "DynamicGraphMinFixedPoint_resetChunkInterface", "DistanceManager_scarpetChunkCreationMixin", "LevelLightEngine_scarpetChunkCreationMixin", "LayerLightEngine_scarpetChunkCreationMixin", "LayerLightSectionStorage_scarpetChunkCreationMixin", - "DistanceManager_spawnChunksMixin", "ThreadedLevelLightEngine_scarpetChunkCreationMixin", "LivingEntity_cleanLogsMixin", "MobMixin", @@ -150,7 +148,6 @@ "CommandDispatcher_scarpetCommandsMixin", "RecipeManager_scarpetMixin", - "Ingredient_scarpetMixin", "BlockInput_scarpetMixin", "BlockPredicate_scarpetMixin", "TagPredicate_scarpetMixin",