bot

package module
v0.0.0-...-12329ce Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2020 License: GPL-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LOBBY  AuEventType = "LOBBY"
	PLAYER             = "PLAYER"
	STATE              = "STATE"
)
View Source
const (
	LOBBYSTATE      AuEventState = "0"
	LOBBYBEGINROUND              = "2"
	LOBBYMENU                    = "3"
)

Variables

View Source
var GVarManager = NewGVarManager()

Functions

func SocketEvConnectCode

func SocketEvConnectCode(s socketio.Conn, msg string) error

func SocketEvLobby

func SocketEvLobby(s socketio.Conn, msg string) error

TODO: Reflexion : Refacto en une seule fonction (Je pense qu'il faut le faire)

func SocketEvPlayer

func SocketEvPlayer(s socketio.Conn, msg interface{}) error

func SocketEvState

func SocketEvState(s socketio.Conn, msg string) error

func SocketServer

func SocketServer()

Types

type AmongUsPlayerEvent

type AmongUsPlayerEvent struct {
	Action       AuEventPlayer `json:"Action"`
	Name         string        `json:Name`
	IsDead       bool          `json:"IsDead"`
	Disconnected bool          `json:"Disconnected"`
	Color        ColorPlayer   `json:"Color"`
}

{"Action":4,"Name":"jejelaterr","IsDead":false,"Disconnected":false,"Color":7}

type AuEventPlayer

type AuEventPlayer int
const (
	CHANGECOLOR AuEventPlayer = iota
	ISDEAD
)

type AuEventState

type AuEventState string

type AuEventType

type AuEventType string

type AuPlayer

type AuPlayer struct {
	Name     string
	LinkedTo string
	// contains filtered or unexported fields
}

func (*AuPlayer) ChangeColor

func (player *AuPlayer) ChangeColor(color ColorPlayer) error

func (*AuPlayer) IsAlive

func (auPlayer *AuPlayer) IsAlive() bool

func (*AuPlayer) Mute

func (player *AuPlayer) Mute(wantMute bool)

func (*AuPlayer) SetIsAlive

func (auPlayer *AuPlayer) SetIsAlive(isAlive bool)

func (*AuPlayer) UnMute

func (player *AuPlayer) UnMute()

type AuPlayerColor

type AuPlayerColor int

type AuPlayers

type AuPlayers struct {
	AuPlayers map[string]*AuPlayer
	// contains filtered or unexported fields
}

func NewAuPlayers

func NewAuPlayers(playerEntities PlayerEntities) *AuPlayers

func (AuPlayers) AddAuPlayer

func (auplayers AuPlayers) AddAuPlayer(name string) *AuPlayer

func (AuPlayers) DeleteAuPlayer

func (auplayers AuPlayers) DeleteAuPlayer(name string)

func (AuPlayers) GetAuPlayer

func (auplayers AuPlayers) GetAuPlayer(name string) *AuPlayer

func (AuPlayers) Range

func (auplayers AuPlayers) Range() <-chan *AuPlayer

func (AuPlayers) UpdateAuPlayer

func (auplayers AuPlayers) UpdateAuPlayer(name string, newName string)

type ColorPlayer

type ColorPlayer int
const (
	YELLOW ColorPlayer = iota
	GREEN
)

type DcUser

type DcUser struct {
	Name      string
	DiscordId string
	IsLinked  bool
}

func NewDcUser

func NewDcUser(name string, discordId string) *DcUser

type DcUsers

type DcUsers map[string]*DcUser

func NewDcUsers

func NewDcUsers() DcUsers

func (DcUsers) AddEntity

func (dcusrs DcUsers) AddEntity(entity interface{})

func (DcUsers) GetEntity

func (dcusrs DcUsers) GetEntity(id string) *DcUser

func (DcUsers) GetEntityId

func (dcusrs DcUsers) GetEntityId(name string) string

func (DcUsers) Mute

func (dcusrs DcUsers) Mute(mute bool)

func (DcUsers) RemoveEntity

func (dcusrs DcUsers) RemoveEntity(id string)

func (DcUsers) RenameEntity

func (dcusrs DcUsers) RenameEntity(id string, newName string)

type GVarManagerT

type GVarManagerT map[string]GameManager

func NewGVarManager

func NewGVarManager() GVarManagerT

func (GVarManagerT) AddGvarManager

func (gvar GVarManagerT) AddGvarManager(Id string, gamemanager GameManager) error

func (GVarManagerT) GetGameFromCode

func (gvar GVarManagerT) GetGameFromCode(code string) IGame

Typiquement le val.(*GameManagerT) c'est pas ouf mais comme jai plusieurs Range method, je ne peux pas la mettre dans l'interface a cause du mock

type Game

type Game struct {
	ChannelId     string
	DcUsers       DcUsers
	AuPlayers     *AuPlayers
	CurrentPlayer int
	AuCaptureCode string
}

TODO : fields to define

func (*Game) BeginChattingState

func (game *Game) BeginChattingState()

func (*Game) BeginRound

func (game *Game) BeginRound()

func (*Game) GetGameFromCode

func (game *Game) GetGameFromCode(code string) *Game

func (*Game) HandleAmongUsEvent

func (game *Game) HandleAmongUsEvent(msg interface{}, evtType AuEventType)

Socket.go is calling this function It's the entry point from the socket part of the code.

func (*Game) HandleLobbyEvent

func (game *Game) HandleLobbyEvent(event string)

-------- Socket handling 0 LOBYYY 1 debut de tour 2 fin de tour (speaking time) 3 menu

func (*Game) HandlePlayerEvent

func (game *Game) HandlePlayerEvent(event *AmongUsPlayerEvent)

func (*Game) HandleStateEvent

func (game *Game) HandleStateEvent(event AuEventState)

func (*Game) ResetGameState

func (game *Game) ResetGameState()

type GameManager

type GameManager interface {
	AddGame(string)
	DeleteGame(string)
}

func NewGameManager

func NewGameManager(Id string) GameManager

type GameManagerT

type GameManagerT struct {
	Games map[string]IGame
	Id    string
}

func (*GameManagerT) AddGame

func (gameman *GameManagerT) AddGame(gameId string)

func (*GameManagerT) DeleteGame

func (gameman *GameManagerT) DeleteGame(gameId string)

func (*GameManagerT) Range

func (gameman *GameManagerT) Range() <-chan IGame

type IAuPlayer

type IAuPlayer interface {
	IsAlive()
	SetIsAlive(isAlive bool)
	UnMute()
	Mute(bool)
}

type IGame

type IGame interface {
	HandleAmongUsEvent(msg interface{}, evtType AuEventType)
	HandleLobbyEvent(event string)
	HandlePlayerEvent(event *AmongUsPlayerEvent)
	ResetGameState()
	BeginRound()
	BeginChattingState()
	GetGameFromCode(string) *Game
}

func NewGame

func NewGame(channelId string, playerEntities PlayerEntities) IGame

type PlayerEntities

type PlayerEntities interface {
	GetEntityId(string) string
	Mute(bool)
	/*
		je remove cette fonction car je veux remove toutes les fonctions
		qui ne sont pas call par le monde exterieur
	*/
	//	GetEntity(string) interface{}
	AddEntity(interface{})
	RemoveEntity(string)
}

This is the only interface that AuPlayer should know about Here this represent a discord user, but in reality this could be anything, like Slack user or msn user why not ;)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL