cargo fmt

This commit is contained in:
serxoz 2022-09-26 11:59:53 +02:00
parent 952acda755
commit cb8b9790f0
9 changed files with 104 additions and 109 deletions

View File

@ -6,8 +6,6 @@ use std::env;
pub fn establish_connection() -> PgConnection { pub fn establish_connection() -> PgConnection {
dotenv().ok(); dotenv().ok();
let database_url = env::var("DATABASE_URL") let database_url = env::var("DATABASE_URL").expect("DATABASE_URL must be set");
.expect("DATABASE_URL must be set"); PgConnection::establish(&database_url).expect(&format!("Error connecting to {}", database_url))
PgConnection::establish(&database_url)
.expect(&format!("Error connecting to {}", database_url))
} }

View File

@ -1,19 +1,19 @@
use std::{env, io};
use tokio::io::AsyncWriteExt; use tokio::io::AsyncWriteExt;
use tokio::net::{TcpListener, TcpStream}; use tokio::net::{TcpListener, TcpStream};
use std::{env, io};
pub mod database;
pub mod models;
pub mod npc;
pub mod objects;
pub mod player;
pub mod rlib; pub mod rlib;
pub mod rlocation; pub mod rlocation;
pub mod player;
pub mod objects;
pub mod schema; pub mod schema;
pub mod models;
pub mod database;
pub mod npc;
// use crate::player::Player; // use crate::player::Player;
use crate::rlib::set_player;
use crate::player::update_player; use crate::player::update_player;
use crate::rlib::set_player;
#[tokio::main] #[tokio::main]
async fn main() -> io::Result<()> { async fn main() -> io::Result<()> {
@ -26,14 +26,14 @@ async fn main() -> io::Result<()> {
loop { loop {
let (socket, _) = listener.accept().await?; let (socket, _) = listener.accept().await?;
tokio::spawn(procesar_socket(socket)); // tokio::spawn """"abre un novo fío"""" tokio::spawn(procesar_socket(socket)); // tokio::spawn """"abre un novo fío""""
} }
} }
async fn procesar_socket(mut socket: TcpStream) -> io::Result<()> { async fn procesar_socket(mut socket: TcpStream) -> io::Result<()> {
// intro // intro
socket.write_all(b"\x1B[2J").await?; // clear screen socket.write_all(b"\x1B[2J").await?; // clear screen
socket.write_all(b"\x1B[1;1H").await?; // position on 1,1 socket.write_all(b"\x1B[1;1H").await?; // position on 1,1
let banner = "\n\n\ let banner = "\n\n\
\n\ \n\
@ -50,10 +50,13 @@ async fn procesar_socket(mut socket: TcpStream) -> io::Result<()> {
let mut output: String; let mut output: String;
let mut player = set_player(&mut socket).await; let mut player = set_player(&mut socket).await;
let intro = format!("Bienvenido {}. Vamos a empezar a jugar... \n\n\ let intro = format!(
"Bienvenido {}. Vamos a empezar a jugar... \n\n\
Despiertas en la oscuridad con un fuerte dolor de cabeza. \n\ Despiertas en la oscuridad con un fuerte dolor de cabeza. \n\
Un fuerte sonido de alarma machaca tus oídos. No ayuda nada a tu dolor de cabeza. \n\ Un fuerte sonido de alarma machaca tus oídos. No ayuda nada a tu dolor de cabeza. \n\
Qué vas a hacer?", player.nombre); Qué vas a hacer?",
player.nombre
);
socket.write_all(intro.as_bytes()).await?; socket.write_all(intro.as_bytes()).await?;
// main loop // main loop

View File

@ -1,5 +1,5 @@
use diesel::prelude::*;
use crate::schema::*; use crate::schema::*;
use diesel::prelude::*;
#[derive(Queryable)] #[derive(Queryable)]
#[diesel(table_name = location)] #[diesel(table_name = location)]

View File

@ -1,22 +1,19 @@
use crate::database::establish_connection;
use crate::models::*; use crate::models::*;
use diesel::prelude::*; use diesel::prelude::*;
use crate::database::establish_connection;
//get_npc_here trae da base de datos o npc polo nome e a pegatina da sala actual //get_npc_here trae da base de datos o npc polo nome e a pegatina da sala actual
pub fn get_npc_here(pegatina: String, nome: String) -> Result<Rnpc, diesel::result::Error> { pub fn get_npc_here(pegatina: String, nome: String) -> Result<Rnpc, diesel::result::Error> {
use crate::schema::npc::dsl::*; use crate::schema::npc::dsl::*;
let conn = &mut establish_connection(); let conn = &mut establish_connection();
npc npc.filter(location.eq(pegatina))
.filter(location.eq(pegatina))
.filter(nombre.eq(nome)) .filter(nombre.eq(nome))
.first(conn) .first(conn)
} }
// get_npcs trae da base de datos todos os npcs de unha localización // get_npcs trae da base de datos todos os npcs de unha localización
pub fn get_npcs(pegatina: String) -> Result<Vec<Rnpc>, diesel::result::Error> { pub fn get_npcs(pegatina: String) -> Result<Vec<Rnpc>, diesel::result::Error> {
use crate::schema::npc::dsl::*; use crate::schema::npc::dsl::*;
let conn = &mut establish_connection(); let conn = &mut establish_connection();
npc npc.filter(location.eq(pegatina)).get_results(conn)
.filter(location.eq(pegatina))
.get_results(conn)
} }

View File

@ -1,10 +1,10 @@
use crate::database::establish_connection;
use crate::models::RObject; use crate::models::RObject;
use diesel::prelude::*; use diesel::prelude::*;
use crate::database::establish_connection;
//get_object trae da base de datos un obxeto pola sua pegatina //get_object trae da base de datos un obxeto pola sua pegatina
pub fn get_object(pegatina: String) -> Result<RObject, diesel::result::Error> { pub fn get_object(pegatina: String) -> Result<RObject, diesel::result::Error> {
use crate::schema::object::dsl::*; use crate::schema::object::dsl::*;
let conn = &mut establish_connection(); let conn = &mut establish_connection();
object object
.filter(tipo.eq("item")) .filter(tipo.eq("item"))
@ -12,9 +12,9 @@ pub fn get_object(pegatina: String) -> Result<RObject, diesel::result::Error> {
.first(conn) .first(conn)
} }
// get_objects trae da base de datos todos os obxetos de unha localización // get_objects trae da base de datos todos os obxetos de unha localización
pub fn get_objects(pegatina: String) -> Result<Vec<RObject>, diesel::result::Error> { pub fn get_objects(pegatina: String) -> Result<Vec<RObject>, diesel::result::Error> {
use crate::schema::object::dsl::*; use crate::schema::object::dsl::*;
let conn = &mut establish_connection(); let conn = &mut establish_connection();
object object
.filter(tipo.eq("item")) .filter(tipo.eq("item"))
@ -24,7 +24,7 @@ pub fn get_objects(pegatina: String) -> Result<Vec<RObject>, diesel::result::Err
//get_object_here trae da base de datos o obxeto polo nome e a pegatina da sala actual //get_object_here trae da base de datos o obxeto polo nome e a pegatina da sala actual
pub fn get_object_here(pegatina: String, nome: String) -> Result<RObject, diesel::result::Error> { pub fn get_object_here(pegatina: String, nome: String) -> Result<RObject, diesel::result::Error> {
use crate::schema::object::dsl::*; use crate::schema::object::dsl::*;
let conn = &mut establish_connection(); let conn = &mut establish_connection();
object object
.filter(location.eq(pegatina)) .filter(location.eq(pegatina))
@ -33,8 +33,11 @@ pub fn get_object_here(pegatina: String, nome: String) -> Result<RObject, diesel
} }
// actualiza a localización de un obxeto, devolve o número de rows afectados // actualiza a localización de un obxeto, devolve o número de rows afectados
pub fn update_object_location(pegatina: String, new_location: String) -> Result<usize, diesel::result::Error> { pub fn update_object_location(
use crate::schema::object::dsl::*; pegatina: String,
new_location: String,
) -> Result<usize, diesel::result::Error> {
use crate::schema::object::dsl::*;
// println!("{} {}", pegatina, new_location); // println!("{} {}", pegatina, new_location);
let conn = &mut establish_connection(); let conn = &mut establish_connection();
diesel::update(object.filter(tag.eq(pegatina))) diesel::update(object.filter(tag.eq(pegatina)))
@ -43,17 +46,20 @@ pub fn update_object_location(pegatina: String, new_location: String) -> Result<
} }
// actualiza as condiciós de un obxeto, devolve o número de rows afectados // actualiza as condiciós de un obxeto, devolve o número de rows afectados
pub fn update_object_conditions(pegatina: String, cond: Vec<Option<String>>) -> Result<usize, diesel::result::Error> { pub fn update_object_conditions(
use crate::schema::object::dsl::*; pegatina: String,
cond: Vec<Option<String>>,
) -> Result<usize, diesel::result::Error> {
use crate::schema::object::dsl::*;
let conn = &mut establish_connection(); let conn = &mut establish_connection();
diesel::update(object.filter(tag.eq(pegatina))) diesel::update(object.filter(tag.eq(pegatina)))
.set(condiciones.eq(cond)) .set(condiciones.eq(cond))
.execute(conn) .execute(conn)
} }
// get_salidas trae da base de datos todos os obxetos salida de unha localización // get_salidas trae da base de datos todos os obxetos salida de unha localización
pub fn get_salidas(pegatina: String) -> Result<Vec<RObject>, diesel::result::Error> { pub fn get_salidas(pegatina: String) -> Result<Vec<RObject>, diesel::result::Error> {
use crate::schema::object::dsl::*; use crate::schema::object::dsl::*;
let conn = &mut establish_connection(); let conn = &mut establish_connection();
object object
.filter(tipo.eq("salida")) .filter(tipo.eq("salida"))
@ -63,7 +69,7 @@ pub fn get_salidas(pegatina: String) -> Result<Vec<RObject>, diesel::result::Err
//get_salidas_here trae da base de datos a salida polo nome e a pegatina da sala actual //get_salidas_here trae da base de datos a salida polo nome e a pegatina da sala actual
pub fn get_salidas_here(pegatina: String, nome: String) -> Result<RObject, diesel::result::Error> { pub fn get_salidas_here(pegatina: String, nome: String) -> Result<RObject, diesel::result::Error> {
use crate::schema::object::dsl::*; use crate::schema::object::dsl::*;
let conn = &mut establish_connection(); let conn = &mut establish_connection();
object object
.filter(tipo.eq("salida")) .filter(tipo.eq("salida"))
@ -71,4 +77,3 @@ pub fn get_salidas_here(pegatina: String, nome: String) -> Result<RObject, diese
.filter(nombre.eq(nome)) .filter(nombre.eq(nome))
.first(conn) .first(conn)
} }

View File

@ -1,22 +1,22 @@
use crate::objects::{get_objects, get_object_here, update_object_location, update_object_conditions};
use crate::models::Player;
use crate::database::establish_connection; use crate::database::establish_connection;
use diesel::prelude::*; use crate::models::Player;
use crate::npc::get_npc_here; use crate::npc::get_npc_here;
use crate::objects::{
get_object_here, get_objects, update_object_conditions, update_object_location,
};
use diesel::prelude::*;
use rand::Rng; use rand::Rng;
// get_player le o xogador polo nick // get_player le o xogador polo nick
pub fn get_player(nome: String) -> Result<Player, diesel::result::Error> { pub fn get_player(nome: String) -> Result<Player, diesel::result::Error> {
use crate::schema::player::dsl::*; use crate::schema::player::dsl::*;
let conn = &mut establish_connection(); let conn = &mut establish_connection();
player player.filter(nombre.eq(nome)).first(conn)
.filter(nombre.eq(nome))
.first(conn)
} }
// create_player garda o xogador // create_player garda o xogador
pub fn create_player(newplayer: &Player) -> Result<usize, diesel::result::Error> { pub fn create_player(newplayer: &Player) -> Result<usize, diesel::result::Error> {
use crate::schema::player; use crate::schema::player;
let conn = &mut establish_connection(); let conn = &mut establish_connection();
diesel::insert_into(player::table) diesel::insert_into(player::table)
@ -26,17 +26,17 @@ pub fn create_player(newplayer: &Player) -> Result<usize, diesel::result::Error>
// update_player actualiza o xogador // update_player actualiza o xogador
pub fn update_player(newplayer: &Player) -> Result<usize, diesel::result::Error> { pub fn update_player(newplayer: &Player) -> Result<usize, diesel::result::Error> {
use crate::schema::player::dsl::*; // para ter o find no update use crate::schema::player::dsl::*; // para ter o find no update
let conn = &mut establish_connection(); let conn = &mut establish_connection();
// FIXME: actualiza todos os rows... // FIXME: actualiza todos os rows...
diesel::update(player::find(player, &newplayer.tag)) diesel::update(player::find(player, &newplayer.tag))
.set(newplayer) // co trait AsChangeSet podese actualizar a struct enteira .set(newplayer) // co trait AsChangeSet podese actualizar a struct enteira
.execute(conn) .execute(conn)
} }
// execute_search mostra os obxetos na ubicación do xogador // execute_search mostra os obxetos na ubicación do xogador
pub fn execute_search(player: &mut Player) -> String { pub fn execute_search(player: &mut Player) -> String {
let mut output: String; let mut output: String;
let current = &player.location; let current = &player.location;
let objetos = get_objects(current.to_string()); let objetos = get_objects(current.to_string());
@ -44,9 +44,9 @@ pub fn execute_search(player: &mut Player) -> String {
if objetos.is_ok() && objetos.as_ref().unwrap().len() > 0 { if objetos.is_ok() && objetos.as_ref().unwrap().len() > 0 {
output = String::from("En esta sala encuentras:\n"); output = String::from("En esta sala encuentras:\n");
for objeto in objetos.unwrap() { for objeto in objetos.unwrap() {
let mut nombre = objeto.nombre; let mut nombre = objeto.nombre;
nombre.push_str("\n"); nombre.push_str("\n");
output.push_str(&nombre); output.push_str(&nombre);
} }
} else { } else {
output = String::from("No encuentras ningún objeto en esta sala.") output = String::from("No encuentras ningún objeto en esta sala.")
@ -64,9 +64,9 @@ pub fn execute_inventory(player: &mut Player) -> String {
if objetos.is_ok() && objetos.as_ref().unwrap().len() > 0 { if objetos.is_ok() && objetos.as_ref().unwrap().len() > 0 {
output = String::from("Portas los siguientes objetos:\n"); output = String::from("Portas los siguientes objetos:\n");
for objeto in objetos.unwrap() { for objeto in objetos.unwrap() {
let mut nombre = objeto.nombre; let mut nombre = objeto.nombre;
nombre.push_str("\n"); nombre.push_str("\n");
output.push_str(&nombre); output.push_str(&nombre);
} }
} else { } else {
output = String::from("No portas ningún objeto.") output = String::from("No portas ningún objeto.")
@ -76,15 +76,14 @@ pub fn execute_inventory(player: &mut Player) -> String {
} }
// execute_pick recolle un obxeto // execute_pick recolle un obxeto
pub fn execute_pick(player: &mut Player, nombre: &str) -> String { pub fn execute_pick(player: &mut Player, nombre: &str) -> String {
let output: String; let output: String;
let location = &player.location; let location = &player.location;
let obxeto = get_object_here(location.to_string(), nombre.to_string()); let obxeto = get_object_here(location.to_string(), nombre.to_string());
if obxeto.is_ok() { if obxeto.is_ok() {
let res = update_object_location( let res =
obxeto.as_ref().unwrap().tag.clone(), update_object_location(obxeto.as_ref().unwrap().tag.clone(), player.tag.to_string());
player.tag.to_string());
if res.is_ok() && res.unwrap() > 0 { if res.is_ok() && res.unwrap() > 0 {
output = format!("{} ahora está en tu inventario.", obxeto.unwrap().nombre); output = format!("{} ahora está en tu inventario.", obxeto.unwrap().nombre);
@ -107,7 +106,8 @@ pub fn execute_drop(player: &mut Player, nombre: &str) -> String {
if obxeto.is_ok() { if obxeto.is_ok() {
let res = update_object_location( let res = update_object_location(
obxeto.as_ref().unwrap().tag.clone(), obxeto.as_ref().unwrap().tag.clone(),
player.location.to_string()); //tirao aquí player.location.to_string(),
); //tirao aquí
if res.is_ok() && res.unwrap() > 0 { if res.is_ok() && res.unwrap() > 0 {
output = format!("Tiras {}.", obxeto.unwrap().nombre); output = format!("Tiras {}.", obxeto.unwrap().nombre);
@ -123,7 +123,7 @@ pub fn execute_drop(player: &mut Player, nombre: &str) -> String {
// execute_kill intenta matar un npc // execute_kill intenta matar un npc
pub fn execute_kill(player: &mut Player, nombre: &str) -> String { pub fn execute_kill(player: &mut Player, nombre: &str) -> String {
let mut output= String::from(""); let mut output = String::from("");
let location = &player.location; let location = &player.location;
let npc = get_npc_here(location.to_string(), nombre.to_string()); let npc = get_npc_here(location.to_string(), nombre.to_string());
@ -136,7 +136,10 @@ pub fn execute_kill(player: &mut Player, nombre: &str) -> String {
if tohit >= malo.ca { if tohit >= malo.ca {
let damage = rand::thread_rng().gen_range(1..6); let damage = rand::thread_rng().gen_range(1..6);
malo.hp = malo.hp - damage; malo.hp = malo.hp - damage;
let tmp = format!("Golpeas a {} por {} de daño, le quedan {} pg.", malo.nombre, damage, malo.hp); let tmp = format!(
"Golpeas a {} por {} de daño, le quedan {} pg.",
malo.nombre, damage, malo.hp
);
output = format!("{}\n{}", output, tmp); output = format!("{}\n{}", output, tmp);
} else { } else {
let tmp = format!("No consigues golpear a {}.", malo.nombre); let tmp = format!("No consigues golpear a {}.", malo.nombre);
@ -148,13 +151,16 @@ pub fn execute_kill(player: &mut Player, nombre: &str) -> String {
if tohit >= player.ca { if tohit >= player.ca {
let damage = rand::thread_rng().gen_range(1..6); let damage = rand::thread_rng().gen_range(1..6);
player.hp = player.hp - damage; player.hp = player.hp - damage;
let tmp = format!("{} te golpea por {} de daño, te quedan {} pg.", malo.nombre, damage, player.hp); let tmp = format!(
"{} te golpea por {} de daño, te quedan {} pg.",
malo.nombre, damage, player.hp
);
output = format!("{}\n{}", output, tmp); output = format!("{}\n{}", output, tmp);
} else { } else {
let tmp = format!("{} no consigue herirte.", malo.nombre); let tmp = format!("{} no consigue herirte.", malo.nombre);
output = format!("{}\n{}", output, tmp); output = format!("{}\n{}", output, tmp);
} }
print!("{}",output); //FIXME si saco esto, non o concatena coa salida print!("{}", output); //FIXME si saco esto, non o concatena coa salida
} }
let resolucion: String; let resolucion: String;
@ -166,7 +172,6 @@ pub fn execute_kill(player: &mut Player, nombre: &str) -> String {
resolucion = String::from("No se que ha pasado. Alguien debería estar muerto."); resolucion = String::from("No se que ha pasado. Alguien debería estar muerto.");
} }
output = format!("{}\n{}", output, resolucion); output = format!("{}\n{}", output, resolucion);
} else { } else {
output = String::from("No encuentro lo que quieres matar."); output = String::from("No encuentro lo que quieres matar.");
} }

View File

@ -1,8 +1,8 @@
use tokio::net::TcpStream;
use tokio::io::{AsyncReadExt,AsyncWriteExt};
use crate::rlocation::{execute_go, execute_look};
use crate::player::*;
use crate::models::Player; use crate::models::Player;
use crate::player::*;
use crate::rlocation::{execute_go, execute_look};
use tokio::io::{AsyncReadExt, AsyncWriteExt};
use tokio::net::TcpStream;
use uuid::Uuid; use uuid::Uuid;
pub struct Command { pub struct Command {
@ -28,15 +28,15 @@ impl Command {
pub async fn set_player(socket: &mut TcpStream) -> Player { pub async fn set_player(socket: &mut TcpStream) -> Player {
// prompt // prompt
socket.write_all(b"\n").await.unwrap(); socket.write_all(b"\n").await.unwrap();
socket.write_all("Cuál es tu nombre?\n".as_bytes()).await.unwrap(); socket
.write_all("Cuál es tu nombre?\n".as_bytes())
.await
.unwrap();
socket.write_all(b"> ").await.unwrap(); socket.write_all(b"> ").await.unwrap();
let mut buf = vec![0; 1024]; let mut buf = vec![0; 1024];
let n = socket let n = socket.read(&mut buf).await.unwrap();
.read(&mut buf)
.await
.unwrap();
let input_str = String::from_utf8(buf[0..n].to_vec()).unwrap(); let input_str = String::from_utf8(buf[0..n].to_vec()).unwrap();
@ -52,7 +52,7 @@ pub async fn set_player(socket: &mut TcpStream) -> Player {
if check_player.is_ok() { if check_player.is_ok() {
player = check_player.unwrap(); player = check_player.unwrap();
} else { } else {
player = Player{ player = Player {
tag: Uuid::new_v4().to_string(), tag: Uuid::new_v4().to_string(),
nombre: nick.to_string(), nombre: nick.to_string(),
descripcion: "humano, equipo básico".to_string(), descripcion: "humano, equipo básico".to_string(),
@ -71,14 +71,11 @@ pub async fn set_player(socket: &mut TcpStream) -> Player {
pub async fn get_input(socket: &mut TcpStream) -> Command { pub async fn get_input(socket: &mut TcpStream) -> Command {
// prompt // prompt
socket.write_all(b"\n").await.unwrap(); socket.write_all(b"\n").await.unwrap();
socket.write_all(b"> ").await.unwrap(); socket.write_all(b"> ").await.unwrap();
let mut buf = vec![0; 1024]; let mut buf = vec![0; 1024];
let n = socket let n = socket.read(&mut buf).await.unwrap();
.read(&mut buf)
.await
.unwrap();
let input_str = String::from_utf8(buf[0..n].to_vec()).unwrap(); let input_str = String::from_utf8(buf[0..n].to_vec()).unwrap();

View File

@ -1,10 +1,9 @@
use crate::objects::{get_salidas, get_object_here, get_salidas_here};
use crate::npc::{get_npc_here, get_npcs}; use crate::npc::{get_npc_here, get_npcs};
use crate::objects::{get_object_here, get_salidas, get_salidas_here};
use crate::database::establish_connection;
use crate::models::*; use crate::models::*;
use diesel::prelude::*; use diesel::prelude::*;
use crate::database::establish_connection;
pub fn execute_look(player: &mut Player, nombre: &str) -> String { pub fn execute_look(player: &mut Player, nombre: &str) -> String {
let mut output: String; let mut output: String;
@ -21,10 +20,10 @@ pub fn execute_look(player: &mut Player, nombre: &str) -> String {
if salidas.is_ok() && salidas.as_ref().unwrap().len() > 0 { if salidas.is_ok() && salidas.as_ref().unwrap().len() > 0 {
output.push_str("\nSalidas:\n"); output.push_str("\nSalidas:\n");
for salidas in salidas.unwrap() { for salidas in salidas.unwrap() {
let mut nombre = "- ".to_string(); let mut nombre = "- ".to_string();
nombre.push_str(&salidas.nombre); nombre.push_str(&salidas.nombre);
nombre.push_str("\n"); nombre.push_str("\n");
output.push_str(&nombre); output.push_str(&nombre);
} }
} }
@ -34,13 +33,12 @@ pub fn execute_look(player: &mut Player, nombre: &str) -> String {
if npcs.is_ok() && npcs.as_ref().unwrap().len() > 0 { if npcs.is_ok() && npcs.as_ref().unwrap().len() > 0 {
output.push_str("\nTambién ves:\n"); output.push_str("\nTambién ves:\n");
for npc in npcs.as_ref().unwrap() { for npc in npcs.as_ref().unwrap() {
let mut nombre = "- ".to_string(); let mut nombre = "- ".to_string();
nombre.push_str(&npc.nombre); nombre.push_str(&npc.nombre);
nombre.push_str("\n"); nombre.push_str("\n");
output.push_str(&nombre); output.push_str(&nombre);
} }
} }
} else { } else {
output = String::from("Navengado el ether!"); output = String::from("Navengado el ether!");
} }
@ -62,7 +60,7 @@ pub fn execute_look(player: &mut Player, nombre: &str) -> String {
output = String::from("Qué quieres mirar?"); output = String::from("Qué quieres mirar?");
} }
return output return output;
} }
pub fn execute_go(player: &mut Player, coord: &str) -> String { pub fn execute_go(player: &mut Player, coord: &str) -> String {
@ -82,7 +80,7 @@ pub fn execute_go(player: &mut Player, coord: &str) -> String {
"oeste" => nombre = "oeste".to_string(), "oeste" => nombre = "oeste".to_string(),
"arriba" => nombre = "arriba".to_string(), "arriba" => nombre = "arriba".to_string(),
"abajo" => nombre = "abajo".to_string(), "abajo" => nombre = "abajo".to_string(),
_ => nombre = "".to_string(), _ => nombre = "".to_string(),
} }
let tag: String; let tag: String;
@ -106,7 +104,6 @@ pub fn execute_go(player: &mut Player, coord: &str) -> String {
} else { } else {
output = String::from("No existe esa salida."); output = String::from("No existe esa salida.");
} }
} else { } else {
output = String::from("No entiendo a donde quieres ir. Debes elegir una coordenada correspondiente a las salidas de esta sala."); output = String::from("No entiendo a donde quieres ir. Debes elegir una coordenada correspondiente a las salidas de esta sala.");
} }
@ -116,9 +113,7 @@ pub fn execute_go(player: &mut Player, coord: &str) -> String {
// get_location busca na base de datos a localización polo seu tag // get_location busca na base de datos a localización polo seu tag
pub fn get_location(pegatina: String) -> Result<RLocation, diesel::result::Error> { pub fn get_location(pegatina: String) -> Result<RLocation, diesel::result::Error> {
use crate::schema::location::dsl::*; use crate::schema::location::dsl::*;
let conn = &mut establish_connection(); let conn = &mut establish_connection();
location location.filter(tag.eq(pegatina)).first(conn)
.filter(tag.eq(pegatina))
.first(conn)
} }

View File

@ -45,9 +45,4 @@ diesel::table! {
} }
} }
diesel::allow_tables_to_appear_in_same_query!( diesel::allow_tables_to_appear_in_same_query!(location, npc, object, player,);
location,
npc,
object,
player,
);