add init world data
This commit is contained in:
@@ -21,12 +21,11 @@ type Foundry struct {
|
||||
isAuth bool
|
||||
|
||||
logger *slog.Logger
|
||||
config requests.Config
|
||||
ws *webSocketUtil
|
||||
}
|
||||
|
||||
func NewFoundry() *Foundry {
|
||||
foundry := &Foundry{config: requests.Config{SessionID: ""}, isAuth: false, ws: NewWebSocketUtil()}
|
||||
foundry := &Foundry{isAuth: false, ws: NewWebSocketUtil()}
|
||||
|
||||
// err := foundry.config.GetSessionId()
|
||||
// if err != nil {
|
||||
@@ -51,14 +50,14 @@ func (foundry *Foundry) checkAuthRespAnswer(r io.Reader, respLength int) error {
|
||||
}
|
||||
|
||||
func (foundry *Foundry) Authenticate() error {
|
||||
if foundry.config.SessionID == "" {
|
||||
err := foundry.config.GetSessionId()
|
||||
if foundry.ws.config.SessionID == "" {
|
||||
err := foundry.ws.config.GetSessionId()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
resp, err := foundry.config.PostAuthenticationData()
|
||||
resp, err := foundry.ws.config.PostAuthenticationData()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -73,9 +72,9 @@ func (foundry *Foundry) Authenticate() error {
|
||||
}
|
||||
|
||||
func (foundry *Foundry) StartListen() error {
|
||||
foundry.ws.channels = *types.InitWsChannels()
|
||||
foundry.ws.readChan = *types.InitWsChannels()
|
||||
|
||||
wsChannels := &foundry.ws.channels
|
||||
wsChannels := &foundry.ws.readChan
|
||||
defer wsChannels.Close()
|
||||
go foundry.ListenAndServeWS()
|
||||
|
||||
@@ -115,19 +114,19 @@ func (foundry *Foundry) ConnectToFoundry() error {
|
||||
if foundry == nil {
|
||||
return ErrorFoundryNotInit
|
||||
}
|
||||
ok, err := (*foundry).config.GetSessionToken()
|
||||
ok, err := (*foundry).ws.config.GetSessionToken()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if (*foundry).config.Password != "" && !ok {
|
||||
if (*foundry).ws.config.Password != "" && !ok {
|
||||
err := (*foundry).Authenticate()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
foundry.logger.Info("Successefully connected to Foundry", "host", foundry.config.Host)
|
||||
foundry.logger.Info("Successefully connected to Foundry", "host", foundry.ws.config.Host)
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -137,14 +136,14 @@ func (foundry *Foundry) ConnectToWebSocket() error {
|
||||
}
|
||||
|
||||
query := url.Values{}
|
||||
query.Add("session", foundry.config.SessionID)
|
||||
query.Add("session", foundry.ws.config.SessionID)
|
||||
query.Add("EIO", "4")
|
||||
query.Add("transport", "websocket")
|
||||
|
||||
u := url.URL{Scheme: "ws", Host: foundry.config.Host, Path: fmt.Sprintf("%s/", requests.SocketPath), RawQuery: query.Encode()}
|
||||
u := url.URL{Scheme: "ws", Host: foundry.ws.config.Host, Path: fmt.Sprintf("%s/", requests.SocketPath), RawQuery: query.Encode()}
|
||||
|
||||
wsHeader := http.Header{}
|
||||
wsHeader.Set("Cookie", fmt.Sprintf("session=%s", foundry.config.SessionID))
|
||||
wsHeader.Set("Cookie", fmt.Sprintf("session=%s", foundry.ws.config.SessionID))
|
||||
|
||||
wsConn, _, err := websocket.DefaultDialer.Dial(u.String(), wsHeader)
|
||||
if err != nil {
|
||||
@@ -173,15 +172,15 @@ func (foundry *Foundry) HandleWSRequest(msgType string) ([]byte, error) {
|
||||
}
|
||||
|
||||
func (foundry *Foundry) HasSessionId() bool {
|
||||
return foundry.config.SessionID != ""
|
||||
return foundry.ws.config.SessionID != ""
|
||||
}
|
||||
|
||||
func (foundry *Foundry) SetUpSessionId() error {
|
||||
return foundry.config.GetSessionId()
|
||||
return foundry.ws.config.GetSessionId()
|
||||
}
|
||||
|
||||
func (foundry *Foundry) SetConfig(config *requests.Config) {
|
||||
foundry.config = *config
|
||||
foundry.ws.config = *config
|
||||
}
|
||||
|
||||
func (foundry *Foundry) SetLogger(slogger *slog.Logger) {
|
||||
|
||||
Reference in New Issue
Block a user