Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -116,15 +116,14 @@ arrayvec = "0.7.6"
async-trait = "0.1.82"
atty = "0.2.14"
base64 = "0.22.1"
bevy_app = { version = "0.14.2", default-features = false }
bevy_derive = "0.14.2"
bevy_ecs = { version = "0.14.2", default-features = false, features = [
bevy_app = { version = "0.16.1", default-features = false }
bevy_derive = "0.16.1"
bevy_ecs = { version = "0.16.1", default-features = false, features = [
"multi_threaded",
] }
bevy_hierarchy = { version = "0.14.2", default-features = false, features = ["bevy_app"] }
bevy_log = { version = "0.14.2" }
bevy_mod_debugdump = { version = "0.11.1" }
bevy_utils = { version = "0.14.2" }
bevy_log = { version = "0.16.1" }
bevy_mod_debugdump = { version = "0.13.0" }
bevy_utils = { version = "0.16.1" }
bitfield-struct = "0.8.0"
bitvec = "1.0.1"
byteorder = "1.5.0"
Expand Down
1 change: 0 additions & 1 deletion crates/valence_advancement/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,5 @@ workspace = true
valence_server.workspace = true
bevy_app.workspace = true
bevy_ecs.workspace = true
bevy_hierarchy.workspace = true
derive_more.workspace = true
rustc-hash.workspace = true
2 changes: 1 addition & 1 deletion crates/valence_advancement/src/event.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ pub(crate) fn handle_advancement_tab_change(
) {
for packet in packets.read() {
if let Some(pkt) = packet.decode::<AdvancementTabC2s>() {
advancement_tab_change_events.send(AdvancementTabChangeEvent {
advancement_tab_change_events.write(AdvancementTabChangeEvent {
client: packet.client,
opened_tab: match pkt {
AdvancementTabC2s::ClosedScreen => None,
Expand Down
61 changes: 29 additions & 32 deletions crates/valence_advancement/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ use std::time::{SystemTime, UNIX_EPOCH};
use bevy_app::prelude::*;
use bevy_ecs::prelude::*;
use bevy_ecs::system::SystemParam;
pub use bevy_hierarchy;
use bevy_hierarchy::{Children, HierarchyPlugin, Parent};
use derive_more::{Deref, DerefMut};
use event::{handle_advancement_tab_change, AdvancementTabChangeEvent};
use rustc_hash::FxHashMap;
Expand All @@ -33,36 +31,35 @@ pub struct WriteAdvancementToCacheSet;

impl Plugin for AdvancementPlugin {
fn build(&self, app: &mut bevy_app::App) {
app.add_plugins(HierarchyPlugin)
.configure_sets(
PostUpdate,
(
WriteAdvancementPacketToClientsSet.before(FlushPacketsSet),
WriteAdvancementToCacheSet.before(WriteAdvancementPacketToClientsSet),
),
)
.add_event::<AdvancementTabChangeEvent>()
.add_systems(
PreUpdate,
(
add_advancement_update_component_to_new_clients.after(SpawnClientsSet),
handle_advancement_tab_change,
),
)
.add_systems(
PostUpdate,
(
update_advancement_cached_bytes.in_set(WriteAdvancementToCacheSet),
send_advancement_update_packet.in_set(WriteAdvancementPacketToClientsSet),
),
);
app.configure_sets(
PostUpdate,
(
WriteAdvancementPacketToClientsSet.before(FlushPacketsSet),
WriteAdvancementToCacheSet.before(WriteAdvancementPacketToClientsSet),
),
)
.add_event::<AdvancementTabChangeEvent>()
.add_systems(
PreUpdate,
(
add_advancement_update_component_to_new_clients.after(SpawnClientsSet),
handle_advancement_tab_change,
),
)
.add_systems(
PostUpdate,
(
update_advancement_cached_bytes.in_set(WriteAdvancementToCacheSet),
send_advancement_update_packet.in_set(WriteAdvancementPacketToClientsSet),
),
);
}
}

/// Components for advancement that are required
/// Optional components:
/// [`AdvancementDisplay`]
/// [`Parent`] - parent advancement
/// [`ChildOf`] - parent advancement
#[derive(Bundle)]
pub struct AdvancementBundle {
pub advancement: Advancement,
Expand Down Expand Up @@ -94,7 +91,7 @@ impl UpdateAdvancementCachedBytesQuery<'_, '_> {
a_requirements: &AdvancementRequirements,
a_display: Option<&AdvancementDisplay>,
a_children: Option<&Children>,
a_parent: Option<&Parent>,
a_parent: Option<&ChildOf>,
w: impl Write,
) -> anyhow::Result<()> {
let Self {
Expand All @@ -111,7 +108,7 @@ impl UpdateAdvancementCachedBytesQuery<'_, '_> {
};

if let Some(a_parent) = a_parent {
let a_identifier = advancement_id_query.get(a_parent.get())?;
let a_identifier = advancement_id_query.get(a_parent.parent())?;
pkt.parent_id = Some(a_identifier.0.borrowed());
}

Expand Down Expand Up @@ -160,12 +157,12 @@ fn update_advancement_cached_bytes(
&mut AdvancementCachedBytes,
Option<&AdvancementDisplay>,
Option<&Children>,
Option<&Parent>,
Option<&ChildOf>,
),
Or<(
Changed<AdvancementDisplay>,
Changed<Children>,
Changed<Parent>,
Changed<ChildOf>,
Changed<AdvancementRequirements>,
)>,
>,
Expand All @@ -192,7 +189,7 @@ pub(crate) struct SingleAdvancementUpdateQuery<'w, 's> {
advancement_bytes: Query<'w, 's, &'static AdvancementCachedBytes>,
advancement_id: Query<'w, 's, &'static Advancement>,
criteria: Query<'w, 's, &'static AdvancementCriteria>,
parent: Query<'w, 's, &'static Parent>,
parent: Query<'w, 's, &'static ChildOf>,
}

#[derive(Debug)]
Expand Down Expand Up @@ -241,7 +238,7 @@ impl Encode for AdvancementUpdateEncodeS2c<'_, '_, '_> {
for progress in progress {
let a = parent_query.get(progress.0)?;
progress_mapping
.entry(a.get())
.entry(a.parent())
.and_modify(|v| v.push(*progress))
.or_insert(vec![*progress]);
}
Expand Down
4 changes: 2 additions & 2 deletions crates/valence_anvil/src/bevy.rs
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ fn remove_unviewed_chunks(
if chunk.viewer_count_mut() > 0 || anvil.ignored_chunks.contains(&pos) {
true
} else {
unload_events.send(ChunkUnloadEvent {
unload_events.write(ChunkUnloadEvent {
chunk_layer: entity,
pos,
});
Expand Down Expand Up @@ -200,7 +200,7 @@ fn send_recv_chunks(
Err(e) => ChunkLoadStatus::Failed(e),
};

load_events.send(ChunkLoadEvent {
load_events.write(ChunkLoadEvent {
chunk_layer: entity,
pos,
status,
Expand Down
4 changes: 2 additions & 2 deletions crates/valence_command/src/handler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::marker::PhantomData;
use bevy_app::{App, Plugin, PostStartup};
use bevy_ecs::change_detection::ResMut;
use bevy_ecs::event::{Event, EventReader, EventWriter};
use bevy_ecs::prelude::{Entity, IntoSystemConfigs, Resource};
use bevy_ecs::prelude::{Entity, IntoScheduleConfigs, Resource};
use petgraph::prelude::NodeIndex;
use valence_server::EventLoopPreUpdate;

Expand Down Expand Up @@ -116,7 +116,7 @@ fn command_event_system<T>(
for command_event in commands_executed.read() {
if let Some(executable) = command.executables.get(&command_event.node) {
let result = executable(&mut ParseInput::new(&command_event.command));
events.send(CommandResultEvent {
events.write(CommandResultEvent {
result,
executor: command_event.executor,
modifiers: command_event.modifiers.clone(),
Expand Down
6 changes: 3 additions & 3 deletions crates/valence_command/src/manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use std::collections::{HashMap, HashSet};
use bevy_app::{App, Plugin, PreUpdate};
use bevy_ecs::entity::Entity;
use bevy_ecs::prelude::{
Added, Changed, Commands, DetectChanges, Event, EventReader, EventWriter, IntoSystemConfigs,
Added, Changed, Commands, DetectChanges, Event, EventReader, EventWriter, IntoScheduleConfigs,
Mut, Or, Query, Res,
};
use petgraph::graph::NodeIndex;
Expand Down Expand Up @@ -93,7 +93,7 @@ fn read_incoming_packets(
for packet in packets.read() {
let client = packet.client;
if let Some(packet) = packet.decode::<CommandExecutionC2s>() {
event_writer.send(CommandExecutionEvent {
event_writer.write(CommandExecutionEvent {
command: packet.command.to_string(),
executor: client,
});
Expand Down Expand Up @@ -261,7 +261,7 @@ fn parse_incoming_commands(

for node in to_be_executed {
trace!("executing node: {node:?}");
event_writer.send(CommandProcessedEvent {
event_writer.write(CommandProcessedEvent {
command: args.join(" "),
executor,
modifiers: modifiers.clone(),
Expand Down
4 changes: 2 additions & 2 deletions crates/valence_command/src/scopes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ use std::fmt::{Debug, Formatter};

use bevy_app::{App, Plugin, Update};
use bevy_derive::{Deref, DerefMut};
use bevy_ecs::prelude::{Component, ResMut};
use bevy_ecs::prelude::{Component, ResMut, Resource};
use bevy_ecs::query::Changed;
use bevy_ecs::system::{Query, Resource};
use bevy_ecs::system::Query;
use petgraph::dot;
use petgraph::dot::Dot;
use petgraph::prelude::*;
Expand Down
2 changes: 1 addition & 1 deletion crates/valence_equipment/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ fn update_equipment(
.collect(),
});

event_writer.send(EquipmentChangeEvent {
event_writer.write(EquipmentChangeEvent {
client: entity,
changed: slots_changed,
});
Expand Down
22 changes: 11 additions & 11 deletions crates/valence_inventory/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -811,7 +811,7 @@ fn update_cursor_item(
fn handle_close_handled_screen(mut packets: EventReader<PacketEvent>, mut commands: Commands) {
for packet in packets.read() {
if packet.decode::<CloseHandledScreenC2s>().is_some() {
if let Some(mut entity) = commands.get_entity(packet.client) {
if let Ok(mut entity) = commands.get_entity(packet.client) {
entity.remove::<OpenInventory>();
}
}
Expand Down Expand Up @@ -916,7 +916,7 @@ fn handle_click_slot(
let stack = std::mem::take(&mut cursor_item.0);

if !stack.is_empty() {
drop_item_stack_events.send(DropItemStackEvent {
drop_item_stack_events.write(DropItemStackEvent {
client: packet.client,
from_slot: None,
stack,
Expand Down Expand Up @@ -987,7 +987,7 @@ fn handle_click_slot(
old_slot
};

drop_item_stack_events.send(DropItemStackEvent {
drop_item_stack_events.write(DropItemStackEvent {
client: packet.client,
from_slot: Some(pkt.slot_idx as u16),
stack: dropped,
Expand Down Expand Up @@ -1024,7 +1024,7 @@ fn handle_click_slot(
old_slot
};

drop_item_stack_events.send(DropItemStackEvent {
drop_item_stack_events.write(DropItemStackEvent {
client: packet.client,
from_slot: Some(slot_id),
stack: dropped,
Expand Down Expand Up @@ -1063,7 +1063,7 @@ fn handle_click_slot(
old_slot
};

drop_item_stack_events.send(DropItemStackEvent {
drop_item_stack_events.write(DropItemStackEvent {
client: packet.client,
from_slot: Some(pkt.slot_idx as u16),
stack: dropped,
Expand Down Expand Up @@ -1218,7 +1218,7 @@ fn handle_click_slot(
}
}

click_slot_events.send(ClickSlotEvent {
click_slot_events.write(ClickSlotEvent {
client: packet.client,
window_id: pkt.window_id,
state_id: pkt.state_id.0,
Expand Down Expand Up @@ -1265,7 +1265,7 @@ fn handle_player_actions(
if !stack.is_empty() {
inv_state.slots_changed |= 1 << held.slot();

drop_item_stack_events.send(DropItemStackEvent {
drop_item_stack_events.write(DropItemStackEvent {
client: packet.client,
from_slot: Some(held.slot()),
stack,
Expand Down Expand Up @@ -1302,7 +1302,7 @@ fn handle_player_actions(

inv_state.slots_changed |= 1 << held.slot();

drop_item_stack_events.send(DropItemStackEvent {
drop_item_stack_events.write(DropItemStackEvent {
client: packet.client,
from_slot: Some(held.slot()),
stack,
Expand Down Expand Up @@ -1400,7 +1400,7 @@ fn handle_creative_inventory_action(
let stack = pkt.clicked_item.clone();

if !stack.is_empty() {
drop_item_stack_events.send(DropItemStackEvent {
drop_item_stack_events.write(DropItemStackEvent {
client: packet.client,
from_slot: None,
stack,
Expand Down Expand Up @@ -1430,7 +1430,7 @@ fn handle_creative_inventory_action(
slot_data: Cow::Borrowed(&pkt.clicked_item),
});

inv_action_events.send(CreativeInventoryActionEvent {
inv_action_events.write(CreativeInventoryActionEvent {
client: packet.client,
slot: pkt.slot,
clicked_item: pkt.clicked_item,
Expand Down Expand Up @@ -1475,7 +1475,7 @@ fn handle_update_selected_slot(

held.set_hotbar_idx(pkt.slot as u8);

events.send(UpdateSelectedSlotEvent {
events.write(UpdateSelectedSlotEvent {
client: packet.client,
slot: pkt.slot as u8,
});
Expand Down
2 changes: 1 addition & 1 deletion crates/valence_player_list/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ impl Plugin for PlayerListPlugin {
(
update_header_footer,
add_new_clients_to_player_list,
apply_deferred, // So new clients get the packets for their own entry.
ApplyDeferred, // So new clients get the packets for their own entry.
update_entries,
init_player_list_for_clients,
remove_despawned_entries,
Expand Down
10 changes: 5 additions & 5 deletions crates/valence_server/src/abilities.rs
Original file line number Diff line number Diff line change
Expand Up @@ -121,21 +121,21 @@ fn update_player_abilities(
flags.set_allow_flying(true);
flags.set_instant_break(false);
flags.set_flying(true);
player_start_flying_event_writer.send(PlayerStartFlyingEvent { client: entity });
player_start_flying_event_writer.write(PlayerStartFlyingEvent { client: entity });
}
GameMode::Survival => {
flags.set_invulnerable(false);
flags.set_allow_flying(false);
flags.set_instant_break(false);
flags.set_flying(false);
player_stop_flying_event_writer.send(PlayerStopFlyingEvent { client: entity });
player_stop_flying_event_writer.write(PlayerStopFlyingEvent { client: entity });
}
GameMode::Adventure => {
flags.set_invulnerable(false);
flags.set_allow_flying(false);
flags.set_instant_break(false);
flags.set_flying(false);
player_stop_flying_event_writer.send(PlayerStopFlyingEvent { client: entity });
player_stop_flying_event_writer.write(PlayerStopFlyingEvent { client: entity });
}
}
}
Expand All @@ -156,13 +156,13 @@ fn update_server_player_abilities(
match pkt {
UpdatePlayerAbilitiesC2s::StartFlying => {
flags.set_flying(true);
player_start_flying_event_writer.send(PlayerStartFlyingEvent {
player_start_flying_event_writer.write(PlayerStartFlyingEvent {
client: packets.client,
});
}
UpdatePlayerAbilitiesC2s::StopFlying => {
flags.set_flying(false);
player_stop_flying_event_writer.send(PlayerStopFlyingEvent {
player_stop_flying_event_writer.write(PlayerStopFlyingEvent {
client: packets.client,
});
}
Expand Down
Loading
Loading