Console()->Chain("sv_name", ConchainSpecialInfoupdate, this);
where is that list of callbacks stored?Chain("sv_map", ...)
then times and it calls the callback then timespCommand->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 - By622str_tofloat
converts any wrong symbol sequence to 0 -> #7765length(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 AFAICTHTTP_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 stringpub 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 ssl
apt purge curl; apt install curl