Compare commits
No commits in common. "4d3947c4ef4970d13b17fc9674a6d0e8c5d16c9d" and "c4454fe217644fa36fe09e18de7b95247d65328b" have entirely different histories.
4d3947c4ef
...
c4454fe217
64
Cargo.lock
generated
64
Cargo.lock
generated
@ -925,15 +925,6 @@ dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "built"
|
||||
version = "0.7.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "56ed6191a7e78c36abdb16ab65341eefd73d64d303fffccdbb00d51e4205967b"
|
||||
dependencies = [
|
||||
"git2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bumpalo"
|
||||
version = "3.17.0"
|
||||
@ -967,8 +958,6 @@ version = "1.2.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af"
|
||||
dependencies = [
|
||||
"jobserver",
|
||||
"libc",
|
||||
"shlex",
|
||||
]
|
||||
|
||||
@ -1382,7 +1371,6 @@ dependencies = [
|
||||
"azalea",
|
||||
"bevy_app",
|
||||
"bevy_log",
|
||||
"built",
|
||||
"clap",
|
||||
"console-subscriber",
|
||||
"futures",
|
||||
@ -1612,19 +1600,6 @@ version = "0.31.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
|
||||
|
||||
[[package]]
|
||||
name = "git2"
|
||||
version = "0.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3fda788993cc341f69012feba8bf45c0ba4f3291fcc08e214b4d5a7332d88aff"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"libc",
|
||||
"libgit2-sys",
|
||||
"log",
|
||||
"url",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "glob"
|
||||
version = "0.3.2"
|
||||
@ -2063,15 +2038,6 @@ version = "1.0.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
|
||||
|
||||
[[package]]
|
||||
name = "jobserver"
|
||||
version = "0.1.32"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "js-sys"
|
||||
version = "0.3.77"
|
||||
@ -2097,18 +2063,6 @@ version = "0.2.169"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
|
||||
|
||||
[[package]]
|
||||
name = "libgit2-sys"
|
||||
version = "0.18.0+1.9.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e1a117465e7e1597e8febea8bb0c410f1c7fb93b1e1cddf34363f8390367ffec"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
"libz-sys",
|
||||
"pkg-config",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libloading"
|
||||
version = "0.8.6"
|
||||
@ -2125,18 +2079,6 @@ version = "0.2.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa"
|
||||
|
||||
[[package]]
|
||||
name = "libz-sys"
|
||||
version = "1.1.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "df9b68e50e6e0b26f672573834882eb57759f6db9b3be2ea3c35c91188bb4eaa"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
"pkg-config",
|
||||
"vcpkg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "linked-hash-map"
|
||||
version = "0.5.6"
|
||||
@ -3697,12 +3639,6 @@ version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
|
||||
|
||||
[[package]]
|
||||
name = "vcpkg"
|
||||
version = "0.2.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
|
||||
|
||||
[[package]]
|
||||
name = "version_check"
|
||||
version = "0.9.5"
|
||||
|
@ -2,7 +2,6 @@
|
||||
name = "errornowatcher"
|
||||
version = "0.2.0"
|
||||
edition = "2024"
|
||||
build = "build.rs"
|
||||
|
||||
[profile.dev]
|
||||
opt-level = 1
|
||||
@ -15,15 +14,12 @@ codegen-units = 1
|
||||
lto = true
|
||||
strip = true
|
||||
|
||||
[build-dependencies]
|
||||
built = { version = "0", features = ["git2"] }
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1"
|
||||
azalea = { git = "https://github.com/azalea-rs/azalea.git" }
|
||||
bevy_app = "0"
|
||||
bevy_log = "0"
|
||||
clap = { version = "4", features = ["derive", "string"] }
|
||||
clap = { version = "4", features = ["derive"] }
|
||||
console-subscriber = { version = "0", optional = true }
|
||||
futures = "0"
|
||||
futures-locks = "0"
|
||||
|
@ -1,10 +1,8 @@
|
||||
use crate::build_info;
|
||||
use clap::Parser;
|
||||
use std::{net::SocketAddr, path::PathBuf};
|
||||
|
||||
/// A Minecraft utility bot
|
||||
#[derive(Parser)]
|
||||
#[command(version = build_info::version_formatted())]
|
||||
pub struct Arguments {
|
||||
/// Path to main Lua file
|
||||
#[arg(short, long)]
|
||||
|
@ -1,11 +0,0 @@
|
||||
pub mod built {
|
||||
include!(concat!(env!("OUT_DIR"), "/built.rs"));
|
||||
}
|
||||
|
||||
pub fn version_formatted() -> String {
|
||||
format!(
|
||||
"v{} ({})",
|
||||
env!("CARGO_PKG_VERSION"),
|
||||
built::GIT_COMMIT_HASH_SHORT.unwrap_or("unknown commit")
|
||||
)
|
||||
}
|
@ -29,7 +29,7 @@ impl CommandSource {
|
||||
self.state.lua.globals().get::<Function>("ncr_encrypt"),
|
||||
) && let Ok(encrypted) = encrypt.call::<String>((options, prepend_header(&chunk)))
|
||||
{
|
||||
chunk = encrypted;
|
||||
chunk = encrypted
|
||||
}
|
||||
self.client.chat(
|
||||
&(if self.message.is_whisper()
|
||||
|
@ -36,8 +36,8 @@ pub async fn handle_event(client: Client, event: Event, state: State) -> anyhow:
|
||||
&& let Ok(trimmed) = trim_header(&decrypted)
|
||||
{
|
||||
ncr_options = Some(options);
|
||||
trimmed.clone_into(&mut content);
|
||||
info!("decrypted message from {sender}: {content}");
|
||||
content = trimmed.to_owned();
|
||||
info!("Decrypted message from {sender}: {content}");
|
||||
}
|
||||
|
||||
if message.is_whisper() && globals.get::<Vec<String>>("Owners")?.contains(&sender) {
|
||||
@ -176,19 +176,12 @@ pub async fn handle_event(client: Client, event: Event, state: State) -> anyhow:
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn call_listeners<T: Clone + IntoLuaMulti + Send + 'static>(
|
||||
state: &State,
|
||||
event_type: &'static str,
|
||||
data: T,
|
||||
) {
|
||||
if let Some(listeners) = state.event_listeners.read().await.get(event_type).cloned() {
|
||||
async fn call_listeners<T: Clone + IntoLuaMulti>(state: &State, event_type: &str, data: T) {
|
||||
if let Some(listeners) = state.event_listeners.read().await.get(event_type) {
|
||||
for (id, callback) in listeners {
|
||||
let data = data.clone();
|
||||
tokio::spawn(async move {
|
||||
if let Err(error) = callback.call_async::<()>(data).await {
|
||||
error!("failed to call lua event listener {id} for {event_type}: {error:?}");
|
||||
}
|
||||
});
|
||||
if let Err(error) = callback.call_async::<()>(data.clone()).await {
|
||||
error!("failed to call lua event listener {id} for {event_type}: {error:?}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ use azalea::blocks::{
|
||||
};
|
||||
use mlua::{Function, Lua, Result, Table};
|
||||
|
||||
pub fn register_globals(lua: &Lua, globals: &Table) -> Result<()> {
|
||||
pub fn register_functions(lua: &Lua, globals: &Table) -> Result<()> {
|
||||
globals.set(
|
||||
"get_block_from_state",
|
||||
lua.create_function(get_block_from_state)?,
|
||||
|
@ -3,7 +3,7 @@ use futures::executor::block_on;
|
||||
use mlua::{Function, Lua, Result, Table};
|
||||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
|
||||
pub fn register_globals(lua: &Lua, globals: &Table, event_listeners: ListenerMap) -> Result<()> {
|
||||
pub fn register_functions(lua: &Lua, globals: &Table, event_listeners: ListenerMap) -> Result<()> {
|
||||
let m = event_listeners.clone();
|
||||
globals.set(
|
||||
"add_listener",
|
||||
|
@ -1,7 +1,7 @@
|
||||
use log::{debug, error, info, trace, warn};
|
||||
use mlua::{Lua, Result, Table};
|
||||
|
||||
pub fn register_globals(lua: &Lua, globals: &Table) -> Result<()> {
|
||||
pub fn register_functions(lua: &Lua, globals: &Table) -> Result<()> {
|
||||
globals.set(
|
||||
"error",
|
||||
lua.create_function(|_, message: String| {
|
||||
|
@ -9,7 +9,7 @@ pub mod player;
|
||||
pub mod system;
|
||||
pub mod vec3;
|
||||
|
||||
use crate::{ListenerMap, build_info::built};
|
||||
use crate::ListenerMap;
|
||||
use mlua::{Lua, Table};
|
||||
use std::{io, time::Duration};
|
||||
|
||||
@ -24,15 +24,11 @@ pub enum Error {
|
||||
ReadFile(io::Error),
|
||||
}
|
||||
|
||||
pub fn register_globals(
|
||||
pub fn register_functions(
|
||||
lua: &Lua,
|
||||
globals: &Table,
|
||||
event_listeners: ListenerMap,
|
||||
) -> mlua::Result<()> {
|
||||
globals.set("CARGO_PKG_VERSION", env!("CARGO_PKG_VERSION"))?;
|
||||
globals.set("GIT_COMMIT_HASH", built::GIT_COMMIT_HASH)?;
|
||||
globals.set("GIT_COMMIT_HASH_SHORT", built::GIT_COMMIT_HASH_SHORT)?;
|
||||
|
||||
globals.set(
|
||||
"sleep",
|
||||
lua.create_async_function(async |_, duration: u64| {
|
||||
@ -41,11 +37,11 @@ pub fn register_globals(
|
||||
})?,
|
||||
)?;
|
||||
|
||||
block::register_globals(lua, globals)?;
|
||||
events::register_globals(lua, globals, event_listeners)?;
|
||||
logging::register_globals(lua, globals)?;
|
||||
nochatreports::register_globals(lua, globals)?;
|
||||
system::register_globals(lua, globals)
|
||||
block::register_functions(lua, globals)?;
|
||||
events::register_functions(lua, globals, event_listeners)?;
|
||||
logging::register_functions(lua, globals)?;
|
||||
nochatreports::register_functions(lua, globals)?;
|
||||
system::register_functions(lua, globals)
|
||||
}
|
||||
|
||||
pub fn reload(lua: &Lua, sender: Option<String>) -> Result<(), Error> {
|
||||
|
@ -10,7 +10,7 @@ use ncr::{
|
||||
utils::{prepend_header, trim_header},
|
||||
};
|
||||
|
||||
pub fn register_globals(lua: &Lua, globals: &Table) -> Result<()> {
|
||||
pub fn register_functions(lua: &Lua, globals: &Table) -> Result<()> {
|
||||
globals.set(
|
||||
"ncr_aes_key_from_passphrase",
|
||||
lua.create_function(|_, passphrase: Vec<u8>| {
|
||||
|
@ -6,7 +6,7 @@ use std::{
|
||||
thread,
|
||||
};
|
||||
|
||||
pub fn register_globals(lua: &Lua, globals: &Table) -> Result<()> {
|
||||
pub fn register_functions(lua: &Lua, globals: &Table) -> Result<()> {
|
||||
globals.set(
|
||||
"system",
|
||||
lua.create_function(|_, (command, args): (String, Option<Vec<OsString>>)| {
|
||||
|
10
src/main.rs
10
src/main.rs
@ -1,14 +1,12 @@
|
||||
#![feature(let_chains)]
|
||||
|
||||
mod arguments;
|
||||
mod build_info;
|
||||
mod commands;
|
||||
mod events;
|
||||
mod http;
|
||||
mod lua;
|
||||
mod particle;
|
||||
|
||||
use arguments::Arguments;
|
||||
use azalea::{
|
||||
DefaultBotPlugins, DefaultPlugins, brigadier::prelude::CommandDispatcher, prelude::*,
|
||||
};
|
||||
@ -48,14 +46,14 @@ async fn main() -> anyhow::Result<()> {
|
||||
#[cfg(feature = "console-subscriber")]
|
||||
console_subscriber::init();
|
||||
|
||||
let args = Arguments::parse();
|
||||
let args = arguments::Arguments::parse();
|
||||
let script_path = args.script.unwrap_or(PathBuf::from(DEFAULT_SCRIPT_PATH));
|
||||
let event_listeners = Arc::new(RwLock::new(HashMap::new()));
|
||||
let lua = unsafe { Lua::unsafe_new() };
|
||||
let globals = lua.globals();
|
||||
|
||||
globals.set("script_path", &*script_path)?;
|
||||
lua::register_globals(&lua, &globals, event_listeners.clone())?;
|
||||
lua::register_functions(&lua, &globals, event_listeners.clone())?;
|
||||
lua.load(
|
||||
read_to_string(script_path)
|
||||
.expect(&(DEFAULT_SCRIPT_PATH.to_owned() + " should be in current directory")),
|
||||
@ -82,8 +80,8 @@ async fn main() -> anyhow::Result<()> {
|
||||
OpenOptions::new()
|
||||
.append(true)
|
||||
.create(true)
|
||||
.open(&log_file)
|
||||
.expect(&(log_file + " should be accessible")),
|
||||
.open(log_file)
|
||||
.expect("log file should be accessible"),
|
||||
)
|
||||
.boxed()
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user