Clean up and follow clippy reccomendations
This commit is contained in:
parent
135dc0b19e
commit
5ebf582538
29
src/bot.rs
29
src/bot.rs
@ -40,7 +40,7 @@ pub struct Bot {
|
|||||||
|
|
||||||
impl Bot {
|
impl Bot {
|
||||||
pub fn new(
|
pub fn new(
|
||||||
username: String,
|
username: &str,
|
||||||
password: &str,
|
password: &str,
|
||||||
buy_prices: HashMap<String, u32>,
|
buy_prices: HashMap<String, u32>,
|
||||||
sell_prices: HashMap<String, u32>,
|
sell_prices: HashMap<String, u32>,
|
||||||
@ -49,7 +49,7 @@ impl Bot {
|
|||||||
) -> Result<Self, String> {
|
) -> Result<Self, String> {
|
||||||
log::info!("Connecting to veloren");
|
log::info!("Connecting to veloren");
|
||||||
|
|
||||||
let client = connect_to_veloren(&username, password)?;
|
let client = connect_to_veloren(username, password)?;
|
||||||
let clock = Clock::new(Duration::from_secs_f64(1.0 / 60.0));
|
let clock = Clock::new(Duration::from_secs_f64(1.0 / 60.0));
|
||||||
|
|
||||||
Ok(Bot {
|
Ok(Bot {
|
||||||
@ -244,7 +244,7 @@ impl Bot {
|
|||||||
their_offer
|
their_offer
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.fold(0, |acc: i32, (slot_id, quantity)| {
|
.fold(0, |acc: i32, (slot_id, quantity)| {
|
||||||
if let Some(item) = their_inventory.get(slot_id.clone()) {
|
if let Some(item) = their_inventory.get(*slot_id) {
|
||||||
let item_id = item.persistence_item_id();
|
let item_id = item.persistence_item_id();
|
||||||
|
|
||||||
let item_value = if item_id == COINS {
|
let item_value = if item_id == COINS {
|
||||||
@ -272,7 +272,7 @@ impl Bot {
|
|||||||
my_offer
|
my_offer
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.fold(0, |acc: i32, (slot_id, quantity)| {
|
.fold(0, |acc: i32, (slot_id, quantity)| {
|
||||||
if let Some(item) = my_inventory.get(slot_id.clone()) {
|
if let Some(item) = my_inventory.get(*slot_id) {
|
||||||
let item_id = item.persistence_item_id();
|
let item_id = item.persistence_item_id();
|
||||||
|
|
||||||
let item_value = if item_id == COINS {
|
let item_value = if item_id == COINS {
|
||||||
@ -300,9 +300,7 @@ impl Bot {
|
|||||||
let mut my_items_to_remove = Vec::new();
|
let mut my_items_to_remove = Vec::new();
|
||||||
|
|
||||||
for (slot_id, amount) in my_offer {
|
for (slot_id, amount) in my_offer {
|
||||||
let item = my_inventory
|
let item = my_inventory.get(*slot_id).ok_or("Failed to get item")?;
|
||||||
.get(slot_id.clone())
|
|
||||||
.ok_or("Failed to get item")?;
|
|
||||||
let item_id = item.persistence_item_id();
|
let item_id = item.persistence_item_id();
|
||||||
|
|
||||||
if item_id == COINS {
|
if item_id == COINS {
|
||||||
@ -310,16 +308,14 @@ impl Bot {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if !self.sell_prices.contains_key(&item_id) {
|
if !self.sell_prices.contains_key(&item_id) {
|
||||||
my_items_to_remove.push((slot_id.clone(), *amount));
|
my_items_to_remove.push((*slot_id, *amount));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut their_items_to_remove = Vec::new();
|
let mut their_items_to_remove = Vec::new();
|
||||||
|
|
||||||
for (slot_id, amount) in their_offer {
|
for (slot_id, amount) in their_offer {
|
||||||
let item = their_inventory
|
let item = their_inventory.get(*slot_id).ok_or("Failed to get item")?;
|
||||||
.get(slot_id.clone())
|
|
||||||
.ok_or("Failed to get item")?;
|
|
||||||
|
|
||||||
let item_id = item.persistence_item_id();
|
let item_id = item.persistence_item_id();
|
||||||
|
|
||||||
@ -328,7 +324,7 @@ impl Bot {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if !self.buy_prices.contains_key(&item_id) {
|
if !self.buy_prices.contains_key(&item_id) {
|
||||||
their_items_to_remove.push((slot_id.clone(), *amount));
|
their_items_to_remove.push((*slot_id, *amount));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -382,7 +378,7 @@ impl Bot {
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
let difference: i32 = their_offered_items_value as i32 - my_offered_items_value as i32;
|
let difference = their_offered_items_value - my_offered_items_value;
|
||||||
|
|
||||||
// If the trade is balanced
|
// If the trade is balanced
|
||||||
if difference == 0 {
|
if difference == 0 {
|
||||||
@ -415,7 +411,7 @@ impl Bot {
|
|||||||
// Remove my coins to balance
|
// Remove my coins to balance
|
||||||
self.client.perform_trade_action(TradeAction::RemoveItem {
|
self.client.perform_trade_action(TradeAction::RemoveItem {
|
||||||
item: my_coins,
|
item: my_coins,
|
||||||
quantity: difference.abs() as u32,
|
quantity: difference.unsigned_abs(),
|
||||||
ours: true,
|
ours: true,
|
||||||
});
|
});
|
||||||
// If I am not offering coins
|
// If I am not offering coins
|
||||||
@ -423,7 +419,7 @@ impl Bot {
|
|||||||
// Add their coins to balance
|
// Add their coins to balance
|
||||||
self.client.perform_trade_action(TradeAction::AddItem {
|
self.client.perform_trade_action(TradeAction::AddItem {
|
||||||
item: their_coins,
|
item: their_coins,
|
||||||
quantity: difference.abs() as u32,
|
quantity: difference.unsigned_abs(),
|
||||||
ours: false,
|
ours: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -514,11 +510,10 @@ impl Bot {
|
|||||||
None => return Ok(()),
|
None => return Ok(()),
|
||||||
}
|
}
|
||||||
|
|
||||||
let entity = self.client.entity().clone();
|
let entity = self.client.entity();
|
||||||
let ecs = self.client.state_mut().ecs();
|
let ecs = self.client.state_mut().ecs();
|
||||||
let mut position_state = ecs.write_storage::<Pos>();
|
let mut position_state = ecs.write_storage::<Pos>();
|
||||||
let mut orientation_state = ecs.write_storage::<Ori>();
|
let mut orientation_state = ecs.write_storage::<Ori>();
|
||||||
|
|
||||||
let orientation = match self.orientation.to_lowercase().as_str() {
|
let orientation = match self.orientation.to_lowercase().as_str() {
|
||||||
"west" => Ori::default()
|
"west" => Ori::default()
|
||||||
.uprighted()
|
.uprighted()
|
||||||
|
24
src/main.rs
24
src/main.rs
@ -2,8 +2,8 @@ mod bot;
|
|||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
collections::HashMap,
|
collections::HashMap,
|
||||||
env::var,
|
env::{args, var},
|
||||||
fs::{read_to_string, write},
|
fs::read_to_string,
|
||||||
};
|
};
|
||||||
|
|
||||||
use bot::Bot;
|
use bot::Bot;
|
||||||
@ -22,13 +22,6 @@ impl Secrets {
|
|||||||
|
|
||||||
toml::from_str::<Secrets>(&config_file_content).map_err(|error| error.to_string())
|
toml::from_str::<Secrets>(&config_file_content).map_err(|error| error.to_string())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn _write(&self) -> Result<(), String> {
|
|
||||||
let config_path = var("SECRETS").map_err(|error| error.to_string())?;
|
|
||||||
let config_string = toml::to_string(self).map_err(|error| error.to_string())?;
|
|
||||||
|
|
||||||
write(config_path, config_string).map_err(|error| error.to_string())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
@ -41,18 +34,13 @@ struct Config {
|
|||||||
|
|
||||||
impl Config {
|
impl Config {
|
||||||
fn read() -> Result<Self, String> {
|
fn read() -> Result<Self, String> {
|
||||||
let config_path = var("CONFIG").map_err(|error| error.to_string())?;
|
let config_path = args()
|
||||||
|
.nth(1)
|
||||||
|
.expect("Pass an argument specifying the config file");
|
||||||
let config_file_content = read_to_string(config_path).map_err(|error| error.to_string())?;
|
let config_file_content = read_to_string(config_path).map_err(|error| error.to_string())?;
|
||||||
|
|
||||||
toml::from_str::<Config>(&config_file_content).map_err(|error| error.to_string())
|
toml::from_str::<Config>(&config_file_content).map_err(|error| error.to_string())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn _write(&self) -> Result<(), String> {
|
|
||||||
let config_path = var("CONFIG").map_err(|error| error.to_string())?;
|
|
||||||
let config_string = toml::to_string(self).map_err(|error| error.to_string())?;
|
|
||||||
|
|
||||||
write(config_path, config_string).map_err(|error| error.to_string())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
@ -61,7 +49,7 @@ fn main() {
|
|||||||
let secrets = Secrets::read().unwrap();
|
let secrets = Secrets::read().unwrap();
|
||||||
let config = Config::read().unwrap();
|
let config = Config::read().unwrap();
|
||||||
let mut bot = Bot::new(
|
let mut bot = Bot::new(
|
||||||
secrets.username,
|
&secrets.username,
|
||||||
&secrets.password,
|
&secrets.password,
|
||||||
config.buy_prices,
|
config.buy_prices,
|
||||||
config.sell_prices,
|
config.sell_prices,
|
||||||
|
Loading…
Reference in New Issue
Block a user