mirror of
https://github.com/mat-1/azalea.git
synced 2025-08-02 14:26:04 +00:00
clippo the sequel
This commit is contained in:
parent
0cf8f82994
commit
69f97dbf02
10 changed files with 38 additions and 22 deletions
|
@ -3,6 +3,7 @@ mod utils;
|
|||
use proc_macro::TokenStream;
|
||||
use quote::quote;
|
||||
use std::collections::HashMap;
|
||||
use std::fmt::Write;
|
||||
use syn::{
|
||||
self, braced,
|
||||
parse::{Parse, ParseStream, Result},
|
||||
|
@ -273,7 +274,8 @@ pub fn make_block_states(input: TokenStream) -> TokenStream {
|
|||
.unwrap_or_else(|| panic!("Property '{}' is bad", property.struct_name))
|
||||
.clone();
|
||||
if let Some(index) = index {
|
||||
property_name.push_str(&format!("_{}", &index.to_string()));
|
||||
// property_name.push_str(&format!("_{}", &index.to_string()));
|
||||
write!(property_name, "_{}", index).unwrap();
|
||||
}
|
||||
properties_with_name
|
||||
.push(property.as_property_with_name_and_default(property_name.clone()));
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
use crate::{context::CommandContext, modifier::RedirectModifier, tree::CommandNode};
|
||||
use crate::{
|
||||
context::CommandContext,
|
||||
modifier::RedirectModifier,
|
||||
tree::{Command, CommandNode},
|
||||
};
|
||||
|
||||
use super::{literal_argument_builder::Literal, required_argument_builder::Argument};
|
||||
use std::{cell::RefCell, fmt::Debug, rc::Rc};
|
||||
|
@ -13,7 +17,7 @@ pub enum ArgumentBuilderType {
|
|||
pub struct ArgumentBuilder<S> {
|
||||
arguments: CommandNode<S>,
|
||||
|
||||
command: Option<Rc<dyn Fn(&CommandContext<S>) -> i32>>,
|
||||
command: Command<S>,
|
||||
requirement: Rc<dyn Fn(Rc<S>) -> bool>,
|
||||
target: Option<Rc<RefCell<CommandNode<S>>>>,
|
||||
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
use super::{parsed_command_node::ParsedCommandNode, string_range::StringRange, ParsedArgument};
|
||||
use crate::{modifier::RedirectModifier, tree::CommandNode};
|
||||
use crate::{
|
||||
modifier::RedirectModifier,
|
||||
tree::{Command, CommandNode},
|
||||
};
|
||||
use std::{any::Any, cell::RefCell, collections::HashMap, fmt::Debug, rc::Rc};
|
||||
|
||||
/// A built `CommandContextBuilder`.
|
||||
|
@ -7,7 +10,7 @@ pub struct CommandContext<S> {
|
|||
pub source: Rc<S>,
|
||||
pub input: String,
|
||||
pub arguments: HashMap<String, ParsedArgument>,
|
||||
pub command: Option<Rc<dyn Fn(&CommandContext<S>) -> i32>>,
|
||||
pub command: Command<S>,
|
||||
pub root_node: Rc<RefCell<CommandNode<S>>>,
|
||||
pub nodes: Vec<ParsedCommandNode<S>>,
|
||||
pub range: StringRange,
|
||||
|
|
|
@ -2,7 +2,11 @@ use super::{
|
|||
command_context::CommandContext, parsed_command_node::ParsedCommandNode,
|
||||
string_range::StringRange, ParsedArgument,
|
||||
};
|
||||
use crate::{command_dispatcher::CommandDispatcher, modifier::RedirectModifier, tree::CommandNode};
|
||||
use crate::{
|
||||
command_dispatcher::CommandDispatcher,
|
||||
modifier::RedirectModifier,
|
||||
tree::{Command, CommandNode},
|
||||
};
|
||||
use std::{cell::RefCell, collections::HashMap, fmt::Debug, rc::Rc};
|
||||
|
||||
pub struct CommandContextBuilder<S> {
|
||||
|
@ -11,7 +15,7 @@ pub struct CommandContextBuilder<S> {
|
|||
pub nodes: Vec<ParsedCommandNode<S>>,
|
||||
pub dispatcher: Rc<CommandDispatcher<S>>,
|
||||
pub source: Rc<S>,
|
||||
pub command: Option<Rc<dyn Fn(&CommandContext<S>) -> i32>>,
|
||||
pub command: Command<S>,
|
||||
pub child: Option<Rc<CommandContextBuilder<S>>>,
|
||||
pub range: StringRange,
|
||||
pub modifier: Option<Rc<RedirectModifier<S>>>,
|
||||
|
@ -56,10 +60,7 @@ impl<S> CommandContextBuilder<S> {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn with_command(
|
||||
&mut self,
|
||||
command: &Option<Rc<dyn Fn(&CommandContext<S>) -> i32>>,
|
||||
) -> &Self {
|
||||
pub fn with_command(&mut self, command: &Command<S>) -> &Self {
|
||||
self.command = command.clone();
|
||||
self
|
||||
}
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
use std::{cmp, fmt};
|
||||
|
||||
use super::builtin_exceptions::BuiltInExceptions;
|
||||
use crate::message::Message;
|
||||
use std::{
|
||||
cmp,
|
||||
fmt::{self, Write},
|
||||
};
|
||||
|
||||
#[derive(Clone, PartialEq)]
|
||||
pub struct CommandSyntaxException {
|
||||
|
@ -36,11 +38,13 @@ impl CommandSyntaxException {
|
|||
let mut message = self.message.string();
|
||||
let context = self.context();
|
||||
if let Some(context) = context {
|
||||
message.push_str(&format!(
|
||||
write!(
|
||||
message,
|
||||
" at position {}: {}",
|
||||
self.cursor.unwrap_or(usize::MAX),
|
||||
context
|
||||
));
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
message
|
||||
}
|
||||
|
|
|
@ -10,6 +10,8 @@ use crate::{
|
|||
};
|
||||
use std::{cell::RefCell, collections::HashMap, fmt::Debug, hash::Hash, ptr, rc::Rc};
|
||||
|
||||
pub type Command<S> = Option<Rc<dyn Fn(&CommandContext<S>) -> i32>>;
|
||||
|
||||
/// An ArgumentBuilder that has been built.
|
||||
#[non_exhaustive]
|
||||
pub struct CommandNode<S> {
|
||||
|
@ -19,7 +21,7 @@ pub struct CommandNode<S> {
|
|||
pub literals: HashMap<String, Rc<RefCell<CommandNode<S>>>>,
|
||||
pub arguments: HashMap<String, Rc<RefCell<CommandNode<S>>>>,
|
||||
|
||||
pub command: Option<Rc<dyn Fn(&CommandContext<S>) -> i32>>,
|
||||
pub command: Command<S>,
|
||||
pub requirement: Rc<dyn Fn(Rc<S>) -> bool>,
|
||||
pub redirect: Option<Rc<RefCell<CommandNode<S>>>>,
|
||||
pub forks: bool,
|
||||
|
@ -75,9 +77,9 @@ impl<S> CommandNode<S> {
|
|||
input.cursor = cursor;
|
||||
let literal = literals.get(&text);
|
||||
if let Some(literal) = literal {
|
||||
return vec![literal.clone()];
|
||||
vec![literal.clone()]
|
||||
} else {
|
||||
return self.arguments.values().cloned().collect();
|
||||
self.arguments.values().cloned().collect()
|
||||
}
|
||||
} else {
|
||||
self.arguments.values().cloned().collect()
|
||||
|
|
|
@ -2,7 +2,7 @@ use std::{collections::HashMap, fmt};
|
|||
|
||||
use serde_json::Value;
|
||||
|
||||
#[derive(Clone, PartialEq, Debug)]
|
||||
#[derive(Clone, PartialEq, Eq, Debug)]
|
||||
pub struct TextColor {
|
||||
pub value: u32,
|
||||
pub name: Option<String>,
|
||||
|
|
|
@ -54,7 +54,7 @@ pub fn legacy_color_code_to_text_component(legacy_color_code: &str) -> TextCompo
|
|||
final_component
|
||||
}
|
||||
|
||||
impl<'a> TextComponent {
|
||||
impl TextComponent {
|
||||
pub fn new(text: String) -> Self {
|
||||
// if it contains a LEGACY_FORMATTING_CODE_SYMBOL, format it
|
||||
if text.contains(LEGACY_FORMATTING_CODE_SYMBOL) {
|
||||
|
|
|
@ -5,7 +5,7 @@ use std::{
|
|||
|
||||
use azalea_buf::{McBufReadable, McBufWritable};
|
||||
|
||||
#[derive(Hash, Clone, Debug, PartialEq)]
|
||||
#[derive(Hash, Clone, Debug, PartialEq, Eq)]
|
||||
pub enum Difficulty {
|
||||
PEACEFUL = 0,
|
||||
EASY = 1,
|
||||
|
|
|
@ -86,7 +86,7 @@ impl ChunkSectionPos {
|
|||
}
|
||||
}
|
||||
/// The coordinates of a block inside a chunk.
|
||||
#[derive(Clone, Copy, Debug, Default, PartialEq)]
|
||||
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
|
||||
pub struct ChunkBlockPos {
|
||||
pub x: u8,
|
||||
pub y: i32,
|
||||
|
|
Loading…
Add table
Reference in a new issue