Compare commits
1 Commits
ff220f6f3b
...
3bd180494e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3bd180494e |
@@ -178,22 +178,15 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! ls logs/mudserver_*.log >/dev/null 2>&1; then
|
if ! ls logs/mudserver_*.log >/dev/null 2>&1; then
|
||||||
echo "Error: no mudserver log files found"
|
echo "Error: no log files found"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! ls logs/combat_*.log >/dev/null 2>&1; then
|
LOG_FILE=$(ls -t logs/mudserver_*.log | head -n 1)
|
||||||
echo "Error: no combat log files found"
|
echo "Checking log file: $LOG_FILE"
|
||||||
exit 1
|
grep -q "World '.*': .* rooms" "$LOG_FILE"
|
||||||
fi
|
grep -q "MUD server listening on" "$LOG_FILE"
|
||||||
|
grep -q "New character created: smoketest" "$LOG_FILE"
|
||||||
MS_LOG=$(ls -t logs/mudserver_*.log | head -n 1)
|
grep -q "Admin action: registration setting updated: '.*'" "$LOG_FILE"
|
||||||
CB_LOG=$(ls -t logs/combat_*.log | head -n 1)
|
grep -q "Combat: Player 'smoketest' (ID .*) killed NPC 'Shadowy Thief'" "$LOG_FILE"
|
||||||
|
grep -q "New character created: rpctest" "$LOG_FILE"
|
||||||
echo "Checking mudserver log: $MS_LOG"
|
grep -q "New JSON-RPC connection from" "$LOG_FILE"
|
||||||
grep -q "World '.*': .* rooms" "$MS_LOG"
|
|
||||||
grep -q "MUD server listening on" "$MS_LOG"
|
|
||||||
grep -q "New character created: smoketest" "$MS_LOG"
|
|
||||||
grep -q "Admin action: registration setting updated: '.*'" "$MS_LOG"
|
|
||||||
|
|
||||||
echo "Checking combat log: $CB_LOG"
|
|
||||||
grep -q "Combat: Player 'smoketest' (ID .*) killed NPC 'Shadowy Thief'" "$CB_LOG"
|
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -2,5 +2,3 @@
|
|||||||
*.db
|
*.db
|
||||||
*.db-shm
|
*.db-shm
|
||||||
*.db-wal
|
*.db-wal
|
||||||
/logs
|
|
||||||
/manual_logs
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -70,8 +70,7 @@ pub fn resolve_combat_tick(
|
|||||||
|
|
||||||
if new_npc_hp <= 0 {
|
if new_npc_hp <= 0 {
|
||||||
let player_name = state.players.get(&player_id).map(|c| c.player.name.clone()).unwrap_or_else(|| "Unknown".into());
|
let player_name = state.players.get(&player_id).map(|c| c.player.name.clone()).unwrap_or_else(|| "Unknown".into());
|
||||||
log::info!(target: "{combat}",
|
log::info!("Combat: Player '{}' (ID {}) killed NPC '{}' ({})", player_name, player_id, npc_template.name, npc_id);
|
||||||
"Combat: Player '{}' (ID {}) killed NPC '{}' ({})", player_name, player_id, npc_template.name, npc_id);
|
|
||||||
if let Some(inst) = state.npc_instances.get_mut(&npc_id) {
|
if let Some(inst) = state.npc_instances.get_mut(&npc_id) {
|
||||||
inst.alive = false;
|
inst.alive = false;
|
||||||
inst.hp = 0;
|
inst.hp = 0;
|
||||||
@@ -356,8 +355,7 @@ pub fn player_death_respawn(player_id: usize, state: &mut GameState) -> String {
|
|||||||
.map(|c| c.player.name.clone())
|
.map(|c| c.player.name.clone())
|
||||||
.unwrap_or_else(|| "Unknown".into());
|
.unwrap_or_else(|| "Unknown".into());
|
||||||
|
|
||||||
log::info!(target: "{combat}",
|
log::info!("Combat: Player '{}' (ID {}) died and respawned at {}", player_name, player_id, spawn_room);
|
||||||
"Combat: Player '{}' (ID {}) died and respawned at {}", player_name, player_id, spawn_room);
|
|
||||||
|
|
||||||
if let Some(conn) = state.players.get_mut(&player_id) {
|
if let Some(conn) = state.players.get_mut(&player_id) {
|
||||||
conn.player.stats.hp = conn.player.stats.max_hp;
|
conn.player.stats.hp = conn.player.stats.max_hp;
|
||||||
|
|||||||
@@ -1222,8 +1222,6 @@ async fn cmd_attack(pid: usize, target: &str, state: &SharedState) -> CommandRes
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
log::info!(target: "{combat}", "Combat: Player '{}' (ID {}) engaged NPC '{}' ({}) in combat", pname, pid, npc_name, npc_id);
|
|
||||||
|
|
||||||
CommandResult {
|
CommandResult {
|
||||||
output: format!(
|
output: format!(
|
||||||
"{}\r\n{}\r\n{}",
|
"{}\r\n{}\r\n{}",
|
||||||
|
|||||||
18
src/main.rs
18
src/main.rs
@@ -2,7 +2,6 @@ use std::path::PathBuf;
|
|||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use tokio::sync::Mutex;
|
use tokio::sync::Mutex;
|
||||||
|
|
||||||
use flexi_logger::writers::FileLogWriter;
|
|
||||||
use flexi_logger::{Cleanup, Criterion, Duplicate, FileSpec, Logger, Naming, WriteMode};
|
use flexi_logger::{Cleanup, Criterion, Duplicate, FileSpec, Logger, Naming, WriteMode};
|
||||||
use russh::keys::ssh_key::rand_core::OsRng;
|
use russh::keys::ssh_key::rand_core::OsRng;
|
||||||
use russh::server::Server as _;
|
use russh::server::Server as _;
|
||||||
@@ -79,23 +78,7 @@ async fn main() {
|
|||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure log directory exists
|
|
||||||
std::fs::create_dir_all(&log_dir).unwrap_or_else(|e| {
|
|
||||||
eprintln!("Failed to create log directory: {e}");
|
|
||||||
std::process::exit(1);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Initialize logger
|
// Initialize logger
|
||||||
let combat_writer = FileLogWriter::builder(FileSpec::default().directory(&log_dir).basename("combat"))
|
|
||||||
.rotate(
|
|
||||||
Criterion::Size(10_000_000), // 10 MB
|
|
||||||
Naming::Numbers,
|
|
||||||
Cleanup::KeepLogFiles(7),
|
|
||||||
)
|
|
||||||
.write_mode(WriteMode::Direct)
|
|
||||||
.try_build()
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
Logger::try_with_str(&log_level)
|
Logger::try_with_str(&log_level)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.log_to_file(FileSpec::default().directory(&log_dir).basename("mudserver"))
|
.log_to_file(FileSpec::default().directory(&log_dir).basename("mudserver"))
|
||||||
@@ -106,7 +89,6 @@ async fn main() {
|
|||||||
Cleanup::KeepLogFiles(7),
|
Cleanup::KeepLogFiles(7),
|
||||||
)
|
)
|
||||||
.write_mode(WriteMode::BufferAndFlush)
|
.write_mode(WriteMode::BufferAndFlush)
|
||||||
.add_writer("combat", Box::new(combat_writer))
|
|
||||||
.start()
|
.start()
|
||||||
.unwrap_or_else(|e| {
|
.unwrap_or_else(|e| {
|
||||||
eprintln!("Failed to initialize logger: {e}");
|
eprintln!("Failed to initialize logger: {e}");
|
||||||
|
|||||||
Reference in New Issue
Block a user