Skip to content

Commit 9b983e4

Browse files
committed
Merge remote-tracking branch 'upstream/main' into andrew/fix-crash-attack
2 parents 9bed850 + 347728c commit 9b983e4

34 files changed

Lines changed: 352 additions & 395 deletions

File tree

Cargo.lock

Lines changed: 165 additions & 234 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -68,20 +68,20 @@ dotenvy = '0.15.7'
6868
eframe = "0.31.0"
6969
egui = "0.31.0"
7070
egui_dock = "0.16.0"
71-
enumset = '1.1.5'
71+
enumset = '1.1.6'
7272
fastrand = '2.1.0'
7373
flume = '0.11.1'
7474
futures-util = '0.3.31'
75-
glam = "0.30.2"
75+
glam = "0.30.3"
7676
heapless = '0.8.0'
7777
heed = "0.21.0"
7878
hex = '0.4.3'
7979
humantime = '2.1.0'
8080
hyperion-proxy = { path = "crates/hyperion-proxy" }
8181
itertools = "0.14.0"
8282
kanal = '0.1.1'
83-
libc = '0.2.170'
84-
libdeflater = '1.23.1'
83+
libc = '0.2.172'
84+
libdeflater = '1.24.0'
8585
memmap2 = '0.9.5'
8686
mio = { version = '1.0.3', features = ['os-poll', 'net'] }
8787
more-asserts = '0.3.1'
@@ -94,23 +94,23 @@ ouroboros = '0.18.5'
9494
papaya = "0.2.1"
9595
parking_lot = '0.12.3'
9696
plotters-bitmap = '0.3.6'
97-
proc-macro2 = '1.0.94'
97+
proc-macro2 = '1.0.95'
9898
proptest = '1.5.0'
9999
quote = '1.0.39'
100-
rand = "0.9.0"
100+
rand = "0.9.1"
101101
rayon = '1.10.0'
102102
rkyv = '0.8.8'
103103
serde = '1.0.217'
104104
serde_json = '1.0.140'
105105
slotmap = '1.0.7'
106106
snafu = '0.8.5'
107-
syn = '2.0.99'
107+
syn = '2.0.101'
108108
tango-bench = "0.6.0"
109109
tar = '0.4.41'
110110
thiserror = '2.0.12'
111111
tikv-jemallocator = '0.6.0'
112112
time = '0.3.41'
113-
tokio = '1.44.2'
113+
tokio = '1.45.0'
114114
toml = '0.8.14'
115115
tracing-appender = '0.2.3'
116116
uuid = '1.16.0'
@@ -126,11 +126,11 @@ path = 'crates/bvh-region'
126126

127127
[workspace.dependencies.bytemuck]
128128
features = ['derive']
129-
version = '1.22.0'
129+
version = '1.23.0'
130130

131131
[workspace.dependencies.clap]
132132
features = ['derive']
133-
version = '4.5.36'
133+
version = '4.5.38'
134134

135135
[workspace.dependencies.derive_more]
136136
features = ['display', 'from', 'deref', 'deref_mut', 'debug', 'constructor', 'add', 'add_assign']
@@ -235,7 +235,7 @@ features = ['nightly']
235235
version = '2.0.0'
236236

237237
[workspace.dependencies.sha2]
238-
version = '0.10.8'
238+
version = '0.10.9'
239239

240240
[workspace.dependencies.simd-utils]
241241
path = 'crates/simd-utils'
@@ -249,7 +249,7 @@ path = 'crates/system-order'
249249

250250
[workspace.dependencies.tokio-util]
251251
features = ['full']
252-
version = '0.7.12'
252+
version = '0.7.15'
253253

254254
[workspace.dependencies.tracing]
255255
features = ['release_max_level_info']

GOVERNANCE.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,22 @@ This document outlines the simple governance structure for Hyperion, a high-perf
3535
- If consensus cannot be reached, Project Lead makes the final decision
3636
- Technical merit and alignment with project goals are primary criteria
3737

