Stop channeling printbuffers to stdostream. Instead, provide an invocation CHANNEL_PRINTS.

This commit is contained in:
2025-12-15 22:22:03 -05:00
parent a0703effc3
commit f528ba69fe
6 changed files with 24 additions and 16 deletions

View File

@@ -63,6 +63,9 @@ public:
// Export stuff to the graphics engine.
set_visible_world_and_actor(master_.get(), admin_id_);
// Reset the print channeler.
print_channeler_.reset();
// Trigger the loading of the lua source.
rescan_lua_source(true);
}
@@ -194,6 +197,12 @@ public:
retpk->write_bytes(errmsg);
break;
}
case AccessKind::CHANNEL_PRINTS: {
if (print_channeler_.channel(master_->get_printbuffer(admin_id_), retpk)) {
master_->invoke(print_channeler_.invocation(admin_id_));
}
break;
}
default: {
stdostream() << "Invalid event_access: " << int(kind) << std::endl;
}
@@ -220,11 +229,6 @@ public:
do_command(console_.get_command());
}
// Anything in the administrator printbuffer should go to stdostream.
if (print_channeler_.channel(master_->get_printbuffer(admin_id_), stdostream())) {
master_->invoke(print_channeler_.invocation(admin_id_));
}
// Check for new incoming channels, set up client structures.
while (true) {
SharedChannel chan = new_incoming_channel();