aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--azalea-buf/azalea-buf-macros/src/lib.rs46
-rw-r--r--azalea-protocol/src/packets/game/clientbound_set_player_team_packet.rs6
2 files changed, 28 insertions, 24 deletions
diff --git a/azalea-buf/azalea-buf-macros/src/lib.rs b/azalea-buf/azalea-buf-macros/src/lib.rs
index fce3b515..07b2e5ef 100644
--- a/azalea-buf/azalea-buf-macros/src/lib.rs
+++ b/azalea-buf/azalea-buf-macros/src/lib.rs
@@ -53,6 +53,7 @@ fn create_impl_mcbufreadable(ident: &Ident, data: &Data) -> proc_macro2::TokenSt
syn::Data::Enum(syn::DataEnum { variants, .. }) => {
let mut match_contents = quote!();
let mut variant_discrim: u32 = 0;
+ let mut first = true;
for variant in variants {
let variant_name = &variant.ident;
match &variant.discriminant.as_ref() {
@@ -71,7 +72,11 @@ fn create_impl_mcbufreadable(ident: &Ident, data: &Data) -> proc_macro2::TokenSt
}
}
None => {
- variant_discrim += 1;
+ if first {
+ first = false;
+ } else {
+ variant_discrim += 1;
+ }
}
}
let reader = match variant.fields {
@@ -160,26 +165,31 @@ fn create_impl_mcbufwritable(ident: &Ident, data: &Data) -> proc_macro2::TokenSt
let mut is_data_enum = false;
let mut match_arms = quote!();
let mut variant_discrim: u32 = 0;
+ let mut first = true;
for variant in variants {
- // figure out the discriminant
- if let Some(discriminant) = &variant.discriminant {
- variant_discrim = match &discriminant.1 {
- syn::Expr::Lit(e) => match &e.lit {
- syn::Lit::Int(i) => i.base10_parse().unwrap(),
- _ => panic!("Error parsing enum discriminant as int"),
- },
- syn::Expr::Unary(_) => {
- panic!("Negative enum discriminants are not supported")
+ let variant_name = &variant.ident;
+ match &variant.discriminant.as_ref() {
+ Some(d) => {
+ variant_discrim = match &d.1 {
+ syn::Expr::Lit(e) => match &e.lit {
+ syn::Lit::Int(i) => i.base10_parse().unwrap(),
+ _ => panic!("Error parsing enum discriminant as int"),
+ },
+ syn::Expr::Unary(_) => {
+ panic!("Negative enum discriminants are not supported")
+ }
+ _ => {
+ panic!("Error parsing enum discriminant as literal (is {:?})", d.1)
+ }
}
- _ => {
- panic!(
- "Error parsing enum discriminant as literal (is {:?})",
- discriminant.1
- )
+ }
+ None => {
+ if first {
+ first = false;
+ } else {
+ variant_discrim += 1;
}
- };
- } else {
- variant_discrim += 1;
+ }
}
match &variant.fields {
diff --git a/azalea-protocol/src/packets/game/clientbound_set_player_team_packet.rs b/azalea-protocol/src/packets/game/clientbound_set_player_team_packet.rs
index 76025024..fe5a75f8 100644
--- a/azalea-protocol/src/packets/game/clientbound_set_player_team_packet.rs
+++ b/azalea-protocol/src/packets/game/clientbound_set_player_team_packet.rs
@@ -71,10 +71,4 @@ pub struct Parameters {
pub player_suffix: Component,
}
-#[derive(McBuf, Copy, Clone, Debug)]
-pub enum RenderType {
- Integer,
- Hearts,
-}
-
type PlayerList = Vec<String>;