Documentation
¶
Index ¶
- Constants
- Variables
- type Achievement
- type AchievementGroup
- type AchievementProgress
- type CaddieUpdated
- type CharacterUpdated
- type ChatMessage
- type Client004F
- type Client0088
- type Client00C1
- type Client00FE
- type ClientAchievementStatusRequest
- type ClientAssistModeToggle
- type ClientAuth
- type ClientBigPapelPlay
- type ClientBlackPapelPlay
- type ClientBuyItem
- type ClientEnterMyRoom
- type ClientEquipmentUpdate
- type ClientEventLobbyJoin
- type ClientEventLobbyLeave
- type ClientException
- type ClientFirstShotReady
- type ClientGameEnd
- type ClientGetPlayerData
- type ClientGetUserOnlineStatus
- type ClientGuildListRequest
- type ClientHoleEnd
- type ClientHoleInfo
- type ClientJoinChannel
- type ClientLastPlayerLeaveGame
- type ClientLoadProgress
- type ClientLockerCombinationAttempt
- type ClientLockerInventoryRequest
- type ClientMessage
- type ClientMessageSend
- type ClientMessage_
- type ClientMultiplayerJoin
- type ClientMultiplayerLeave
- type ClientPauseGame
- type ClientPlayerReady
- type ClientPlayerStartGame
- type ClientQuestStatusRequest
- type ClientRareShopOpen
- type ClientReadyStartHole
- type ClientRequestDailyReward
- type ClientRequestInboxList
- type ClientRequestInboxMessage
- type ClientRequestInventory
- type ClientRequestMessengerList
- type ClientRequestPlayerHistory
- type ClientRequestServerList
- type ClientRoomCreate
- type ClientRoomEdit
- type ClientRoomInfo
- type ClientRoomJoin
- type ClientRoomKick
- type ClientRoomLeave
- type ClientRoomLoungeAction
- type ClientRoomSync
- type ClientRoomUserEquipmentChange
- type ClientScratchyMenuOpen
- type ClientSetIdleStatus
- type ClientShopJoin
- type ClientShotActiveUserAcknowledge
- type ClientShotArrow
- type ClientShotClubChange
- type ClientShotCometRelief
- type ClientShotCommit
- type ClientShotItemUse
- type ClientShotMeterInput
- type ClientShotPower
- type ClientShotRotate
- type ClientShotSync
- type ClientTutorialClear
- type ClientTutorialStart
- type ClientUserMacrosSet
- type ClientUserTypingIndicator
- type CometUpdated
- type ConnectMessage
- type ConsumablesUpdated
- type DecorationUpdated
- type EquipmentUpdateType
- type EventType
- type FurnitureItem
- type GameEnd
- type GameInitFull
- type GameInitMinimal
- type GameInitType
- type GamePlayer
- type HoleInfo
- type InboxMessage
- type InventoryItem
- type ListType
- type MailMessage
- type MessageAttachment
- type MoneyUpdateType
- type PlayerGameResult
- type PlayerMainData
- type PurchaseItem
- type RecentPlayer
- type RoomCensusListAdd
- type RoomCensusListChange
- type RoomCensusListRemove
- type RoomCensusListSet
- type RoomListRoom
- type Server004E
- type Server0077
- type Server0151
- type Server016A
- type Server01F6
- type Server020E
- type Server0230
- type Server0231
- type ServerAchievementProgress
- type ServerAchievementStatusResponse
- type ServerAchievementUnknownResponse
- type ServerAssistModeToggled
- type ServerBigPapelWinnings
- type ServerBlackPapelItems
- type ServerBlackPapelResponse
- type ServerBlackPapelWinnings
- type ServerChannelList
- type ServerCharData
- type ServerConn
- type ServerEvent
- type ServerEventLobbyJoined
- type ServerEventLobbyLeft
- type ServerGameInit
- type ServerGuildListPage
- type ServerInboxList
- type ServerInboxNotify
- type ServerLockerCombinationResponse
- type ServerLockerInventoryResponse
- type ServerLoginBonusStatus
- type ServerMailMessage
- type ServerMessage
- type ServerMessageConnect
- type ServerMessage_
- type ServerMoneyUpdate
- type ServerMultiplayerJoined
- type ServerMultiplayerLeft
- type ServerMyRoomEntered
- type ServerMyRoomLayout
- type ServerOpponentQuit
- type ServerPangBalanceData
- type ServerPlayerCharacterResponse
- type ServerPlayerData
- type ServerPlayerDataResponse
- type ServerPlayerEquipment
- type ServerPlayerEquipmentResponse
- type ServerPlayerEquipmentUpdated
- type ServerPlayerFirstShotReady
- type ServerPlayerHistory
- type ServerPlayerID
- type ServerPlayerInfo
- type ServerPlayerInfoResponse
- type ServerPlayerInventory
- type ServerPlayerLoadProgress
- type ServerPlayerQuitGame
- type ServerPlayerReady
- type ServerPlayerStatisticsResponse
- type ServerPointsBalance
- type ServerPurchaseItemResponse
- type ServerQuestStatus
- type ServerRareShopOpen
- type ServerRoomAction
- type ServerRoomActiveUserAnnounce
- type ServerRoomCensus
- type ServerRoomClubChangeAnnounce
- type ServerRoomEquipmentData
- type ServerRoomFinishGame
- type ServerRoomFinishHole
- type ServerRoomGameData
- type ServerRoomInfoResponse
- type ServerRoomItemUseAnnounce
- type ServerRoomJoin
- type ServerRoomLeave
- type ServerRoomList
- type ServerRoomPlayerFinished
- type ServerRoomSetWeather
- type ServerRoomSetWind
- type ServerRoomShotAnnounce
- type ServerRoomShotCometReliefAnnounce
- type ServerRoomShotEnd
- type ServerRoomShotPowerAnnounce
- type ServerRoomShotRotateAnnounce
- type ServerRoomShotSync
- type ServerRoomStartHole
- type ServerRoomStatus
- type ServerRoomUserTypingAnnounce
- type ServerScratchyMenuResponse
- type ServerTutorialStatus
- type ServerUserCensus
- type ServerUserInfo
- type ServerUserStatusUpdate
- type SyncEntry
- type UpdateCaddie
- type UpdateCharacter
- type UpdateComet
- type UpdateConsumables
- type UpdateDecoration
- type UpdatePangBalanceData
- type UpdateRewardUnknownData
- type UpdateUnknown1
- type UpdateUnknown2
- type UserCensusType
- type UserStatusChange
- type UserStatusChange204
- type UserStatusChangeMastery
- type UserStatusChangeValue
Constants ¶
const ( ChatMessageEvent = 0 GameEndEvent = 16 )
const ( GameInitTypeFull = 0 GameInitTypeMinimal = 4 )
const CensusMaxUsers = 36
Variables ¶
var ClientMessageTable = common.NewMessageTable(map[uint16]ClientMessage{ 0x0002: &ClientAuth{}, 0x0003: &ClientMessageSend{}, 0x0004: &ClientJoinChannel{}, 0x0006: &ClientGameEnd{}, 0x0007: &ClientGetUserOnlineStatus{}, 0x0008: &ClientRoomCreate{}, 0x0009: &ClientRoomJoin{}, 0x000A: &ClientRoomEdit{}, 0x000B: &ClientTutorialStart{}, 0x000C: &ClientRoomUserEquipmentChange{}, 0x000D: &ClientPlayerReady{}, 0x000E: &ClientPlayerStartGame{}, 0x000F: &ClientRoomLeave{}, 0x0011: &ClientReadyStartHole{}, 0x0012: &ClientShotCommit{}, 0x0013: &ClientShotRotate{}, 0x0014: &ClientShotMeterInput{}, 0x0015: &ClientShotPower{}, 0x0016: &ClientShotClubChange{}, 0x0017: &ClientShotItemUse{}, 0x0018: &ClientUserTypingIndicator{}, 0x0019: &ClientShotCometRelief{}, 0x001A: &ClientHoleInfo{}, 0x001B: &ClientShotSync{}, 0x001C: &ClientRoomSync{}, 0x001D: &ClientBuyItem{}, 0x0020: &ClientEquipmentUpdate{}, 0x0022: &ClientShotActiveUserAcknowledge{}, 0x0026: &ClientRoomKick{}, 0x002D: &ClientRoomInfo{}, 0x002F: &ClientGetPlayerData{}, 0x0030: &ClientPauseGame{}, 0x0031: &ClientHoleEnd{}, 0x0032: &ClientSetIdleStatus{}, 0x0033: &ClientException{}, 0x0034: &ClientFirstShotReady{}, 0x0037: &ClientLastPlayerLeaveGame{}, 0x0042: &ClientShotArrow{}, 0x0043: &ClientRequestServerList{}, 0x0048: &ClientLoadProgress{}, 0x004F: &Client004F{}, 0x0063: &ClientRoomLoungeAction{}, 0x0069: &ClientUserMacrosSet{}, 0x0081: &ClientMultiplayerJoin{}, 0x0082: &ClientMultiplayerLeave{}, 0x0088: &Client0088{}, 0x008B: &ClientRequestMessengerList{}, 0x0098: &ClientRareShopOpen{}, 0x009C: &ClientRequestPlayerHistory{}, 0x00AE: &ClientTutorialClear{}, 0x00B5: &ClientEnterMyRoom{}, 0x00B7: &ClientRequestInventory{}, 0x00C1: &Client00C1{}, 0x00CC: &ClientLockerCombinationAttempt{}, 0x00D3: &ClientLockerInventoryRequest{}, 0x00FE: &Client00FE{}, 0x0108: &ClientGuildListRequest{}, 0x012A: &ClientScratchyMenuOpen{}, 0x0140: &ClientShopJoin{}, 0x0143: &ClientRequestInboxList{}, 0x0144: &ClientRequestInboxMessage{}, 0x014B: &ClientBlackPapelPlay{}, 0x0151: &ClientQuestStatusRequest{}, 0x0157: &ClientAchievementStatusRequest{}, 0x016E: &ClientRequestDailyReward{}, 0x0176: &ClientEventLobbyJoin{}, 0x0177: &ClientEventLobbyLeave{}, 0x0184: &ClientAssistModeToggle{}, 0x0186: &ClientBigPapelPlay{}, })
var ServerMessageTable = common.NewMessageTable(map[uint16]ServerMessage{ 0x0040: &ServerEvent{}, 0x0044: &ServerPlayerData{}, 0x0046: &ServerUserCensus{}, 0x0047: &ServerRoomList{}, 0x0048: &ServerRoomCensus{}, 0x0049: &ServerRoomJoin{}, 0x004A: &ServerRoomStatus{}, 0x004B: &ServerRoomEquipmentData{}, 0x004C: &ServerRoomLeave{}, 0x004E: &Server004E{}, 0x0052: &ServerRoomGameData{}, 0x0053: &ServerRoomStartHole{}, 0x0055: &ServerRoomShotAnnounce{}, 0x0056: &ServerRoomShotRotateAnnounce{}, 0x0058: &ServerRoomShotPowerAnnounce{}, 0x0059: &ServerRoomClubChangeAnnounce{}, 0x005A: &ServerRoomItemUseAnnounce{}, 0x005B: &ServerRoomSetWind{}, 0x005D: &ServerRoomUserTypingAnnounce{}, 0x0060: &ServerRoomShotCometReliefAnnounce{}, 0x0061: &ServerPlayerQuitGame{}, 0x0063: &ServerRoomActiveUserAnnounce{}, 0x0064: &ServerRoomShotSync{}, 0x0065: &ServerRoomFinishHole{}, 0x0066: &ServerRoomFinishGame{}, 0x0068: &ServerPurchaseItemResponse{}, 0x006B: &ServerPlayerEquipmentUpdated{}, 0x0070: &ServerCharData{}, 0x0072: &ServerPlayerEquipment{}, 0x0073: &ServerPlayerInventory{}, 0x0076: &ServerGameInit{}, 0x0077: &Server0077{}, 0x0078: &ServerPlayerReady{}, 0x0086: &ServerRoomInfoResponse{}, 0x0089: &ServerPlayerDataResponse{}, 0x0090: &ServerPlayerFirstShotReady{}, 0x0092: &ServerOpponentQuit{}, 0x0095: &ServerMoneyUpdate{}, 0x0096: &ServerPointsBalance{}, 0x009E: &ServerRoomSetWeather{}, 0x009F: &ServerChannelList{}, 0x00A1: &ServerUserInfo{}, 0x00A3: &ServerPlayerLoadProgress{}, 0x00C4: &ServerRoomAction{}, 0x00C8: &ServerPangBalanceData{}, 0x00CC: &ServerRoomShotEnd{}, 0x00F1: &ServerMessageConnect{}, 0x00F5: &ServerMultiplayerJoined{}, 0x00F6: &ServerMultiplayerLeft{}, 0x00FB: &ServerBlackPapelResponse{}, 0x010B: &ServerRareShopOpen{}, 0x010E: &ServerPlayerHistory{}, 0x011F: &ServerTutorialStatus{}, 0x012B: &ServerMyRoomEntered{}, 0x012D: &ServerMyRoomLayout{}, 0x0151: &Server0151{}, 0x0156: &ServerPlayerEquipmentResponse{}, 0x0157: &ServerPlayerInfoResponse{}, 0x0158: &ServerPlayerStatisticsResponse{}, 0x015E: &ServerPlayerCharacterResponse{}, 0x0168: &ServerPlayerInfo{}, 0x016A: &Server016A{}, 0x016C: &ServerLockerCombinationResponse{}, 0x0170: &ServerLockerInventoryResponse{}, 0x0199: &ServerRoomPlayerFinished{}, 0x01BC: &ServerGuildListPage{}, 0x01EB: &ServerScratchyMenuResponse{}, 0x01F6: &Server01F6{}, 0x020E: &Server020E{}, 0x0210: &ServerInboxNotify{}, 0x0211: &ServerInboxList{}, 0x0212: &ServerMailMessage{}, 0x0216: &ServerUserStatusUpdate{}, 0x021B: &ServerBlackPapelWinnings{}, 0x021D: &ServerAchievementProgress{}, 0x0225: &ServerQuestStatus{}, 0x022C: &ServerAchievementUnknownResponse{}, 0x022D: &ServerAchievementStatusResponse{}, 0x0230: &Server0230{}, 0x0231: &Server0231{}, 0x0248: &ServerLoginBonusStatus{}, 0x0250: &ServerEventLobbyJoined{}, 0x0251: &ServerEventLobbyLeft{}, 0x026A: &ServerAssistModeToggled{}, 0x026C: &ServerBigPapelWinnings{}, })
Functions ¶
This section is empty.
Types ¶
type Achievement ¶ added in v0.0.3
type AchievementGroup ¶ added in v0.0.3
type AchievementGroup struct { GroupID uint32 ID uint32 Count uint32 `struct:"sizeof=Achievements"` Achievements []Achievement }
type AchievementProgress ¶
type CaddieUpdated ¶ added in v0.0.3
type CaddieUpdated struct {
CaddieID uint32
}
type CharacterUpdated ¶ added in v0.0.3
type CharacterUpdated struct {
CharacterID uint32
}
type ChatMessage ¶
ChatMessage contains a global chat message
type Client004F ¶ added in v0.0.3
type Client004F struct {
ClientMessage_
}
Client004F is sent when the client gags you from chatting due to typing too much or too many obscenities
type Client00C1 ¶ added in v0.0.3
type Client00C1 struct { ClientMessage_ Unknown byte }
type Client00FE ¶
type Client00FE struct {
ClientMessage_
}
type ClientAchievementStatusRequest ¶ added in v0.0.3
type ClientAchievementStatusRequest struct { ClientMessage_ UserID uint32 }
ClientAchievementStatusRequest requests Achievement Status for a user.
type ClientAssistModeToggle ¶
type ClientAssistModeToggle struct {
ClientMessage_
}
ClientAssistModeToggle is sent when assist mode is toggled.
type ClientAuth ¶
type ClientAuth struct { ClientMessage_ Username common.PString Unknown1 uint32 Unknown2 uint32 Unknown3 uint16 LoginKey common.PString Version common.PString }
ClientAuth is a message sent to authenticate a session.
type ClientBigPapelPlay ¶ added in v0.0.3
type ClientBigPapelPlay struct {
ClientMessage_
}
type ClientBlackPapelPlay ¶ added in v0.0.3
type ClientBlackPapelPlay struct {
ClientMessage_
}
type ClientBuyItem ¶
type ClientBuyItem struct { ClientMessage_ Unknown1 byte NumItems uint16 `struct:"sizeof=Items"` Items []PurchaseItem }
ClientBuyItem is sent by the client to buy an item from the shop.
type ClientEnterMyRoom ¶ added in v0.0.3
type ClientEnterMyRoom struct { ClientMessage_ UserID uint32 RoomUserID uint32 }
type ClientEquipmentUpdate ¶
type ClientEquipmentUpdate struct { ClientMessage_ Type uint8 CharParts *pangya.PlayerCharacterData `struct-if:"Type == 0"` Caddie *UpdateCaddie `struct-if:"Type == 1"` Consumables *UpdateConsumables `struct-if:"Type == 2"` Comet *UpdateComet `struct-if:"Type == 3"` Decoration *UpdateDecoration `struct-if:"Type == 4"` Character *UpdateCharacter `struct-if:"Type == 5"` Unknown1 *UpdateUnknown1 `struct-if:"Type == 8"` Unknown2 *UpdateUnknown2 `struct-if:"Type == 9"` }
ClientEquipmentUpdate updates the user's equipment.
type ClientEventLobbyJoin ¶
type ClientEventLobbyJoin struct {
ClientMessage_
}
ClientEventLobbyJoin is the message sent when joining the event lobby.
type ClientEventLobbyLeave ¶
type ClientEventLobbyLeave struct {
ClientMessage_
}
ClientEventLobbyLeave is sent when the client exits the event lobby.
type ClientException ¶
type ClientException struct { ClientMessage_ Empty byte Message common.PString }
ClientException is a message sent when the client encounters an error.
type ClientFirstShotReady ¶
type ClientFirstShotReady struct {
ClientMessage_
}
type ClientGameEnd ¶
type ClientGameEnd struct {
ClientMessage_
}
ClientGameEnd contains information after the end of a game.
type ClientGetPlayerData ¶ added in v0.0.3
type ClientGetPlayerData struct { ClientMessage_ UserID uint32 Request byte }
ClientGetPlayerData is a message sent by the client to request the client state.
type ClientGetUserOnlineStatus ¶
type ClientGetUserOnlineStatus struct { ClientMessage_ Unknown uint8 Username common.PString }
ClientGetUserOnlineStatus is sent to get information of a user.
type ClientGuildListRequest ¶ added in v0.0.3
type ClientGuildListRequest struct { ClientMessage_ Page uint32 }
type ClientHoleEnd ¶
type ClientHoleEnd struct { ClientMessage_ Stats pangya.PlayerStats }
type ClientHoleInfo ¶ added in v0.0.3
type ClientJoinChannel ¶
type ClientJoinChannel struct { ClientMessage_ ChannelID byte }
ClientJoinChannel is a message sent when the client joins a channel.
type ClientLastPlayerLeaveGame ¶ added in v0.0.3
type ClientLastPlayerLeaveGame struct {
ClientMessage_
}
ClientLastPlayerLeaveGame is sent when the last player leaves a room. We can't rely on it for much; it just tells us the client thinks it shouldn't be punished for leaving the room since everyone else has already left. In the future it may need to be rejected in some cases.
type ClientLoadProgress ¶
type ClientLoadProgress struct { ClientMessage_ Progress uint8 }
type ClientLockerCombinationAttempt ¶ added in v0.0.3
type ClientLockerCombinationAttempt struct { ClientMessage_ Combination common.PString }
type ClientLockerInventoryRequest ¶ added in v0.0.3
type ClientLockerInventoryRequest struct {
ClientMessage_
}
type ClientMessage ¶
type ClientMessageSend ¶
type ClientMessageSend struct { ClientMessage_ Nickname common.PString Message common.PString }
ClientMessageSend is sent when the client sends a public chat message.
type ClientMessage_ ¶
type ClientMessage_ struct{}
type ClientMultiplayerJoin ¶
type ClientMultiplayerJoin struct {
ClientMessage_
}
ClientMultiplayerJoin is the message sent when joining multiplayer.
type ClientMultiplayerLeave ¶
type ClientMultiplayerLeave struct {
ClientMessage_
}
ClientMultiplayerLeave is sent when the client exits multiplayer mode.
type ClientPauseGame ¶
type ClientPauseGame struct { ClientMessage_ Pause bool `struct:"byte"` }
type ClientPlayerReady ¶
type ClientPlayerReady struct { ClientMessage_ State byte }
ClientPlayerReady is sent by the client when they are ready/to start the game.
type ClientPlayerStartGame ¶
type ClientPlayerStartGame struct { ClientMessage_ Unknown uint32 }
ClientPlayerStartGame
type ClientQuestStatusRequest ¶ added in v0.0.3
type ClientQuestStatusRequest struct {
ClientMessage_
}
type ClientRareShopOpen ¶ added in v0.0.3
type ClientRareShopOpen struct {
ClientMessage_
}
ClientRareShopOpen notifies the server if a user opens the rare shop menu.
type ClientReadyStartHole ¶
type ClientReadyStartHole struct {
ClientMessage_
}
type ClientRequestDailyReward ¶
type ClientRequestDailyReward struct {
ClientMessage_
}
ClientRequestDailyReward is the message sent to request the daily reward.
type ClientRequestInboxList ¶
type ClientRequestInboxList struct { ClientMessage_ PageNum uint32 }
ClientRequestInboxList is the message sent to request the inbox.
type ClientRequestInboxMessage ¶
type ClientRequestInboxMessage struct { ClientMessage_ MessageID uint32 }
ClientRequestInboxMessage is sent by the client to retrieve a message from the inbox.
type ClientRequestInventory ¶ added in v0.0.3
type ClientRequestInventory struct { ClientMessage_ UserID uint32 Unknown byte }
type ClientRequestMessengerList ¶
type ClientRequestMessengerList struct {
ClientMessage_
}
ClientRequestMessengerList is a message sent to request the current list of message servers.
type ClientRequestPlayerHistory ¶
type ClientRequestPlayerHistory struct {
ClientMessage_
}
ClientRequestPlayerHistory is an unknown message.
type ClientRequestServerList ¶
type ClientRequestServerList struct {
ClientMessage_
}
ClientRequestServerList is a message sent to request the current list of game servers.
type ClientRoomCreate ¶
type ClientRoomCreate struct { ClientMessage_ Unknown byte ShotTimerMS uint32 GameTimerMS uint32 MaxUsers uint8 RoomType byte NumHoles byte Course byte HoleProgression byte Unknown2 [4]byte RoomName common.PString Password common.PString Unknown3 [4]byte }
ClientRoomCreate is sent by the client when creating a room.
type ClientRoomEdit ¶
type ClientRoomEdit struct { ClientMessage_ Unknown uint16 NumChanges uint8 `struct:"sizeof=Changes"` Changes []gamemodel.RoomSettingsChange }
ClientRoomEdit is sent when the client changes room settings.
type ClientRoomInfo ¶
type ClientRoomInfo struct { ClientMessage_ RoomNumber uint16 }
type ClientRoomJoin ¶
type ClientRoomJoin struct { ClientMessage_ RoomNumber int16 RoomPassword common.PString }
ClientRoomJoin is sent by the client when joining a room.
type ClientRoomKick ¶
type ClientRoomKick struct { ClientMessage_ ConnID uint32 }
type ClientRoomLeave ¶
type ClientRoomLeave struct { ClientMessage_ Unknown byte RoomNumber int16 Unknown2 uint32 Unknown3 uint32 Unknown4 uint32 Unknown5 uint32 }
ClientRoomLeave is sent by the client when leaving a room back to lobby
type ClientRoomLoungeAction ¶
type ClientRoomLoungeAction struct { ClientMessage_ gamemodel.RoomAction }
ClientRoomLoungeAction
type ClientRoomSync ¶
type ClientRoomSync struct { ClientMessage_ Unknown1 uint8 EntryCount uint8 Entries []SyncEntry }
type ClientRoomUserEquipmentChange ¶
type ClientRoomUserEquipmentChange struct {
ClientMessage_
}
ClientRoomUserEquipmentChange is sent when a user's equipment changes in a room.
type ClientScratchyMenuOpen ¶ added in v0.0.3
type ClientScratchyMenuOpen struct {
ClientMessage_
}
type ClientSetIdleStatus ¶
type ClientSetIdleStatus struct { ClientMessage_ Idle bool `struct:"byte"` }
ClientSetIdleStatus sets whether or not the client is idle in a room.
type ClientShopJoin ¶
type ClientShopJoin struct {
ClientMessage_
}
ClientShopJoin is an unknown message.
type ClientShotActiveUserAcknowledge ¶
type ClientShotActiveUserAcknowledge struct {
ClientMessage_
}
type ClientShotArrow ¶
type ClientShotArrow struct {
ClientMessage_
}
type ClientShotClubChange ¶
type ClientShotClubChange struct { ClientMessage_ Club uint8 }
type ClientShotCometRelief ¶
type ClientShotCometRelief struct { ClientMessage_ X, Y, Z float32 }
type ClientShotCommit ¶
type ClientShotItemUse ¶
type ClientShotItemUse struct { ClientMessage_ ItemTypeID uint32 }
type ClientShotMeterInput ¶
type ClientShotMeterInput struct { ClientMessage_ Sequence uint8 Value float32 }
type ClientShotPower ¶
type ClientShotPower struct { ClientMessage_ Level uint8 }
type ClientShotRotate ¶
type ClientShotRotate struct { ClientMessage_ Angle float32 }
type ClientShotSync ¶
type ClientShotSync struct { ClientMessage_ Data gamemodel.ShotSyncData Unknown [16]byte }
type ClientTutorialClear ¶
type ClientTutorialClear struct {
ClientMessage_
}
ClientTutorialClear is an unknown message.
type ClientTutorialStart ¶
type ClientTutorialStart struct {
ClientMessage_
}
ClientTutorialStart is sent when starting a tutorial.
type ClientUserMacrosSet ¶
type ClientUserMacrosSet struct { ClientMessage_ MacroList pangya.MacroList }
ClientUserMacrosSet is a message sent to set the user's macros.
type ClientUserTypingIndicator ¶
type ClientUserTypingIndicator struct { ClientMessage_ Status int16 // 1 = started, -1 = stopped }
type CometUpdated ¶ added in v0.0.3
type ConnectMessage ¶
ConnectMessage is the message sent upon connecting.
func (*ConnectMessage) SetKey ¶
func (c *ConnectMessage) SetKey(key uint8)
type ConsumablesUpdated ¶ added in v0.0.3
type ConsumablesUpdated struct {
ItemTypeID [10]uint32
}
type DecorationUpdated ¶ added in v0.0.3
type EquipmentUpdateType ¶ added in v0.0.3
type EquipmentUpdateType uint8
const ( UpdatedCharParts EquipmentUpdateType = 0 UpdatedCaddie EquipmentUpdateType = 1 UpdatedConsumables EquipmentUpdateType = 2 UpdatedComet EquipmentUpdateType = 3 UpdatedDecoration EquipmentUpdateType = 4 UpdatedCharacter EquipmentUpdateType = 5 )
type FurnitureItem ¶ added in v0.0.3
type GameInitFull ¶
type GameInitFull struct { NumPlayers byte `struct:"sizeof=Players"` Players []GamePlayer }
type GameInitMinimal ¶
type GameInitMinimal struct { Unknown uint32 Time pangya.SystemTime }
type GameInitType ¶
type GameInitType byte
type GamePlayer ¶
type GamePlayer struct { Number uint16 PlayerData pangya.PlayerData StartTime pangya.SystemTime NumCards uint8 }
type InboxMessage ¶
type InventoryItem ¶ added in v0.0.3
type MailMessage ¶
type MessageAttachment ¶
type MoneyUpdateType ¶
type MoneyUpdateType uint16
const ( MoneyUpdateRewardUnknown MoneyUpdateType = 2 MoneyUpdatePangBalance MoneyUpdateType = 273 )
type PlayerGameResult ¶
type PlayerMainData ¶
type PlayerMainData struct { ClientVersion common.PString ServerVersion common.PString Game uint16 PlayerData pangya.PlayerData Unknown2 [321]byte }
PlayerMainData contains the main player information, sent after logging in.
type PurchaseItem ¶
type RecentPlayer ¶
type RoomCensusListAdd ¶
type RoomCensusListAdd struct {
User gamemodel.RoomPlayerEntry
}
type RoomCensusListChange ¶
type RoomCensusListChange struct { ConnID uint32 User gamemodel.RoomPlayerEntry }
type RoomCensusListRemove ¶
type RoomCensusListRemove struct {
ConnID uint32
}
type RoomCensusListSet ¶
type RoomCensusListSet struct { PlayerCount uint8 `struct:"sizeof=PlayerList"` PlayerList []gamemodel.RoomPlayerEntry Unknown byte }
type RoomListRoom ¶
type RoomListRoom struct { Name string `struct:"[64]byte"` Public bool `struct:"byte"` Open bool `struct:"uint16"` UserMax uint8 UserCount uint8 Key [16]byte // Known thanks to SuperSS; XOR pad for shot sync data Unknown3 uint8 Unknown4 uint8 NumHoles uint8 HoleProgression uint8 Number int16 Unknown5 uint8 Course uint8 ShotTimerMS uint32 GameTimerMS uint32 Flags uint32 Unknown6 [68]byte Unknown7 uint32 Unknown8 uint32 OwnerID uint32 Class byte ArtifactID uint32 Unknown9 uint32 EventNum uint32 EventNumTop uint32 EventShotTimerMS uint32 Unknown10 uint32 }
type Server004E ¶
type Server004E struct { ServerMessage_ Unknown []byte }
type Server0077 ¶
type Server0077 struct { ServerMessage_ Unknown uint32 }
type Server0151 ¶
type Server0151 struct { ServerMessage_ Unknown []byte }
type Server016A ¶
type Server016A struct { ServerMessage_ Unknown byte Unknown2 uint32 }
type Server01F6 ¶
type Server01F6 struct { ServerMessage_ Unknown []byte }
type Server020E ¶ added in v0.0.3
type Server020E struct { ServerMessage_ Unknown [8]byte }
type Server0230 ¶
type Server0230 struct {
ServerMessage_
}
type Server0231 ¶
type Server0231 struct {
ServerMessage_
}
type ServerAchievementProgress ¶
type ServerAchievementProgress struct { ServerMessage_ Status uint32 Remaining uint32 Count uint32 `struct:"sizeof=Achievements"` Achievements []AchievementProgress }
type ServerAchievementStatusResponse ¶ added in v0.0.3
type ServerAchievementStatusResponse struct { ServerMessage_ Status uint32 Remaining uint32 Count uint32 `struct:"sizeof=Groups"` Groups []AchievementGroup }
type ServerAchievementUnknownResponse ¶ added in v0.0.3
type ServerAchievementUnknownResponse struct { ServerMessage_ UnknownA [4]byte }
type ServerAssistModeToggled ¶
type ServerAssistModeToggled struct { ServerMessage_ Unknown uint32 }
type ServerBigPapelWinnings ¶ added in v0.0.3
type ServerBigPapelWinnings struct { ServerMessage_ Status uint32 BlackPapelInvTicketSlot uint32 UniqueItemsWon uint32 `struct:"sizeof=Items"` Items []ServerBlackPapelItems PangsRemaining uint64 CookiesRemaining uint64 }
type ServerBlackPapelItems ¶ added in v0.0.3
type ServerBlackPapelResponse ¶ added in v0.0.3
type ServerBlackPapelResponse struct { ServerMessage_ RemainingTurns int32 UnknownA int32 }
type ServerBlackPapelWinnings ¶ added in v0.0.3
type ServerBlackPapelWinnings struct { ServerMessage_ Status uint32 BlackPapelInvTicketSlot uint32 UniqueItemsWon uint32 `struct:"sizeof=Items"` Items []ServerBlackPapelItems PangsRemaining uint64 CookiesRemaining uint64 // not filled in but seems correct }
type ServerChannelList ¶
type ServerChannelList struct { ServerMessage_ Count byte `struct:"sizeof=Servers"` Servers []pangya.ServerEntry }
ServerChannelList is a message that contains a list of all of the channels for a given server. Channels are isolated game zones within a region.
type ServerCharData ¶
type ServerCharData struct { ServerMessage_ Count1 uint16 `struct:"sizeof=Characters"` Count2 uint16 `struct:"sizeof=Characters"` Characters []pangya.PlayerCharacterData }
ServerCharData contains the user's characters.
type ServerConn ¶
type ServerConn = common.ServerConn[ClientMessage, ServerMessage]
type ServerEvent ¶
type ServerEvent struct { ServerMessage_ Type byte Data ChatMessage GameEnd *GameEnd `struct-if:"Type == 16"` }
ServerEvent is a message that contains events.
type ServerEventLobbyJoined ¶
type ServerEventLobbyJoined struct {
ServerMessage_
}
type ServerEventLobbyLeft ¶
type ServerEventLobbyLeft struct {
ServerMessage_
}
type ServerGameInit ¶
type ServerGameInit struct { ServerMessage_ SubType byte Full *GameInitFull `struct-if:"SubType == 0"` Minimal *GameInitMinimal `struct-if:"SubType == 4"` }
type ServerGuildListPage ¶ added in v0.0.3
type ServerInboxList ¶
type ServerInboxList struct { ServerMessage_ Status uint32 PageNum uint32 NumPages uint32 NumMessages uint32 `struct:"sizeof=Messages"` Messages []InboxMessage }
type ServerInboxNotify ¶
type ServerInboxNotify struct { ServerMessage_ Unknown []byte }
ServerInboxNotify is unimplemented.
type ServerLockerCombinationResponse ¶ added in v0.0.3
type ServerLockerCombinationResponse struct { ServerMessage_ Status uint32 }
type ServerLockerInventoryResponse ¶ added in v0.0.3
type ServerLockerInventoryResponse struct { ServerMessage_ Unknown uint32 Status uint32 }
type ServerLoginBonusStatus ¶
type ServerLoginBonusStatus struct { ServerMessage_ Unknown []byte }
type ServerMailMessage ¶
type ServerMailMessage struct { ServerMessage_ Status uint32 Message MailMessage }
type ServerMessage ¶
type ServerMessageConnect ¶
type ServerMessageConnect struct { ServerMessage_ Unknown byte }
ServerMessageConnect seems to make the client connect to the message server. TODO: need to do more reverse engineering effort
type ServerMessage_ ¶
type ServerMessage_ struct{}
type ServerMoneyUpdate ¶
type ServerMoneyUpdate struct { ServerMessage_ Type uint16 RewardUnknown *UpdateRewardUnknownData `struct-if:"Type == 2"` PangBalance *UpdatePangBalanceData `struct-if:"Type == 273"` }
type ServerMultiplayerJoined ¶
type ServerMultiplayerJoined struct {
ServerMessage_
}
type ServerMultiplayerLeft ¶
type ServerMultiplayerLeft struct {
ServerMessage_
}
type ServerMyRoomEntered ¶ added in v0.0.3
type ServerMyRoomEntered struct { ServerMessage_ Unknown uint32 UserID uint32 Unknown2 uint32 Unknown3 [99]byte }
type ServerMyRoomLayout ¶ added in v0.0.3
type ServerMyRoomLayout struct { ServerMessage_ Unknown uint32 FurnitureCount uint16 Furniture []FurnitureItem }
type ServerOpponentQuit ¶
type ServerOpponentQuit struct {
ServerMessage_
}
type ServerPangBalanceData ¶ added in v0.0.3
type ServerPangBalanceData struct { ServerMessage_ PangsRemaining uint64 PangsSpent uint64 }
ServerPangBalanceData is sent after a pang purchase succeeds. Sometimes Pang Spent is not set like on Black Papel Transactions.
type ServerPlayerCharacterResponse ¶ added in v0.0.3
type ServerPlayerCharacterResponse struct { ServerMessage_ UserID uint32 Character pangya.PlayerCharacterData }
type ServerPlayerData ¶ added in v0.0.3
type ServerPlayerData struct { ServerMessage_ SubType byte MainData *PlayerMainData `struct-if:"SubType == 0"` }
ServerPlayerData contains important state information.
type ServerPlayerDataResponse ¶ added in v0.0.3
type ServerPlayerDataResponse struct { ServerMessage_ Status uint32 Request uint8 UserID uint32 }
type ServerPlayerEquipment ¶ added in v0.0.3
type ServerPlayerEquipment struct { ServerMessage_ Equipment pangya.PlayerEquipment }
type ServerPlayerEquipmentResponse ¶ added in v0.0.3
type ServerPlayerEquipmentResponse struct { ServerMessage_ Request uint8 UserID uint32 Equipment pangya.PlayerEquipment }
type ServerPlayerEquipmentUpdated ¶ added in v0.0.3
type ServerPlayerEquipmentUpdated struct { ServerMessage_ Status uint8 Type uint8 CharParts *pangya.PlayerCharacterData `struct-if:"Type == 0"` Caddie *CaddieUpdated `struct-if:"Type == 1"` Consumables *ConsumablesUpdated `struct-if:"Type == 2"` Comet *CometUpdated `struct-if:"Type == 3"` Decoration *DecorationUpdated `struct-if:"Type == 4"` Character *CharacterUpdated `struct-if:"Type == 5"` }
type ServerPlayerFirstShotReady ¶
type ServerPlayerFirstShotReady struct {
ServerMessage_
}
type ServerPlayerHistory ¶
type ServerPlayerHistory struct { ServerMessage_ RecentPlayers [5]RecentPlayer }
type ServerPlayerID ¶
type ServerPlayerID struct { ServerMessage_ Empty byte PlayerID uint32 Unknown [239]byte }
ServerPlayerID is a message that contains the PlayerID and some other unknown data.
type ServerPlayerInfo ¶ added in v0.0.3
type ServerPlayerInfo struct { ServerMessage_ Player gamemodel.RoomPlayerEntry }
type ServerPlayerInfoResponse ¶ added in v0.0.3
type ServerPlayerInfoResponse struct { ServerMessage_ Request uint8 UserID uint32 RoomID uint16 Info pangya.PlayerInfo Unknown uint32 }
type ServerPlayerInventory ¶ added in v0.0.3
type ServerPlayerInventory struct { ServerMessage_ Remaining uint16 Count uint16 `struct:"sizeof=Inventory"` Inventory []InventoryItem }
type ServerPlayerLoadProgress ¶
type ServerPlayerLoadProgress struct { ServerMessage_ ConnID uint32 Progress uint8 }
type ServerPlayerQuitGame ¶ added in v0.0.3
type ServerPlayerQuitGame struct { ServerMessage_ ConnID uint32 }
type ServerPlayerReady ¶
type ServerPlayerReady struct { ServerMessage_ ConnID uint32 State byte }
type ServerPlayerStatisticsResponse ¶ added in v0.0.3
type ServerPlayerStatisticsResponse struct { ServerMessage_ Request uint8 UserID uint32 Stats pangya.PlayerStats }
type ServerPointsBalance ¶ added in v0.0.3
type ServerPointsBalance struct { ServerMessage_ Points uint64 }
type ServerPurchaseItemResponse ¶ added in v0.0.3
type ServerPurchaseItemResponse struct { ServerMessage_ Status uint32 Pang uint64 Points uint64 }
type ServerQuestStatus ¶ added in v0.0.3
type ServerRareShopOpen ¶ added in v0.0.3
type ServerRareShopOpen struct { ServerMessage_ UnknownA int32 UnknownB int32 UnknownC uint32 }
type ServerRoomAction ¶
type ServerRoomAction struct { ServerMessage_ ConnID uint32 gamemodel.RoomAction }
type ServerRoomActiveUserAnnounce ¶
type ServerRoomActiveUserAnnounce struct { ServerMessage_ ConnID uint32 }
type ServerRoomCensus ¶
type ServerRoomCensus struct { ServerMessage_ Type byte Unknown int16 ListSet *RoomCensusListSet `struct-if:"Type == 0"` ListAdd *RoomCensusListAdd `struct-if:"Type == 1"` ListRemove *RoomCensusListRemove `struct-if:"Type == 2"` ListChange *RoomCensusListChange `struct-if:"Type == 3"` }
ServerRoomCensus reports on the users in a game room.
type ServerRoomClubChangeAnnounce ¶
type ServerRoomClubChangeAnnounce struct { ServerMessage_ ConnID uint32 Club uint8 }
type ServerRoomEquipmentData ¶
type ServerRoomEquipmentData struct { ServerMessage_ Unknown []byte }
type ServerRoomFinishGame ¶
type ServerRoomFinishGame struct { ServerMessage_ NumPlayers uint8 Standings []PlayerGameResult `struct:"sizefrom=NumPlayers"` }
type ServerRoomFinishHole ¶
type ServerRoomFinishHole struct {
ServerMessage_
}
type ServerRoomGameData ¶
type ServerRoomInfoResponse ¶
type ServerRoomInfoResponse struct { ServerMessage_ RoomInfo gamemodel.RoomInfo }
type ServerRoomItemUseAnnounce ¶
type ServerRoomItemUseAnnounce struct { ServerMessage_ ItemTypeID uint32 Unknown uint32 ConnID uint32 }
type ServerRoomJoin ¶
type ServerRoomJoin struct { ServerMessage_ Status uint16 RoomName string `struct:"[64]byte"` Unknown2 [25]byte RoomNumber int16 Unknown3 [111]byte EventNumber uint32 Unknown4 uint32 }
ServerRoomJoin is sent when a room is joined.
type ServerRoomLeave ¶
type ServerRoomLeave struct { ServerMessage_ RoomNumber int16 }
type ServerRoomList ¶
type ServerRoomList struct { ServerMessage_ Count uint8 `struct:"sizeof=RoomList"` Type ListType Unknown uint16 RoomList []RoomListRoom }
ServerRoomList contains information about rooms currently open in multiplayer.
type ServerRoomPlayerFinished ¶ added in v0.0.3
type ServerRoomPlayerFinished struct {
ServerMessage_
}
type ServerRoomSetWeather ¶
type ServerRoomSetWeather struct { ServerMessage_ Weather uint16 Unknown uint8 }
type ServerRoomSetWind ¶
type ServerRoomSetWind struct { ServerMessage_ Wind uint8 Unknown uint8 Heading uint16 Reset bool `struct:"bool"` }
type ServerRoomShotAnnounce ¶
type ServerRoomShotCometReliefAnnounce ¶
type ServerRoomShotCometReliefAnnounce struct { ServerMessage_ ConnID uint32 X, Y, Z float32 }
type ServerRoomShotEnd ¶
type ServerRoomShotEnd struct { ServerMessage_ ConnID uint32 }
type ServerRoomShotPowerAnnounce ¶
type ServerRoomShotPowerAnnounce struct { ServerMessage_ ConnID uint32 Level uint8 }
type ServerRoomShotRotateAnnounce ¶
type ServerRoomShotRotateAnnounce struct { ServerMessage_ ConnID uint32 Angle float32 }
type ServerRoomShotSync ¶
type ServerRoomShotSync struct { ServerMessage_ Data gamemodel.ShotSyncData }
type ServerRoomStartHole ¶
type ServerRoomStartHole struct { ServerMessage_ ConnID uint32 }
type ServerRoomStatus ¶
type ServerRoomStatus struct { ServerMessage_ Unknown uint16 RoomType byte Course byte NumHoles byte HoleProgression byte NaturalWind uint32 MaxUsers byte Unknown2 uint16 ShotTimerMS uint32 GameTimerMS uint32 Flags uint32 Owner bool `struct:"byte"` RoomName common.PString }
ServerRoomStatus is sent when a room's settings or status changes.
type ServerRoomUserTypingAnnounce ¶
type ServerRoomUserTypingAnnounce struct { ServerMessage_ ConnID uint32 Status int16 }
type ServerScratchyMenuResponse ¶ added in v0.0.3
type ServerScratchyMenuResponse struct { ServerMessage_ Status uint32 Unknown uint8 }
type ServerTutorialStatus ¶
type ServerTutorialStatus struct { ServerMessage_ Unknown [6]byte }
type ServerUserCensus ¶
type ServerUserCensus struct { ServerMessage_ Type UserCensusType Count uint8 `struct:"sizeof=PlayerList"` PlayerList []gamemodel.LobbyPlayer }
ServerUserCensus contains information about users currently online in multiplayer
type ServerUserInfo ¶
type ServerUserInfo struct { ServerMessage_ ResponseCode uint8 PlayerID uint32 UserInfo pangya.PlayerInfo }
ServerUserInfo contains requested user information.
type ServerUserStatusUpdate ¶
type ServerUserStatusUpdate struct { ServerMessage_ DateTimeUnix uint32 Count uint32 Changes []UserStatusChange }
type UpdateCaddie ¶
type UpdateCaddie struct {
CaddieID uint32
}
type UpdateCharacter ¶
type UpdateCharacter struct {
CharacterID uint32
}
type UpdateComet ¶
type UpdateComet struct {
ItemTypeID uint32
}
type UpdateConsumables ¶
type UpdateConsumables struct {
ItemTypeID [10]uint32
}
type UpdateDecoration ¶
type UpdatePangBalanceData ¶
type UpdateRewardUnknownData ¶
type UpdateRewardUnknownData struct {
Unknown uint16
}
type UpdateUnknown1 ¶
type UpdateUnknown1 struct {
Unknown uint32
}
type UpdateUnknown2 ¶
type UserCensusType ¶
type UserCensusType byte
UserCensusType enumerates the types of census messages.
const ( UserAdd UserCensusType = 1 UserChange UserCensusType = 2 UserRemove UserCensusType = 3 UserListSet UserCensusType = 4 UserListAppend UserCensusType = 5 )
type UserStatusChange ¶
type UserStatusChange struct { StatusChangeType byte Value *UserStatusChangeValue `struct-if:"StatusChangeType == 2"` Mastery *UserStatusChangeMastery `struct-if:"StatusChangeType == 201"` Unknown204 *UserStatusChange204 `struct-if:"StatusChangeType == 204"` }
type UserStatusChange204 ¶
type UserStatusChange204 struct {
Unknown [72]byte
}