Documentation
¶
Index ¶
- Constants
- Variables
- func AuraEffectModResistance(sed *SpellEffectData, target Unit, au *Aura)
- func EffectApplyAura(dat *SpellEffectData)
- func IsUnit(wo WorldObject) bool
- func OptionAsync(wp *p.WorldPacket, opts *Options) error
- func RegisterPlugin(name string, plugin Plugin)
- func Start(opts *config.World) error
- type Aura
- type AuraApplication
- type AuraEffect
- type AuraEffectData
- type AuraState
- type ChatHistory
- type Command
- type CommandPrivileges
- type Creature
- func (c *Creature) DisplayID() uint32
- func (c *Creature) Entry() uint32
- func (c *Creature) GUID() guid.GUID
- func (c *Creature) GetPowerType() uint8
- func (c *Creature) Health() uint32
- func (c *Creature) MaxHealth() uint32
- func (c *Creature) MaxPower() uint32
- func (c *Creature) Movement() *update.MovementBlock
- func (c *Creature) Power() uint32
- func (c *Creature) TypeID() guid.TypeID
- func (c *Creature) Values() *update.ValuesBlock
- type EventType
- type FactionTeam
- type FilterFunc
- type GameMode
- type GameObject
- func (gobj *GameObject) Entry() uint32
- func (g *GameObject) GUID() guid.GUID
- func (gobj *GameObject) GameObjectType() uint32
- func (g *GameObject) Living() bool
- func (gobj *GameObject) Movement() *update.MovementBlock
- func (g *GameObject) SetOrientation(orientation float32)
- func (g *GameObject) SetPosition(build vsn.Build, pos tempest.C4Vector)
- func (g *GameObject) SetRotation(rot tempest.C4Quaternion)
- func (g *GameObject) Speeds() update.Speeds
- func (g *GameObject) String() string
- func (g *GameObject) TypeID() guid.TypeID
- func (g *GameObject) Values() *update.ValuesBlock
- type Group
- type Instance
- type InstanceType
- type InventoryManager
- type Item
- func (i *Item) BagEmpty() bool
- func (i *Item) ContainerNumSlots() uint32
- func (i *Item) Entry() uint32
- func (i *Item) GUID() guid.GUID
- func (i *Item) ID() uint64
- func (i *Item) IsBag() bool
- func (i *Item) PropertySeed() uint32
- func (i *Item) RandomPropertiesID() uint32
- func (i *Item) StackCount() uint32
- func (i *Item) TypeID() guid.TypeID
- func (i *Item) Values() *update.ValuesBlock
- type LoadedPlugin
- type Map
- func (m *Map) AddObject(newObject ...WorldObject) error
- func (m *Map) AddObjects(objects WorldObjectSet) error
- func (m *Map) AllObjects() WorldObjectSet
- func (m *Map) ApplyAura(target Unit, aa *AuraApplication) error
- func (m *Map) CanFight(u1, u2 TeamPlayer) bool
- func (m *Map) CanSee(eye WorldObject, object WorldObject, vis float32) bool
- func (m *Map) Config() *config.World
- func (m *Map) DebugMapInfo(s *Session)
- func (m *Map) Definition() *dbdefs.Ent_Map
- func (m *Map) GetObject(id guid.GUID) WorldObject
- func (m *Map) GetObjectsInRange(vrange tempest.CAaSphere) WorldObjectSet
- func (m *Map) GetObjectsNearPosition(pos tempest.C3Vector) WorldObjectSet
- func (m *Map) GoCast(cc *spell.Cast, caster Unit) error
- func (m *Map) HealAll(target Unit) error
- func (m *Map) Hostile(u1, u2 TeamPlayer) bool
- func (m *Map) LookupSpellInfo(id uint32, spelldata **dbdefs.Ent_Spell, spellvisual **dbdefs.Ent_SpellVisual, ...)
- func (m *Map) ObjectIsPlayer(player WorldObject) bool
- func (m *Map) PlayMusic(id uint32)
- func (m *Map) PlayObjectSound(id guid.GUID, soundID uint32)
- func (m *Map) PlaySound(id uint32)
- func (m *Map) PlaySpellVisual(unit Unit, visualKit uint32)
- func (m *Map) PlaySpellVisualKind(unit Unit, spellID uint32, class models.VisualClass)
- func (m *Map) PropagateChanges(id guid.GUID)
- func (m *Map) PropagateObjectChanges(o WorldObject)
- func (m *Map) RefreshStats(unit Unit) error
- func (m *Map) RemoveObject(object ...guid.GUID) error
- func (m *Map) RemoveObjects(objects []guid.GUID) error
- func (m *Map) Resurrect(theDead Unit, health uint32) error
- func (m *Map) Revive(target Unit) error
- func (m *Map) SpawnGameObject(gobjID string, pos tempest.C4Vector) error
- func (m *Map) StartCast(cc *spell.Cast, caster Unit) (castTime time.Duration, err error)
- func (m *Map) SyncAuraState(unit Unit) error
- func (m *Map) Unaura(target Unit, id uint32, count int32, visuals bool) error
- func (m *Map) UnitIsAlive(target Unit) bool
- func (m *Map) UnitIsDead(target Unit) bool
- func (m *Map) UpdateMapPosition(object guid.GUID) error
- func (m *Map) UpdateSpeed(g guid.GUID, st update.SpeedType)
- func (m *Map) Vars() config.WorldVars
- func (m *Map) ViewersOf(object WorldObject) WorldObjectSet
- func (m *Map) VisibilityDistance() float32
- func (m *Map) VisibleObjects(viewer WorldObject) WorldObjectSet
- func (m *Map) VisibleObjectsInRange(viewer WorldObject, radius float32) WorldObjectSet
- type MapBlock
- type ModEffect
- type MoveTick
- type MovementManager
- type Notification
- type Object
- type Option
- type Options
- type Phase
- type PlayerSession
- type Plugin
- type PluginInfo
- type Pos
- type Process
- type ProtocolHandler
- type ProtocolHandlers
- type Reason
- type Relation
- type Seer
- type Server
- func (rs *Server) ActivePlayers() int
- func (ws *Server) AllSessions() SessionSet
- func (s *Server) ApplyStats(unit Unit) error
- func (ws *Server) AtCapacity() bool
- func (s *Server) BoolVar(vn string) bool
- func (ws *Server) Build() vsn.Build
- func (ws *Server) Call(et EventType, scriptId interface{}, parameters ...interface{}) (shouldStop bool)
- func (s *Server) ClassPowerType(class models.Class) spell.PowerType
- func (ws *Server) Cmd(req CommandPrivileges, sig, description string, function interface{})
- func (s *Server) CreateCharacter(playerCharacter *models.Character) character.Result
- func (ws *Server) ExploreXPRate() float32
- func (s *Server) FloatVar(vn string) float32
- func (ws *Server) GetExploreXP(explorationLevel uint32) uint32
- func (ws *Server) GetFriendStatus(id guid.GUID) social.Status
- func (s *Server) GetGUIDByPlayerName(playerName string) (guid.GUID, error)
- func (s *Server) GetNative(race models.Race, bodyType uint8) uint32
- func (ws *Server) GetNextLevelXP(forLevel uint32) uint32
- func (ws *Server) GetPlayerNameByGUID(g guid.GUID) (string, error)
- func (ws *Server) GetServerStats() *ServerStats
- func (s *Server) GetSessionByGUID(g guid.GUID) (*Session, error)
- func (s *Server) GetSessionByPlayerName(playerName string) (*Session, error)
- func (s *Server) GetSpellAttributes(sp *dbdefs.Ent_Spell) (*update.Bitmask, error)
- func (s *Server) GetSpellData(id uint32) *dbdefs.Ent_Spell
- func (s *Server) GetUnitNameByGUID(g guid.GUID) (string, error)
- func (s *Server) GetUnitPowerType(unit Unit) models.Power
- func (server *Server) HandleConn(conn net.Conn)
- func (s *Server) InitConfig(cfg *config.World) error
- func (ws *Server) LoadDatapacks() error
- func (ws *Server) LoadObjectTemplates(name string, typeID guid.TypeID, typeOf reflect.Type) error
- func (ws *Server) LoadPlayerCreateItems() error
- func (ws *Server) LoadServerDB(name string, typeOf reflect.Type) error
- func (ws *Server) LoadStaticInfo(name string, typeOf reflect.Type) error
- func (s *Server) LogoutTime() time.Duration
- func (ws *Server) NewCreature(template *models.CreatureTemplate, position tempest.C4Vector) *Creature
- func (ws *Server) NewGameObject(tpl *models.GameObjectTemplate, pos tempest.C4Vector) *GameObject
- func (ws *Server) NextDynamicCounter(typeID guid.TypeID) uint64
- func (ws *Server) NextGameObjectGUID() guid.GUID
- func (ws *Server) On(et EventType, key, handler interface{})
- func (s *Server) Phase(id string) *Phase
- func (ws *Server) PlayerCapacity() int
- func (s *Server) PosVar(vn string) (pos *Pos)
- func (ws *Server) RealmID() uint64
- func (ws *Server) RemovePlayerFromList(name string)
- func (s *Server) ScrubCharacter(chr guid.GUID)
- func (ws *Server) SetHandler(et EventType, key, handler interface{})
- func (s *Server) StringVar(vn string) string
- func (s *Server) UintVar(vn string) uint64
- func (ws *Server) UptimeMS() uint32
- type ServerStats
- type Session
- func (s *Session) AddExperience(newXP uint32)
- func (s *Session) AddItem(itemID string, count int, received, created bool) error
- func (s *Session) AddMoney(money models.Money)
- func (s *Session) AddTrackedGUID(g guid.GUID)
- func (s *Session) Alertf(format string, args ...interface{})
- func (s *Session) Annf(data string, args ...interface{})
- func (s *Session) ApplyUpdateMods(viewedObject Object, fields *update.ValuesBlock)
- func (s *Session) BindpointUpdate()
- func (s *Session) BoolProp(id models.PropID) bool
- func (s *Session) BroadcastStatus(status social.Status)
- func (s *Session) Build() vsn.Build
- func (s *Session) CanCast(cc *spell.Cast) (err packet.Encodable)
- func (s *Session) CanSpeak() bool
- func (s *Session) CanUnaura(spellID uint32) bool
- func (s *Session) Cast(spellID uint32, target Object) error
- func (s *Session) ChangeDefaultSpeeds(modifier float32)
- func (s *Session) CleanupPlayer()
- func (s *Session) ClientOrigin() string
- func (s *Session) ColorPrintf(color string, data string, args ...interface{})
- func (session *Session) CompleteHandshake()
- func (s *Session) CompleteLogin()
- func (s *Session) Config() *config.World
- func (s *Session) CreateProcess(name string, fn func(*Session, <-chan bool)) *Process
- func (s *Session) DB() *wdb.Core
- func (s *Session) DebugGUID(dbg guid.GUID) string
- func (s *Session) EnableEncryption(sessionKey []byte) error
- func (s *Session) End()
- func (s *Session) EnterWaitQueue()
- func (s *Session) EquippableIn(it *Item, slot models.ItemSlot) bool
- func (s *Session) FindProcess(name string) *Process
- func (s *Session) GUID() guid.GUID
- func (s *Session) GameMode() models.GameMode
- func (s *Session) GetActiveSpec() uint8
- func (player *Session) GetAuras() *AuraState
- func (s *Session) GetBagItem(bag models.ItemSlot) *Item
- func (s *Session) GetCharacterClass() models.Class
- func (s *Session) GetCharacterHealth() uint32
- func (s *Session) GetCharacterLevel() uint32
- func (s *Session) GetCharacterPower() spell.PowerType
- func (s *Session) GetCharacterRace() models.Race
- func (s *Session) GetContact(friend guid.GUID) *models.Contact
- func (s *Session) GetFreeTalentPoints() uint32
- func (s *Session) GetGameObjectTemplateByEntry(entry uint32) *models.GameObjectTemplate
- func (s *Session) GetItemByPos(bag, slot models.ItemSlot) (*models.Inventory, *Item)
- func (s *Session) GetItemTemplate(it models.Item) *models.ItemTemplate
- func (s *Session) GetItemTemplateByEntry(entry uint32) *models.ItemTemplate
- func (s *Session) GetLevel() int
- func (s *Session) GetLoc(str string) string
- func (s *Session) GetMaxLevel() int
- func (s *Session) GetNextLevelXP() uint32
- func (s *Session) GetPlayerClass() models.Class
- func (s *Session) GetPlayerRace() models.Race
- func (s *Session) GetPowerType() uint8
- func (s *Session) GetProp(id models.PropID, value interface{}) bool
- func (s *Session) GetPropIndex(id models.PropID) int
- func (s *Session) GetSight() *Sight
- func (s *Session) GetSpecsCount() uint8
- func (s *Session) GetTarget() guid.GUID
- func (s *Session) GetValidGossipObject(id guid.GUID) (WorldObject, string)
- func (s *Session) God() bool
- func (s *Session) HandleAccountDataUpdate(upd8 *account.ClientUpdateData)
- func (s *Session) HandleAreaTrigger(trigger *area.Trigger)
- func (s *Session) HandleAuraCancel(ac *spell.AuraCancel)
- func (s *Session) HandleAuthSession(as *auth.SessionClient)
- func (s *Session) HandleAutoEquipItem(ae *item.AutoEquipItemRequest)
- func (s *Session) HandleAutoStoreBagItem(ab *item.AutoStoreBag)
- func (s *Session) HandleCast(cc *spell.Cast)
- func (s *Session) HandleChat(cm *chat.ClientMessage)
- func (s *Session) HandleCommand(c string)
- func (s *Session) HandleCreateCharacter(cc *character.Create)
- func (s *Session) HandleCreatureQuery(cq *creature.Query)
- func (s *Session) HandleDeleteCharacter(del *character.Delete)
- func (s *Session) HandleDestroyItem(id *item.Destroy)
- func (s *Session) HandleDisconnect(dc *packet.ClientDisconnect)
- func (s *Session) HandleEmoteCommand(emoteID uint32)
- func (s *Session) HandleEnableNaglesAlgorithm()
- func (s *Session) HandleEnterEncryptedModeAck()
- func (s *Session) HandleFriendAdd(add *social.Add)
- func (s *Session) HandleFriendDelete(del *social.Delete)
- func (s *Session) HandleFriendListRequest()
- func (s *Session) HandleGameObjectQuery(goq *gameobject.Query)
- func (s *Session) HandleGameObjectUse(use *gameobject.Use)
- func (s *Session) HandleGossipHello(hello *gossip.Hello)
- func (s *Session) HandleGossipSelectOption(so *gossip.SelectOption)
- func (s *Session) HandleGossipTextQuery(tq *gossip.TextQuery)
- func (s *Session) HandleGroupAccept()
- func (s *Session) HandleGroupDecline()
- func (s *Session) HandleGroupDisband()
- func (s *Session) HandleGroupInvite(ir *party.InviteRequest)
- func (s *Session) HandleIgnoreAdd(add *social.Add)
- func (s *Session) HandleIgnoreDelete(del *social.Delete)
- func (s *Session) HandleItemQuerySingle(siq *item.QuerySingle)
- func (s *Session) HandleLogoutCancel()
- func (s *Session) HandleLogoutRequest()
- func (s *Session) HandleMoves(moves *update.MovementPacket)
- func (s *Session) HandleNameQuery(nq *query.Name)
- func (s *Session) HandleNewSpellSlot(sl *spell.NewSlot)
- func (s *Session) HandlePartyMessage(party *chat.ClientMessage)
- func (s *Session) HandlePetNameQuery(p *query.PetName)
- func (s *Session) HandlePing(pi *packet.Ping)
- func (s *Session) HandlePlayedTimeRequest()
- func (s *Session) HandlePlayerLogin(join *login.Player)
- func (s *Session) HandleQueryTime(q *synctime.QueryTime)
- func (s *Session) HandleQuestgiverStatusQuery(q *quest.GiverStatusQuery)
- func (s *Session) HandleRealmSplit(split *etc.Buffer)
- func (s *Session) HandleRequestCharacterList()
- func (s *Session) HandleRequestPartyMemberStats(rq *party.RequestMemberStats)
- func (s *Session) HandleRequestRaidInfo()
- func (s *Session) HandleSay(say *chat.ClientMessage)
- func (s *Session) HandleSetActionButton(sab *spell.SetActionButton)
- func (s *Session) HandleSetActiveMover(sam *update.SetActiveMover)
- func (s *Session) HandleSetWeaponMode(swm *update.SetWeaponMode)
- func (s *Session) HandleSheathe(sheathe *update.SetSheathe)
- func (s *Session) HandleSocialListRequest()
- func (s *Session) HandleSplitItem(isr *item.SplitRequest)
- func (s *Session) HandleStandStateChange(sss *update.SetStandState)
- func (c *Session) HandleSummonResponse()
- func (s *Session) HandleSwapInventoryItem(swp *item.SwapBackpackRequest)
- func (s *Session) HandleSwapItem(swp *item.SwapRequest)
- func (s *Session) HandleTarget(target *update.Target)
- func (s *Session) HandleTextEmote(textemote *chat.TextEmoteRequest)
- func (s *Session) HandleUITimeRequest()
- func (s *Session) HandleUpdateMovement(mpacket *update.MovementPacket)
- func (s *Session) HandleWhisper(whisper *chat.ClientMessage)
- func (s *Session) HandleWho(wr *social.WhoRequest)
- func (s *Session) HandleWorldTeleport(wt *teleport.Worldport)
- func (s *Session) HandleWorldportAck()
- func (s *Session) HandleZoneExperience(zoneID uint32)
- func (s *Session) HandleZoneUpdate(zu *area.ZoneUpdate)
- func (s *Session) HasItem(entry string) bool
- func (s *Session) HasState(ss SessionState) bool
- func (s *Session) HasYouIgnored(g guid.GUID) bool
- func (s *Session) Health() uint32
- func (s *Session) InCombat() bool
- func (player *Session) InitBaseStats() error
- func (s *Session) InitGroup()
- func (s *Session) InitInventoryManager()
- func (s *Session) InitPlayerSession(char *models.Character)
- func (s *Session) IsAdmin() bool
- func (s *Session) IsAlive() bool
- func (s *Session) IsEnemy(wo WorldObject) bool
- func (s *Session) IsEquipmentPos(bag, slot models.ItemSlot) bool
- func (s *Session) IsGM() bool
- func (s *Session) IsIgnoring(player guid.GUID) bool
- func (s *Session) IsSpam(cm *chat.ClientMessage) bool
- func (s *Session) IsTrackedGUID(g guid.GUID) bool
- func (s *Session) IsValidPos(bag, slot models.ItemSlot) bool
- func (s *Session) KillAllProcesses()
- func (s *Session) KillProcessesWithTag(tag string)
- func (s *Session) KnowsAbility(spellID uint32) bool
- func (s *Session) Kv(name, format string, args ...any)
- func (s *Session) LearnAbility(spellID uint32) error
- func (s *Session) LeaveGroup()
- func (s *Session) LevelUp(to uint32)
- func (s *Session) Log(msg ...any)
- func (s *Session) Logout()
- func (s *Session) Map() *Map
- func (s *Session) MapID() uint32
- func (s *Session) MaxHealth() uint32
- func (s *Session) MaxMoney() models.Money
- func (s *Session) MaxPositiveAuras() int
- func (s *Session) MaxPower() uint32
- func (s *Session) Movement() *update.MovementBlock
- func (s *Session) NewItem(it models.Item) *Item
- func (s *Session) NoSuchPlayer(playerName string)
- func (s *Session) Notify(notif UnitNotification, wo WorldObject, args ...any)
- func (s *Session) NotifyGroup()
- func (s *Session) NotifyMovement(wt packet.WorldType, wo WorldObject)
- func (s *Session) PaperDollEnd() models.ItemSlot
- func (s *Session) PartyMemberAuraState() []party.MemberAuraState
- func (s *Session) Pet() *Creature
- func (s *Session) Phase() *Phase
- func (c *Session) PhaseTeleportTo(phaseID string, mapID uint32, pos tempest.C4Vector)
- func (s *Session) PlayerID() uint64
- func (s *Session) PlayerName() string
- func (s *Session) Position() tempest.C4Vector
- func (s *Session) Power() uint32
- func (s *Session) QuestDone(q uint32) bool
- func (s *Session) RefreshInventory()
- func (s *Session) RemoveFromWaitQueue()
- func (s *Session) RemoveProp(id models.PropID)
- func (s *Session) RemoveTrackedGUID(g guid.GUID)
- func (s *Session) SavePowers()
- func (s *Session) Send(f packet.Encodable)
- func (s *Session) SendAccountDataTimes()
- func (s *Session) SendActionButtons()
- func (s *Session) SendAlertText(data string)
- func (s *Session) SendAllAcheivementData()
- func (s *Session) SendArea(f packet.Codec)
- func (s *Session) SendAreaPacket(p *packet.WorldPacket)
- func (session *Session) SendAuthSuccess()
- func (s *Session) SendAuthWaitQueue(position uint32)
- func (s *Session) SendBagUpdate(bag models.ItemSlot)
- func (s *Session) SendDanceMoves()
- func (s *Session) SendEquipmentSetList()
- func (s *Session) SendFriendList()
- func (s *Session) SendFriendStatus(result social.FriendResult, id guid.GUID, note string, status social.Status, ...)
- func (s *Session) SendGossip(m *gossip.Menu)
- func (s *Session) SendGroupDestroyed()
- func (s *Session) SendGroupInvite(from string)
- func (s *Session) SendGroupList()
- func (s *Session) SendIgnoreList()
- func (s *Session) SendInitFactions()
- func (s *Session) SendInitWaitQueue(position int)
- func (s *Session) SendInitWorldStates()
- func (s *Session) SendItemUpdate(it *Item)
- func (s *Session) SendLoginFailure(failure character.LoginResult)
- func (s *Session) SendNameQueryResponseFor(char *models.Character)
- func (s *Session) SendNewItem(newitem *Item, received, created, showInChat bool, bag, slot models.ItemSlot, ...)
- func (s *Session) SendNewWorld(mapID uint32, pos tempest.C4Vector)
- func (s *Session) SendObjectChanges(viewMask update.VisibilityFlags, object Object)
- func (s *Session) SendObjectCreate(objects ...Object)
- func (s *Session) SendObjectDelete(g guid.GUID)
- func (s *Session) SendPacket(wPacket *packet.WorldPacket)
- func (s *Session) SendPartyMemberStats(mask uint32, player *Session)
- func (s *Session) SendPartyResult(operation party.Operation, memberName string, result party.Result)
- func (s *Session) SendPlayMusic(id uint32)
- func (s *Session) SendPlayObjectSound(id guid.GUID, soundID uint32)
- func (s *Session) SendPlaySound(id uint32)
- func (s *Session) SendPlayerTalentsInfoData()
- func (s *Session) SendQuestGiverStatus(id guid.GUID, dialogStatus quest.GiverStatus)
- func (s *Session) SendRawUpdateObjectData(encoded []byte, forceCompression int)
- func (s *Session) SendRequiredItemZoneError(itemID string)
- func (s *Session) SendRequiredLevelZoneError(lvl int)
- func (s *Session) SendRequiredQuestZoneError(questEntry uint32)
- func (s *Session) SendRestStart()
- func (s *Session) SendSessionMetadata()
- func (s *Session) SendSetLeader(leaderName string)
- func (s *Session) SendSocialList()
- func (s *Session) SendSpellList()
- func (s *Session) SendSummonRequest(summoner guid.GUID, zoneID uint32, timeout time.Duration)
- func (s *Session) SendSystemFeatures()
- func (s *Session) SendTeleportAck(g guid.GUID, mapID uint32, pos tempest.C4Vector)
- func (s *Session) SendTransferPending(mapID uint32)
- func (s *Session) SendTutorialFlags()
- func (s *Session) SendUnlearnSpell()
- func (s *Session) SendUpdateWaitQueuePosition(position uint32)
- func (s *Session) SendVerifyLoginPacket()
- func (s *Session) SetBagGUIDSlot(bag, slot models.ItemSlot, g guid.GUID)
- func (s *Session) SetBoolProp(id models.PropID, value bool)
- func (s *Session) SetCurrentXP(current uint32)
- func (s *Session) SetExplorationFlag(exploreFlag uint32)
- func (s *Session) SetFly(on bool)
- func (s *Session) SetGameMode(gm models.GameMode) error
- func (s *Session) SetHealth(u uint32)
- func (s *Session) SetPosition(c4 tempest.C4Vector)
- func (s *Session) SetProp(id models.PropID, value interface{})
- func (s *Session) SetStandState(value update.StandState)
- func (s *Session) SetState(ss SessionState)
- func (s *Session) SetStringProp(id models.PropID, value string)
- func (s *Session) SetSummonLocation(phase string, mapID uint32, pos tempest.C4Vector)
- func (s *Session) SetTimeSpeed()
- func (s *Session) SetVisibleItemEntry(index int, entry uint32)
- func (s *Session) SetupOnLogin()
- func (s *Session) SitChair(chair *GameObject)
- func (s *Session) SortInventory()
- func (s *Session) SpawnPlayer()
- func (s *Session) Speeds() update.Speeds
- func (s *Session) StartAuthChallenge()
- func (s *Session) StartInv() models.ItemSlot
- func (s *Session) State() SessionState
- func (s *Session) String() string
- func (s *Session) SwapItem(srcBag, srcSlot, dstBag, dstSlot models.ItemSlot)
- func (s *Session) SyncSpeeds()
- func (s *Session) SyncTime()
- func (s *Session) Sysf(data string, args ...interface{})
- func (s *Session) SystemChat(data string)
- func (s *Session) Tag() chat.Tag
- func (s *Session) Target(id guid.GUID)
- func (s *Session) TeleportTo(mapID uint32, newPos tempest.C4Vector)
- func (s *Session) TimeInWorld() (time.Duration, error)
- func (s *Session) TypeID() guid.TypeID
- func (s *Session) UpdateAllAuraDurations()
- func (s *Session) UpdateAuraDuration(slot int)
- func (s *Session) UpdatePlayer()
- func (s *Session) UpdatePosition()
- func (s *Session) UpdateSelf()
- func (s *Session) ValidName(name string) bool
- func (s *Session) ValidateZoneWithPosition(zoneID uint32) bool
- func (s *Session) VehicleSeatID() uint32
- func (s *Session) Warnf(data string, args ...interface{})
- func (s *Session) ZoneExplored(zoneID uint32) bool
- type SessionSet
- type SessionState
- type Sight
- type SpawnGroupInstance
- type SpellEffect
- type SpellEffectData
- type SpellManager
- type StaticTeamRelationship
- type Subscriber
- type Summons
- type Team
- type TeamPlayer
- type TeamRelationships
- type Unit
- type UnitNotification
- type UnitSet
- type WaitQueue
- type WorldObject
- type WorldObjectSet
- func (wobjs WorldObjectSet) Filter(fn FilterFunc) WorldObjectSet
- func (wos WorldObjectSet) Iter(iterFunc func(WorldObject))
- func (wobjs WorldObjectSet) OfTypeID(id guid.TypeID) WorldObjectSet
- func (wos WorldObjectSet) Sessions() SessionSet
- func (wos WorldObjectSet) Units() UnitSet
- func (wobjs WorldObjectSet) WithoutGUID(g guid.GUID) WorldObjectSet
Constants ¶
const ( HelpColor = "FF50c41a" DemoColor = "FF99CCFF" )
const ( Mana = iota Rage Focus Energy Happiness )
const ( UseCompressionSmartly int = iota ForceCompressionOff ForceCompressionOn )
const LogoutRequestPtag = "Gophercraft/core/realm/login#logging out"
const MovementManagerTag = "Gophercraft/core/realm/movement_mgr"
const NullProp models.PropID = ""
const ObjectDebug models.PropID = "gophercraft.realm.ObjectDebug"
const (
OptionFlagAsync = 1 << iota
)
const PacketPipePid = "Gophercraft/core/realm/handshake.drainPacketPipe"
const (
ProcKilled = 1 << iota
)
const (
SpellMgrPtag = "Gophercraft/core/realm/spell_manager"
)
Variables ¶
var ( DefaultProps = map[models.PropID]string{ ObjectDebug: "true", } )
var ( DefaultSpeeds = update.Speeds{ update.Walk: 2.5, update.Run: 7, update.RunBackward: 4.5, update.Swim: 4.722222, update.SwimBackward: 2.5, update.Turn: 3.141594, update.Flight: 7.0, update.FlightBackward: 4.7222, update.Pitch: 3.14, } )
var (
MaxGoldNew, _ = models.ParseMoneyShort("9999999g99s99c")
)
Functions ¶
func AuraEffectModResistance ¶
func AuraEffectModResistance(sed *SpellEffectData, target Unit, au *Aura)
func IsUnit ¶
func IsUnit(wo WorldObject) bool
func OptionAsync ¶
func OptionAsync(wp *p.WorldPacket, opts *Options) error
func RegisterPlugin ¶
Types ¶
type Aura ¶
type AuraApplication ¶
type AuraEffect ¶
type AuraEffect func(sed *SpellEffectData, target Unit, au *Aura)
type AuraEffectData ¶
type AuraEffectData struct { }
type AuraState ¶
type AuraState struct { Protect sync.Mutex BaseStats map[models.ModStat]float64 AppliedStats map[models.ModStat]float64 Auras []*Aura AuraExpire chan *Aura }
Aura state holds both base and real stats. From this data, the update fields are set. Update fields are not used as a direct storage for these stats.
type ChatHistory ¶
type ChatHistory struct { RecentMessage []*chat.ClientMessage // Simili SimilitaryToPrevious float32 // must be in range 0.0 - 1.0 }
type Command ¶
type Command struct { Requires CommandPrivileges Signature string // Can be multiline Description string Function interface{} }
type CommandPrivileges ¶
type CommandPrivileges uint8
CommandPrivileges a bitmask of privileges to be compared with Command.Requires. Any player with rpcnet.Tier_Admin tier can bypass this check.
const ( Player CommandPrivileges = 1 << iota GameMaster PhaseBuilder PhaseOwner )
const Admin CommandPrivileges = 0
No bits. This means only people who can bypass privilege checks can use this command.
type Creature ¶
type Creature struct { ID string Map *Map Group *SpawnGroupInstance MovementBlock *update.MovementBlock *update.ValuesBlock // contains filtered or unexported fields }
func (*Creature) GetPowerType ¶
func (*Creature) Movement ¶
func (c *Creature) Movement() *update.MovementBlock
func (*Creature) Values ¶
func (c *Creature) Values() *update.ValuesBlock
type FactionTeam ¶
type FactionTeam struct { Template *dbdefs.Ent_FactionTemplate Faction *dbdefs.Ent_Faction }
func (*FactionTeam) ID ¶
func (f *FactionTeam) ID() string
type FilterFunc ¶
type FilterFunc func(wo WorldObject) bool
func WithoutGUID ¶
func WithoutGUID(g guid.GUID) FilterFunc
type GameObject ¶
type GameObject struct { ID string Map *Map Group *SpawnGroupInstance Position tempest.C4Vector *update.ValuesBlock }
func (*GameObject) Entry ¶
func (gobj *GameObject) Entry() uint32
func (*GameObject) GUID ¶
func (g *GameObject) GUID() guid.GUID
func (*GameObject) GameObjectType ¶
func (gobj *GameObject) GameObjectType() uint32
func (*GameObject) Living ¶
func (g *GameObject) Living() bool
func (*GameObject) Movement ¶
func (gobj *GameObject) Movement() *update.MovementBlock
func (*GameObject) SetOrientation ¶
func (g *GameObject) SetOrientation(orientation float32)
func (*GameObject) SetPosition ¶
func (g *GameObject) SetPosition(build vsn.Build, pos tempest.C4Vector)
func (*GameObject) SetRotation ¶
func (g *GameObject) SetRotation(rot tempest.C4Quaternion)
func (*GameObject) Speeds ¶
func (g *GameObject) Speeds() update.Speeds
func (*GameObject) String ¶
func (g *GameObject) String() string
func (*GameObject) TypeID ¶
func (g *GameObject) TypeID() guid.TypeID
func (*GameObject) Values ¶
func (g *GameObject) Values() *update.ValuesBlock
type Group ¶
type Group struct { sync.Mutex GroupType party.GroupType Server *Server Leader guid.GUID Members []guid.GUID LootMethod party.LootMethod LootThreshold models.ItemQuality }
func (*Group) RemoveMember ¶
func (*Group) UpdateList ¶
func (g *Group) UpdateList()
type Instance ¶
type Instance struct { InstanceType Name i18n.Text }
type InstanceType ¶
type InstanceType uint32
type InventoryManager ¶
type InventoryManager struct { }
type Item ¶
type Item struct { ItemID string *update.ValuesBlock }
func (*Item) ContainerNumSlots ¶
func (*Item) PropertySeed ¶
func (*Item) RandomPropertiesID ¶
func (*Item) StackCount ¶
func (*Item) Values ¶
func (i *Item) Values() *update.ValuesBlock
type LoadedPlugin ¶
type LoadedPlugin struct { PluginInfo Plugin }
type Map ¶
type Map struct { sync.Mutex ID uint32 // If true, no part of the map is cut off from visibility. ShowEverywhere bool Phase *Phase // contains filtered or unexported fields }
Map describes a world map. Map is meant to be used asynchronously. Map has its a goroutine with which it can emplace/remove world objects, and query them repeatedly this way we can avoid race conditions.
func (*Map) AddObject ¶
func (m *Map) AddObject(newObject ...WorldObject) error
func (*Map) AddObjects ¶
func (m *Map) AddObjects(objects WorldObjectSet) error
func (*Map) AllObjects ¶
func (m *Map) AllObjects() WorldObjectSet
func (*Map) CanFight ¶
func (m *Map) CanFight(u1, u2 TeamPlayer) bool
func (*Map) CanSee ¶
func (m *Map) CanSee(eye WorldObject, object WorldObject, vis float32) bool
func (*Map) DebugMapInfo ¶
func (*Map) Definition ¶
func (*Map) GetObjectsInRange ¶
func (m *Map) GetObjectsInRange(vrange tempest.CAaSphere) WorldObjectSet
func (*Map) GetObjectsNearPosition ¶
func (m *Map) GetObjectsNearPosition(pos tempest.C3Vector) WorldObjectSet
func (*Map) Hostile ¶
func (m *Map) Hostile(u1, u2 TeamPlayer) bool
func (*Map) LookupSpellInfo ¶
func (m *Map) LookupSpellInfo(id uint32, spelldata **dbdefs.Ent_Spell, spellvisual **dbdefs.Ent_SpellVisual, casttimes **dbdefs.Ent_SpellCastTimes)
func (*Map) ObjectIsPlayer ¶
func (m *Map) ObjectIsPlayer(player WorldObject) bool
func (*Map) PlaySpellVisual ¶
func (*Map) PlaySpellVisualKind ¶
func (m *Map) PlaySpellVisualKind(unit Unit, spellID uint32, class models.VisualClass)
func (*Map) PropagateChanges ¶
func (*Map) PropagateObjectChanges ¶
func (m *Map) PropagateObjectChanges(o WorldObject)
func (*Map) RefreshStats ¶
func (*Map) SpawnGameObject ¶
func (*Map) SyncAuraState ¶
func (*Map) Unaura ¶
removes a finite or infinite amount of aura applications. if you are interested, show visuals for the
func (*Map) UnitIsAlive ¶
func (*Map) UnitIsDead ¶
func (*Map) UpdateMapPosition ¶
Update an object's position within the Map. This has bearing on how the object is synchronized in relation to others, but does not modify the object's internal position.
func (*Map) ViewersOf ¶
func (m *Map) ViewersOf(object WorldObject) WorldObjectSet
The inverse of VisibleObjects. Refers to WorldObjects that can see Object
func (*Map) VisibilityDistance ¶
func (*Map) VisibleObjects ¶
func (m *Map) VisibleObjects(viewer WorldObject) WorldObjectSet
Refers to the objects that nearTo can see.
func (*Map) VisibleObjectsInRange ¶
func (m *Map) VisibleObjectsInRange(viewer WorldObject, radius float32) WorldObjectSet
type ModEffect ¶
type ModEffect struct { Op models.ModOp StatMask models.ModStatMask Value float64 }
ModEffect. Stores mods for all the stats in StatMask
type MovementManager ¶
type MovementManager struct { Moves chan *update.MovementPacket LastMove time.Time MoveSpeeds update.Speeds MovementInfo *update.MovementInfo }
type Notification ¶
type Notification uint8
const ( NotifyCreate Notification = iota NotifyDelete NotifyMovement NotifyOutOfRange )
type Phase ¶
Phase describes a plane of existence which contains multiple maps. When the list of maps is empty after too long, Phase itself becomes unloaded.
type PlayerSession ¶
type PlayerSession struct { *update.ValuesBlock MovementManager Char *models.Character CharacterProps []models.CharacterProp GuardInventory sync.Mutex Inventory []models.Inventory Items map[guid.GUID]*Item // In-world data JoinedWorldAt time.Time LevelJoinTime time.Time CurrentPhase string CurrentMap *Map CurrentArea uint32 // CurrentChunkIndex *terrain.TileChunkLookupIndex ZoneID uint32 AuraState AuraState SpellManager *SpellManager // currently tracked objects Camera Sight GuardTrackedGUIDs sync.Mutex TrackedGUIDs []guid.GUID Flying bool // Social Group *Group GroupInvite guid.GUID TeleportSummons *Summons // contains filtered or unexported fields }
func (*PlayerSession) Teams ¶
func (ps *PlayerSession) Teams() []Team
func (*PlayerSession) Values ¶
func (s *PlayerSession) Values() *update.ValuesBlock
type Plugin ¶
type Plugin interface { // For checking whether a plugin is actually operating, i.e. determine if there is a non-fatal error Activated() (activated bool, reason error) // Gracefully shutdown a plugin. The operation should fully complete before this function returns Terminate() error // Initialize the plugin's main functionality, and set the metadata Init(server *Server, plg *PluginInfo) error }
type PluginInfo ¶
type Process ¶
type Process struct { Name string CreationState SessionState ProcState uint8 Data interface{} Cancel chan<- bool }
type ProtocolHandler ¶
type ProtocolHandlers ¶
type ProtocolHandlers map[p.WorldType]*ProtocolHandler
func (ProtocolHandlers) On ¶
func (h ProtocolHandlers) On(pt p.WorldType, requiredState SessionState, function interface{}, options ...Option)
type Relation ¶
type Relation uint8
const ( NoRelation Relation = 0 RelationPassive RelationFriendly RelationDisliked RelationHated )
type Server ¶
type Server struct { Config *config.World DB *wdb.Core GuardPhases sync.Mutex Phases map[string]*Phase GuardPlayerList sync.Mutex PlayerList map[string]*Session PackLoader *datapack.Loader Plugins []*LoadedPlugin ProtocolHandlers ProtocolHandlers CommandHandlers []Command HomeServiceClient rpcnet.HomeServiceClient WaitQueue WaitQueue DynamicCounters map[guid.TypeID]uint64 GuardCounters sync.Mutex StartTime time.Time // TerrainMgr // Misc data stores LevelExperience models.LevelExperience SpellEffects []SpellEffect AuraEffects []AuraEffect // contains filtered or unexported fields }
func (*Server) ActivePlayers ¶
func (*Server) AllSessions ¶
func (ws *Server) AllSessions() SessionSet
func (*Server) ApplyStats ¶
Take a Unit's base stats and apply mods to them, value and movement blocks accordingly
func (*Server) AtCapacity ¶
func (*Server) Call ¶
func (ws *Server) Call(et EventType, scriptId interface{}, parameters ...interface{}) (shouldStop bool)
Call triggers a certain type of event
func (*Server) Cmd ¶
func (ws *Server) Cmd(req CommandPrivileges, sig, description string, function interface{})
func (*Server) CreateCharacter ¶
func (*Server) ExploreXPRate ¶
func (*Server) GetExploreXP ¶
func (*Server) GetGUIDByPlayerName ¶
func (*Server) GetNextLevelXP ¶
func (*Server) GetPlayerNameByGUID ¶
func (*Server) GetServerStats ¶
func (ws *Server) GetServerStats() *ServerStats
func (*Server) GetSessionByPlayerName ¶
func (*Server) GetSpellAttributes ¶
func (*Server) HandleConn ¶
func (*Server) LoadDatapacks ¶
LoadDatapacks loops through all the text ZIP files owned by this Worldserver, refreshing the server database cache
func (*Server) LoadObjectTemplates ¶
LoadObjectTemplates (item/creature/gameobject templates) Most pertinent to object templates that are queried by the client, i.e. structs that have an Entry field
func (*Server) LoadPlayerCreateItems ¶
func (*Server) LoadServerDB ¶
Read game data as a unified source. The BASE data can be supplied by the game itself. DBC edits can be supplied in text format
func (*Server) LoadStaticInfo ¶
func (*Server) LogoutTime ¶
func (*Server) NewCreature ¶
func (*Server) NewGameObject ¶
func (ws *Server) NewGameObject(tpl *models.GameObjectTemplate, pos tempest.C4Vector) *GameObject
func (*Server) NextDynamicCounter ¶
Increments the dynamic conter for typeID and returns the result.
func (*Server) NextGameObjectGUID ¶
func (*Server) PlayerCapacity ¶
func (*Server) RemovePlayerFromList ¶
func (*Server) ScrubCharacter ¶
ScrubCharacter deletes a character PERMANENTLY from a server.
func (*Server) SetHandler ¶
type ServerStats ¶
type Session ¶
type Session struct { // Account data Server *Server Connection *packet.Connection AuthChallenge *auth.Challenge GuardSession sync.Mutex Tier rpcnet.Tier Locale i18n.Locale Account uint64 GameAccount uint64 SessionKey []byte Processes []*Process PacketPipe chan *packet.WorldPacket // In-world Data: better kept as pointer // Otherwise we're allocating EVERYTHING when someone opens a socket *PlayerSession // contains filtered or unexported fields }
func (*Session) AddExperience ¶
func (*Session) AddTrackedGUID ¶
func (*Session) Annf ¶
prints something in green text with [SERVER] prepended for use in global announcements
func (*Session) ApplyUpdateMods ¶
func (s *Session) ApplyUpdateMods(viewedObject Object, fields *update.ValuesBlock)
Use this function to send manipulated update field changes, without polluting the main store
func (*Session) BindpointUpdate ¶
func (s *Session) BindpointUpdate()
func (*Session) BroadcastStatus ¶
func (*Session) ChangeDefaultSpeeds ¶
func (*Session) CleanupPlayer ¶
func (s *Session) CleanupPlayer()
func (*Session) ClientOrigin ¶
func (*Session) ColorPrintf ¶
func (*Session) CompleteHandshake ¶
func (session *Session) CompleteHandshake()
This function is called after initial encryption checks are found to be correct.
func (*Session) CompleteLogin ¶
func (s *Session) CompleteLogin()
This function gets called after wait queue is completed or skipped.
func (*Session) CreateProcess ¶
Creates a background function that will run until canceled, or until the session state changes to a lower value
func (*Session) EnableEncryption ¶
func (*Session) End ¶
func (s *Session) End()
End signals the termination of a session. End can be called anywhere, for any reason.
func (*Session) EnterWaitQueue ¶
func (s *Session) EnterWaitQueue()
func (*Session) FindProcess ¶
func (*Session) GetActiveSpec ¶
func (*Session) GetCharacterClass ¶
func (*Session) GetCharacterHealth ¶
func (*Session) GetCharacterLevel ¶
func (*Session) GetCharacterPower ¶
func (*Session) GetCharacterRace ¶
func (*Session) GetFreeTalentPoints ¶
func (*Session) GetGameObjectTemplateByEntry ¶
func (s *Session) GetGameObjectTemplateByEntry(entry uint32) *models.GameObjectTemplate
func (*Session) GetItemByPos ¶
func (*Session) GetItemTemplate ¶
func (s *Session) GetItemTemplate(it models.Item) *models.ItemTemplate
func (*Session) GetItemTemplateByEntry ¶
func (s *Session) GetItemTemplateByEntry(entry uint32) *models.ItemTemplate
func (*Session) GetMaxLevel ¶
func (*Session) GetNextLevelXP ¶
func (*Session) GetPlayerClass ¶
func (*Session) GetPlayerRace ¶
func (*Session) GetPowerType ¶
func (*Session) GetSpecsCount ¶
func (*Session) GetValidGossipObject ¶
func (s *Session) GetValidGossipObject(id guid.GUID) (WorldObject, string)
func (*Session) HandleAccountDataUpdate ¶
func (s *Session) HandleAccountDataUpdate(upd8 *account.ClientUpdateData)
func (*Session) HandleAreaTrigger ¶
func (*Session) HandleAuraCancel ¶
func (s *Session) HandleAuraCancel(ac *spell.AuraCancel)
func (*Session) HandleAuthSession ¶
func (s *Session) HandleAuthSession(as *auth.SessionClient)
func (*Session) HandleAutoEquipItem ¶
func (s *Session) HandleAutoEquipItem(ae *item.AutoEquipItemRequest)
func (*Session) HandleAutoStoreBagItem ¶
func (s *Session) HandleAutoStoreBagItem(ab *item.AutoStoreBag)
func (*Session) HandleCast ¶
func (*Session) HandleChat ¶
func (s *Session) HandleChat(cm *chat.ClientMessage)
func (*Session) HandleCommand ¶
func (*Session) HandleCreateCharacter ¶
func (*Session) HandleCreatureQuery ¶
func (*Session) HandleDeleteCharacter ¶
func (*Session) HandleDestroyItem ¶
func (*Session) HandleDisconnect ¶
func (s *Session) HandleDisconnect(dc *packet.ClientDisconnect)
func (*Session) HandleEmoteCommand ¶
func (*Session) HandleEnableNaglesAlgorithm ¶
func (s *Session) HandleEnableNaglesAlgorithm()
func (*Session) HandleEnterEncryptedModeAck ¶
func (s *Session) HandleEnterEncryptedModeAck()
func (*Session) HandleFriendAdd ¶
func (*Session) HandleFriendDelete ¶
func (*Session) HandleFriendListRequest ¶
func (s *Session) HandleFriendListRequest()
func (*Session) HandleGameObjectQuery ¶
func (s *Session) HandleGameObjectQuery(goq *gameobject.Query)
func (*Session) HandleGameObjectUse ¶
func (s *Session) HandleGameObjectUse(use *gameobject.Use)
func (*Session) HandleGossipHello ¶
func (*Session) HandleGossipSelectOption ¶
func (s *Session) HandleGossipSelectOption(so *gossip.SelectOption)
func (*Session) HandleGossipTextQuery ¶
func (*Session) HandleGroupAccept ¶
func (s *Session) HandleGroupAccept()
func (*Session) HandleGroupDecline ¶
func (s *Session) HandleGroupDecline()
func (*Session) HandleGroupDisband ¶
func (s *Session) HandleGroupDisband()
func (*Session) HandleGroupInvite ¶
func (s *Session) HandleGroupInvite(ir *party.InviteRequest)
func (*Session) HandleIgnoreAdd ¶
func (*Session) HandleIgnoreDelete ¶
func (*Session) HandleItemQuerySingle ¶
func (s *Session) HandleItemQuerySingle(siq *item.QuerySingle)
func (*Session) HandleLogoutCancel ¶
func (s *Session) HandleLogoutCancel()
func (*Session) HandleLogoutRequest ¶
func (s *Session) HandleLogoutRequest()
func (*Session) HandleMoves ¶
func (s *Session) HandleMoves(moves *update.MovementPacket)
func (*Session) HandleNameQuery ¶
func (*Session) HandleNewSpellSlot ¶
func (*Session) HandlePartyMessage ¶
func (s *Session) HandlePartyMessage(party *chat.ClientMessage)
func (*Session) HandlePetNameQuery ¶
func (*Session) HandlePing ¶
func (*Session) HandlePlayedTimeRequest ¶
func (s *Session) HandlePlayedTimeRequest()
func (*Session) HandlePlayerLogin ¶
func (*Session) HandleQueryTime ¶
func (*Session) HandleQuestgiverStatusQuery ¶
func (s *Session) HandleQuestgiverStatusQuery(q *quest.GiverStatusQuery)
func (*Session) HandleRealmSplit ¶
func (*Session) HandleRequestCharacterList ¶
func (s *Session) HandleRequestCharacterList()
func (*Session) HandleRequestPartyMemberStats ¶
func (s *Session) HandleRequestPartyMemberStats(rq *party.RequestMemberStats)
func (*Session) HandleRequestRaidInfo ¶
func (s *Session) HandleRequestRaidInfo()
func (*Session) HandleSay ¶
func (s *Session) HandleSay(say *chat.ClientMessage)
func (*Session) HandleSetActionButton ¶
func (s *Session) HandleSetActionButton(sab *spell.SetActionButton)
func (*Session) HandleSetActiveMover ¶
func (s *Session) HandleSetActiveMover(sam *update.SetActiveMover)
func (*Session) HandleSetWeaponMode ¶
func (s *Session) HandleSetWeaponMode(swm *update.SetWeaponMode)
func (*Session) HandleSheathe ¶
func (s *Session) HandleSheathe(sheathe *update.SetSheathe)
func (*Session) HandleSocialListRequest ¶
func (s *Session) HandleSocialListRequest()
func (*Session) HandleSplitItem ¶
func (s *Session) HandleSplitItem(isr *item.SplitRequest)
func (*Session) HandleStandStateChange ¶
func (s *Session) HandleStandStateChange(sss *update.SetStandState)
func (*Session) HandleSummonResponse ¶
func (c *Session) HandleSummonResponse()
func (*Session) HandleSwapInventoryItem ¶
func (s *Session) HandleSwapInventoryItem(swp *item.SwapBackpackRequest)
func (*Session) HandleSwapItem ¶
func (s *Session) HandleSwapItem(swp *item.SwapRequest)
func (*Session) HandleTarget ¶
func (*Session) HandleTextEmote ¶
func (s *Session) HandleTextEmote(textemote *chat.TextEmoteRequest)
func (*Session) HandleUITimeRequest ¶
func (s *Session) HandleUITimeRequest()
func (*Session) HandleUpdateMovement ¶
func (s *Session) HandleUpdateMovement(mpacket *update.MovementPacket)
Important TODO: validate position
func (*Session) HandleWhisper ¶
func (s *Session) HandleWhisper(whisper *chat.ClientMessage)
func (*Session) HandleWho ¶
func (s *Session) HandleWho(wr *social.WhoRequest)
func (*Session) HandleWorldTeleport ¶
func (*Session) HandleWorldportAck ¶
func (s *Session) HandleWorldportAck()
For some reason this is necessary
func (*Session) HandleZoneExperience ¶
func (*Session) HandleZoneUpdate ¶
func (s *Session) HandleZoneUpdate(zu *area.ZoneUpdate)
func (*Session) HasState ¶
func (s *Session) HasState(ss SessionState) bool
func (*Session) InitBaseStats ¶
func (*Session) InitInventoryManager ¶
func (s *Session) InitInventoryManager()
func (*Session) InitPlayerSession ¶
func (*Session) IsEnemy ¶
func (s *Session) IsEnemy(wo WorldObject) bool
func (*Session) KillAllProcesses ¶
func (s *Session) KillAllProcesses()
func (*Session) KillProcessesWithTag ¶
func (*Session) KnowsAbility ¶
func (*Session) LearnAbility ¶
func (*Session) LeaveGroup ¶
func (s *Session) LeaveGroup()
func (*Session) MaxPositiveAuras ¶
func (*Session) Movement ¶
func (s *Session) Movement() *update.MovementBlock
func (*Session) NoSuchPlayer ¶
func (*Session) Notify ¶
func (s *Session) Notify(notif UnitNotification, wo WorldObject, args ...any)
func (*Session) NotifyGroup ¶
func (s *Session) NotifyGroup()
func (*Session) NotifyMovement ¶
func (s *Session) NotifyMovement(wt packet.WorldType, wo WorldObject)
func (*Session) PaperDollEnd ¶
func (*Session) PartyMemberAuraState ¶
func (s *Session) PartyMemberAuraState() []party.MemberAuraState
func (*Session) PhaseTeleportTo ¶
func (*Session) PlayerName ¶
func (*Session) RefreshInventory ¶
func (s *Session) RefreshInventory()
func (*Session) RemoveFromWaitQueue ¶
func (s *Session) RemoveFromWaitQueue()
func (*Session) RemoveProp ¶
func (*Session) RemoveTrackedGUID ¶
func (*Session) SavePowers ¶
func (s *Session) SavePowers()
func (*Session) SendAccountDataTimes ¶
func (s *Session) SendAccountDataTimes()
func (*Session) SendActionButtons ¶
func (s *Session) SendActionButtons()
func (*Session) SendAlertText ¶
func (*Session) SendAllAcheivementData ¶
func (s *Session) SendAllAcheivementData()
func (*Session) SendAreaPacket ¶
func (s *Session) SendAreaPacket(p *packet.WorldPacket)
func (*Session) SendAuthSuccess ¶
func (session *Session) SendAuthSuccess()
func (*Session) SendAuthWaitQueue ¶
func (*Session) SendBagUpdate ¶
func (*Session) SendDanceMoves ¶
func (s *Session) SendDanceMoves()
func (*Session) SendEquipmentSetList ¶
func (s *Session) SendEquipmentSetList()
func (*Session) SendFriendList ¶
func (s *Session) SendFriendList()
func (*Session) SendFriendStatus ¶
func (*Session) SendGossip ¶
func (*Session) SendGroupDestroyed ¶
func (s *Session) SendGroupDestroyed()
func (*Session) SendGroupInvite ¶
func (*Session) SendGroupList ¶
func (s *Session) SendGroupList()
func (*Session) SendIgnoreList ¶
func (s *Session) SendIgnoreList()
func (*Session) SendInitFactions ¶
func (s *Session) SendInitFactions()
func (*Session) SendInitWaitQueue ¶
func (*Session) SendInitWorldStates ¶
func (s *Session) SendInitWorldStates()
func (*Session) SendItemUpdate ¶
func (*Session) SendLoginFailure ¶
func (s *Session) SendLoginFailure(failure character.LoginResult)
func (*Session) SendNameQueryResponseFor ¶
func (*Session) SendNewItem ¶
func (*Session) SendObjectChanges ¶
func (s *Session) SendObjectChanges(viewMask update.VisibilityFlags, object Object)
func (*Session) SendObjectCreate ¶
Send spawn packets for 1+ objects. This function is optimized to fit as many Create/Spawn blocks into one compressed packet as possible.
func (*Session) SendObjectDelete ¶
func (*Session) SendPacket ¶
func (s *Session) SendPacket(wPacket *packet.WorldPacket)
func (*Session) SendPartyMemberStats ¶
func (*Session) SendPartyResult ¶
func (*Session) SendPlayMusic ¶
func (*Session) SendPlayObjectSound ¶
func (*Session) SendPlaySound ¶
func (*Session) SendPlayerTalentsInfoData ¶
func (s *Session) SendPlayerTalentsInfoData()
func (*Session) SendQuestGiverStatus ¶
func (s *Session) SendQuestGiverStatus(id guid.GUID, dialogStatus quest.GiverStatus)
func (*Session) SendRawUpdateObjectData ¶
func (*Session) SendRequiredItemZoneError ¶
func (*Session) SendRequiredLevelZoneError ¶
func (*Session) SendRequiredQuestZoneError ¶
func (*Session) SendRestStart ¶
func (s *Session) SendRestStart()
func (*Session) SendSessionMetadata ¶
func (s *Session) SendSessionMetadata()
Sends metadata important to handshake after session is initially confirmed
func (*Session) SendSetLeader ¶
func (*Session) SendSocialList ¶
func (s *Session) SendSocialList()
Starting in protocol 8606, the friends list and the ignore list are merged into a single packet.
func (*Session) SendSpellList ¶
func (s *Session) SendSpellList()
func (*Session) SendSummonRequest ¶
func (*Session) SendSystemFeatures ¶
func (s *Session) SendSystemFeatures()
func (*Session) SendTeleportAck ¶
func (*Session) SendTransferPending ¶
func (*Session) SendTutorialFlags ¶
func (s *Session) SendTutorialFlags()
func (*Session) SendUnlearnSpell ¶
func (s *Session) SendUnlearnSpell()
func (*Session) SendUpdateWaitQueuePosition ¶
func (*Session) SendVerifyLoginPacket ¶
func (s *Session) SendVerifyLoginPacket()
func (*Session) SetBagGUIDSlot ¶
func (*Session) SetCurrentXP ¶
func (*Session) SetExplorationFlag ¶
func (*Session) SetPosition ¶
func (*Session) SetStandState ¶
func (s *Session) SetStandState(value update.StandState)
func (*Session) SetState ¶
func (s *Session) SetState(ss SessionState)
func (*Session) SetSummonLocation ¶
func (*Session) SetTimeSpeed ¶
func (s *Session) SetTimeSpeed()
func (*Session) SetVisibleItemEntry ¶
func (*Session) SetupOnLogin ¶
func (s *Session) SetupOnLogin()
func (*Session) SitChair ¶
func (s *Session) SitChair(chair *GameObject)
func (*Session) SortInventory ¶
func (s *Session) SortInventory()
func (*Session) SpawnPlayer ¶
func (s *Session) SpawnPlayer()
SpawnPlayer initializes the player into the object manager and sends the packets needed to log the client into the world.
func (*Session) StartAuthChallenge ¶
func (s *Session) StartAuthChallenge()
func (*Session) State ¶
func (s *Session) State() SessionState
error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
func (*Session) SyncSpeeds ¶
func (s *Session) SyncSpeeds()
func (*Session) SystemChat ¶
func (*Session) TeleportTo ¶
TeleportTo teleports a player to a new location. This function should be called carefully.
func (*Session) UpdateAllAuraDurations ¶
func (s *Session) UpdateAllAuraDurations()
func (*Session) UpdateAuraDuration ¶
func (*Session) UpdatePosition ¶
func (s *Session) UpdatePosition()
func (*Session) UpdateSelf ¶
func (s *Session) UpdateSelf()
Send updated fields directly to client. Use for setting private fields.
func (*Session) ValidateZoneWithPosition ¶
important todo: verify zone ID against geometric bounds of area: Just a dummy function until ADT parsing is available
func (*Session) VehicleSeatID ¶
func (*Session) ZoneExplored ¶
type SessionSet ¶
type SessionSet []*Session
func (SessionSet) Iter ¶
func (s SessionSet) Iter(iterFunc func(*Session))
func (SessionSet) SendPacket ¶
func (s SessionSet) SendPacket(p *packet.WorldPacket)
type SessionState ¶
type SessionState int8
const ( Handshaking SessionState = iota Authed Waiting CharacterSelectMenu InWorld )
const Ended SessionState = -1
type SpawnGroupInstance ¶
type SpawnGroupInstance struct { Position tempest.C4Vector Group models.SpawnGroup Objects WorldObjectSet }
type SpellEffect ¶
type SpellEffect func(*SpellEffectData)
type SpellEffectData ¶
type SpellManager ¶
type StaticTeamRelationship ¶
type Subscriber ¶
type Subscriber interface {
Notify(notif Notification, object WorldObject, args ...any)
}
type Team ¶
type Team interface { ID() string Name() i18n.Text Color() string Relationships() *TeamRelationships }
type TeamPlayer ¶
type TeamRelationships ¶
type TeamRelationships struct {
Statics []StaticTeamRelationship
}
type Unit ¶
type Unit interface { WorldObject Target(guid.GUID) GetTarget() guid.GUID GetAuras() *AuraState Notify(UnitNotification, WorldObject, ...any) }
Objects that can cast and receive spells
type UnitNotification ¶
type UnitNotification uint8
const ( UnitNotifyCreate UnitNotification = iota UnitNotifyDelete UnitNotifyMovement UnitNotifyOutOfRange )
type UnitSet ¶
type UnitSet []Unit
func (UnitSet) Notify ¶
func (us UnitSet) Notify(notif UnitNotification, wo WorldObject, args ...any)
func (UnitSet) NotifyMovement ¶
func (us UnitSet) NotifyMovement(movementType packet.WorldType, wo WorldObject)
type WorldObject ¶
type WorldObject interface { Object // movement data Movement() *update.MovementBlock }
Objects that have a presence in the world in a specific location (players, creatures)
type WorldObjectSet ¶
type WorldObjectSet []WorldObject
func (WorldObjectSet) Filter ¶
func (wobjs WorldObjectSet) Filter(fn FilterFunc) WorldObjectSet
func (WorldObjectSet) Iter ¶
func (wos WorldObjectSet) Iter(iterFunc func(WorldObject))
func (WorldObjectSet) OfTypeID ¶
func (wobjs WorldObjectSet) OfTypeID(id guid.TypeID) WorldObjectSet
func (WorldObjectSet) Sessions ¶
func (wos WorldObjectSet) Sessions() SessionSet
func (WorldObjectSet) Units ¶
func (wos WorldObjectSet) Units() UnitSet
func (WorldObjectSet) WithoutGUID ¶
func (wobjs WorldObjectSet) WithoutGUID(g guid.GUID) WorldObjectSet
Source Files
¶
- achievements.go
- action_buttons.go
- aura_state.go
- camera.go
- character.go
- charprops.go
- chat.go
- chat_channels.go
- command.go
- command_handlers.go
- config.go
- creature.go
- datapacks.go
- emote.go
- equipmentsets.go
- experience.go
- factions.go
- game_mode.go
- game_object.go
- gossip.go
- group_mgr.go
- handshake.go
- heal.go
- intro.go
- inventory_mgr.go
- item_mgr.go
- loc.go
- login.go
- map.go
- map_block.go
- map_content.go
- map_internal.go
- map_schedule.go
- movement.go
- movement_manager.go
- notification.go
- phase.go
- played_time.go
- player_attributes.go
- plugin.go
- protocol_handlers.go
- query_name.go
- query_time.go
- quest_mgr.go
- raid.go
- scripting.go
- server.go
- session.go
- session_process.go
- social_mgr.go
- sound.go
- spawn.go
- spell_aura.go
- spell_book.go
- spell_cancel_aura.go
- spell_cast.go
- spell_effect.go
- spell_effect_aura.go
- spell_manager.go
- spell_visual.go
- stats.go
- sync_objects.go
- sync_unit.go
- talents.go
- targeting.go
- team.go
- telemetry.go
- teleport.go
- terrain_mgr.go
- trade.go
- waiting_list.go
- warden.go
- world_redirect.go
- world_rpc.go
Directories
¶
Path | Synopsis |
---|---|
plugins
|
|
randomness provides pseudo-random utilities for in-game use.
|
randomness provides pseudo-random utilities for in-game use. |
Package wdb contains the realm databases.
|
Package wdb contains the realm databases. |
models
package realm/wdb/models Contains models for game data, type enums, and conversion functions
|
package realm/wdb/models Contains models for game data, type enums, and conversion functions |
Package worldserver is the main ent
|
Package worldserver is the main ent |