38+
### Governance Changes
39+
Changes to this document require discussion and consensus among Core Contributors and Leads.
40+
Proposed changes must be submitted in the form of a PR. The discussion should occur in the PR reviews and comments.
41+
42+
Minor changes like typos (1-2 characters changed, fixing URLs) or formatting (reordering sections of text verbatim,
43+
changing whitespace, etc.) do not require this process, but should still follow the usual PR review process.
44+
Minor changes require 1 Lead approval.
45+
46+
A governance change requires all Core Contributors and Leads (voting members) to approve the change by submitting
47+
an approving PR review, or to abstain. Upon receiving all approvals, the change will be merged.
48+
49+
All voting members must be notified both in discord and via github. Requesting a review from a voting members
50+
is sufficient to notify them on github. Voting members will have 2 weeks to respond to the governance change,
51+
after which they will automatically be considered to have abstained. If a voting member has responded to the
52+
governance change raising concerns, they *cannot* be automatically considered to have abstained.
53+
3854
## Becoming a Core Contributor
3955

4056
1. Make consistent contributions to the project

crates/hyperion-clap/src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::iter::zip;
22

33
use clap::{Arg as ClapArg, Parser, ValueEnum, ValueHint, error::ErrorKind};
44
use flecs_ecs::{
5-
core::{Entity, EntityView, EntityViewGet, World, WorldGet, WorldProvider},
5+
core::{Entity, EntityView, EntityViewGet, World, WorldGet, WorldProvider, id},
66
prelude::{Component, Module},
77
};
88
use hyperion::{
@@ -45,7 +45,7 @@ pub trait MinecraftCommand: Parser + CommandPermission {
4545
let mut on = world
4646
.entity()
4747
.set(node_to_register)
48-
.child_of_id(get_root_command_entity());
48+
.child_of(get_root_command_entity());
4949

5050
for arg in cmd.get_arguments() {
5151
use valence_protocol::packets::play::command_tree_s2c::Parser as ValenceParser;
@@ -56,7 +56,7 @@ pub trait MinecraftCommand: Parser + CommandPermission {
5656
ValenceParser::String(StringArg::SingleWord),
5757
);
5858

59-
on = world.entity().set(node_to_register).child_of_id(on);
59+
on = world.entity().set(node_to_register).child_of(on);
6060
}
6161

6262
let on_execute = |input: &str, system: EntityView<'_>, caller: Entity| {
@@ -315,7 +315,7 @@ impl MinecraftCommand for PermissionCommand {
315315
entity.entity_view(world).get::<&mut Group>(|group| {
316316
if *group != cmd.group {
317317
*group = cmd.group;
318-
entity.entity_view(world).modified::<Group>();
318+
entity.entity_view(world).modified(id::<Group>());
319319
}
320320

321321
caller.entity_view(world).get::<&ConnectionId>(|stream| {

crates/hyperion-item/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ publish = false
88

99
[dependencies]
1010
flecs_ecs = { workspace = true }
11-
bytemuck = "1.22.0"
11+
bytemuck = "1.23.0"
1212
valence_protocol = { workspace = true }
1313
hyperion = { workspace = true }
1414
hyperion-inventory = { workspace = true }

crates/hyperion-permission/src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use clap::ValueEnum;
22
use flecs_ecs::{
3-
core::{EntityViewGet, QueryBuilderImpl, SystemAPI, TermBuilderImpl, World, WorldGet},
3+
core::{EntityViewGet, QueryBuilderImpl, SystemAPI, TermBuilderImpl, World, WorldGet, id},
44
macros::{Component, observer},
55
prelude::{Module, flecs},
66
};
@@ -50,22 +50,22 @@ impl Module for PermissionModule {
5050
});
5151

5252
observer!(world, flecs::OnSet, &Uuid, &storage::PermissionStorage($))
53-
.with::<Player>()
53+
.with(id::<Player>())
5454
.each_entity(|entity, (uuid, permissions)| {
5555
let group = permissions.get(**uuid);
5656
entity.set(group);
5757
});
5858

5959
observer!(world, flecs::OnRemove, &Uuid, &Group, &storage::PermissionStorage($))
60-
.with::<Player>()
60+
.with(id::<Player>())
6161
.each(|(uuid, group, permissions)| {
6262
permissions.set(**uuid, *group).unwrap();
6363
});
6464

6565
observer!(world, flecs::OnSet, &Group).each_iter(|it, row, _group| {
6666
let system = it.system();
6767
let world = it.world();
68-
let entity = it.entity(row);
68+
let entity = it.entity(row).expect("row must be in bounds");
6969

7070
let root_command = hyperion::simulation::command::get_root_command_entity();
7171

crates/hyperion-respawn/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use hyperion::{
22
flecs_ecs::{
33
self,
4-
core::{EntityViewGet, World, WorldGet},
4+
core::{id, EntityViewGet, World, WorldGet},
55
macros::Component,
66
prelude::Module,
77
},
@@ -65,7 +65,7 @@ impl Module for RespawnModule {
6565
health.heal(20.);
6666

6767
*pose = Pose::Standing;
68-
client.modified::<Pose>(); // this is so observers detect the change
68+
client.modified(id::<Pose>()); // this is so observers detect the change
6969

7070
let pkt_health = play::HealthUpdateS2c {
7171
health: health.abs(),

crates/hyperion/src/egress/mod.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ impl Module for EgressModule {
4646

4747
let pipeline = world
4848
.entity()
49-
.add::<flecs::pipeline::Phase>()
50-
.depends_on::<flecs::pipeline::OnStore>();
49+
.add(id::<flecs::pipeline::Phase>())
50+
.depends_on(id::<flecs::pipeline::OnStore>());
5151

5252
world.import::<StatsModule>();
5353
world.import::<PlayerJoinModule>();
@@ -60,7 +60,7 @@ impl Module for EgressModule {
6060
&Compose($),
6161
&mut Blocks($),
6262
)
63-
.kind::<flecs::pipeline::OnUpdate>()
63+
.kind(id::<flecs::pipeline::OnUpdate>())
6464
.each_iter(move |it: TableIter<'_, false>, _, (compose, mc)| {
6565
let span = info_span!("broadcast_chunk_deltas");
6666
let _enter = span.enter();
@@ -101,7 +101,7 @@ impl Module for EgressModule {
101101
&mut Compose($),
102102
&mut EgressComm($),
103103
)
104-
.kind_id(pipeline)
104+
.kind(pipeline)
105105
.each(move |(compose, egress)| {
106106
let span = info_span!("egress");
107107
let _enter = span.enter();
@@ -166,7 +166,7 @@ impl Module for EgressModule {
166166
world,
167167
&mut Compose($),
168168
)
169-
.kind_id(pipeline)
169+
.kind(pipeline)
170170
.each(move |compose| {
171171
let span = info_span!("clear_bump");
172172
let _enter = span.enter();

crates/hyperion/src/egress/player_join/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ pub fn player_join_world(
244244
.iter_stage(world)
245245
.each_iter(|it, idx, (uuid, _, position, yaw, pitch, _, flags)| {
246246
let mut result = || {
247-
let query_entity = it.entity(idx);
247+
let query_entity = it.entity(idx).expect("idx must be in bounds");
248248

249249
if entity.id() == query_entity.id() {
250250
return anyhow::Ok(());
@@ -545,7 +545,7 @@ impl Module for PlayerJoinModule {
545545
&Config($),
546546
&RayonWorldStages($),
547547
)
548-
.kind::<flecs::pipeline::PreUpdate>()
548+
.kind(id::<flecs::pipeline::PreUpdate>())
549549
.each_iter(
550550
move |it, _, (comms, compose, crafting_registry, config, stages)| {
551551
let span = tracing::info_span!("joins");

crates/hyperion/src/egress/stats.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ impl Module for StatsModule {
1818
// let system_id = GLOBAL_STATS;
1919

2020
system!("global_update", world, &mut Compose($))
21-
.kind::<flecs::pipeline::OnUpdate>() // ? OnUpdate
21+
.kind(id::<flecs::pipeline::OnUpdate>()) // ? OnUpdate
2222
.each_iter(move |_, _, compose| {
2323
let global = compose.global_mut();
2424

@@ -41,7 +41,7 @@ impl Module for StatsModule {
4141
world,
4242
&mut Blocks($),
4343
)
44-
.kind::<flecs::pipeline::OnUpdate>()
44+
.kind(id::<flecs::pipeline::OnUpdate>())
4545
.each_iter(|_iter, _, blocks| {
4646
let span = info_span!("load_pending");
4747
let _enter = span.enter();

0 commit comments

Comments
 (0)