Botcraft 1.21.4
Loading...
Searching...
No Matches
ProtocolCraft::NBT::Tag Class Reference

#include <Tag.hpp>

Inheritance diagram for ProtocolCraft::NBT::Tag:
ProtocolCraft::NetworkType ProtocolCraft::Chat ProtocolCraft::NBT::UnnamedValue ProtocolCraft::NBT::Value

Public Member Functions

const std::string & GetName () const
 
template<typename T >
bool is () const
 
template<typename T , std::enable_if_t< std::is_convertible_v< std::vector< T >, Internal::TagListVariant >, bool > = true>
bool is_list_of () const
 
template<typename T , std::enable_if_t< std::is_same_v< T, TagByte >||std::is_same_v< T, TagShort >||std::is_same_v< T, TagInt >||std::is_same_v< T, TagLong >||std::is_same_v< T, TagFloat >||std::is_same_v< T, TagDouble >, bool > = true>
get () const
 
template<typename T , std::enable_if_t< std::is_same_v< T, TagByteArray >||std::is_same_v< T, TagString >||std::is_same_v< T, TagList >||std::is_same_v< T, TagCompound >||std::is_same_v< T, TagIntArray >||std::is_same_v< T, TagLongArray >, bool > = true>
const T & get () const
 
template<typename T , std::enable_if_t< std::is_convertible_v< std::vector< T >, Internal::TagListVariant >, bool > = true>
const std::vector< T > & as_list_of () const
 
const Tagoperator[] (const std::string &s) const
 
size_t size () const
 
bool contains (const std::string &s) const
 
- Public Member Functions inherited from ProtocolCraft::NetworkType
virtual ~NetworkType ()
 
virtual void Read (ReadIterator &iter, size_t &length)
 
virtual void Write (WriteContainer &container) const
 
virtual Json::Value Serialize () const
 

Protected Member Functions

void ReadUnnamedImpl (ReadIterator &iter, size_t &length)
 
void WriteUnnamedImpl (WriteContainer &container) const
 
virtual void ReadImpl (ReadIterator &iter, size_t &length) override
 
virtual void WriteImpl (WriteContainer &container) const override
 
virtual Json::Value SerializeImpl () const override
 

Private Attributes

Internal::TagVariant val
 
std::string name
 

Detailed Description

Definition at line 64 of file Tag.hpp.

Member Function Documentation

◆ as_list_of()

template<typename T , std::enable_if_t< std::is_convertible_v< std::vector< T >, Internal::TagListVariant >, bool > >
const std::vector< T > & ProtocolCraft::NBT::Tag::as_list_of ( ) const

Definition at line 264 of file Tag.hpp.

References val.

Referenced by Botcraft::Utilities::GetEnchantmentLvl().

◆ contains()

bool ProtocolCraft::NBT::Tag::contains ( const std::string &  s) const

◆ get() [1/2]

template<typename T , std::enable_if_t< std::is_same_v< T, TagByte >||std::is_same_v< T, TagShort >||std::is_same_v< T, TagInt >||std::is_same_v< T, TagLong >||std::is_same_v< T, TagFloat >||std::is_same_v< T, TagDouble >, bool > >
T ProtocolCraft::NBT::Tag::get ( ) const

Definition at line 209 of file Tag.hpp.

References val.

Referenced by get(), Botcraft::Utilities::GetDamageCount(), and Botcraft::World::Handle().

◆ get() [2/2]

template<typename T , std::enable_if_t< std::is_same_v< T, TagByteArray >||std::is_same_v< T, TagString >||std::is_same_v< T, TagList >||std::is_same_v< T, TagCompound >||std::is_same_v< T, TagIntArray >||std::is_same_v< T, TagLongArray >, bool > >
const T & ProtocolCraft::NBT::Tag::get ( ) const

Definition at line 229 of file Tag.hpp.

References get(), and val.

◆ GetName()

const std::string & ProtocolCraft::NBT::Tag::GetName ( ) const

Definition at line 89 of file Tag.cpp.

References name.

Referenced by ProtocolCraft::NBT::TagCompound::ReadImpl(), and SerializeImpl().

◆ is()

template<typename T >
bool ProtocolCraft::NBT::Tag::is ( ) const

Definition at line 173 of file Tag.hpp.

References val.

Referenced by Botcraft::Utilities::GetDamageCount(), and ProtocolCraft::NBT::TagCompound::ReadImpl().

◆ is_list_of()

template<typename T , std::enable_if_t< std::is_convertible_v< std::vector< T >, Internal::TagListVariant >, bool > >
bool ProtocolCraft::NBT::Tag::is_list_of ( ) const

Definition at line 193 of file Tag.hpp.

Referenced by Botcraft::Utilities::GetEnchantmentLvl().

◆ operator[]()

const Tag & ProtocolCraft::NBT::Tag::operator[] ( const std::string &  s) const

Definition at line 364 of file Tag.cpp.

References val.

◆ ReadImpl()

◆ ReadUnnamedImpl()

◆ SerializeImpl()

Json::Value ProtocolCraft::NBT::Tag::SerializeImpl ( ) const
overrideprotectedvirtual

Implements ProtocolCraft::NetworkType.

Definition at line 329 of file Tag.cpp.

References ProtocolCraft::Json::Value::get(), GetName(), and val.

◆ size()

size_t ProtocolCraft::NBT::Tag::size ( ) const

Definition at line 374 of file Tag.cpp.

References val.

◆ WriteImpl()

void ProtocolCraft::NBT::Tag::WriteImpl ( WriteContainer container) const
overrideprotectedvirtual

Implements ProtocolCraft::NetworkType.

Reimplemented in ProtocolCraft::Chat, and ProtocolCraft::NBT::UnnamedValue.

Definition at line 276 of file Tag.cpp.

References name, val, and ProtocolCraft::NBT::WriteNBTString().

◆ WriteUnnamedImpl()

void ProtocolCraft::NBT::Tag::WriteUnnamedImpl ( WriteContainer container) const
protected

Member Data Documentation

◆ name

std::string ProtocolCraft::NBT::Tag::name
private

Definition at line 124 of file Tag.hpp.

Referenced by GetName(), ReadImpl(), ReadUnnamedImpl(), and WriteImpl().

◆ val

Internal::TagVariant ProtocolCraft::NBT::Tag::val
private

The documentation for this class was generated from the following files: