Documentation ¶
Index ¶
- type Data
- type Handler
- type InventoryData
- type NopHandler
- func (NopHandler) HandleAttackEntity(*event.Context, world.Entity, *float64, *float64, *bool)
- func (NopHandler) HandleBlockBreak(*event.Context, cube.Pos, *[]item.Stack)
- func (NopHandler) HandleBlockPick(*event.Context, cube.Pos, world.Block)
- func (NopHandler) HandleBlockPlace(*event.Context, cube.Pos, world.Block)
- func (NopHandler) HandleChangeWorld(*world.World, *world.World)
- func (NopHandler) HandleChat(*event.Context, *string)
- func (NopHandler) HandleCommandExecution(*event.Context, cmd.Command, []string)
- func (NopHandler) HandleDeath(damage.Source)
- func (NopHandler) HandleExperienceGain(*event.Context, *int)
- func (NopHandler) HandleFoodLoss(*event.Context, int, int)
- func (NopHandler) HandleHeal(*event.Context, *float64, healing.Source)
- func (NopHandler) HandleHurt(*event.Context, *float64, *time.Duration, damage.Source)
- func (NopHandler) HandleItemConsume(*event.Context, item.Stack)
- func (NopHandler) HandleItemDamage(*event.Context, item.Stack, int)
- func (NopHandler) HandleItemDrop(*event.Context, *entity.Item)
- func (NopHandler) HandleItemPickup(*event.Context, item.Stack)
- func (NopHandler) HandleItemUse(*event.Context)
- func (NopHandler) HandleItemUseOnBlock(*event.Context, cube.Pos, cube.Face, mgl64.Vec3)
- func (NopHandler) HandleItemUseOnEntity(*event.Context, world.Entity)
- func (NopHandler) HandleJump()
- func (NopHandler) HandleMove(*event.Context, mgl64.Vec3, float64, float64)
- func (NopHandler) HandlePunchAir(*event.Context)
- func (NopHandler) HandleQuit()
- func (NopHandler) HandleRespawn(*mgl64.Vec3, **world.World)
- func (NopHandler) HandleSignEdit(*event.Context, string, string)
- func (NopHandler) HandleSkinChange(*event.Context, *skin.Skin)
- func (NopHandler) HandleStartBreak(*event.Context, cube.Pos)
- func (NopHandler) HandleTeleport(*event.Context, mgl64.Vec3)
- func (NopHandler) HandleToggleSneak(*event.Context, bool)
- func (NopHandler) HandleToggleSprint(*event.Context, bool)
- func (NopHandler) HandleTransfer(*event.Context, *net.UDPAddr)
- type NopProvider
- type Player
- func (p *Player) AbortBreaking()
- func (p *Player) Absorption() float64
- func (p *Player) AddEffect(e effect.Effect)
- func (p *Player) AddExperience(amount int) int
- func (p *Player) AddFood(points int)
- func (p *Player) Addr() net.Addr
- func (p *Player) AirSupply() time.Duration
- func (p *Player) Armour() *inventory.Armour
- func (p *Player) AttackEntity(e world.Entity) bool
- func (p *Player) AttackImmune() bool
- func (p *Player) AttackImmunity() time.Duration
- func (p *Player) BBox() cube.BBox
- func (*Player) BeaconAffected() bool
- func (p *Player) BreakBlock(pos cube.Pos)
- func (p *Player) Breathing() bool
- func (p *Player) Chat(msg ...any)
- func (p *Player) Close() error
- func (p *Player) Collect(s item.Stack) int
- func (p *Player) CollectExperience(value int) bool
- func (p *Player) ContinueBreaking(face cube.Face)
- func (p *Player) Data() Data
- func (p *Player) Dead() bool
- func (p *Player) DeathPosition() (mgl64.Vec3, world.Dimension, bool)
- func (p *Player) DisableInstantRespawn()
- func (p *Player) Disconnect(msg ...any)
- func (p *Player) Drop(s item.Stack) int
- func (p *Player) EditSign(pos cube.Pos, text string) error
- func (p *Player) Effect(e effect.Type) (effect.Effect, bool)
- func (p *Player) Effects() []effect.Effect
- func (p *Player) EnableInstantRespawn()
- func (p *Player) EnchantmentSeed() int64
- func (p *Player) EncodeEntity() string
- func (p *Player) EnderChestInventory() *inventory.Inventory
- func (p *Player) ExecuteCommand(commandLine string)
- func (p *Player) Exhaust(points float64)
- func (p *Player) Experience() int
- func (p *Player) ExperienceLevel() int
- func (p *Player) ExperienceProgress() float64
- func (p *Player) Explode(explosionPos mgl64.Vec3, impact float64, c block.ExplosionConfig)
- func (p *Player) Extinguish()
- func (p *Player) EyeHeight() float64
- func (p *Player) Facing() cube.Direction
- func (p *Player) FallDistance() float64
- func (p *Player) FinalDamageFrom(dmg float64, src damage.Source) float64
- func (p *Player) FinishBreaking()
- func (p *Player) FireProof() bool
- func (p *Player) Flying() bool
- func (p *Player) Food() int
- func (p *Player) GameMode() world.GameMode
- func (p *Player) Gliding() bool
- func (p *Player) Handle(h Handler)
- func (p *Player) Handler() Handler
- func (p *Player) HasCooldown(item world.Item) bool
- func (p *Player) Heal(health float64, source healing.Source)
- func (p *Player) Health() float64
- func (p *Player) HeldItems() (mainHand, offHand item.Stack)
- func (p *Player) HideCoordinates()
- func (p *Player) HideEntity(e world.Entity)
- func (p *Player) Hurt(dmg float64, src damage.Source) (float64, bool)
- func (p *Player) Immobile() bool
- func (p *Player) Inventory() *inventory.Inventory
- func (p *Player) Invisible() bool
- func (p *Player) Jump()
- func (p *Player) KnockBack(src mgl64.Vec3, force, height float64)
- func (p *Player) Latency() time.Duration
- func (p *Player) Locale() language.Tag
- func (p *Player) MaxAirSupply() time.Duration
- func (p *Player) MaxHealth() float64
- func (p *Player) Message(a ...any)
- func (p *Player) Messagef(f string, a ...any)
- func (p *Player) Move(deltaPos mgl64.Vec3, deltaYaw, deltaPitch float64)
- func (p *Player) Name() string
- func (p *Player) NameTag() string
- func (p *Player) OnFireDuration() time.Duration
- func (p *Player) OnGround() bool
- func (p *Player) OpenBlockContainer(pos cube.Pos)
- func (p *Player) PickBlock(pos cube.Pos)
- func (p *Player) PlaceBlock(pos cube.Pos, b world.Block, ctx *item.UseContext)
- func (p *Player) PlaySound(sound world.Sound)
- func (p *Player) Position() mgl64.Vec3
- func (p *Player) PunchAir()
- func (p *Player) ReleaseItem()
- func (p *Player) RemoveBossBar()
- func (p *Player) RemoveEffect(e effect.Type)
- func (p *Player) RemoveExperience(amount int)
- func (p *Player) RemoveScoreboard()
- func (p *Player) ResetEnchantmentSeed()
- func (p *Player) ResetFallDistance()
- func (p *Player) Respawn()
- func (p *Player) Rotation() (float64, float64)
- func (p *Player) Saturate(food int, saturation float64)
- func (p *Player) Scale() float64
- func (p *Player) ScoreTag() string
- func (p *Player) SendBossBar(bar bossbar.BossBar)
- func (p *Player) SendCommandOutput(output *cmd.Output)
- func (p *Player) SendForm(f form.Form)
- func (p *Player) SendJukeboxPopup(a ...any)
- func (p *Player) SendPopup(a ...any)
- func (p *Player) SendScoreboard(scoreboard *scoreboard.Scoreboard)
- func (p *Player) SendTip(a ...any)
- func (p *Player) SendTitle(t title.Title)
- func (p *Player) SendToast(title, message string)
- func (p *Player) SetAbsorption(health float64)
- func (p *Player) SetAirSupply(duration time.Duration)
- func (p *Player) SetAttackImmunity(d time.Duration)
- func (p *Player) SetCooldown(item world.Item, cooldown time.Duration)
- func (p *Player) SetExperienceLevel(level int)
- func (p *Player) SetExperienceProgress(progress float64)
- func (p *Player) SetFood(level int)
- func (p *Player) SetGameMode(mode world.GameMode)
- func (p *Player) SetHeldItems(mainHand, offHand item.Stack)
- func (p *Player) SetImmobile()
- func (p *Player) SetInvisible()
- func (p *Player) SetMaxAirSupply(duration time.Duration)
- func (p *Player) SetMaxHealth(health float64)
- func (p *Player) SetMobile()
- func (p *Player) SetNameTag(name string)
- func (p *Player) SetOnFire(duration time.Duration)
- func (p *Player) SetScale(s float64)
- func (p *Player) SetScoreTag(a ...any)
- func (p *Player) SetSkin(skin skin.Skin)
- func (p *Player) SetSpeed(speed float64)
- func (p *Player) SetVelocity(velocity mgl64.Vec3)
- func (p *Player) SetVisible()
- func (p *Player) ShowCoordinates()
- func (p *Player) ShowEntity(e world.Entity)
- func (p *Player) ShowParticle(pos mgl64.Vec3, particle world.Particle)
- func (p *Player) Skin() skin.Skin
- func (p *Player) Sneaking() bool
- func (p *Player) Speed() float64
- func (p *Player) Sprinting() bool
- func (p *Player) StartBreaking(pos cube.Pos, face cube.Face)
- func (p *Player) StartFlying()
- func (p *Player) StartGliding()
- func (p *Player) StartSneaking()
- func (p *Player) StartSprinting()
- func (p *Player) StartSwimming()
- func (p *Player) StopFlying()
- func (p *Player) StopGliding()
- func (p *Player) StopSneaking()
- func (p *Player) StopSprinting()
- func (p *Player) StopSwimming()
- func (p *Player) Swimming() bool
- func (p *Player) SwingArm()
- func (p *Player) Teleport(pos mgl64.Vec3)
- func (p *Player) Tick(w *world.World, current int64)
- func (p *Player) Transfer(address string) error
- func (p *Player) UUID() uuid.UUID
- func (p *Player) UseItem()
- func (p *Player) UseItemOnBlock(pos cube.Pos, face cube.Face, clickPos mgl64.Vec3)
- func (p *Player) UseItemOnEntity(e world.Entity) bool
- func (p *Player) UsingItem() bool
- func (p *Player) Velocity() mgl64.Vec3
- func (p *Player) World() *world.World
- func (p *Player) XUID() string
- type Provider
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Data ¶ added in v0.1.0
type Data struct { // UUID is the player's unique identifier for their account. UUID uuid.UUID // Username is the last username the player joined with. Username string // Position is the last position the player was located at. // Velocity is the speed at which the player was moving. Position, Velocity mgl64.Vec3 // Yaw and Pitch represent the rotation of the player. Yaw, Pitch float64 // Health, MaxHealth ... Health, MaxHealth float64 // Hunger is the amount of hunger points the player currently has, shown on the hunger bar. // This should be between 0-20. Hunger int // FoodTick this variable is used when the hunger exceeds 17 or is equal to 0. It is used to heal // the player using saturation or make the player starve and receive damage if the hunger is at 0. // This value should be between 0-80. FoodTick int // ExhaustionLevel determines how fast the hunger level depletes and is controlled by the kinds // of food the player has eaten. SaturationLevel determines how fast the saturation level depletes. ExhaustionLevel, SaturationLevel float64 // EnchantmentSeed is the seed used to generate the enchantments from enchantment tables. EnchantmentSeed int64 // Experience is the current experience the player has. Experience int // AirSupply is the current tick of the player's air supply. AirSupply int64 // MaxAirSupply is the maximum air supply the player can have. MaxAirSupply int64 // GameMode is the last gamemode the user had, like creative or survival. GameMode world.GameMode // Inventory contains all the items in the inventory, including armor, main inventory and offhand. Inventory InventoryData // EnderChestInventory contains the items in the player's ender chest. EnderChestInventory []item.Stack // Effects contains all the currently active potions effects the player has. Effects []effect.Effect // FireTicks is the amount of ticks the player will be on fire for. FireTicks int64 // FallDistance is the distance the player has currently been falling. This is used to calculate fall damage. FallDistance float64 // Dimension is the ID of the dimension that the player was last in. The player is added to the correct world based // on this number. Dimension int }
Data is a struct that contains all the data of that player to be passed on to the Provider and saved.
type Handler ¶
type Handler interface { // HandleMove handles the movement of a player. ctx.Cancel() may be called to cancel the movement event. // The new position, yaw and pitch are passed. HandleMove(ctx *event.Context, newPos mgl64.Vec3, newYaw, newPitch float64) // HandleJump handles the player jumping. HandleJump() // HandleTeleport handles the teleportation of a player. ctx.Cancel() may be called to cancel it. HandleTeleport(ctx *event.Context, pos mgl64.Vec3) // HandleChangeWorld handles when the player is added to a new world. before may be nil. HandleChangeWorld(before, after *world.World) // HandleToggleSprint handles when the player starts or stops sprinting. // After is true if the player is sprinting after toggling (changing their sprinting state). HandleToggleSprint(ctx *event.Context, after bool) // HandleToggleSneak handles when the player starts or stops sneaking. // After is true if the player is sneaking after toggling (changing their sneaking state). HandleToggleSneak(ctx *event.Context, after bool) // HandleChat handles a message sent in the chat by a player. ctx.Cancel() may be called to cancel the // message being sent in chat. // The message may be changed by assigning to *message. HandleChat(ctx *event.Context, message *string) // HandleFoodLoss handles the food bar of a player depleting naturally, for example because the player was // sprinting and jumping. ctx.Cancel() may be called to cancel the food points being lost. HandleFoodLoss(ctx *event.Context, from, to int) // HandleHeal handles the player being healed by a healing source. ctx.Cancel() may be called to cancel // the healing. // The health added may be changed by assigning to *health. HandleHeal(ctx *event.Context, health *float64, src healing.Source) // HandleHurt handles the player being hurt by any damage source. ctx.Cancel() may be called to cancel the // damage being dealt to the player. // The damage dealt to the player may be changed by assigning to *damage. HandleHurt(ctx *event.Context, damage *float64, attackImmunity *time.Duration, src damage.Source) // HandleDeath handles the player dying to a particular damage cause. HandleDeath(src damage.Source) // HandleRespawn handles the respawning of the player in the world. The spawn position passed may be // changed by assigning to *pos. The world.World in which the Player is respawned may be modifying by assigning to // *w. This world may be the world the Player died in, but it might also point to a different world (the overworld) // if the Player died in the nether or end. HandleRespawn(pos *mgl64.Vec3, w **world.World) // HandleSkinChange handles the player changing their skin. ctx.Cancel() may be called to cancel the skin // change. HandleSkinChange(ctx *event.Context, skin *skin.Skin) // HandleStartBreak handles the player starting to break a block at the position passed. ctx.Cancel() may // be called to stop the player from breaking the block completely. HandleStartBreak(ctx *event.Context, pos cube.Pos) // HandleBlockBreak handles a block that is being broken by a player. ctx.Cancel() may be called to cancel // the block being broken. A pointer to a slice of the block's drops is passed, and may be altered // to change what items will actually be dropped. HandleBlockBreak(ctx *event.Context, pos cube.Pos, drops *[]item.Stack) // HandleBlockPlace handles the player placing a specific block at a position in its world. ctx.Cancel() // may be called to cancel the block being placed. HandleBlockPlace(ctx *event.Context, pos cube.Pos, b world.Block) // HandleBlockPick handles the player picking a specific block at a position in its world. ctx.Cancel() // may be called to cancel the block being picked. HandleBlockPick(ctx *event.Context, pos cube.Pos, b world.Block) // HandleItemUse handles the player using an item in the air. It is called for each item, although most // will not actually do anything. Items such as snowballs may be thrown if HandleItemUse does not cancel // the context using ctx.Cancel(). It is not called if the player is holding no item. HandleItemUse(ctx *event.Context) // HandleItemUseOnBlock handles the player using the item held in its main hand on a block at the block // position passed. The face of the block clicked is also passed, along with the relative click position. // The click position has X, Y and Z values which are all in the range 0.0-1.0. It is also called if the // player is holding no item. HandleItemUseOnBlock(ctx *event.Context, pos cube.Pos, face cube.Face, clickPos mgl64.Vec3) // HandleItemUseOnEntity handles the player using the item held in its main hand on an entity passed to // the method. // HandleItemUseOnEntity is always called when a player uses an item on an entity, regardless of whether // the item actually does anything when used on an entity. It is also called if the player is holding no // item. HandleItemUseOnEntity(ctx *event.Context, e world.Entity) // HandleItemConsume handles the player consuming an item. This is called whenever a consumable such as // food is consumed. HandleItemConsume(ctx *event.Context, item item.Stack) // HandleAttackEntity handles the player attacking an entity using the item held in its hand. ctx.Cancel() // may be called to cancel the attack, which will cancel damage dealt to the target and will stop the // entity from being knocked back. // The entity attacked may not be alive (implements entity.Living), in which case no damage will be dealt // and the target won't be knocked back. // The entity attacked may also be immune when this method is called, in which case no damage and knock- // back will be dealt. // The knock back force and height is also provided which can be modified. // The attack can be a critical attack, which would increase damage by a factor of 1.5 and // spawn critical hit particles around the target entity. These particles will not be displayed // if no damage is dealt. HandleAttackEntity(ctx *event.Context, e world.Entity, force, height *float64, critical *bool) // HandleExperienceGain handles the player gaining experience. ctx.Cancel() may be called to cancel // the gain. // The amount is also provided which can be modified. HandleExperienceGain(ctx *event.Context, amount *int) // HandlePunchAir handles the player punching air. HandlePunchAir(ctx *event.Context) // HandleSignEdit handles the player editing a sign. It is called for every keystroke while editing a sign and // has both the old text passed and the text after the edit. This typically only has a change of one character. HandleSignEdit(ctx *event.Context, oldText, newText string) // HandleItemDamage handles the event wherein the item either held by the player or as armour takes // damage through usage. // The type of the item may be checked to determine whether it was armour or a tool used. The damage to // the item is passed. HandleItemDamage(ctx *event.Context, i item.Stack, damage int) // HandleItemPickup handles the player picking up an item from the ground. The item stack laying on the // ground is passed. ctx.Cancel() may be called to prevent the player from picking up the item. HandleItemPickup(ctx *event.Context, i item.Stack) // HandleItemDrop handles the player dropping an item on the ground. The dropped item entity is passed. // ctx.Cancel() may be called to prevent the player from dropping the entity.Item passed on the ground. // e.Item() may be called to obtain the item stack dropped. HandleItemDrop(ctx *event.Context, e *entity.Item) // HandleTransfer handles a player being transferred to another server. ctx.Cancel() may be called to // cancel the transfer. HandleTransfer(ctx *event.Context, addr *net.UDPAddr) // HandleCommandExecution handles the command execution of a player, who wrote a command in the chat. // ctx.Cancel() may be called to cancel the command execution. HandleCommandExecution(ctx *event.Context, command cmd.Command, args []string) // HandleQuit handles the closing of a player. It is always called when the player is disconnected, // regardless of the reason. HandleQuit() }
Handler handles events that are called by a player. Implementations of Handler may be used to listen to specific events such as when a player chats or moves.
type InventoryData ¶ added in v0.1.0
type InventoryData struct { // Items contains all the items in the player's main inventory. // This excludes armor and offhand. Items []item.Stack // Boots, Leggings, Chestplate, Helmet are armor pieces that belong to the slot corresponding to the name. Boots item.Stack Leggings item.Stack Chestplate item.Stack Helmet item.Stack // OffHand is what the player is carrying in their non-main hand, like a shield or arrows. OffHand item.Stack // MainHandSlot saves the slot in the hotbar that the player is currently switched to. // Should be between 0-8. MainHandSlot uint32 }
InventoryData is a struct that contains all data of the player inventories.
type NopHandler ¶
type NopHandler struct{}
NopHandler implements the Handler interface but does not execute any code when an event is called. The default Handler of players is set to NopHandler. Users may embed NopHandler to avoid having to implement each method.
func (NopHandler) HandleAttackEntity ¶
func (NopHandler) HandleBlockBreak ¶
func (NopHandler) HandleBlockPick ¶
func (NopHandler) HandleBlockPlace ¶
func (NopHandler) HandleChangeWorld ¶ added in v0.6.0
func (NopHandler) HandleChangeWorld(*world.World, *world.World)
func (NopHandler) HandleChat ¶
func (NopHandler) HandleChat(*event.Context, *string)
func (NopHandler) HandleCommandExecution ¶
func (NopHandler) HandleDeath ¶
func (NopHandler) HandleDeath(damage.Source)
func (NopHandler) HandleExperienceGain ¶ added in v0.7.0
func (NopHandler) HandleExperienceGain(*event.Context, *int)
func (NopHandler) HandleFoodLoss ¶
func (NopHandler) HandleFoodLoss(*event.Context, int, int)
func (NopHandler) HandleHeal ¶
func (NopHandler) HandleHurt ¶
func (NopHandler) HandleItemConsume ¶ added in v0.6.0
func (NopHandler) HandleItemConsume(*event.Context, item.Stack)
func (NopHandler) HandleItemDamage ¶
func (NopHandler) HandleItemDrop ¶
func (NopHandler) HandleItemDrop(*event.Context, *entity.Item)
func (NopHandler) HandleItemPickup ¶
func (NopHandler) HandleItemPickup(*event.Context, item.Stack)
func (NopHandler) HandleItemUse ¶
func (NopHandler) HandleItemUse(*event.Context)
func (NopHandler) HandleItemUseOnBlock ¶
func (NopHandler) HandleItemUseOnEntity ¶
func (NopHandler) HandleItemUseOnEntity(*event.Context, world.Entity)
func (NopHandler) HandleJump ¶ added in v0.6.0
func (NopHandler) HandleJump()
func (NopHandler) HandleMove ¶
func (NopHandler) HandlePunchAir ¶ added in v0.3.0
func (NopHandler) HandlePunchAir(*event.Context)
func (NopHandler) HandleQuit ¶
func (NopHandler) HandleQuit()
func (NopHandler) HandleRespawn ¶
func (NopHandler) HandleRespawn(*mgl64.Vec3, **world.World)
func (NopHandler) HandleSignEdit ¶ added in v0.2.0
func (NopHandler) HandleSignEdit(*event.Context, string, string)
func (NopHandler) HandleSkinChange ¶ added in v0.1.0
func (NopHandler) HandleSkinChange(*event.Context, *skin.Skin)
func (NopHandler) HandleStartBreak ¶
func (NopHandler) HandleStartBreak(*event.Context, cube.Pos)
func (NopHandler) HandleTeleport ¶
func (NopHandler) HandleTeleport(*event.Context, mgl64.Vec3)
func (NopHandler) HandleToggleSneak ¶ added in v0.4.0
func (NopHandler) HandleToggleSneak(*event.Context, bool)
func (NopHandler) HandleToggleSprint ¶ added in v0.4.0
func (NopHandler) HandleToggleSprint(*event.Context, bool)
func (NopHandler) HandleTransfer ¶
func (NopHandler) HandleTransfer(*event.Context, *net.UDPAddr)
type NopProvider ¶ added in v0.1.0
type NopProvider struct{}
NopProvider is a player data provider that won't store any data and instead always return default values
func (NopProvider) Close ¶ added in v0.1.0
func (NopProvider) Close() error
type Player ¶
type Player struct {
// contains filtered or unexported fields
}
Player is an implementation of a player entity. It has methods that implement the behaviour that players need to play in the world.
func New ¶
New returns a new initialised player. A random UUID is generated for the player, so that it may be identified over network. You can either pass on player data you want to load or you can leave the data as nil to use default data.
func NewWithSession ¶
func NewWithSession(name, xuid string, uuid uuid.UUID, skin skin.Skin, s *session.Session, pos mgl64.Vec3, data *Data) *Player
NewWithSession returns a new player for a network session, so that the network session can control the player. A set of additional fields must be provided to initialise the player with the client's data, such as the name and the skin of the player. You can either pass on player data you want to load or you can leave the data as nil to use default data.
func (*Player) AbortBreaking ¶
func (p *Player) AbortBreaking()
AbortBreaking makes the player stop breaking the block it is currently breaking, or returns immediately if the player isn't breaking anything. Unlike FinishBreaking, AbortBreaking does not stop the animation.
func (*Player) Absorption ¶ added in v0.7.3
Absorption returns the absorption health that the player has.
func (*Player) AddEffect ¶
AddEffect adds an entity.Effect to the Player. If the effect is instant, it is applied to the Player immediately. If not, the effect is applied to the player every time the Tick method is called. AddEffect will overwrite any effects present if the level of the effect is higher than the existing one, or if the effects' levels are equal and the new effect has a longer duration.
func (*Player) AddExperience ¶ added in v0.7.0
AddExperience adds experience to the player.
func (*Player) AddFood ¶
AddFood adds a number of points to the food level of the player. If the new food level is negative or if it exceeds 20, it will be set to 0 or 20 respectively.
func (*Player) Addr ¶
Addr returns the net.Addr of the Player. If the Player is not connected to a network session, nil is returned.
func (*Player) Armour ¶
Armour returns the armour inventory of the player. This inventory yields 4 slots, for the helmet, chestplate, leggings and boots respectively.
func (*Player) AttackEntity ¶
AttackEntity uses the item held in the main hand of the player to attack the entity passed, provided it is within range of the player. The damage dealt to the entity will depend on the item held by the player and any effects the player may have. If the player cannot reach the entity at its position, the method returns immediately.
func (*Player) AttackImmune ¶
AttackImmune checks if the player is currently immune to entity attacks, meaning it was recently attacked.
func (*Player) AttackImmunity ¶ added in v0.6.0
AttackImmunity returns the duration the player is immune to entity attacks.
func (*Player) BreakBlock ¶
BreakBlock makes the player break a block in the world at a position passed. If the player is unable to reach the block passed, the method returns immediately.
func (*Player) Breathing ¶ added in v0.2.0
Breathing checks if the player is currently able to breathe. If it's underwater and the player does not have the water breathing or conduit power effect, this returns false. If the player is in creative or spectator mode, Breathing always returns true.
func (*Player) Chat ¶
Chat writes a message in the global chat (chat.Global). The message is prefixed with the name of the player and is formatted following the rules of fmt.Sprintln.
func (*Player) Close ¶
Close closes the player and removes it from the world. Close disconnects the player with a 'Connection closed.' message. Disconnect should be used to disconnect a player with a custom message.
func (*Player) Collect ¶
Collect makes the player collect the item stack passed, adding it to the inventory. The amount of items that could be added is returned.
func (*Player) CollectExperience ¶ added in v0.7.0
CollectExperience makes the player collect the experience points passed, adding it to the experience manager. A bool is returned indicating whether the player was able to collect the experience or not, due to the 100ms delay between experience collection or if the player was dead or in a game mode that doesn't allow collection.
func (*Player) ContinueBreaking ¶
ContinueBreaking makes the player continue breaking the block it started breaking after a call to Player.StartBreaking(). The face passed is used to display particles on the side of the block broken.
func (*Player) Data ¶ added in v0.1.0
Data returns the player data that needs to be saved. This is used when the player gets disconnected and the player provider needs to save the data.
func (*Player) Dead ¶
Dead checks if the player is considered dead. True is returned if the health of the player is equal to or lower than 0.
func (*Player) DeathPosition ¶ added in v0.8.2
DeathPosition returns the last position the player was at when they died. If the player has never died, the third return value will be false.
func (*Player) DisableInstantRespawn ¶ added in v0.3.0
func (p *Player) DisableInstantRespawn()
DisableInstantRespawn disables the vanilla instant respawn for the player.
func (*Player) Disconnect ¶
Disconnect closes the player and removes it from the world. Disconnect, unlike Close, allows a custom message to be passed to show to the player when it is disconnected. The message is formatted following the rules of fmt.Sprintln without a newline at the end.
func (*Player) Drop ¶
Drop makes the player drop the item.Stack passed as an entity.Item, so that it may be picked up from the ground. The dropped item entity has a pickup delay of 2 seconds. The number of items that was dropped in the end is returned. It is generally the count of the stack passed or 0 if dropping the item.Stack was cancelled.
func (*Player) EditSign ¶ added in v0.2.0
EditSign edits the sign at the cube.Pos passed and writes the text passed to a sign at that position. If no sign is present or if the Player cannot edit it, an error is returned
func (*Player) Effect ¶ added in v0.5.0
Effect returns the effect instance and true if the Player has the effect. If not found, it will return an empty effect instance and false.
func (*Player) Effects ¶
Effects returns any effect currently applied to the entity. The returned effects are guaranteed not to have expired when returned.
func (*Player) EnableInstantRespawn ¶ added in v0.3.0
func (p *Player) EnableInstantRespawn()
EnableInstantRespawn enables the vanilla instant respawn for the player.
func (*Player) EnchantmentSeed ¶ added in v0.8.0
EnchantmentSeed is a seed used to calculate random enchantments with enchantment tables.
func (*Player) EnderChestInventory ¶ added in v0.8.0
EnderChestInventory returns the player's ender chest inventory. Its accessed by the player when opening ender chests anywhere.
func (*Player) ExecuteCommand ¶
ExecuteCommand executes a command passed as the player. If the command could not be found, or if the usage was incorrect, an error message is sent to the player. This message should start with a "/" for the command to be recognised.
func (*Player) Exhaust ¶
Exhaust exhausts the player by the amount of points passed if the player is in survival mode. If the total exhaustion level exceeds 4, a saturation point, or food point, if saturation is 0, will be subtracted.
func (*Player) Experience ¶ added in v0.7.0
Experience returns the amount of experience the player has.
func (*Player) ExperienceLevel ¶ added in v0.7.0
ExperienceLevel returns the experience level of the player.
func (*Player) ExperienceProgress ¶ added in v0.7.0
ExperienceProgress returns the experience progress of the player.
func (*Player) EyeHeight ¶
EyeHeight returns the eye height of the player: 1.62, or 0.52 if the player is swimming.
func (*Player) FallDistance ¶ added in v0.4.0
FallDistance returns the player's fall distance.
func (*Player) FinalDamageFrom ¶
FinalDamageFrom resolves the final damage received by the player if it is attacked by the source passed with the damage passed. FinalDamageFrom takes into account things such as the armour worn and the enchantments on the individual pieces. The damage returned will be at the least 0.
func (*Player) FinishBreaking ¶
func (p *Player) FinishBreaking()
FinishBreaking makes the player finish breaking the block it is currently breaking, or returns immediately if the player isn't breaking anything. FinishBreaking will stop the animation and break the block.
func (*Player) FireProof ¶ added in v0.3.0
FireProof checks if the Player is currently fireproof. True is returned if the player has a FireResistance effect or if it is in creative mode.
func (*Player) Food ¶
Food returns the current food level of a player. The level returned is guaranteed to always be between 0 and 20. Every half drumstick is one level.
func (*Player) GameMode ¶
GameMode returns the current game mode assigned to the player. If not changed, the game mode returned will be the same as that of the world that the player spawns in. The game mode may be changed using Player.SetGameMode().
func (*Player) Handle ¶
Handle changes the current Handler of the player. As a result, events called by the player will call handlers of the Handler passed. Handle sets the player's Handler to NopHandler if nil is passed.
func (*Player) HasCooldown ¶ added in v0.5.0
HasCooldown returns true if the item passed has an active cooldown, meaning it currently cannot be used again. If the world.Item passed is nil, HasCooldown always returns false.
func (*Player) Heal ¶
Heal heals the entity for a given amount of health. The source passed represents the cause of the healing, for example healing.SourceFood if the entity healed by having a full food bar. If the health added to the original health exceeds the entity's max health, Heal will not add the full amount. If the health passed is negative, Heal will not do anything.
func (*Player) Health ¶
Health returns the current health of the player. It will always be lower than Player.MaxHealth().
func (*Player) HeldItems ¶
HeldItems returns the items currently held in the hands of the player. The first item stack returned is the one held in the main hand, the second is held in the off-hand. If no item was held in a hand, the stack returned has a count of 0. Stack.Empty() may be used to check if the hand held anything.
func (*Player) HideCoordinates ¶
func (p *Player) HideCoordinates()
HideCoordinates disables the vanilla coordinates for the player.
func (*Player) HideEntity ¶ added in v0.4.0
HideEntity hides a world.Entity from the Player so that it can under no circumstance see it. Hidden entities can be made visible again through a call to ShowEntity.
func (*Player) Hurt ¶
Hurt hurts the player for a given amount of damage. The source passed represents the cause of the damage, for example damage.SourceEntityAttack if the player is attacked by another entity. If the final damage exceeds the health that the player currently has, the player is killed and will have to respawn. If the damage passed is negative, Hurt will not do anything. Hurt returns the final damage dealt to the Player and if the Player was vulnerable to this kind of damage.
func (*Player) Inventory ¶
Inventory returns the inventory of the player. This inventory holds the items stored in the normal part of the inventory and the hotbar. It also includes the item in the main hand as returned by Player.HeldItems().
func (*Player) Jump ¶ added in v0.6.0
func (p *Player) Jump()
Jump makes the player jump if they are on ground. It exhausts the player by 0.05 food points, an additional 0.15 is exhausted if the player is sprint jumping.
func (*Player) KnockBack ¶
KnockBack knocks the player back with a given force and height. A source is passed which indicates the source of the velocity, typically the position of an attacking entity. The source is used to calculate the direction which the entity should be knocked back in.
func (*Player) Latency ¶
Latency returns a rolling average of latency between the sending and the receiving end of the connection of the player. The latency returned is updated continuously and is half the round trip time (RTT). If the Player does not have a session associated with it, Latency returns 0.
func (*Player) Locale ¶
Locale returns the language and locale of the Player, as selected in the Player's settings.
func (*Player) MaxAirSupply ¶ added in v0.7.3
MaxAirSupply returns the player's maximum air supply.
func (*Player) MaxHealth ¶
MaxHealth returns the maximum amount of health that a player may have. The MaxHealth will always be higher than Player.Health().
func (*Player) Message ¶
Message sends a formatted message to the player. The message is formatted following the rules of fmt.Sprintln, however the newline at the end is not written.
func (*Player) Messagef ¶
Messagef sends a formatted message using a specific format to the player. The message is formatted according to the fmt.Sprintf formatting rules.
func (*Player) Move ¶
Move moves the player from one position to another in the world, by adding the delta passed to the current position of the player. Move also rotates the player, adding deltaYaw and deltaPitch to the respective values.
func (*Player) Name ¶
Name returns the username of the player. If the player is controlled by a client, it is the username of the client. (Typically the XBOX Live name)
func (*Player) NameTag ¶ added in v0.2.0
NameTag returns the current name tag of the Player as shown in-game. It can be changed using SetNameTag.
func (*Player) OpenBlockContainer ¶
OpenBlockContainer opens a block container, such as a chest, at the position passed. If no container was present at that location, OpenBlockContainer does nothing. OpenBlockContainer will also do nothing if the player has no session connected to it.
func (*Player) PickBlock ¶
PickBlock makes the player pick a block in the world at a position passed. If the player is unable to pick the block, the method returns immediately.
func (*Player) PlaceBlock ¶
PlaceBlock makes the player place the block passed at the position passed, granted it is within the range of the player. An item.UseContext may be passed to obtain information on if the block placement was successful. (SubCount will be incremented). Nil may also be passed for the context parameter.
func (*Player) PlaySound ¶
PlaySound plays a world.Sound that only this Player can hear. Unlike World.PlaySound, it is not broadcast to players around it.
func (*Player) Position ¶
Position returns the current position of the player. It may be changed as the player moves or is moved around the world.
func (*Player) PunchAir ¶ added in v0.3.0
func (p *Player) PunchAir()
PunchAir makes the player punch the air and plays the sound for attacking with no damage.
func (*Player) ReleaseItem ¶
func (p *Player) ReleaseItem()
ReleaseItem makes the Player release the item it is currently using. This is only applicable for items that implement the item.Releasable interface. If the Player is not currently using any item, ReleaseItem returns immediately. ReleaseItem either aborts the using of the item or finished it, depending on the time that elapsed since the item started being used.
func (*Player) RemoveBossBar ¶
func (p *Player) RemoveBossBar()
RemoveBossBar removes any boss bar currently active on the player's screen. If no boss bar is currently present, nothing happens.
func (*Player) RemoveEffect ¶
RemoveEffect removes any effect that might currently be active on the Player.
func (*Player) RemoveExperience ¶ added in v0.7.0
RemoveExperience removes experience from the player.
func (*Player) RemoveScoreboard ¶
func (p *Player) RemoveScoreboard()
RemoveScoreboard removes any scoreboard currently present on the screen of the player. Nothing happens if the player has no scoreboard currently active.
func (*Player) ResetEnchantmentSeed ¶ added in v0.8.0
func (p *Player) ResetEnchantmentSeed()
ResetEnchantmentSeed resets the enchantment seed to a new random value.
func (*Player) ResetFallDistance ¶
func (p *Player) ResetFallDistance()
ResetFallDistance resets the player's fall distance.
func (*Player) Respawn ¶
func (p *Player) Respawn()
Respawn spawns the player after it dies, so that its health is replenished and it is spawned in the world again. Nothing will happen if the player does not have a session connected to it.
func (*Player) Rotation ¶ added in v0.1.0
Rotation returns the yaw and pitch of the player in degrees. Yaw is horizontal rotation (rotation around the vertical axis, 0 when facing forward), pitch is vertical rotation (rotation around the horizontal axis, also 0 when facing forward).
func (*Player) Saturate ¶
Saturate saturates the player's food bar with the amount of food points and saturation points passed. The total saturation of the player will never exceed its total food level.
func (*Player) Scale ¶
Scale returns the scale modifier of the Player. The default value for a normal scale is 1. A scale of 0 will make the Player completely invisible.
func (*Player) ScoreTag ¶ added in v0.6.0
ScoreTag returns the current score tag of the player. It can be changed using SetScoreTag and by default is empty.
func (*Player) SendBossBar ¶
SendBossBar sends a boss bar to the player, so that it will be shown indefinitely at the top of the player's screen. The boss bar may be removed by calling Player.RemoveBossBar().
func (*Player) SendCommandOutput ¶
SendCommandOutput sends the output of a command to the player.
func (*Player) SendForm ¶
SendForm sends a form to the player for the client to fill out. Once the client fills it out, the Submit method of the form will be called. Note that the client may also close the form instead of filling it out, which will result in the form not having its Submit method called at all. Forms should never depend on the player actually filling out the form.
func (*Player) SendJukeboxPopup ¶ added in v0.6.0
SendJukeboxPopup sends a formatted jukebox popup to the player. This popup is shown above the hotbar of the player. The popup is close to the position of an action bar message and the text has no background.
func (*Player) SendPopup ¶
SendPopup sends a formatted popup to the player. The popup is shown above the hotbar of the player and overwrites/is overwritten by the name of the item equipped. The popup is formatted following the rules of fmt.Sprintln without a newline at the end.
func (*Player) SendScoreboard ¶
func (p *Player) SendScoreboard(scoreboard *scoreboard.Scoreboard)
SendScoreboard sends a scoreboard to the player. The scoreboard will be present indefinitely until removed by the caller. SendScoreboard may be called at any time to change the scoreboard of the player.
func (*Player) SendTip ¶
SendTip sends a tip to the player. The tip is shown in the middle of the screen of the player. The tip is formatted following the rules of fmt.Sprintln without a newline at the end.
func (*Player) SendTitle ¶
SendTitle sends a title to the player. The title may be configured to change the duration it is displayed and the text it shows. If non-empty, the subtitle is shown in a smaller font below the title. The same counts for the action text of the title, which is shown in a font similar to that of a tip/popup.
func (*Player) SendToast ¶ added in v0.7.0
SendToast sends a toast to the player. This toast is shown at the top of the screen, similar to achievements or pack loading.
func (*Player) SetAbsorption ¶
SetAbsorption sets the absorption health of a player. This extra health shows as golden hearts and do not actually increase the maximum health. Once the hearts are lost, they will not regenerate. Nothing happens if a negative number is passed.
func (*Player) SetAirSupply ¶ added in v0.7.3
SetAirSupply sets the player's remaining air supply.
func (*Player) SetAttackImmunity ¶ added in v0.6.0
SetAttackImmunity sets the duration the player is immune to entity attacks.
func (*Player) SetCooldown ¶ added in v0.5.0
SetCooldown sets a cooldown for an item. If the world.Item passed is nil, nothing happens.
func (*Player) SetExperienceLevel ¶ added in v0.7.0
SetExperienceLevel sets the experience level of the player. The level must have a value between 0 and 2,147,483,647, otherwise the method panics.
func (*Player) SetExperienceProgress ¶ added in v0.7.0
SetExperienceProgress sets the experience progress of the player. The progress must have a value between 0.0 and 1.0, otherwise the method panics.
func (*Player) SetFood ¶
SetFood sets the food level of a player. The level passed must be in a range of 0-20. If the level passed is negative, the food level will be set to 0. If the level exceeds 20, the food level will be set to 20.
func (*Player) SetGameMode ¶
SetGameMode sets the game mode of a player. The game mode specifies the way that the player can interact with the world that it is in.
func (*Player) SetHeldItems ¶
SetHeldItems sets items to the main hand and the off-hand of the player. The Stacks passed may be empty (Stack.Empty()) to clear the held item.
func (*Player) SetImmobile ¶
func (p *Player) SetImmobile()
SetImmobile prevents the player from moving around, but still allows them to look around.
func (*Player) SetInvisible ¶
func (p *Player) SetInvisible()
SetInvisible sets the player invisible, so that other players will not be able to see it.
func (*Player) SetMaxAirSupply ¶ added in v0.7.3
SetMaxAirSupply sets the player's maximum air supply.
func (*Player) SetMaxHealth ¶
SetMaxHealth sets the maximum health of the player. If the current health of the player is higher than the new maximum health, the health is set to the new maximum. SetMaxHealth panics if the max health passed is 0 or lower.
func (*Player) SetMobile ¶
func (p *Player) SetMobile()
SetMobile allows the player to freely move around again after being immobile.
func (*Player) SetNameTag ¶
SetNameTag changes the name tag displayed over the player in-game. Changing the name tag does not change the player's name in, for example, the player list or the chat.
func (*Player) SetScale ¶
SetScale changes the scale modifier of the Player. The default value for a normal scale is 1. A scale of 0 will make the Player completely invisible.
func (*Player) SetScoreTag ¶ added in v0.6.0
SetScoreTag changes the score tag displayed over the player in-game. The score tag is displayed under the player's name tag.
func (*Player) SetSkin ¶ added in v0.1.0
SetSkin changes the skin of the player. This skin will be visible to other players that the player is shown to.
func (*Player) SetSpeed ¶
SetSpeed sets the speed of the player. The value passed is the blocks/tick speed that the player will then obtain.
func (*Player) SetVelocity ¶
SetVelocity updates the player's velocity. If there is an attached session, this will just send the velocity to the player session for the player to update.
func (*Player) SetVisible ¶
func (p *Player) SetVisible()
SetVisible sets the player visible again, so that other players can see it again. If the player was already visible, or if the player is in spectator mode, nothing happens.
func (*Player) ShowCoordinates ¶
func (p *Player) ShowCoordinates()
ShowCoordinates enables the vanilla coordinates for the player.
func (*Player) ShowEntity ¶ added in v0.4.0
ShowEntity shows a world.Entity previously hidden from the Player using HideEntity. It does nothing if the entity wasn't currently hidden.
func (*Player) ShowParticle ¶ added in v0.7.0
ShowParticle shows a particle that only this Player can see. Unlike World.AddParticle, it is not broadcast to players around it.
func (*Player) Skin ¶
Skin returns the skin that a player is currently using. This skin will be visible to other players that the player is shown to. If the player was not connected to a network session, a default skin will be set.
func (*Player) Speed ¶
Speed returns the speed of the player, returning a value that indicates the blocks/tick speed. The default speed of a player is 0.1.
func (*Player) StartBreaking ¶
StartBreaking makes the player start breaking the block at the position passed using the item currently held in its main hand. If no block is present at the position, or if the block is out of range, StartBreaking will return immediately and the block will not be broken. StartBreaking will stop the breaking of any block that the player might be breaking before this method is called.
func (*Player) StartFlying ¶ added in v0.4.0
func (p *Player) StartFlying()
StartFlying makes the player start flying if they aren't already. It requires the player to be in a gamemode which allows flying.
func (*Player) StartGliding ¶ added in v0.8.0
func (p *Player) StartGliding()
StartGliding makes the player start gliding if it is not currently doing so.
func (*Player) StartSneaking ¶
func (p *Player) StartSneaking()
StartSneaking makes a player start sneaking. If the player is already sneaking, StartSneaking will not do anything. If the player is sprinting while StartSneaking is called, the sprinting is stopped.
func (*Player) StartSprinting ¶
func (p *Player) StartSprinting()
StartSprinting makes a player start sprinting, increasing the speed of the player by 30% and making particles show up under the feet. The player will only start sprinting if its food level is high enough. If the player is sneaking when calling StartSprinting, it is stopped from sneaking.
func (*Player) StartSwimming ¶
func (p *Player) StartSwimming()
StartSwimming makes the player start swimming if it is not currently doing so. If the player is sneaking while StartSwimming is called, the sneaking is stopped.
func (*Player) StopFlying ¶ added in v0.4.0
func (p *Player) StopFlying()
StopFlying makes the player stop flying if it currently is.
func (*Player) StopGliding ¶ added in v0.8.0
func (p *Player) StopGliding()
StopGliding makes the player stop gliding if it is currently doing so.
func (*Player) StopSneaking ¶
func (p *Player) StopSneaking()
StopSneaking makes a player stop sneaking if it currently is. If the player is not sneaking, StopSneaking will not do anything.
func (*Player) StopSprinting ¶
func (p *Player) StopSprinting()
StopSprinting makes a player stop sprinting, setting back the speed of the player to its original value.
func (*Player) StopSwimming ¶
func (p *Player) StopSwimming()
StopSwimming makes the player stop swimming if it is currently doing so.
func (*Player) Teleport ¶
Teleport teleports the player to a target position in the world. Unlike Move, it immediately changes the position of the player, rather than showing an animation.
func (*Player) Tick ¶
Tick ticks the entity, performing actions such as checking if the player is still breaking a block.
func (*Player) Transfer ¶
Transfer transfers the player to a server at the address passed. If the address could not be resolved, an error is returned. If it is returned, the player is closed and transferred to the server.
func (*Player) UUID ¶
UUID returns the UUID of the player. This UUID will remain consistent with an XBOX Live account, and will, unlike the name of the player, never change. It is therefore recommended using the UUID over the name of the player. Additionally, it is recommended to use the UUID over the XUID because of its standard format.
func (*Player) UseItem ¶
func (p *Player) UseItem()
UseItem uses the item currently held in the player's main hand in the air. Generally, nothing happens, unless the held item implements the item.Usable interface, in which case it will be activated. This generally happens for items such as throwable items like snowballs.
func (*Player) UseItemOnBlock ¶
UseItemOnBlock uses the item held in the main hand of the player on a block at the position passed. The player is assumed to have clicked the face passed with the relative click position clickPos. If the item could not be used successfully, for example when the position is out of range, the method returns immediately. UseItemOnBlock does nothing if the block at the cube.Pos passed is of the type block.Air.
func (*Player) UseItemOnEntity ¶
UseItemOnEntity uses the item held in the main hand of the player on the entity passed, provided it is within range of the player. If the item held in the main hand of the player does nothing when used on an entity, nothing will happen.
func (*Player) UsingItem ¶ added in v0.2.0
UsingItem checks if the Player is currently using an item. True is returned if the Player is currently eating an item or using it over a longer duration such as when using a bow.
func (*Player) Velocity ¶
Velocity returns the players current velocity. If there is an attached session, this will be empty.
func (*Player) XUID ¶
XUID returns the XBOX Live user ID of the player. It will remain consistent with the XBOX Live account, and will not change in the lifetime of an account. The XUID is a number that can be parsed as an int64. No more information on what it represents is available, and the UUID should be preferred. The XUID returned is empty if the Player is not connected to a network session or if the Player is not authenticated with XBOX Live.
type Provider ¶ added in v0.1.0
type Provider interface { // Save is called when the player leaves the server. The Data of the player is passed. Save(UUID uuid.UUID, data Data) error // Load is called when the player joins and passes the UUID of the player. // It expects to the player data, and an error that is nil if the player data could be found. If non-nil, the player // will use default values, and you can use an empty Data struct. Load(UUID uuid.UUID) (Data, error) // Closer is used on server close when the server calls Provider.Close() and is used to safely close the Provider. io.Closer }
Provider represents a value that may provide data to a Player value. It usually does the reading and writing of the player data so that the Player may use it.