

Console()->Chain("sv_name", ConchainSpecialInfoupdate, this); where is that list of callbacks stored?






Chain("sv_map", ...) then times and it calls the callback then times



2














pCommand->m_pfnCallback is overwritten it is stored in pCommand->m_pUserData->m_pfnCallback











e466ef5 Version 18.0 - def-
d093c31 Update translations for upcoming DDNet 18.0 - def-
55e82e2 Update German translations - def-
8a5d164 Fix multiple editor undo/redo issues - archimede67
ed7b013 Update Swedish translations for 18.0 - furo321
f612688 Update russian.txt - gerdoe-jr
49ffdfe Update brazilian_portuguese.txt - rffontenelle
e633bdb Update traditional_chinese.txt - By622
68a1bbb Update simplified_chinese.txt - By622
str_tofloat converts any wrong symbol sequence to 0 -> #7765








1
length(m_Core.m_Vel) < MAGIC_FLOAT to existing conditions, but anyway. Maybe, it's better to add a /setrescue command instead?
new CProjectile(
&GameServer()->m_World,
WEAPON_GUN, //Type
ClientID, //Owner
pChr->Core()->m_Pos, //Pos
vec2(input->m_TargetX,input->m_TargetY), //Dir
-2, //Span
false, //Freeze
false, //Explosive
-1, //SoundImpact
vec2(input->m_TargetX,input->m_TargetY) // InitDir
);
projectiles are made and disappear instantly (edited)










new CProjectile(
&GameServer()->m_World,
WEAPON_GUN, //Type
ClientID, //Owner
pChr->Core()->m_Pos, //Pos
vec2(input->m_TargetX,input->m_TargetY), //Dir
-2, //Span
false, //Freeze
false, //Explosive
-1, //SoundImpact
vec2(input->m_TargetX,input->m_TargetY) // InitDir
);
projectiles are made and disappear instantly (edited)




















HTTP_DONE before OnCompletion was called AFAICT

