From 70b31323967bb99fd4feefab8e96124be369cd6f Mon Sep 17 00:00:00 2001 From: Clicks <58398364+CuzImClicks@users.noreply.github.com> Date: Tue, 30 Dec 2025 12:16:31 +0100 Subject: [PATCH] chore: Remove Redundant Clippy Allows (#1247) * switch to btreemap to comply with lint * amplifier i32 -> u8 * switch allow to expect lint * remove many many unnecessary clippy lints * dont use expect inside quotes --- pumpkin-api-macros/src/lib.rs | 2 +- pumpkin-data/build/biome.rs | 2 +- pumpkin-data/build/block.rs | 2 +- pumpkin-data/build/effect.rs | 2 +- pumpkin-data/build/entity_type.rs | 4 ++-- pumpkin-data/build/item.rs | 3 +-- .../src/player/player_screen_handler.rs | 1 - .../src/bedrock/client/creative_content.rs | 2 +- pumpkin-protocol/src/codec/item_stack_seralizer.rs | 1 - pumpkin-protocol/src/codec/u24_type.rs | 2 +- .../src/java/client/play/entity_sound_effect.rs | 2 -- pumpkin-protocol/src/serial/deserializer.rs | 4 ++-- pumpkin-util/src/biome.rs | 4 ++-- pumpkin-util/src/lib.rs | 4 ++-- pumpkin-util/src/math/mod.rs | 2 +- pumpkin-util/src/noise/perlin.rs | 2 +- pumpkin-util/src/registry.rs | 1 - pumpkin-world/src/chunk/format/anvil.rs | 2 +- pumpkin-world/src/chunk/palette.rs | 2 +- pumpkin-world/src/chunk_system.rs | 4 ++-- pumpkin-world/src/generation/aquifer_sampler.rs | 3 +-- pumpkin-world/src/generation/chunk_noise.rs | 2 +- pumpkin-world/src/generation/proto_chunk.rs | 3 +-- pumpkin-world/src/generation/surface/mod.rs | 2 +- pumpkin-world/src/inventory/mod.rs | 2 +- pumpkin-world/src/world_info/anvil.rs | 2 -- pumpkin/src/block/blocks/bed.rs | 2 +- pumpkin/src/block/blocks/doors.rs | 2 +- pumpkin/src/block/blocks/fire/fire.rs | 2 +- pumpkin/src/block/blocks/plant/sea_pickles.rs | 1 - .../block/blocks/redstone/rails/activator_rail.rs | 2 +- .../src/block/blocks/redstone/rails/powered_rail.rs | 2 +- pumpkin/src/block/blocks/redstone/tripwire_hook.rs | 4 ++-- pumpkin/src/block/blocks/stairs.rs | 1 - pumpkin/src/block/fluid/mod.rs | 2 +- pumpkin/src/block/registry.rs | 12 ++++++------ pumpkin/src/command/args/bounded_num.rs | 2 -- pumpkin/src/command/args/entities.rs | 6 ------ pumpkin/src/command/args/mod.rs | 1 - pumpkin/src/command/args/players.rs | 2 +- pumpkin/src/command/args/simple.rs | 1 - pumpkin/src/command/commands/clear.rs | 2 +- pumpkin/src/command/commands/data.rs | 2 +- pumpkin/src/command/commands/effect.rs | 9 ++++----- pumpkin/src/command/commands/enchant.rs | 3 +-- pumpkin/src/command/commands/gamemode.rs | 2 +- pumpkin/src/command/commands/gamerule.rs | 1 - pumpkin/src/command/commands/kill.rs | 2 +- pumpkin/src/command/commands/mod.rs | 2 +- pumpkin/src/command/commands/pumpkin.rs | 2 +- pumpkin/src/command/commands/transfer.rs | 2 +- pumpkin/src/data/banlist_serializer.rs | 2 +- pumpkin/src/entity/ai/goal/active_target_goal.rs | 2 +- pumpkin/src/entity/ai/goal/ambient_stand_goal.rs | 1 - pumpkin/src/entity/ai/goal/look_around_goal.rs | 1 - pumpkin/src/entity/ai/goal/look_at_entity.rs | 2 +- pumpkin/src/entity/ai/goal/melee_attack_goal.rs | 4 ++-- .../src/entity/ai/goal/move_to_target_pos_goal.rs | 2 -- .../entity/ai/goal/step_and_destroy_block_goal.rs | 1 - pumpkin/src/entity/ai/goal/track_target_goal.rs | 6 ++---- pumpkin/src/entity/ai/target_predicate.rs | 2 +- pumpkin/src/entity/decoration/armor_stand.rs | 3 +-- pumpkin/src/entity/living.rs | 2 +- pumpkin/src/entity/mob/mod.rs | 2 +- pumpkin/src/entity/mod.rs | 11 +++++------ pumpkin/src/entity/player.rs | 2 +- pumpkin/src/entity/type.rs | 1 - pumpkin/src/item/items/axe.rs | 1 - pumpkin/src/logging.rs | 1 + pumpkin/src/net/bedrock/mod.rs | 1 - pumpkin/src/net/java/mod.rs | 2 +- pumpkin/src/net/java/play.rs | 5 ++--- pumpkin/src/plugin/mod.rs | 2 +- pumpkin/src/server/mod.rs | 9 ++++----- pumpkin/src/world/mod.rs | 5 ++--- pumpkin/src/world/natural_spawner.rs | 5 ++--- 76 files changed, 83 insertions(+), 123 deletions(-) diff --git a/pumpkin-api-macros/src/lib.rs b/pumpkin-api-macros/src/lib.rs index 0a1c790e4..ebdad8623 100644 --- a/pumpkin-api-macros/src/lib.rs +++ b/pumpkin-api-macros/src/lib.rs @@ -25,7 +25,7 @@ pub fn plugin_method(_attr: TokenStream, item: TokenStream) -> TokenStream { }; let method = quote! { - #[allow(unused_mut)] + #[expect(unused_mut)] fn #fn_name(#fn_inputs) -> PluginFuture<'_, #output_type> { crate::GLOBAL_RUNTIME.block_on(async move { Box::pin(async move { diff --git a/pumpkin-data/build/biome.rs b/pumpkin-data/build/biome.rs index cd76a9c25..7e1b93815 100644 --- a/pumpkin-data/build/biome.rs +++ b/pumpkin-data/build/biome.rs @@ -32,7 +32,7 @@ struct SpawnGroups { water_creature: Vec, } -#[allow(non_snake_case)] +#[expect(non_snake_case)] #[derive(Deserialize, Hash, PartialEq, Eq)] struct Spawner { r#type: String, diff --git a/pumpkin-data/build/block.rs b/pumpkin-data/build/block.rs index 777cdc090..bbbffd45a 100644 --- a/pumpkin-data/build/block.rs +++ b/pumpkin-data/build/block.rs @@ -638,7 +638,7 @@ pub(crate) fn build() -> TokenStream { serde_json::from_str(&fs::read_to_string("../assets/properties.json").unwrap()) .expect("Failed to parse properties.json"); - let generated_prop_map: std::collections::HashMap = + let generated_prop_map: std::collections::BTreeMap = generated_properties .iter() .map(|p| (p.hash_key, p)) diff --git a/pumpkin-data/build/effect.rs b/pumpkin-data/build/effect.rs index 9f1c7e5ce..9b01f8c30 100644 --- a/pumpkin-data/build/effect.rs +++ b/pumpkin-data/build/effect.rs @@ -14,7 +14,7 @@ struct Effect { attribute_modifiers: Vec, } -#[allow(clippy::upper_case_acronyms)] +#[expect(clippy::upper_case_acronyms)] #[derive(Deserialize)] pub enum MobEffectCategory { BENEFICIAL, diff --git a/pumpkin-data/build/entity_type.rs b/pumpkin-data/build/entity_type.rs index b3d1b981d..0dbcb805b 100644 --- a/pumpkin-data/build/entity_type.rs +++ b/pumpkin-data/build/entity_type.rs @@ -42,8 +42,8 @@ pub enum SpawnLocation { } #[derive(Deserialize)] -#[allow(non_camel_case_types)] -#[allow(clippy::upper_case_acronyms)] +#[expect(non_camel_case_types)] +#[expect(clippy::upper_case_acronyms)] pub enum MobCategory { MONSTER, CREATURE, diff --git a/pumpkin-data/build/item.rs b/pumpkin-data/build/item.rs index 36c9cc34e..6702ff4d5 100644 --- a/pumpkin-data/build/item.rs +++ b/pumpkin-data/build/item.rs @@ -413,7 +413,6 @@ pub struct BlocksAttacks { // TODO } -#[allow(dead_code)] #[derive(Deserialize, Clone)] pub struct EquippableComponent { pub slot: String, @@ -436,7 +435,7 @@ pub struct EquippableComponent { #[derive(Deserialize, Clone, Debug, PartialEq)] #[serde(rename_all = "snake_case")] -#[allow(clippy::enum_variant_names)] +#[expect(clippy::enum_variant_names)] pub enum Operation { AddValue, AddMultipliedBase, diff --git a/pumpkin-inventory/src/player/player_screen_handler.rs b/pumpkin-inventory/src/player/player_screen_handler.rs index 5cd5ded7d..1e5b722fb 100644 --- a/pumpkin-inventory/src/player/player_screen_handler.rs +++ b/pumpkin-inventory/src/player/player_screen_handler.rs @@ -121,7 +121,6 @@ impl ScreenHandler for PlayerScreenHandler { .map_or(&EquipmentSlot::MAIN_HAND, |equippable| equippable.slot); // Quick move logic - #[allow(clippy::if_same_then_else)] let success = if slot_index == 0 { // From crafting result slot (0) -> Player Inventory (9-45, from end) self.insert_item(&mut slot_stack, 9, 45, true).await diff --git a/pumpkin-protocol/src/bedrock/client/creative_content.rs b/pumpkin-protocol/src/bedrock/client/creative_content.rs index 5a75594a5..e83f0a629 100644 --- a/pumpkin-protocol/src/bedrock/client/creative_content.rs +++ b/pumpkin-protocol/src/bedrock/client/creative_content.rs @@ -29,7 +29,7 @@ impl PacketWrite for CreativeContent<'_> { } #[repr(i32)] -#[allow(unused)] +#[expect(unused)] enum CreativeCategory { Construction = 1, Nature = 2, diff --git a/pumpkin-protocol/src/codec/item_stack_seralizer.rs b/pumpkin-protocol/src/codec/item_stack_seralizer.rs index e98983885..eaceed23c 100644 --- a/pumpkin-protocol/src/codec/item_stack_seralizer.rs +++ b/pumpkin-protocol/src/codec/item_stack_seralizer.rs @@ -161,7 +161,6 @@ pub struct ItemComponentHash { pub struct ItemStackHash { item_id: VarInt, count: VarInt, - #[allow(dead_code)] components: ItemComponentHash, } diff --git a/pumpkin-protocol/src/codec/u24_type.rs b/pumpkin-protocol/src/codec/u24_type.rs index e497181d3..379daced6 100644 --- a/pumpkin-protocol/src/codec/u24_type.rs +++ b/pumpkin-protocol/src/codec/u24_type.rs @@ -2,7 +2,7 @@ use std::io::{Error, Read, Write}; use crate::serial::{PacketRead, PacketWrite}; -#[allow(non_camel_case_types)] +#[expect(non_camel_case_types)] #[derive(Clone, Copy)] pub struct u24(pub u32); diff --git a/pumpkin-protocol/src/java/client/play/entity_sound_effect.rs b/pumpkin-protocol/src/java/client/play/entity_sound_effect.rs index a90146060..c4dc15b83 100644 --- a/pumpkin-protocol/src/java/client/play/entity_sound_effect.rs +++ b/pumpkin-protocol/src/java/client/play/entity_sound_effect.rs @@ -4,7 +4,6 @@ use serde::Deserialize; use crate::{IdOr, SoundEvent, VarInt}; -#[allow(dead_code)] #[derive(Deserialize)] #[packet(PLAY_SOUND_ENTITY)] pub struct CEntitySoundEffect { @@ -17,7 +16,6 @@ pub struct CEntitySoundEffect { } impl CEntitySoundEffect { - #[allow(clippy::too_many_arguments)] pub fn new( sound_event: IdOr, sound_category: SoundCategory, diff --git a/pumpkin-protocol/src/serial/deserializer.rs b/pumpkin-protocol/src/serial/deserializer.rs index c087334e9..bf9ec8547 100644 --- a/pumpkin-protocol/src/serial/deserializer.rs +++ b/pumpkin-protocol/src/serial/deserializer.rs @@ -122,7 +122,7 @@ impl PacketRead for f64 { impl PacketRead for [T; N] { fn read(reader: &mut R) -> Result { - #[allow(clippy::uninit_assumed_init)] + #[expect(clippy::uninit_assumed_init)] let mut buf: [T; N] = unsafe { std::mem::MaybeUninit::uninit().assume_init() }; for i in &mut buf { *i = T::read(reader)?; @@ -140,7 +140,7 @@ impl PacketRead for String { impl PacketRead for Vec { fn read(reader: &mut R) -> Result { - #[allow(clippy::uninit_vec)] + #[expect(clippy::uninit_vec)] { let len = VarUInt::read(reader)?.0 as _; let mut buf = Vec::with_capacity(len); diff --git a/pumpkin-util/src/biome.rs b/pumpkin-util/src/biome.rs index 220edb551..5b318f1c0 100644 --- a/pumpkin-util/src/biome.rs +++ b/pumpkin-util/src/biome.rs @@ -51,11 +51,11 @@ impl TemperatureModifier { #[derive(Clone, Debug)] pub struct Weather { - #[allow(dead_code)] + #[expect(dead_code)] has_precipitation: bool, temperature: f32, temperature_modifier: TemperatureModifier, - #[allow(dead_code)] + #[expect(dead_code)] downfall: f32, } diff --git a/pumpkin-util/src/lib.rs b/pumpkin-util/src/lib.rs index d9f7d74f8..2b7509d74 100644 --- a/pumpkin-util/src/lib.rs +++ b/pumpkin-util/src/lib.rs @@ -112,7 +112,7 @@ impl<'a, T> MutableSplitSlice<'a, T> { impl Index for MutableSplitSlice<'_, T> { type Output = T; - #[allow(clippy::comparison_chain)] + #[expect(clippy::comparison_chain)] fn index(&self, index: usize) -> &Self::Output { if index < self.start.len() { &self.start[index] @@ -132,7 +132,7 @@ pub struct DoublePerlinNoiseParametersCodec { } impl IndexMut for MutableSplitSlice<'_, T> { - #[allow(clippy::comparison_chain)] + #[expect(clippy::comparison_chain)] fn index_mut(&mut self, index: usize) -> &mut Self::Output { if index < self.start.len() { &mut self.start[index] diff --git a/pumpkin-util/src/math/mod.rs b/pumpkin-util/src/math/mod.rs index 2fce3aca5..483ab664a 100644 --- a/pumpkin-util/src/math/mod.rs +++ b/pumpkin-util/src/math/mod.rs @@ -137,7 +137,7 @@ pub fn lerp2(delta_x: f64, delta_y: f64, x0y0: f64, x1y0: f64, x0y1: f64, x1y1: ) } -#[allow(clippy::too_many_arguments)] +#[expect(clippy::too_many_arguments)] pub fn lerp3( delta_x: f64, delta_y: f64, diff --git a/pumpkin-util/src/noise/perlin.rs b/pumpkin-util/src/noise/perlin.rs index 99a325217..8eae3b798 100644 --- a/pumpkin-util/src/noise/perlin.rs +++ b/pumpkin-util/src/noise/perlin.rs @@ -94,7 +94,7 @@ impl PerlinNoiseSampler { self.permutation[(input & 0xFF) as usize] as i32 } - #[allow(clippy::too_many_arguments)] + #[expect(clippy::too_many_arguments)] fn sample( &self, x: i32, diff --git a/pumpkin-util/src/registry.rs b/pumpkin-util/src/registry.rs index a4f3be2f6..2034e3016 100644 --- a/pumpkin-util/src/registry.rs +++ b/pumpkin-util/src/registry.rs @@ -9,7 +9,6 @@ pub enum TagType { } impl TagType { - #[allow(dead_code)] pub fn serialize(&self) -> String { match self { TagType::Item(name) => name.clone(), diff --git a/pumpkin-world/src/chunk/format/anvil.rs b/pumpkin-world/src/chunk/format/anvil.rs index 94087a730..bf9f7e463 100644 --- a/pumpkin-world/src/chunk/format/anvil.rs +++ b/pumpkin-world/src/chunk/format/anvil.rs @@ -201,7 +201,7 @@ impl Compression { } /// Returns Ok when a compression is found otherwise an Err - #[allow(clippy::result_unit_err)] + #[expect(clippy::result_unit_err)] pub fn from_byte(byte: u8) -> Result, ()> { match byte { Self::GZIP_ID => Ok(Some(Self::GZip)), diff --git a/pumpkin-world/src/chunk/palette.rs b/pumpkin-world/src/chunk/palette.rs index 4e911d193..b8c10296d 100644 --- a/pumpkin-world/src/chunk/palette.rs +++ b/pumpkin-world/src/chunk/palette.rs @@ -343,7 +343,7 @@ impl BiomePalette { } pub fn to_disk_nbt(&self) -> ChunkSectionBiomes { - #[allow(clippy::unnecessary_min_or_max)] + #[expect(clippy::unnecessary_min_or_max)] let bits_per_entry = self.bits_per_entry().max(BIOME_DISK_MIN_BITS); let (palette, packed_data) = self.to_palette_and_packed_data(bits_per_entry); ChunkSectionBiomes { diff --git a/pumpkin-world/src/chunk_system.rs b/pumpkin-world/src/chunk_system.rs index d7e65d07a..3e8e446a6 100644 --- a/pumpkin-world/src/chunk_system.rs +++ b/pumpkin-world/src/chunk_system.rs @@ -1089,7 +1089,7 @@ impl Cache { chunks: Vec::with_capacity((size * size) as usize), } } - #[allow(clippy::too_many_arguments)] + #[expect(clippy::too_many_arguments)] pub fn advance( &mut self, stage: StagedChunkEnum, @@ -1267,7 +1267,7 @@ new_key_type! { struct NodeKey; } new_key_type! { struct EdgeKey; } #[derive(Default)] -#[allow(clippy::upper_case_acronyms)] +#[expect(clippy::upper_case_acronyms)] struct DAG { pub nodes: SlotMap, pub edges: SlotMap, diff --git a/pumpkin-world/src/generation/aquifer_sampler.rs b/pumpkin-world/src/generation/aquifer_sampler.rs index 934dda8a4..827725a63 100644 --- a/pumpkin-world/src/generation/aquifer_sampler.rs +++ b/pumpkin-world/src/generation/aquifer_sampler.rs @@ -372,7 +372,7 @@ impl WorldAquiferSampler { ) } - #[allow(clippy::too_many_arguments)] + #[expect(clippy::too_many_arguments)] fn get_fluid_block_y( block_x: i32, block_y: i32, @@ -446,7 +446,6 @@ impl WorldAquiferSampler { surface_height_estimate.min(local_height) } - #[allow(clippy::too_many_arguments)] fn get_fluid_block_state( block_x: i32, block_y: i32, diff --git a/pumpkin-world/src/generation/chunk_noise.rs b/pumpkin-world/src/generation/chunk_noise.rs index c817a293d..9daf2a1d0 100644 --- a/pumpkin-world/src/generation/chunk_noise.rs +++ b/pumpkin-world/src/generation/chunk_noise.rs @@ -155,7 +155,7 @@ pub struct ChunkNoiseGenerator<'a> { } impl<'a> ChunkNoiseGenerator<'a> { - #[allow(clippy::too_many_arguments)] + #[expect(clippy::too_many_arguments)] pub fn new( noise_router_base: &'a ProtoNoiseRouter, random_config: &GlobalRandomConfig, diff --git a/pumpkin-world/src/generation/proto_chunk.rs b/pumpkin-world/src/generation/proto_chunk.rs index 8f0b362ac..38fd1020e 100644 --- a/pumpkin-world/src/generation/proto_chunk.rs +++ b/pumpkin-world/src/generation/proto_chunk.rs @@ -1036,8 +1036,7 @@ impl BlockAccessor for ProtoChunk { } } -#[cfg(test)] -#[allow(dead_code)] // TODO: Fix tests to work with new ProtoChunk API +#[cfg(test)] // TODO: Fix tests to work with new ProtoChunk API mod test { /* TODO: Update all tests to work with the new ProtoChunk API that doesn't use lifetimes. diff --git a/pumpkin-world/src/generation/surface/mod.rs b/pumpkin-world/src/generation/surface/mod.rs index 1fe75bd7f..e40d328f9 100644 --- a/pumpkin-world/src/generation/surface/mod.rs +++ b/pumpkin-world/src/generation/surface/mod.rs @@ -55,7 +55,7 @@ pub struct MaterialRuleContext<'a> { } impl<'a> MaterialRuleContext<'a> { - #[allow(clippy::too_many_arguments)] + #[expect(clippy::too_many_arguments)] pub fn new( min_y: i8, height: u16, diff --git a/pumpkin-world/src/inventory/mod.rs b/pumpkin-world/src/inventory/mod.rs index b676c7750..bac0065c0 100644 --- a/pumpkin-world/src/inventory/mod.rs +++ b/pumpkin-world/src/inventory/mod.rs @@ -4,7 +4,7 @@ use tokio::sync::Mutex; use crate::item::ItemStack; -#[allow(clippy::module_inception)] +#[expect(clippy::module_inception)] mod inventory; pub use inventory::*; diff --git a/pumpkin-world/src/world_info/anvil.rs b/pumpkin-world/src/world_info/anvil.rs index c191da9e9..c4a2cc07f 100644 --- a/pumpkin-world/src/world_info/anvil.rs +++ b/pumpkin-world/src/world_info/anvil.rs @@ -28,13 +28,11 @@ fn check_file_data_version(raw_nbt: &[u8]) -> Result<(), WorldInfoError> { #[derive(Deserialize)] #[serde(rename_all = "PascalCase")] struct LevelData { - #[allow(dead_code)] data_version: i32, } #[derive(Deserialize)] #[serde(rename_all = "PascalCase")] struct LevelDat { - #[allow(dead_code)] data: LevelData, } diff --git a/pumpkin/src/block/blocks/bed.rs b/pumpkin/src/block/blocks/bed.rs index e66015faf..ca181c643 100644 --- a/pumpkin/src/block/blocks/bed.rs +++ b/pumpkin/src/block/blocks/bed.rs @@ -143,7 +143,7 @@ impl BlockBehaviour for BedBlock { }) } - #[allow(clippy::too_many_lines)] + #[expect(clippy::too_many_lines)] fn normal_use<'a>(&'a self, args: NormalUseArgs<'a>) -> BlockFuture<'a, BlockActionResult> { Box::pin(async move { let state_id = args.world.get_block_state_id(args.position).await; diff --git a/pumpkin/src/block/blocks/doors.rs b/pumpkin/src/block/blocks/doors.rs index a5e0d3e5b..8a1b946b6 100644 --- a/pumpkin/src/block/blocks/doors.rs +++ b/pumpkin/src/block/blocks/doors.rs @@ -102,7 +102,7 @@ fn get_sound(block: &Block, open: bool) -> Sound { } } -#[allow(clippy::pedantic)] +#[expect(clippy::pedantic)] #[inline] async fn get_hinge( world: &World, diff --git a/pumpkin/src/block/blocks/fire/fire.rs b/pumpkin/src/block/blocks/fire/fire.rs index bc0d9ba5c..3280a2e3d 100644 --- a/pumpkin/src/block/blocks/fire/fire.rs +++ b/pumpkin/src/block/blocks/fire/fire.rs @@ -258,7 +258,7 @@ impl BlockBehaviour for FireBlock { }) } - #[allow(clippy::too_many_lines)] + #[expect(clippy::too_many_lines)] fn on_scheduled_tick<'a>(&'a self, args: OnScheduledTickArgs<'a>) -> BlockFuture<'a, ()> { Box::pin(async move { let (world, block, pos) = (args.world, args.block, args.position); diff --git a/pumpkin/src/block/blocks/plant/sea_pickles.rs b/pumpkin/src/block/blocks/plant/sea_pickles.rs index 467522a0f..1f0672b33 100644 --- a/pumpkin/src/block/blocks/plant/sea_pickles.rs +++ b/pumpkin/src/block/blocks/plant/sea_pickles.rs @@ -23,7 +23,6 @@ type SeaPickleProperties = pumpkin_data::block_properties::SeaPickleLikeProperti pub struct SeaPickleBlock; impl BlockBehaviour for SeaPickleBlock { - #[allow(clippy::many_single_char_names)] fn use_with_item<'a>( &'a self, args: UseWithItemArgs<'a>, diff --git a/pumpkin/src/block/blocks/redstone/rails/activator_rail.rs b/pumpkin/src/block/blocks/redstone/rails/activator_rail.rs index 9358e3e9b..bc83f0f4e 100644 --- a/pumpkin/src/block/blocks/redstone/rails/activator_rail.rs +++ b/pumpkin/src/block/blocks/redstone/rails/activator_rail.rs @@ -556,7 +556,7 @@ impl ActivatorRailBlock { pos: &BlockPos, ) -> Option<(&'static Block, RailProperties)> { let block = world.get_block(pos).await; - #[allow(clippy::if_then_some_else_none)] + #[expect(clippy::if_then_some_else_none)] if *block == Block::ACTIVATOR_RAIL { let state_id = world.get_block_state_id(pos).await; let rail_props = RailProperties::new(state_id, block); diff --git a/pumpkin/src/block/blocks/redstone/rails/powered_rail.rs b/pumpkin/src/block/blocks/redstone/rails/powered_rail.rs index 5a875ee63..f77d98811 100644 --- a/pumpkin/src/block/blocks/redstone/rails/powered_rail.rs +++ b/pumpkin/src/block/blocks/redstone/rails/powered_rail.rs @@ -557,7 +557,7 @@ impl PoweredRailBlock { pos: &BlockPos, ) -> Option<(&'static Block, RailProperties)> { let block = world.get_block(pos).await; - #[allow(clippy::if_then_some_else_none)] + #[expect(clippy::if_then_some_else_none)] if *block == Block::POWERED_RAIL { let state_id = world.get_block_state_id(pos).await; let rail_props = RailProperties::new(state_id, block); diff --git a/pumpkin/src/block/blocks/redstone/tripwire_hook.rs b/pumpkin/src/block/blocks/redstone/tripwire_hook.rs index 9736e06bf..746143529 100644 --- a/pumpkin/src/block/blocks/redstone/tripwire_hook.rs +++ b/pumpkin/src/block/blocks/redstone/tripwire_hook.rs @@ -170,7 +170,7 @@ impl TripwireHookBlock { place_block_state.is_side_solid(face) } - #[allow(clippy::too_many_lines)] + #[expect(clippy::too_many_lines)] pub async fn update( world: &Arc, start_hook_pos: BlockPos, @@ -315,7 +315,7 @@ impl TripwireHookBlock { } } - #[allow(clippy::fn_params_excessive_bools)] + #[expect(clippy::fn_params_excessive_bools)] async fn play_sound( world: &Arc, block_pos: &BlockPos, diff --git a/pumpkin/src/block/blocks/stairs.rs b/pumpkin/src/block/blocks/stairs.rs index 285a8b6cd..ccd1485d9 100644 --- a/pumpkin/src/block/blocks/stairs.rs +++ b/pumpkin/src/block/blocks/stairs.rs @@ -37,7 +37,6 @@ impl BlockBehaviour for StairBlock { 0.5..1.0 => BlockHalf::Top, // This cannot happen normally - #[allow(clippy::match_same_arms)] _ => BlockHalf::Bottom, }, }; diff --git a/pumpkin/src/block/fluid/mod.rs b/pumpkin/src/block/fluid/mod.rs index 4dac5ac1d..31fc5fd11 100644 --- a/pumpkin/src/block/fluid/mod.rs +++ b/pumpkin/src/block/fluid/mod.rs @@ -52,7 +52,7 @@ pub trait FluidBehaviour: Send + Sync { Box::pin(async {}) } - #[allow(clippy::too_many_arguments)] + #[expect(clippy::too_many_arguments)] fn on_place<'a>( &'a self, _server: &'a Server, diff --git a/pumpkin/src/block/registry.rs b/pumpkin/src/block/registry.rs index ceccf4e91..ce3d5fb82 100644 --- a/pumpkin/src/block/registry.rs +++ b/pumpkin/src/block/registry.rs @@ -135,7 +135,7 @@ use crate::block::blocks::skull_block::SkullBlock; use crate::block::blocks::smoker::SmokerBlock; #[must_use] -#[allow(clippy::too_many_lines)] +#[expect(clippy::too_many_lines)] pub fn default_registry() -> Arc { let mut manager = BlockRegistry::default(); @@ -432,7 +432,7 @@ impl BlockRegistry { } } - #[allow(clippy::too_many_arguments)] + #[expect(clippy::too_many_arguments)] pub async fn use_with_item( &self, block: &Block, @@ -478,7 +478,7 @@ impl BlockRegistry { BlockActionResult::Pass } - #[allow(clippy::too_many_arguments)] + #[expect(clippy::too_many_arguments)] pub async fn can_place_at( &self, server: Option<&Server>, @@ -508,7 +508,7 @@ impl BlockRegistry { true } - #[allow(clippy::too_many_arguments)] + #[expect(clippy::too_many_arguments)] pub async fn can_update_at( &self, world: &World, @@ -536,7 +536,7 @@ impl BlockRegistry { false } - #[allow(clippy::too_many_arguments)] + #[expect(clippy::too_many_arguments)] pub async fn on_place( &self, server: &Server, @@ -729,7 +729,7 @@ impl BlockRegistry { } } - #[allow(clippy::too_many_arguments)] + #[expect(clippy::too_many_arguments)] pub async fn get_state_for_neighbor_update( &self, world: &Arc, diff --git a/pumpkin/src/command/args/bounded_num.rs b/pumpkin/src/command/args/bounded_num.rs index 9f9ae11f3..9754a0f56 100644 --- a/pumpkin/src/command/args/bounded_num.rs +++ b/pumpkin/src/command/args/bounded_num.rs @@ -111,7 +111,6 @@ pub enum Number { F64(f64), F32(f32), I32(i32), - #[allow(unused)] I64(i64), } @@ -153,7 +152,6 @@ impl BoundedNumArgumentConsumer { } #[must_use] - #[allow(unused)] pub const fn max(mut self, max_inclusive: T) -> Self { self.max_inclusive = Some(max_inclusive); self diff --git a/pumpkin/src/command/args/entities.rs b/pumpkin/src/command/args/entities.rs index d72a0da4e..84e1734d4 100644 --- a/pumpkin/src/command/args/entities.rs +++ b/pumpkin/src/command/args/entities.rs @@ -16,7 +16,6 @@ use uuid::Uuid; use super::super::args::ArgumentConsumer; use super::{Arg, DefaultNameArgConsumer, FindArg, GetClientSideArgParser}; -#[allow(dead_code)] pub enum EntitySelectorType { Source, NearestPlayer, @@ -29,13 +28,11 @@ pub enum EntitySelectorType { } // todo tags -#[allow(dead_code)] pub enum ValueCondition { Equals(T), NotEquals(T), } -#[allow(dead_code)] pub enum ComparableValueCondition { Equals(T), NotEquals(T), @@ -46,7 +43,6 @@ pub enum ComparableValueCondition { Between(T, T), } -#[allow(dead_code)] #[derive(Copy, Clone, PartialEq)] pub enum EntityFilterSort { Arbitrary, @@ -55,7 +51,6 @@ pub enum EntityFilterSort { Random, } -#[allow(dead_code)] pub enum EntityFilter { X(ComparableValueCondition), Y(ComparableValueCondition), @@ -127,7 +122,6 @@ impl FromStr for EntityFilter { } /// -#[allow(dead_code)] pub struct TargetSelector { pub selector_type: EntitySelectorType, pub conditions: Vec, diff --git a/pumpkin/src/command/args/mod.rs b/pumpkin/src/command/args/mod.rs index d75ecb240..5a77fe6ee 100644 --- a/pumpkin/src/command/args/mod.rs +++ b/pumpkin/src/command/args/mod.rs @@ -112,7 +112,6 @@ pub enum Arg<'a> { Time(i32), Num(Result), Bool(bool), - #[allow(unused)] Simple(&'a str), SoundCategory(SoundCategory), DamageType(DamageType), diff --git a/pumpkin/src/command/args/players.rs b/pumpkin/src/command/args/players.rs index b9f47f281..ec8f13cc9 100644 --- a/pumpkin/src/command/args/players.rs +++ b/pumpkin/src/command/args/players.rs @@ -46,7 +46,7 @@ impl ArgumentConsumer for PlayersArgumentConsumer { CommandSender::Player(p) => Some(vec![p.clone()]), _ => None, }, - #[allow(clippy::match_same_arms)] + #[expect(clippy::match_same_arms)] // todo: implement for non-players and remove this line "@n" | "@p" => match sender { CommandSender::Player(p) => Some(vec![p.clone()]), diff --git a/pumpkin/src/command/args/simple.rs b/pumpkin/src/command/args/simple.rs index 75d6f0dce..1cc85856d 100644 --- a/pumpkin/src/command/args/simple.rs +++ b/pumpkin/src/command/args/simple.rs @@ -16,7 +16,6 @@ use super::{ }; /// Should never be a permanent solution -#[allow(unused)] pub struct SimpleArgConsumer; impl GetClientSideArgParser for SimpleArgConsumer { diff --git a/pumpkin/src/command/commands/clear.rs b/pumpkin/src/command/commands/clear.rs index 321dfad6b..1865189a3 100644 --- a/pumpkin/src/command/commands/clear.rs +++ b/pumpkin/src/command/commands/clear.rs @@ -120,7 +120,7 @@ impl CommandExecutor for SelfExecutor { } } -// #[allow(clippy::redundant_closure_for_method_calls)] // causes lifetime issues +// #[expect(clippy::redundant_closure_for_method_calls)] // causes lifetime issues pub fn init_command_tree() -> CommandTree { CommandTree::new(NAMES, DESCRIPTION) .then(argument(ARG_TARGET, PlayersArgumentConsumer).execute(Executor)) diff --git a/pumpkin/src/command/commands/data.rs b/pumpkin/src/command/commands/data.rs index acba46f07..d88b5af13 100644 --- a/pumpkin/src/command/commands/data.rs +++ b/pumpkin/src/command/commands/data.rs @@ -41,7 +41,7 @@ impl CommandExecutor for GetEntityDataExecutor { } } -#[allow(clippy::too_many_lines)] +#[expect(clippy::too_many_lines)] pub fn snbt_colorful_display(tag: &NbtTag, depth: usize) -> Result { let folded = TextComponent::text("<...>").color_named(NamedColor::Gray); match tag { diff --git a/pumpkin/src/command/commands/effect.rs b/pumpkin/src/command/commands/effect.rs index b02ae2279..523273029 100644 --- a/pumpkin/src/command/commands/effect.rs +++ b/pumpkin/src/command/commands/effect.rs @@ -67,13 +67,13 @@ impl CommandExecutor for GiveExecutor { Time::Infinite => -1, }; - let amplifier: i32 = match self.1 { + let amplifier: u8 = match self.1 { Amplifier::Base => 0, Amplifier::Specified => BoundedNumArgumentConsumer::new() .name("amplifier") .min(0) .max(255) - .find_arg_default_name(args)??, + .find_arg_default_name(args)?? as u8, }; let mut hide_particles = self.2; @@ -96,7 +96,7 @@ impl CommandExecutor for GiveExecutor { .await .unwrap() .amplifier - > amplifier as u8 + > amplifier { failed += 1; } else { @@ -104,7 +104,7 @@ impl CommandExecutor for GiveExecutor { .add_effect(Effect { effect_type: effect, duration: second, - amplifier: amplifier as u8, + amplifier, ambient: false, //this is not a beacon effect show_particles: hide_particles, show_icon: true, @@ -258,7 +258,6 @@ impl CommandExecutor for ClearExecutor { } } -#[allow(clippy::redundant_closure_for_method_calls)] pub fn init_command_tree() -> CommandTree { CommandTree::new(NAMES, DESCRIPTION) .then( diff --git a/pumpkin/src/command/commands/enchant.rs b/pumpkin/src/command/commands/enchant.rs index 8aa98f0e5..435672596 100644 --- a/pumpkin/src/command/commands/enchant.rs +++ b/pumpkin/src/command/commands/enchant.rs @@ -15,7 +15,7 @@ const DESCRIPTION: &str = "Adds an enchantment to a player's selected item, subj struct Executor; impl CommandExecutor for Executor { - #[allow(clippy::too_many_lines)] + #[expect(clippy::too_many_lines)] fn execute<'a>( &'a self, sender: &'a CommandSender, @@ -153,7 +153,6 @@ fn enchantment_level_consumer() -> BoundedNumArgumentConsumer { .max(i32::MAX) } -#[allow(clippy::redundant_closure_for_method_calls)] // causes lifetime issues pub fn init_command_tree() -> CommandTree { CommandTree::new(NAMES, DESCRIPTION).then( argument_default_name(EntitiesArgumentConsumer).then( diff --git a/pumpkin/src/command/commands/gamemode.rs b/pumpkin/src/command/commands/gamemode.rs index 96fa07a0f..e3b846c22 100644 --- a/pumpkin/src/command/commands/gamemode.rs +++ b/pumpkin/src/command/commands/gamemode.rs @@ -103,7 +103,7 @@ impl CommandExecutor for TargetPlayerExecutor { } } -#[allow(clippy::redundant_closure_for_method_calls)] +#[expect(clippy::redundant_closure_for_method_calls)] pub fn init_command_tree() -> CommandTree { CommandTree::new(NAMES, DESCRIPTION).then( argument(ARG_GAMEMODE, GamemodeArgumentConsumer) diff --git a/pumpkin/src/command/commands/gamerule.rs b/pumpkin/src/command/commands/gamerule.rs index 26a89e1a8..e0d7b890f 100644 --- a/pumpkin/src/command/commands/gamerule.rs +++ b/pumpkin/src/command/commands/gamerule.rs @@ -82,7 +82,6 @@ impl CommandExecutor for SetExecutor { } } -#[allow(clippy::redundant_closure_for_method_calls)] pub fn init_command_tree() -> CommandTree { let mut command_tree = CommandTree::new(NAMES, DESCRIPTION); let rule_registry = GameRuleRegistry::default(); diff --git a/pumpkin/src/command/commands/kill.rs b/pumpkin/src/command/commands/kill.rs index 4375affd7..eccb58314 100644 --- a/pumpkin/src/command/commands/kill.rs +++ b/pumpkin/src/command/commands/kill.rs @@ -76,7 +76,7 @@ impl CommandExecutor for SelfExecutor { } } -#[allow(clippy::redundant_closure_for_method_calls)] // causes lifetime issues +#[expect(clippy::redundant_closure_for_method_calls)] // causes lifetime issues pub fn init_command_tree() -> CommandTree { CommandTree::new(NAMES, DESCRIPTION) .then(argument(ARG_TARGET, EntitiesArgumentConsumer).execute(Executor)) diff --git a/pumpkin/src/command/commands/mod.rs b/pumpkin/src/command/commands/mod.rs index 4efa52329..456fe37b6 100644 --- a/pumpkin/src/command/commands/mod.rs +++ b/pumpkin/src/command/commands/mod.rs @@ -199,7 +199,7 @@ fn register_level_0_permissions(registry: &mut PermissionRegistry) { .unwrap(); } -#[allow(clippy::too_many_lines)] +#[expect(clippy::too_many_lines)] fn register_level_2_permissions(registry: &mut PermissionRegistry) { // Register permissions for commands with PermissionLvl::Two registry diff --git a/pumpkin/src/command/commands/pumpkin.rs b/pumpkin/src/command/commands/pumpkin.rs index a443fd34e..ed2f68e59 100644 --- a/pumpkin/src/command/commands/pumpkin.rs +++ b/pumpkin/src/command/commands/pumpkin.rs @@ -17,7 +17,7 @@ struct Executor; const CARGO_PKG_VERSION: &str = env!("CARGO_PKG_VERSION"); -#[allow(clippy::too_many_lines)] +#[expect(clippy::too_many_lines)] impl CommandExecutor for Executor { fn execute<'a>( &'a self, diff --git a/pumpkin/src/command/commands/transfer.rs b/pumpkin/src/command/commands/transfer.rs index 6878c885b..db2b62f94 100644 --- a/pumpkin/src/command/commands/transfer.rs +++ b/pumpkin/src/command/commands/transfer.rs @@ -117,7 +117,7 @@ impl CommandExecutor for TargetPlayerExecutor { } } -#[allow(clippy::redundant_closure_for_method_calls)] +#[expect(clippy::redundant_closure_for_method_calls)] pub fn init_command_tree() -> CommandTree { CommandTree::new(NAMES, DESCRIPTION).then( argument(ARG_HOSTNAME, SimpleArgConsumer) diff --git a/pumpkin/src/data/banlist_serializer.rs b/pumpkin/src/data/banlist_serializer.rs index d041e061e..030c7f5b2 100644 --- a/pumpkin/src/data/banlist_serializer.rs +++ b/pumpkin/src/data/banlist_serializer.rs @@ -100,7 +100,7 @@ mod format { use crate::data::banlist_serializer::format::DATE_FORMAT; - #[allow(clippy::ref_option)] + #[expect(clippy::ref_option)] pub fn serialize( date: &Option, serializer: S, diff --git a/pumpkin/src/entity/ai/goal/active_target_goal.rs b/pumpkin/src/entity/ai/goal/active_target_goal.rs index 5932eea7d..12e888d4e 100644 --- a/pumpkin/src/entity/ai/goal/active_target_goal.rs +++ b/pumpkin/src/entity/ai/goal/active_target_goal.rs @@ -12,7 +12,7 @@ use std::sync::Arc; const DEFAULT_RECIPROCAL_CHANCE: i32 = 10; -#[allow(dead_code)] +#[expect(dead_code)] pub struct ActiveTargetGoal { track_target_goal: TrackTargetGoal, target: Option>, diff --git a/pumpkin/src/entity/ai/goal/ambient_stand_goal.rs b/pumpkin/src/entity/ai/goal/ambient_stand_goal.rs index 0e7ba927e..60e983bef 100644 --- a/pumpkin/src/entity/ai/goal/ambient_stand_goal.rs +++ b/pumpkin/src/entity/ai/goal/ambient_stand_goal.rs @@ -2,7 +2,6 @@ use super::{Controls, Goal}; use crate::entity::{ai::goal::GoalFuture, mob::Mob}; use rand::Rng; -#[allow(dead_code)] pub struct AmbientStandGoal { goal_control: Controls, cooldown: i32, diff --git a/pumpkin/src/entity/ai/goal/look_around_goal.rs b/pumpkin/src/entity/ai/goal/look_around_goal.rs index 8d105757b..2db0f3d57 100644 --- a/pumpkin/src/entity/ai/goal/look_around_goal.rs +++ b/pumpkin/src/entity/ai/goal/look_around_goal.rs @@ -4,7 +4,6 @@ use super::{Controls, Goal}; use crate::entity::{ai::goal::GoalFuture, mob::Mob}; use rand::Rng; -#[allow(dead_code)] pub struct LookAroundGoal { goal_control: Controls, delta_x: f64, diff --git a/pumpkin/src/entity/ai/goal/look_at_entity.rs b/pumpkin/src/entity/ai/goal/look_at_entity.rs index eb252887d..23d8a7dfa 100644 --- a/pumpkin/src/entity/ai/goal/look_at_entity.rs +++ b/pumpkin/src/entity/ai/goal/look_at_entity.rs @@ -8,7 +8,7 @@ use pumpkin_data::entity::EntityType; use rand::Rng; use std::sync::{Arc, Weak}; -#[allow(dead_code)] +#[expect(dead_code)] pub struct LookAtEntityGoal { goal_control: Controls, target: Option>, diff --git a/pumpkin/src/entity/ai/goal/melee_attack_goal.rs b/pumpkin/src/entity/ai/goal/melee_attack_goal.rs index 6192d45d1..874e5d7b5 100644 --- a/pumpkin/src/entity/ai/goal/melee_attack_goal.rs +++ b/pumpkin/src/entity/ai/goal/melee_attack_goal.rs @@ -13,11 +13,11 @@ pub struct MeleeAttackGoal { speed: f64, pause_when_mob_idle: bool, //path: Path, TODO: add path when Navigation is implemented - #[allow(dead_code)] + #[expect(dead_code)] target_location: Vector3, update_countdown_ticks: i32, pub cooldown: i32, - #[allow(dead_code)] + #[expect(dead_code)] attack_interval_ticks: i32, last_update_time: i64, } diff --git a/pumpkin/src/entity/ai/goal/move_to_target_pos_goal.rs b/pumpkin/src/entity/ai/goal/move_to_target_pos_goal.rs index a9011f04c..68e121756 100644 --- a/pumpkin/src/entity/ai/goal/move_to_target_pos_goal.rs +++ b/pumpkin/src/entity/ai/goal/move_to_target_pos_goal.rs @@ -12,7 +12,6 @@ const MIN_WAITING_TIME: i32 = 1200; const MAX_TRYING_TIME: i32 = 1200; const MIN_INTERVAL: i32 = 200; -#[allow(dead_code)] pub struct MoveToTargetPosGoal { goal_control: Controls, pub move_to_target_pos: ParentHandle, @@ -50,7 +49,6 @@ impl MoveToTargetPosGoal { } } - #[allow(dead_code)] #[must_use] pub fn with_default(move_to_target_pos: ParentHandle, speed: f64, range: i32) -> Self { Self::new(move_to_target_pos, speed, range, 1) diff --git a/pumpkin/src/entity/ai/goal/step_and_destroy_block_goal.rs b/pumpkin/src/entity/ai/goal/step_and_destroy_block_goal.rs index 39b6186c0..4c49f0a38 100644 --- a/pumpkin/src/entity/ai/goal/step_and_destroy_block_goal.rs +++ b/pumpkin/src/entity/ai/goal/step_and_destroy_block_goal.rs @@ -11,7 +11,6 @@ use std::sync::Arc; const MAX_COOLDOWN: i32 = 20; -#[allow(dead_code)] pub struct StepAndDestroyBlockGoal { pub stepping: ParentHandle, pub move_to_target_pos_goal: MoveToTargetPosGoal, diff --git a/pumpkin/src/entity/ai/goal/track_target_goal.rs b/pumpkin/src/entity/ai/goal/track_target_goal.rs index e72afd9c1..1bb44be88 100644 --- a/pumpkin/src/entity/ai/goal/track_target_goal.rs +++ b/pumpkin/src/entity/ai/goal/track_target_goal.rs @@ -8,12 +8,10 @@ use rand::Rng; use std::sync::Arc; const UNSET: i32 = 0; -#[allow(dead_code)] const CAN_TRACK: i32 = 1; -#[allow(dead_code)] const CANNOT_TRACK: i32 = 2; -#[allow(dead_code)] +#[expect(dead_code)] pub struct TrackTargetGoal { goal_control: Controls, target: Option>, @@ -25,7 +23,7 @@ pub struct TrackTargetGoal { max_time_without_visibility: i32, // Default 60 } -#[allow(dead_code)] +#[expect(dead_code)] impl TrackTargetGoal { #[must_use] pub fn new(check_visibility: bool, check_can_navigate: bool) -> Self { diff --git a/pumpkin/src/entity/ai/target_predicate.rs b/pumpkin/src/entity/ai/target_predicate.rs index 5c4bb96dc..b36f600d3 100644 --- a/pumpkin/src/entity/ai/target_predicate.rs +++ b/pumpkin/src/entity/ai/target_predicate.rs @@ -3,7 +3,7 @@ use crate::world::World; use std::pin::Pin; use std::sync::Arc; -#[allow(dead_code)] +#[expect(dead_code)] const MIN_DISTANCE: f32 = 2.0; pub type PredicateFn = dyn Fn(Arc, Arc) -> Pin + Send>> diff --git a/pumpkin/src/entity/decoration/armor_stand.rs b/pumpkin/src/entity/decoration/armor_stand.rs index 5337af78d..6ad62922c 100644 --- a/pumpkin/src/entity/decoration/armor_stand.rs +++ b/pumpkin/src/entity/decoration/armor_stand.rs @@ -55,7 +55,7 @@ impl From for NbtTag { } impl From for PackedRotation { - #[allow(clippy::unnecessary_fallible_conversions)] + #[expect(clippy::unnecessary_fallible_conversions)] fn from(tag: NbtTag) -> Self { if let NbtTag::Compound(compound) = tag { fn get_rotation( @@ -85,7 +85,6 @@ impl From for PackedRotation { } } -#[allow(dead_code)] pub struct ArmorStandEntity { living_entity: LivingEntity, diff --git a/pumpkin/src/entity/living.rs b/pumpkin/src/entity/living.rs index 35afc21e0..454c9b8d2 100644 --- a/pumpkin/src/entity/living.rs +++ b/pumpkin/src/entity/living.rs @@ -80,7 +80,7 @@ pub struct LivingEntity { impl LivingEntity { const USING_ITEM_FLAG: i32 = 1; const OFF_HAND_ACTIVE_FLAG: i32 = 2; - #[allow(dead_code)] + #[expect(dead_code)] const USING_RIPTIDE_FLAG: i32 = 4; pub fn new(entity: Entity) -> Self { diff --git a/pumpkin/src/entity/mob/mod.rs b/pumpkin/src/entity/mob/mod.rs index 44c5ca176..1c3508b6c 100644 --- a/pumpkin/src/entity/mob/mod.rs +++ b/pumpkin/src/entity/mob/mod.rs @@ -158,7 +158,7 @@ impl EntityBase for T { } } -#[allow(dead_code)] +#[expect(dead_code)] const DEFAULT_PATHFINDING_FAVOR: f32 = 0.0; pub trait PathAwareEntity: Mob + Send + Sync { diff --git a/pumpkin/src/entity/mod.rs b/pumpkin/src/entity/mod.rs index 319e3a3c3..ea067e329 100644 --- a/pumpkin/src/entity/mod.rs +++ b/pumpkin/src/entity/mod.rs @@ -562,7 +562,7 @@ impl Entity { } } - #[allow(clippy::float_cmp)] + #[expect(clippy::float_cmp)] async fn adjust_movement_for_collisions(&self, movement: Vector3) -> Vector3 { self.on_ground.store(false, Ordering::SeqCst); @@ -725,7 +725,7 @@ impl Entity { self.velocity.store(motion); } - #[allow(dead_code)] + #[expect(dead_code)] fn tick_block_underneath(_caller: &Arc) { // let world = self.world.read().await; @@ -1128,7 +1128,6 @@ impl Entity { // Entity.movementInputToVelocity in yarn - #[allow(dead_code)] fn movement_input_to_velocity(&self, movement_input: Vector3, speed: f64) -> Vector3 { let yaw = f64::from(self.yaw.load()).to_radians(); @@ -1155,7 +1154,7 @@ impl Entity { ) } - #[allow(clippy::float_cmp)] + #[expect(clippy::float_cmp)] async fn get_velocity_multiplier(&self) -> f32 { let block = self.world.get_block(&self.block_pos.load()).await; @@ -1170,7 +1169,7 @@ impl Entity { } } - #[allow(clippy::float_cmp)] + #[expect(clippy::float_cmp)] async fn get_jump_velocity_multiplier(&self) -> f32 { let f = self .world @@ -1771,7 +1770,7 @@ impl Entity { } } - #[allow(clippy::unused_async)] + #[expect(clippy::unused_async)] pub async fn reset_state(&self) { self.pose.store(EntityPose::Standing); self.fall_flying.store(false, Relaxed); diff --git a/pumpkin/src/entity/player.rs b/pumpkin/src/entity/player.rs index dead44030..c9cf54ef0 100644 --- a/pumpkin/src/entity/player.rs +++ b/pumpkin/src/entity/player.rs @@ -860,7 +860,7 @@ impl Player { } // TODO Abstract the chunk sending - #[allow(clippy::too_many_lines)] + #[expect(clippy::too_many_lines)] pub async fn tick(self: &Arc, server: &Server) { self.current_screen_handler .lock() diff --git a/pumpkin/src/entity/type.rs b/pumpkin/src/entity/type.rs index 6e58d864c..0ef61d313 100644 --- a/pumpkin/src/entity/type.rs +++ b/pumpkin/src/entity/type.rs @@ -21,7 +21,6 @@ pub async fn from_type( ) -> Arc { let entity = Entity::new(uuid, world.clone(), position, entity_type, false); - #[allow(clippy::single_match)] let mob: Arc = match entity_type.id { id if id == EntityType::ZOMBIE.id => Zombie::make(entity).await, id if id == EntityType::PAINTING.id => Arc::new(PaintingEntity::new(entity)), diff --git a/pumpkin/src/item/items/axe.rs b/pumpkin/src/item/items/axe.rs index 32d9902e0..03734abc1 100644 --- a/pumpkin/src/item/items/axe.rs +++ b/pumpkin/src/item/items/axe.rs @@ -21,7 +21,6 @@ impl ItemMetadata for AxeItem { } impl ItemBehaviour for AxeItem { - #[allow(clippy::too_many_lines)] fn use_on_block<'a>( &'a self, _item: &'a mut ItemStack, diff --git a/pumpkin/src/logging.rs b/pumpkin/src/logging.rs index 21c361ab4..206af6088 100644 --- a/pumpkin/src/logging.rs +++ b/pumpkin/src/logging.rs @@ -225,6 +225,7 @@ impl ReadlineLogWrapper { } // This isn't really dead code, just for some reason rust thinks that it might be. + // Schroedinger's dead code -> expect warns unfulfilled lint expectation but removing it causes dead_code lint? #[allow(dead_code)] pub(crate) fn return_readline(&self, rl: Readline) { if let Ok(mut result) = self.readline.lock() { diff --git a/pumpkin/src/net/bedrock/mod.rs b/pumpkin/src/net/bedrock/mod.rs index a916368c4..a7af0ad57 100644 --- a/pumpkin/src/net/bedrock/mod.rs +++ b/pumpkin/src/net/bedrock/mod.rs @@ -508,7 +508,6 @@ impl BedrockClient { Ok(()) } - #[allow(clippy::too_many_lines)] pub async fn handle_play_packet( &self, player: &Arc, diff --git a/pumpkin/src/net/java/mod.rs b/pumpkin/src/net/java/mod.rs index ad240091f..52e9b40a7 100644 --- a/pumpkin/src/net/java/mod.rs +++ b/pumpkin/src/net/java/mod.rs @@ -530,7 +530,7 @@ impl JavaClient { Ok(()) } - #[allow(clippy::too_many_lines)] + #[expect(clippy::too_many_lines)] pub async fn handle_play_packet( &self, player: &Arc, diff --git a/pumpkin/src/net/java/play.rs b/pumpkin/src/net/java/play.rs index f3948ef6f..6aff9d0fa 100644 --- a/pumpkin/src/net/java/play.rs +++ b/pumpkin/src/net/java/play.rs @@ -1371,7 +1371,6 @@ impl JavaClient { .await; } - #[allow(clippy::too_many_lines)] pub async fn handle_use_item_on( &self, player: &Player, @@ -1476,7 +1475,7 @@ impl JavaClient { Ok(()) } - #[allow(clippy::too_many_arguments)] + #[expect(clippy::too_many_arguments)] async fn call_use_item_on( &self, player: &Player, @@ -1800,7 +1799,7 @@ impl JavaClient { const WORLD_LOWEST_Y: i8 = -64; const WORLD_MAX_Y: u16 = 320; - #[allow(clippy::too_many_lines)] + #[expect(clippy::too_many_lines)] async fn run_is_block_place( &self, player: &Player, diff --git a/pumpkin/src/plugin/mod.rs b/pumpkin/src/plugin/mod.rs index 49ef39ff2..21324e3e0 100644 --- a/pumpkin/src/plugin/mod.rs +++ b/pumpkin/src/plugin/mod.rs @@ -316,7 +316,7 @@ impl PluginManager { } /// Start loading a plugin asynchronously - #[allow(clippy::too_many_lines)] + #[expect(clippy::too_many_lines)] async fn start_loading_plugin( &self, path: &Path, diff --git a/pumpkin/src/server/mod.rs b/pumpkin/src/server/mod.rs index a93f1f987..cf61226e9 100644 --- a/pumpkin/src/server/mod.rs +++ b/pumpkin/src/server/mod.rs @@ -109,8 +109,7 @@ pub struct Server { } impl Server { - #[allow(clippy::new_without_default)] - #[allow(clippy::too_many_lines)] + #[expect(clippy::too_many_lines)] #[must_use] pub async fn new( basic_config: BasicConfiguration, @@ -280,7 +279,7 @@ impl Server { .unwrap() } - #[allow(clippy::if_then_some_else_none)] + #[expect(clippy::if_then_some_else_none)] /// Adds a new player to the server. /// /// This function takes an `Arc` representing the connected client and performs the following actions: @@ -710,8 +709,8 @@ impl Server { *self.tick_times_nanos.lock().await } - #[allow(clippy::too_many_lines)] - #[allow(clippy::option_if_let_else)] + #[expect(clippy::too_many_lines)] + #[expect(clippy::option_if_let_else)] pub async fn select_entities( &self, target_selector: &TargetSelector, diff --git a/pumpkin/src/world/mod.rs b/pumpkin/src/world/mod.rs index b53e4f40c..4cd8f9537 100644 --- a/pumpkin/src/world/mod.rs +++ b/pumpkin/src/world/mod.rs @@ -1185,7 +1185,7 @@ impl World { i32::from(generation_settings.shape.min_y) } - #[allow(clippy::too_many_lines)] + #[expect(clippy::too_many_lines)] pub async fn spawn_bedrock_player( &self, base_config: &BasicConfiguration, @@ -1895,7 +1895,6 @@ impl World { // NOTE: This function doesn't actually await on anything, it just spawns two tokio tasks /// IMPORTANT: Chunks have to be non-empty - #[allow(clippy::too_many_lines)] fn spawn_world_entity_chunks( self: &Arc, player: Arc, @@ -2537,7 +2536,7 @@ impl World { } /// Sets a block and returns the old block id - #[allow(clippy::too_many_lines)] + #[expect(clippy::too_many_lines)] pub async fn set_block_state( self: &Arc, position: &BlockPos, diff --git a/pumpkin/src/world/natural_spawner.rs b/pumpkin/src/world/natural_spawner.rs index a97753510..6bfdd60c5 100644 --- a/pumpkin/src/world/natural_spawner.rs +++ b/pumpkin/src/world/natural_spawner.rs @@ -365,7 +365,7 @@ pub async fn spawn_category_for_position( let mut new_z = new_pos.0.z; let mut random_group_size = (rng().random::() * 4.).ceil() as i32; let mut inc = 0; - #[allow(unused_variables)] + #[expect(unused_variables)] let group_size = 0; 'outer: while inc < random_group_size { new_x += rng().random_range(0..6) - rng().random_range(0..6); @@ -454,8 +454,7 @@ pub fn is_right_distance_to_player_and_spawn_point( if pos.to_centered_f64().squared_distance_to(0., 0., 0.) <= 24. * 24. { return false; } - #[allow(clippy::overly_complex_bool_expr)] - #[allow(clippy::nonminimal_bool)] + #[expect(clippy::nonminimal_bool)] { chunk_pos == &Vector2::new(get_section_cord(pos.0.x), get_section_cord(pos.0.z)) || false // TODO canSpawnEntitiesInChunk(ChunkPos chunkPos) }