chore: update bug report template

This commit is contained in:
Alexander Medvedev 2026-07-30 12:55:41 +02:00
parent 27d485a934
commit a2263c55cc
14 changed files with 83 additions and 76 deletions

2
.github/FUNDING.yml vendored
View File

@ -1,3 +1,3 @@
# These are supported funding model platforms # These are supported funding model platforms
github: [ Snowiiii ] custom: ["https://pumpkinmc.org/donate/"]

View File

@ -1,50 +1,61 @@
name: "Bug report" name: "Bug Report"
description: "Create a bug report to help us improve" description: "File a bug report to help us improve"
labels: ["bug"] labels: ["bug"]
assignees: Snowiiii assignees: ["Snowiiii"]
body: body:
- type: checkboxes - type: checkboxes
id: duplicate id: duplicate
attributes: attributes:
label: "I've searched existing issues and couldn't find a duplicate." label: "Before Submitting"
description: "I confirm this is not a duplicate."
options: options:
- label: "I confirm this is not a duplicate." - label: "I have searched existing issues and confirmed this is not a duplicate."
required: true required: true
- type: input
id: os - type: dropdown
id: edition
attributes: attributes:
label: Operating System label: "Minecraft Edition"
description: "What operating system are you using?" description: "Which edition of Minecraft does this bug affect?"
placeholder: "Example: macOS Big Sur" options:
- "Java Edition"
- "Bedrock Edition"
- "Both / Crossplay"
validations: validations:
required: true required: true
- type: input - type: input
id: version id: version
attributes: attributes:
label: "Server Software Version/Commit" label: "Server Version / Commit"
description: "What Server Software Version/Commit are you using?. (Tip: Use the /pumpkin command)" description: "Provide your server version (Tip: Run `/pumpkin`)."
placeholder: "Example: 1.0.0/39b4cb3" placeholder: "e.g., 1.0.0/39b4cb3"
validations: validations:
required: true required: true
- type: textarea
id: what-happened - type: input
id: os
attributes: attributes:
label: "What happened?" label: "Operating System"
description: "A clear and concise description of what the bug is." placeholder: "e.g., Windows 11, Ubuntu 22.04, macOS"
validations: validations:
required: true required: true
- type: textarea
id: description
attributes:
label: "Bug Description & Expected Behavior"
description: "What is currently happening, and what did you expect to happen instead?"
validations:
required: true
- type: textarea - type: textarea
id: to-reproduce id: to-reproduce
attributes: attributes:
label: "To Reproduce" label: "Steps to Reproduce"
description: "Steps to reproduce the behavior" description: "Please provide a clear, step-by-step list to replicate the issue."
validations: placeholder: |
required: true 1. Go to...
- type: textarea 2. Click on...
id: expected-behavior 3. See error...
attributes:
label: "Expected behavior"
description: "A clear and concise description of what you expected to happen."
validations: validations:
required: true required: true

View File

@ -1,4 +1,5 @@
<!-- Empty or bad Descriptions are not welcome, Don't waste my time --> <!-- Follow the Conventional Commits spec: <https://www.conventionalcommits.org/en/v1.0.0/> -->
<!-- Empty or bad descriptions are not welcome. Don't waste my time -->
## Description ## Description

32
Cargo.lock generated
View File

