This commit is contained in:
Justin Hawkins 2020-11-22 12:53:58 +10:30
parent 3e8ccf3df1
commit e5d3f243fb

View File

@ -11,23 +11,23 @@ package admin
import ( import (
"encoding/binary" "encoding/binary"
"fmt" "fmt"
"log"
"net" "net"
"strings" "strings"
"time" "time"
"log"
) )
// OpenTTDServer - an object representing the server connection // OpenTTDServer - an object representing the server connection
type OpenTTDServer struct { type OpenTTDServer struct {
connection net.Conn connection net.Conn
ServerName string ServerName string
ServerVersion string ServerVersion string
ServerDedicated bool // is this a dedicated server? ServerDedicated bool // is this a dedicated server?
MapName string MapName string
MapSeed uint32 MapSeed uint32
MapLandscape byte MapLandscape byte
MapX uint16 MapX uint16
MapY uint16 MapY uint16
rconDaily []string rconDaily []string
rconMonthly []string rconMonthly []string
@ -308,20 +308,20 @@ SocketLoop:
var next int var next int
server.ServerName, next = extractString(packetData[:], 0) server.ServerName, next = extractString(packetData[:], 0)
server.ServerVersion, next = extractString(packetData[:], next) server.ServerVersion, next = extractString(packetData[:], next)
if (packetData[next] == 0000) { if packetData[next] == 0000 {
server.ServerDedicated = false server.ServerDedicated = false
} else if (packetData[next] == 0001) { } else if packetData[next] == 0001 {
server.ServerDedicated = true server.ServerDedicated = true
} else { } else {
fmt.Printf("not bool %v?\n", packetData[next]) fmt.Printf("not bool %v?\n", packetData[next])
} }
server.MapName, next = extractString(packetData[:], next+1) server.MapName, next = extractString(packetData[:], next+1)
server.MapSeed = binary.LittleEndian.Uint32(packetData[next:next+4]) server.MapSeed = binary.LittleEndian.Uint32(packetData[next : next+4])
server.MapLandscape = packetData[next+4] server.MapLandscape = packetData[next+4]
// todo // todo
// p->Send_uint32(ConvertYMDToDate(_settings_game.game_creation.starting_year, 0, 1)); // p->Send_uint32(ConvertYMDToDate(_settings_game.game_creation.starting_year, 0, 1));
server.MapX = binary.LittleEndian.Uint16(packetData[next+9:next+11]) server.MapX = binary.LittleEndian.Uint16(packetData[next+9 : next+11])
server.MapY = binary.LittleEndian.Uint16(packetData[next+11:next+13]) server.MapY = binary.LittleEndian.Uint16(packetData[next+11 : next+13])
log.Printf("server: %s version: %s dedicated: %v map: %s %d/%d size\n", server.ServerName, server.ServerVersion, server.ServerDedicated, server.MapName, server.MapX, server.MapY) log.Printf("server: %s version: %s dedicated: %v map: %s %d/%d size\n", server.ServerName, server.ServerVersion, server.ServerDedicated, server.MapName, server.MapX, server.MapY)
@ -381,7 +381,7 @@ func extractString(bytes []byte, start int) (string, int) {
var buildString []byte var buildString []byte
for i := start; i <= len(bytes); i++ { for i := start; i <= len(bytes); i++ {
if bytes[i] == 0 { if bytes[i] == 0 {
return string(buildString), i+1 return string(buildString), i + 1
} }
buildString = append(buildString, bytes[i]) buildString = append(buildString, bytes[i])
} }