aboutsummaryrefslogtreecommitdiff
path: root/examples/chat/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/chat/client.rs')
-rw-r--r--examples/chat/client.rs14
1 files changed, 10 insertions, 4 deletions
diff --git a/examples/chat/client.rs b/examples/chat/client.rs
index 0e6fad7..15d515a 100644
--- a/examples/chat/client.rs
+++ b/examples/chat/client.rs
@@ -7,7 +7,10 @@ use std::{
use bevy::{
app::{AppExit, ScheduleRunnerPlugin},
log::LogPlugin,
- prelude::{info, warn, App, Commands, CoreStage, EventReader, EventWriter, Res, ResMut},
+ prelude::{
+ info, warn, App, Commands, CoreStage, Deref, DerefMut, EventReader, EventWriter, Res,
+ ResMut, Resource,
+ },
};
use bevy_quinnet::{
client::{
@@ -23,12 +26,15 @@ use protocol::{ClientMessage, ServerMessage};
mod protocol;
-#[derive(Debug, Clone, Default)]
+#[derive(Resource, Debug, Clone, Default)]
struct Users {
self_id: ClientId,
names: HashMap<ClientId, String>,
}
+#[derive(Resource, Deref, DerefMut)]
+struct TerminalReceiver(mpsc::Receiver<String>);
+
pub fn on_app_exit(app_exit_events: EventReader<AppExit>, client: Res<Client>) {
if !app_exit_events.is_empty() {
client.send_message(ClientMessage::Disconnect {}).unwrap();
@@ -76,7 +82,7 @@ fn handle_server_messages(mut client: ResMut<Client>, mut users: ResMut<Users>)
fn handle_terminal_messages(
client: ResMut<Client>,
- mut terminal_messages: ResMut<mpsc::Receiver<String>>,
+ mut terminal_messages: ResMut<TerminalReceiver>,
mut app_exit_events: EventWriter<AppExit>,
) {
while let Ok(message) = terminal_messages.try_recv() {
@@ -101,7 +107,7 @@ fn start_terminal_listener(mut commands: Commands) {
.unwrap();
});
- commands.insert_resource(from_terminal_receiver);
+ commands.insert_resource(TerminalReceiver(from_terminal_receiver));
}
fn start_connection(client: ResMut<Client>) {