Add max player number check
This commit is contained in:
@ -33,7 +33,7 @@ func main() {
|
|||||||
ms.MojangLoginHandler.Threshold = 256
|
ms.MojangLoginHandler.Threshold = 256
|
||||||
|
|
||||||
ms.Settings.Name = "MyServer"
|
ms.Settings.Name = "MyServer"
|
||||||
ms.Settings.MaxPlayer = 20
|
ms.Settings.MaxPlayer = 1
|
||||||
ms.Settings.MOTD = chat.Message{Text: "A Minecraft Server ", Extra: []chat.Message{{Text: "Powered by go-mc", Color: "yellow"}}}
|
ms.Settings.MOTD = chat.Message{Text: "A Minecraft Server ", Extra: []chat.Message{{Text: "Powered by go-mc", Color: "yellow"}}}
|
||||||
|
|
||||||
s := server.Server{
|
s := server.Server{
|
||||||
@ -87,6 +87,16 @@ func (m *MyServer) Description() chat.Message {
|
|||||||
func (m *MyServer) AcceptPlayer(name string, id uuid.UUID, protocol int32, conn *net.Conn) {
|
func (m *MyServer) AcceptPlayer(name string, id uuid.UUID, protocol int32, conn *net.Conn) {
|
||||||
// Add player into PlayerList
|
// Add player into PlayerList
|
||||||
m.PlayerListLock.Lock()
|
m.PlayerListLock.Lock()
|
||||||
|
if m.PlayerList.Len() >= m.Settings.MaxPlayer {
|
||||||
|
err := conn.WritePacket(pk.Marshal(packetid.KickDisconnect,
|
||||||
|
chat.TranslateMsg("multiplayer.disconnect.server_full"),
|
||||||
|
))
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Write packet fail: %v", err)
|
||||||
|
}
|
||||||
|
m.PlayerListLock.Unlock()
|
||||||
|
return
|
||||||
|
}
|
||||||
elem := m.PlayerList.PushBack(server.PlayerSample{
|
elem := m.PlayerList.PushBack(server.PlayerSample{
|
||||||
Name: name,
|
Name: name,
|
||||||
ID: id,
|
ID: id,
|
||||||
|
Reference in New Issue
Block a user