Fix dumb error; Report item stock with prices
This commit is contained in:
parent
60f1688ac2
commit
70791b0486
30
src/bot.rs
30
src/bot.rs
@ -848,22 +848,42 @@ impl Bot {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let inventories = self.client.inventories();
|
||||||
|
let my_inventory = inventories
|
||||||
|
.get(self.client.entity())
|
||||||
|
.ok_or("Failed to find inventory")?;
|
||||||
|
|
||||||
for (item_id, price) in &self.sell_prices.0 {
|
for (item_id, price) in &self.sell_prices.0 {
|
||||||
let item_name = self.get_item_name(item_id.as_ref());
|
let item = Item::new_from_item_definition_id(
|
||||||
|
item_id.as_ref(),
|
||||||
|
&self.ability_map,
|
||||||
|
&self.material_manifest,
|
||||||
|
)
|
||||||
|
.map_err(|error| error.to_string())?;
|
||||||
|
let (item_name_i18n_id, _) = item.i18n(&self.item_i18n);
|
||||||
|
let item_name = self.localization.read().get_content(&item_name_i18n_id);
|
||||||
|
let item_inventory_slot = my_inventory.get_slot_of_item(&item);
|
||||||
|
let stock = if let Some(slot_id) = item_inventory_slot {
|
||||||
|
my_inventory.get(slot_id).unwrap().amount()
|
||||||
|
} else {
|
||||||
|
0
|
||||||
|
};
|
||||||
|
|
||||||
if item_name.to_lowercase().contains(&search_term) {
|
if item_name.to_lowercase().contains(&search_term) {
|
||||||
selling.push((item_name, price));
|
selling.push((item_name, price, stock));
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(item_id_string) = item_id.as_ref().itemdef_id() {
|
if let Some(item_id_string) = item_id.as_ref().itemdef_id() {
|
||||||
if item_id_string.to_lowercase().contains(&search_term) {
|
if item_id_string.to_lowercase().contains(&search_term) {
|
||||||
selling.push((item_name, price));
|
selling.push((item_name, price, stock));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
drop(inventories);
|
||||||
|
|
||||||
let total_found = buying.len() + selling.len();
|
let total_found = buying.len() + selling.len();
|
||||||
|
|
||||||
if total_found == 0 {
|
if total_found == 0 {
|
||||||
@ -910,12 +930,12 @@ impl Bot {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (item_name, price) in selling {
|
for (item_name, price, stock) in selling {
|
||||||
self.client.send_command(
|
self.client.send_command(
|
||||||
"tell".to_string(),
|
"tell".to_string(),
|
||||||
vec![
|
vec![
|
||||||
player_name.clone(),
|
player_name.clone(),
|
||||||
format!("Selling {item_name} for {price} coins."),
|
format!("Selling {item_name} for {price} coins. I have {stock} in stock."),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -29,10 +29,10 @@ fn main() {
|
|||||||
};
|
};
|
||||||
let game_server = config
|
let game_server = config
|
||||||
.game_server
|
.game_server
|
||||||
.unwrap_or("server.veloren.net".to_string());
|
.unwrap_or_else(|| "server.veloren.net".to_string());
|
||||||
let auth_server = config
|
let auth_server = config
|
||||||
.auth_server
|
.auth_server
|
||||||
.unwrap_or("https://auth.veloren.net".to_string());
|
.unwrap_or_else(|| "https://auth.veloren.net".to_string());
|
||||||
let mut bot = Bot::new(
|
let mut bot = Bot::new(
|
||||||
game_server,
|
game_server,
|
||||||
&auth_server,
|
&auth_server,
|
||||||
@ -50,8 +50,8 @@ fn main() {
|
|||||||
|
|
||||||
loop {
|
loop {
|
||||||
match bot.tick() {
|
match bot.tick() {
|
||||||
Ok(true) => return,
|
Ok(true) => {}
|
||||||
Ok(false) => {}
|
Ok(false) => return,
|
||||||
Err(error) => {
|
Err(error) => {
|
||||||
error!("{error}");
|
error!("{error}");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user