@ -93,9 +93,9 @@ dependencies = [
[[package]] [[package]]
name = "async-compression" name = "async-compression"
version = "0.4.42" version = "0.4.43"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e79b3f8a79cccc2898f31920fc69f304859b3bd567490f75ebf51ae1c792a9ac" checksum = "3976abdc8fe7d1133d43d304afd42abdf5bc3e1319d263d223bde07b5efc4be8"
dependencies = [ dependencies = [
"compression-codecs", "compression-codecs",
"compression-core", "compression-core",
@ -268,7 +268,7 @@ dependencies = [
"cap-primitives", "cap-primitives",
"cap-std", "cap-std",
"io-lifetimes 3.0.1", "io-lifetimes 3.0.1",
"windows-sys 0.61.2", "windows-sys 0.60.2",
] ]
[[package]] [[package]]
@ -285,7 +285,7 @@ dependencies = [
"maybe-owned", "maybe-owned",
"rustix", "rustix",
"rustix-linux-procfs", "rustix-linux-procfs",
"windows-sys 0.61.2", "windows-sys 0.60.2",
"winx", "winx",
] ]
@ -450,7 +450,7 @@ version = "3.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34" checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34"
dependencies = [ dependencies = [
"windows-sys 0.61.2", "windows-sys 0.52.0",
] ]
[[package]] [[package]]
@ -1106,7 +1106,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [ dependencies = [
"libc", "libc",
"windows-sys 0.61.2", "windows-sys 0.52.0",
] ]
[[package]] [[package]]
@ -2093,7 +2093,7 @@ version = "0.50.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
dependencies = [ dependencies = [
"windows-sys 0.61.2", "windows-sys 0.59.0",
] ]
[[package]] [[package]]
@ -3018,7 +3018,7 @@ dependencies = [
"errno", "errno",
"libc", "libc",
"linux-raw-sys", "linux-raw-sys",
"windows-sys 0.61.2", "windows-sys 0.52.0",
] ]
[[package]] [[package]]
@ -3093,9 +3093,9 @@ dependencies = [
[[package]] [[package]]
name = "ruzstd" name = "ruzstd"
version = "0.8.3" version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7c1c839d570d835527c9a5e4db7cb2198683a988cb9d7293fc8674e6bd58fc8" checksum = "a252f5e20f038fe7b4ea53e073e65398d652c864cc162fc77c56c2f13717b888"
[[package]] [[package]]
name = "same-file" name = "same-file"
@ -3331,7 +3331,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4"
dependencies = [ dependencies = [
"libc", "libc",
"windows-sys 0.61.2", "windows-sys 0.60.2",
] ]
[[package]] [[package]]
@ -3445,7 +3445,7 @@ dependencies = [
"fastrand", "fastrand",
"once_cell", "once_cell",
"rustix", "rustix",
"windows-sys 0.61.2", "windows-sys 0.52.0",
] ]
[[package]] [[package]]
@ -3577,13 +3577,13 @@ dependencies = [
[[package]] [[package]]
name = "tokio-macros" name = "tokio-macros"
version = "2.7.1" version = "2.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6328af13490e73a9b4694030fafd93f8c8c6a9dede33e821c3fc63eddf8042ba" checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.119", "syn 3.0.3",
] ]
[[package]] [[package]]
@ -4411,7 +4411,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [ dependencies = [
"windows-sys 0.61.2", "windows-sys 0.52.0",
] ]
[[package]] [[package]]

View File

