Moved GameMode into pumpkin-core

This commit is contained in:
DaniD3v
2024-08-31 18:16:15 +02:00
parent 6740e717f7
commit 2fbf450ed3
9 changed files with 48 additions and 35 deletions

2
Cargo.lock generated
View File

@@ -1936,6 +1936,8 @@ dependencies = [
"colored",
"fastnbt",
"md5",
"num-derive",
"num-traits",
"serde",
"uuid",
]

View File

@@ -9,3 +9,6 @@ fastnbt = { git = "https://github.com/owengage/fastnbt.git" }
uuid.workspace = true
colored = "2"
md5 = "0.7.0"
num-traits = "0.2.19"
num-derive = { version = "0.4.2" }

View File

@@ -0,0 +1,30 @@
use std::str::FromStr;
use num_derive::{FromPrimitive, ToPrimitive};
use serde::{Deserialize, Serialize};
#[derive(Debug, PartialEq, Eq)]
pub struct ParseGameModeError;
#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize, FromPrimitive, ToPrimitive)]
pub enum GameMode {
Undefined = -1,
Survival,
Creative,
Adventure,
Spectator,
}
impl FromStr for GameMode {
type Err = ParseGameModeError;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"survival" => Ok(Self::Survival),
"creative" => Ok(Self::Creative),
"adventure" => Ok(Self::Adventure),
"spectator" => Ok(Self::Spectator),
_ => Err(ParseGameModeError),
}
}
}

View File

@@ -1,2 +1,5 @@
pub mod gamemode;
pub mod random;
pub mod text;
pub use gamemode::GameMode;

View File

@@ -3,12 +3,12 @@ use std::f32::consts::PI;
use crate::{
commands::{handle_command, CommandSender},
config::ADVANCED_CONFIG,
entity::player::{ChatMode, GameMode, Hand, Player},
entity::player::{ChatMode, Hand, Player},
server::Server,
util::math::wrap_degrees,
};
use num_traits::FromPrimitive;
use pumpkin_core::text::TextComponent;
use pumpkin_core::{text::TextComponent, GameMode};
use pumpkin_entity::EntityId;
use pumpkin_inventory::WindowType;
use pumpkin_protocol::server::play::{SCloseContainer, SSetPlayerGround, SUseItem};

View File

@@ -2,6 +2,7 @@ use std::str::FromStr;
use num_traits::FromPrimitive;
use pumpkin_core::text::TextComponent;
use pumpkin_core::GameMode;
use crate::commands::arg_player::{consume_arg_player, parse_arg_player};
@@ -13,7 +14,6 @@ use crate::commands::tree::{CommandTree, ConsumedArgs, RawArgs};
use crate::commands::tree_builder::{argument, require};
use crate::commands::CommandSender;
use crate::commands::CommandSender::Player;
use crate::entity::player::GameMode;
const NAMES: [&str; 1] = ["gamemode"];

View File

@@ -1,4 +1,5 @@
use log::warn;
use pumpkin_core::GameMode;
use serde::{de::DeserializeOwned, Deserialize, Serialize};
use std::{
@@ -8,7 +9,7 @@ use std::{
sync::LazyLock,
};
use crate::{entity::player::GameMode, server::Difficulty};
use crate::server::Difficulty;
pub mod auth;
pub mod proxy;

View File

@@ -1,8 +1,8 @@
use std::{str::FromStr, sync::Arc};
use std::sync::Arc;
use num_derive::{FromPrimitive, ToPrimitive};
use num_derive::FromPrimitive;
use num_traits::ToPrimitive;
use pumpkin_core::text::TextComponent;
use pumpkin_core::{text::TextComponent, GameMode};
use pumpkin_entity::{entity_type::EntityType, pose::EntityPose, Entity, EntityId};
use pumpkin_inventory::player::PlayerInventory;
use pumpkin_protocol::{
@@ -21,7 +21,6 @@ use pumpkin_protocol::{
ConnectionState, RawPacket, ServerPacket, VarInt,
};
use pumpkin_world::vector3::Vector3;
use serde::{Deserialize, Serialize};
use crate::{
client::{authentication::GameProfile, Client},
@@ -454,29 +453,3 @@ pub enum ChatMode {
CommandsOnly,
Hidden,
}
#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize, FromPrimitive, ToPrimitive)]
pub enum GameMode {
Undefined = -1,
Survival,
Creative,
Adventure,
Spectator,
}
#[derive(Debug, PartialEq, Eq)]
pub struct ParseGameModeError;
impl FromStr for GameMode {
type Err = ParseGameModeError;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"survival" => Ok(Self::Survival),
"creative" => Ok(Self::Creative),
"adventure" => Ok(Self::Adventure),
"spectator" => Ok(Self::Spectator),
_ => Err(ParseGameModeError),
}
}
}

View File

@@ -11,6 +11,7 @@ use std::{
use base64::{engine::general_purpose, Engine};
use image::GenericImageView;
use mio::Token;
use pumpkin_core::GameMode;
use pumpkin_entity::EntityId;
use pumpkin_plugin::PluginLoader;
use pumpkin_protocol::{
@@ -26,7 +27,7 @@ use serde::{Deserialize, Serialize};
use crate::{
client::Client,
config::{BasicConfiguration, BASIC_CONFIG},
entity::player::{GameMode, Player},
entity::player::Player,
world::World,
};