Skip to content

Commit

Permalink
Merge branch 'master' into test
Browse files Browse the repository at this point in the history
# Conflicts:
#	pkg/edition/java/proxy/session_client_play.go
  • Loading branch information
robinbraemer committed Jun 16, 2021
2 parents 90d1365 + 66216d3 commit 7d53f1f
Showing 1 changed file with 28 additions and 30 deletions.
58 changes: 28 additions & 30 deletions pkg/edition/java/proxy/session_client_play.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import (
"go.minekube.com/gate/pkg/runtime/event"
"go.minekube.com/gate/pkg/runtime/logr"
"go.minekube.com/gate/pkg/util/sets"
"go.minekube.com/gate/pkg/util/uuid"
"go.uber.org/atomic"
"sort"
"strings"
Expand Down Expand Up @@ -405,39 +404,42 @@ func (c *clientPlaySessionHandler) handleChat(p *packet.Chat) {
originalCommand: commandline,
}
c.proxy().event.Fire(e)
if err := c.processCommandExecuteResult(e, serverMc); err != nil {
forward, err := c.processCommandExecuteResult(e)
if err != nil {
c.log.Error(err, "Error while running command", "cmd", commandline)
_ = c.player.SendMessage(&component.Text{
Content: "An error occurred while running this command.",
S: component.Style{Color: color.Red},
})
return
}

return
}

e := &PlayerChatEvent{
player: c.player,
message: p.Message,
}
c.proxy().Event().Fire(e)
if !e.Allowed() || !c.player.Active() {
return
if !forward {
return
}
} else { // Is chat message
e := &PlayerChatEvent{
player: c.player,
message: p.Message,
}
c.proxy().Event().Fire(e)
if !e.Allowed() || !c.player.Active() {
return
}
// TODO
c.log1.Info("Player sent chat message", "chat", p.Message)
}
// TODO
c.log1.Info("Player sent chat message", "chat", p.Message)

// Forward to server
//_ = serverMc.WritePacket(&packet.Chat{
// Message: p.Message,
// Type: packet.ChatMessageType,
// Sender: uuid.Nil,
//})
// Forward message/command to server
_ = serverMc.WritePacket(&packet.Chat{
Message: p.Message,
Type: packet.ChatMessageType,
Sender: c.player.ID(),
})
}

func (c *clientPlaySessionHandler) processCommandExecuteResult(e *CommandExecuteEvent, serverMc *minecraftConn) error {
func (c *clientPlaySessionHandler) processCommandExecuteResult(e *CommandExecuteEvent) (forward bool, err error) {
if !e.Allowed() || !c.player.Active() {
return nil
return false, nil
}

// Log player executed command
Expand All @@ -453,19 +455,15 @@ func (c *clientPlaySessionHandler) processCommandExecuteResult(e *CommandExecute
if !e.Forward() {
hasRun, err := c.executeCommand(e.Command())
if err != nil {
return err
return false, err
}
if hasRun {
return nil // ran command, done
return false, nil // ran command, done
}
}

// Forward command to server
return serverMc.WritePacket(&packet.Chat{
Message: "/" + e.Command(),
Type: packet.ChatMessageType,
Sender: uuid.Nil,
})
return true, nil
}

func (c *clientPlaySessionHandler) executeCommand(cmd string) (hasRun bool, err error) {
Expand Down

0 comments on commit 7d53f1f

Please sign in to comment.