package mppclientgo import ( "log" "net/url" "github.com/Hri7566/mpp-client-go/mpp" "github.com/gorilla/websocket" ) type Client struct { Ws *websocket.Conn started bool Uri string Token string ServerTimeOffset int User mpp.User ParticipantId string Channel mpp.Channel Ppl map[string]mpp.Participant ConnectionTime int ConnectionAttempts int DesiredChannelid string DesiredChannelSettings mpp.ChannelSettings CanConnect bool NoteBuffer []mpp.Note NoteBufferTime int Permissions any LoginInfo mpp.LoginInfo AccountInfo mpp.AccountInfo } func NewClient(uri string, token string) *Client { url := url.URL{Scheme: "wss", Host: *addr} ws, _, err := websocket.DefaultDialer.Dial(url.String(), nil) if err != nil { log.Fatal("dial:", err) } defer ws.Close() return &Client{ Uri: uri, Token: token, Channel: mpp.Channel{ Crown: mpp.Crown{}, }, Ppl: map[string]mpp.Participant{}, ConnectionAttempts: 0, CanConnect: false, NoteBuffer: []mpp.Note{}, NoteBufferTime: 0, LoginInfo: mpp.LoginInfo{}, AccountInfo: mpp.AccountInfo{}, } } func (c *Client) IsSupported() bool { return true } func (c *Client) IsConnected() bool { // TODO return true } func (c *Client) IsConnecting() bool { // TODO return true } func (c *Client) Start() { if c.started { return } c.started = true c.connect() } func (c *Client) Stop() { if !c.started { return } c.started = false c.Ws.Close() } func (c *Client) connect() { // TODO if c.Ws == nil { } } func (c *Client) bindEventListners() { // TODO } func (c *Client) Send(raw string) { // TODO } func (c *Client) SendArray(arr any) { // TODO } func (c *Client) SetChannel(id string, set any) { // TODO } func (c *Client) GetChannelSetting(key string) { // TODO } func (c *Client) SetChannelSettings(settings mpp.ChannelSettings) { // TODO } func (c *Client) GetOwnParticipant() { // TODO } func (c *Client) SetParticipants(ppl []mpp.Participant) { } func (c *Client) countParticipants() { // TODO } func (c *Client) participantUpdate(update mpp.Participant) { // TODO } func (c *Client) participantMoveMouse(update any) { // TODO } func (c *Client) removeParticipant(id string) { // TODO } func (c *Client) findParticipantById(id string) { // TODO } func (c *Client) IsOwner() { // TODO } func (c *Client) PreventsPlaying() { // TODO } func (c *Client) receiveServerTime(time int, echo int) { // TODO } func (c *Client) StartNote(note string, vel int) { // TODO } func (c *Client) StopNote(note string) { // TODO } func (c *Client) SendPing() { // TODO } func (c *Client) setLoginInfo(loginInfo mpp.LoginInfo) { // TODO } func (c *Client) On(event string, listener func()) { // TODO } func (c *Client) Emit(event string, args ...any) { // TODO }