@ -118,7 +118,7 @@ serde_json = { version = "1.0", default-features = false, features = ["std"] }
tempfile = { version = "3.27.0", default-features = false } tempfile = { version = "3.27.0", default-features = false }
proc-macro-error2 = { version = "2", default-features = false } proc-macro-error2 = { version = "2", default-features = false }
aes = { version = "0.9", default-features = false } aes = { version = "0.9", default-features = false }
async-compression = { version = "0.4.42", default-features = false } async-compression = { version = "0.4.43", default-features = false }
base64 = { version = "0.23.0", default-features = false, features = ["std"] } base64 = { version = "0.23.0", default-features = false, features = ["std"] }
bitflags = { version = "2.13.1", default-features = false, features = ["std"] } bitflags = { version = "2.13.1", default-features = false, features = ["std"] }
cesu8 = { version = "1.1", default-features = false } cesu8 = { version = "1.1", default-features = false }
@ -164,7 +164,7 @@ rsa = { version = "=0.10.0-rc.18", default-features = false, features = ["std",
cipher = { version = "0.5.2", default-features = false } cipher = { version = "0.5.2", default-features = false }
rustc-hash = { version = "2.1.3", default-features = false, features = ["std"] } rustc-hash = { version = "2.1.3", default-features = false, features = ["std"] }
rustyline = { version = "18.0.1", default-features = false, features = ["with-file-history"] } rustyline = { version = "18.0.1", default-features = false, features = ["with-file-history"] }
ruzstd = { version = "0.8.3", default-features = false, features = ["std"] } ruzstd = { version = "0.9.0", default-features = false, features = ["std"] }
sha1 = { version = "=0.11.0", default-features = false, features = ["oid"] } sha1 = { version = "=0.11.0", default-features = false, features = ["oid"] }
sha2 = { version = "=0.11.0", default-features = false, features = ["oid"] } sha2 = { version = "=0.11.0", default-features = false, features = ["oid"] }
signature = { version = "3.0.0", default-features = false, features = ["std"] } signature = { version = "3.0.0", default-features = false, features = ["std"] }

View File

@ -29,7 +29,7 @@ static SEED_UNIQUIFIER: AtomicU64 = AtomicU64::new(8682522807148012u64);
/// A 64-bit seed value suitable for initializing random number generators. /// A 64-bit seed value suitable for initializing random number generators.
pub fn get_seed() -> u64 { pub fn get_seed() -> u64 {
let seed = SEED_UNIQUIFIER let seed = SEED_UNIQUIFIER
.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |val| { .try_update(Ordering::Relaxed, Ordering::Relaxed, |val| {
Some(val.wrapping_mul(1181783497276652981u64)) Some(val.wrapping_mul(1181783497276652981u64))
}) })
.unwrap(); .unwrap();

View File

@ -306,11 +306,10 @@ impl JigsawPlacement {
let delta_y = source_jigsaw_local_y - target_jigsaw_local_y let delta_y = source_jigsaw_local_y - target_jigsaw_local_y
+ source_facing.to_vector().y; + source_facing.to_vector().y;
let target_box_y;
let mut source_jigsaw_base_height = i32::MIN; let mut source_jigsaw_base_height = i32::MIN;
if source_rigid && target_rigid { let target_box_y = if source_rigid && target_rigid {
target_box_y = source_box.min.y + delta_y; source_box.min.y + delta_y
} else { } else {
if source_jigsaw_base_height == i32::MIN { if source_jigsaw_base_height == i32::MIN {
source_jigsaw_base_height = source_jigsaw_base_height =
@ -328,9 +327,8 @@ impl JigsawPlacement {
source_jigsaw_pos.0.y source_jigsaw_pos.0.y
}; };
} }
target_box_y = source_jigsaw_base_height - target_jigsaw_local_y
source_jigsaw_base_height - target_jigsaw_local_y; };
}
let raw_target_pos = BlockPos::new( let raw_target_pos = BlockPos::new(
target_jigsaw_pos.0.x - target_jigsaw_local_pos.x, target_jigsaw_pos.0.x - target_jigsaw_local_pos.x,

View File

@ -25,7 +25,7 @@ fn ring_bell(position: BlockPos, world: &Arc<World>, hit_direction: Option<Horiz
let (block, state_id) = world.get_block_and_state_id(&position); let (block, state_id) = world.get_block_and_state_id(&position);
let props = BellLikeProperties::from_state_id(state_id, block); let props = BellLikeProperties::from_state_id(state_id, block);
let direction = hit_direction.map_or(props.facing, |direction3| direction3); let direction = hit_direction.unwrap_or(props.facing);
if let Some(block_entity) = world.get_block_entity(&position) if let Some(block_entity) = world.get_block_entity(&position)
&& let Some(be) = block_entity.as_any().downcast_ref::<BellBlockEntity>() && let Some(be) = block_entity.as_any().downcast_ref::<BellBlockEntity>()

View File

@ -53,9 +53,8 @@ impl BlockBehaviour for RedstoneWireBlock {
Box::pin(async move { Box::pin(async move {
let mut wire = RedstoneWireProperties::from_state_id(args.state_id, args.block); let mut wire = RedstoneWireProperties::from_state_id(args.state_id, args.block);
let old_state = wire; let old_state = wire;
let new_side: WireConnection;
match args.direction { let new_side: WireConnection = match args.direction {
BlockDirection::Up => { BlockDirection::Up => {
return args.state_id; return args.state_id;
} }
@ -67,24 +66,24 @@ impl BlockBehaviour for RedstoneWireBlock {
BlockDirection::North => { BlockDirection::North => {
let side = get_side(args.world, args.position, BlockDirection::North).await; let side = get_side(args.world, args.position, BlockDirection::North).await;
wire.north = side.to_north(); wire.north = side.to_north();
new_side = side; side
} }
BlockDirection::South => { BlockDirection::South => {
let side = get_side(args.world, args.position, BlockDirection::South).await; let side = get_side(args.world, args.position, BlockDirection::South).await;
wire.south = side.to_south(); wire.south = side.to_south();
new_side = side; side
} }
BlockDirection::East => { BlockDirection::East => {
let side = get_side(args.world, args.position, BlockDirection::East).await; let side = get_side(args.world, args.position, BlockDirection::East).await;
wire.east = side.to_east(); wire.east = side.to_east();
new_side = side; side
} }
BlockDirection::West => { BlockDirection::West => {
let side = get_side(args.world, args.position, BlockDirection::West).await; let side = get_side(args.world, args.position, BlockDirection::West).await;
wire.west = side.to_west(); wire.west = side.to_west();
new_side = side; side
} }
} };
wire = get_regulated_sides(wire, args.world, args.position).await; wire = get_regulated_sides(wire, args.world, args.position).await;
wire.power = calculate_power(args.world, args.position).await; wire.power = calculate_power(args.world, args.position).await;

View File

@ -451,7 +451,7 @@ macro_rules! impl_block_entity_for_cooking {
} }
} else if !self.is_burning() && self.get_cooking_time_spent() > 0 { } else if !self.is_burning() && self.get_cooking_time_spent() > 0 {
self.cooking_time_spent self.cooking_time_spent
.fetch_update(Ordering::Acquire, Ordering::Acquire, |v| { .try_update(Ordering::Acquire, Ordering::Acquire, |v| {
Some( Some(
v.saturating_sub(2) v.saturating_sub(2)
.min(self.cooking_total_time.load(Ordering::Acquire)), .min(self.cooking_total_time.load(Ordering::Acquire)),

View File

@ -238,7 +238,7 @@ impl ItemEntity {
fn decrement_pickup_delay(&self) { fn decrement_pickup_delay(&self) {
self.pickup_delay self.pickup_delay
.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |val| { .try_update(Ordering::Relaxed, Ordering::Relaxed, |val| {
Some(val.saturating_sub(1)) Some(val.saturating_sub(1))
}) })
.ok(); .ok();

View File

@ -61,9 +61,9 @@ impl ShulkerBulletEntity {
// Position at the center of the shulker's bounding box // Position at the center of the shulker's bounding box
let bb = owner.bounding_box.load(); let bb = owner.bounding_box.load();
let origin = Vector3::new( let origin = Vector3::new(
(bb.min.x + bb.max.x) * 0.5, f64::midpoint(bb.min.x, bb.max.x),
(bb.min.y + bb.max.y) * 0.5, f64::midpoint(bb.min.y, bb.max.y),
(bb.min.z + bb.max.z) * 0.5, f64::midpoint(bb.min.z, bb.max.z),
); );
let entity = Entity::from_uuid( let entity = Entity::from_uuid(

View File

@ -186,9 +186,8 @@ pub fn stop_or_exit_server() {
if SERVER_IS_STOPPING.load(Ordering::Acquire) { if SERVER_IS_STOPPING.load(Ordering::Acquire) {
// Server is already stopping, so we forcefully exit. // Server is already stopping, so we forcefully exit.
exit(SERVER_EXIT_CODE.load(Ordering::Acquire)); exit(SERVER_EXIT_CODE.load(Ordering::Acquire));
} else {
stop_server();
} }
stop_server();
} }
fn resolve_some<T: Future, D, F: FnOnce(D) -> T>( fn resolve_some<T: Future, D, F: FnOnce(D) -> T>(

View File

@ -155,15 +155,14 @@ impl CustomBossbars {
} }
let ratio = f64::from(value) / f64::from(max_value); let ratio = f64::from(value) / f64::from(max_value);
let health: f32;
if ratio < 0.0 { let health: f32 = if ratio < 0.0 {
health = 0.0; 0.0
} else if ratio > 1.0 { } else if ratio > 1.0 {
health = 1.0; 1.0
} else { } else {
health = ratio as f32; ratio as f32
} };
bossbar.value = value; bossbar.value = value;
bossbar.max = max_value; bossbar.max = max_value;