HTTP_DONE before OnCompletion was called AFAICT 
pub async fn register(pool: &Pool<MySql>,id: &u32, user: &str, password: &str, salt: &str) -> Result<(), sqlx::Error> {
sqlx::query("INSERT INTO Accounts (id, username, password, salt) VALUES (?, ?, ?, ?)")
.bind(id)
.bind(user)
.bind(password)
.bind(salt)
.execute(pool)
.await?;
Ok(())
}
pub async fn register_handler(
pool: Extension<Pool<MySql>>,
Json(data): Json<RegistrationData>,
) -> Result<String, StatusCode> {
match register(&pool, &data.id, &data.password, &data.salt, &data.user).await {
Ok(_) => Ok("User registered successfully".into()),
Err(_) => Err(StatusCode::INTERNAL_SERVER_ERROR),
}
}
let user_routes = Router::new()
.route("/register", post(queries::register_handler));
let app = Router::new()
.nest("/user", user_routes)
using sqlx and axum (and yes i use axum just for you)error[E0277]: the trait bound `fn(Extension<Pool<MySql>>, sqlx::types::Json<RegistrationData>) -> impl Future<Output = Result<std::string::String, StatusCode>> {register_handler}: Handler<_, _>` is not satisfied
--> src\connection.rs:30:34
|
30 | .route("/register", post(queries::register_handler));
| ---- ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Handler<_, _>` is not implemented for fn item `fn(Extension<Pool<MySql>>, sqlx::types::Json<RegistrationData>) -> impl Future<Output = Result<std::string::String, StatusCode>> {register_handler}`
| |
| required by a bound introduced by this call
|
= help: the following other types implement trait `Handler<T, S>`:
<Layered<L, H, T, S> as Handler<T, S>>
<MethodRouter<S> as Handler<(), S>>
note: required by a bound in `post`
--> C:\Users\blaiz\.cargo\registry\src\index.crates.io-6f17d22bba15001f\axum-0.7.4\src\routing\method_routing.rs:389:1
|
389 | top_level_handler_fn!(post, POST);
| ^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^
| | |
| | required by a bound in this function
| required by this bound in `post`
= note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info) (edited)






error: containing string



pub async fn register(pool: &Pool<MySql>,id: &u32, user: &str, password: &str, salt: &str) -> Result<(), sqlx::Error> {
sqlx::query("INSERT INTO Accounts (id, username, password, salt) VALUES (?, ?, ?, ?)")
.bind(id)
.bind(user)
.bind(password)
.bind(salt)
.execute(pool)
.await?;
Ok(())
}
pub async fn register_handler(
pool: Extension<Pool<MySql>>,
Json(data): Json<RegistrationData>,
) -> Result<String, StatusCode> {
match register(&pool, &data.id, &data.password, &data.salt, &data.user).await {
Ok(_) => Ok("User registered successfully".into()),
Err(_) => Err(StatusCode::INTERNAL_SERVER_ERROR),
}
}
let user_routes = Router::new()
.route("/register", post(queries::register_handler));
let app = Router::new()
.nest("/user", user_routes)
using sqlx and axum (and yes i use axum just for you) 

#[derive(Deserialize)]
struct RegistrationData {
id: u32,
user: String,
password: String,
salt: String,
}
pub async fn register_handler(
pool: Extension<Pool<MySql>>,
Json(data): Json<RegistrationData>,
) -> Result<String, StatusCode> {
match register(&pool, &data.id, &data.password, &data.salt, &data.user).await {
Ok(_) => Ok("User registered successfully".into()),
Err(_) => Err(StatusCode::INTERNAL_SERVER_ERROR),
}
}
pub async fn register(pool: &Pool<MySql>,id: &u32, user: &str, password: &str, salt: &str) -> Result<(), sqlx::Error> {
sqlx::query("INSERT INTO Accounts (id, username, password, salt) VALUES (?, ?, ?, ?)")
.bind(id)
.bind(user)
.bind(password)
.bind(salt)
.execute(pool)
.await?;
Ok(())
} (edited)
Handler<_, _> is not implemented errors, enable axum's macros feature and annotate your handler with #[axum::debug_handler]. It will give you much better error messages.

pub async fn register(pool: &Pool<MySql>,id: &u32, user: &str, password: &str, salt: &str) -> Result<(), sqlx::Error> {
sqlx::query("INSERT INTO Accounts (id, username, password, salt) VALUES (?, ?, ?, ?)")
.bind(id)
.bind(user)
.bind(password)
.bind(salt)
.execute(pool)
.await?;
Ok(())
}
pub async fn register_handler(
pool: Extension<Pool<MySql>>,
Json(data): Json<RegistrationData>,
) -> Result<String, StatusCode> {
match register(&pool, &data.id, &data.password, &data.salt, &data.user).await {
Ok(_) => Ok("User registered successfully".into()),
Err(_) => Err(StatusCode::INTERNAL_SERVER_ERROR),
}
}
let user_routes = Router::new()
.route("/register", post(queries::register_handler));
let app = Router::new()
.nest("/user", user_routes)
using sqlx and axum (and yes i use axum just for you) 

Handler<_, _> is not implemented errors, enable axum's macros feature and annotate your handler with #[axum::debug_handler]. It will give you much better error messages.

#[derive(Deserialize)]
struct RegistrationData {
id: u32,
user: String,
password: String,
salt: String,
}
pub async fn register_handler(
pool: Extension<Pool<MySql>>,
Json(data): Json<RegistrationData>,
) -> Result<String, StatusCode> {
match register(&pool, &data.id, &data.password, &data.salt, &data.user).await {
Ok(_) => Ok("User registered successfully".into()),
Err(_) => Err(StatusCode::INTERNAL_SERVER_ERROR),
}
}
pub async fn register(pool: &Pool<MySql>,id: &u32, user: &str, password: &str, salt: &str) -> Result<(), sqlx::Error> {
sqlx::query("INSERT INTO Accounts (id, username, password, salt) VALUES (?, ?, ?, ?)")
.bind(id)
.bind(user)
.bind(password)
.bind(salt)
.execute(pool)
.await?;
Ok(())
} (edited)


error: type `RegistrationData` is private
--> src\connection.rs:30:29
|
30 | .route("/register", post(queries::register_handler));
| ^^^^ private type














ls -l /lib/x86_64-linux-gnu # check for any libcurl.so.4.x.x
rm /lib/x86_64-linux-gnu/libcurl.so.4
ln -s /lib/x86_64-linux-gnu/libcurl.so.4.6.0 /lib/x86_64-linux-gnu/libcurl.so.4


ls -l /lib/x86_64-linux-gnu # check for any libcurl.so.4.x.x
rm /lib/x86_64-linux-gnu/libcurl.so.4
ln -s /lib/x86_64-linux-gnu/libcurl.so.4.6.0 /lib/x86_64-linux-gnu/libcurl.so.4 





apt list --installed | grep sslapt purge curl; apt install curl






















































