aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client_conn.go31
-rw-r--r--config.go9
-rw-r--r--content.go2
-rw-r--r--server_conn.go2
4 files changed, 42 insertions, 2 deletions
diff --git a/client_conn.go b/client_conn.go
index 000f029..f992ec0 100644
--- a/client_conn.go
+++ b/client_conn.go
@@ -42,6 +42,8 @@ type clientConn struct {
p0Map param0Map
p0SrvMap param0SrvMap
media []mediaFile
+
+ playerCAO, currentCAO mt.AOID
}
func (cc *clientConn) server() *serverConn { return cc.srv }
@@ -345,8 +347,37 @@ func handleClt(cc *clientConn) {
cc.SendCmd(&mt.ToCltAnnounceMedia{Files: files})
cc.lang = cmd.Lang
+
+ var csmrf mt.CSMRestrictionFlags
+ if conf.CSMRF.NoCSMs {
+ csmrf |= mt.NoCSMs
+ }
+ if conf.CSMRF.NoChatMsgs {
+ csmrf |= mt.NoChatMsgs
+ }
+ if conf.CSMRF.NoItemDefs {
+ csmrf |= mt.NoItemDefs
+ }
+ if conf.CSMRF.NoNodeDefs {
+ csmrf |= mt.NoNodeDefs
+ }
+ if conf.CSMRF.LimitMapRange {
+ csmrf |= mt.LimitMapRange
+ }
+ if conf.CSMRF.NoPlayerList {
+ csmrf |= mt.NoPlayerList
+ }
+
+ cc.SendCmd(&mt.ToCltCSMRestrictionFlags{
+ Flags: csmrf,
+ MapRange: conf.MapRange,
+ })
case *mt.ToSrvReqMedia:
cc.sendMedia(cmd.Filenames)
+ case *mt.ToSrvCltReady:
+ cc.log("-->", "ready")
+ cc.state++
+ close(cc.initCh)
}
}
}
diff --git a/config.go b/config.go
index 6bbe840..fdc5cee 100644
--- a/config.go
+++ b/config.go
@@ -29,6 +29,15 @@ type Config struct {
Name string
Addr string
}
+ CSMRF struct {
+ NoCSMs bool
+ NoChatMsgs bool
+ NoItemDefs bool
+ NoNodeDefs bool
+ LimitMapRange bool
+ NoPlayerList bool
+ }
+ MapRange uint32
}
func loadConfig() error {
diff --git a/content.go b/content.go
index 2e01e46..8bd207d 100644
--- a/content.go
+++ b/content.go
@@ -81,7 +81,7 @@ func handleContent(cc *contentConn) {
cc.state++
- if cmd.AuthMethods&mt.FirstSRP == mt.FirstSRP {
+ if cmd.AuthMethods&mt.FirstSRP != 0 {
cc.auth.method = mt.FirstSRP
} else {
cc.auth.method = mt.SRP
diff --git a/server_conn.go b/server_conn.go
index d2d39b1..8248049 100644
--- a/server_conn.go
+++ b/server_conn.go
@@ -72,7 +72,7 @@ func handleSrv(sc *serverConn) {
sc.state++
- if cmd.AuthMethods&mt.FirstSRP == mt.FirstSRP {
+ if cmd.AuthMethods&mt.FirstSRP != 0 {
sc.auth.method = mt.FirstSRP
} else {
sc.auth.method = mt.SRP