// Check if target user has "Refuse private messages" flag
flagBitmap := big.NewInt(int64(binary.BigEndian.Uint16(otherClient.Flags)))
- if flagBitmap.Bit(userFLagRefusePChat) == 1 {
+ if flagBitmap.Bit(UserFlagRefusePChat) == 1 {
res = append(res,
*NewTransaction(
TranServerMsg,
flagBitmap := big.NewInt(int64(binary.BigEndian.Uint16(c.Flags)))
if c.Authorize(accessDisconUser) {
- flagBitmap.SetBit(flagBitmap, userFlagAdmin, 1)
+ flagBitmap.SetBit(flagBitmap, UserFlagAdmin, 1)
} else {
- flagBitmap.SetBit(flagBitmap, userFlagAdmin, 0)
+ flagBitmap.SetBit(flagBitmap, UserFlagAdmin, 0)
}
binary.BigEndian.PutUint16(c.Flags, uint16(flagBitmap.Int64()))
// Check refuse private PM option
if optBitmap.Bit(refusePM) == 1 {
- flagBitmap.SetBit(flagBitmap, userFlagRefusePM, 1)
+ flagBitmap.SetBit(flagBitmap, UserFlagRefusePM, 1)
binary.BigEndian.PutUint16(cc.Flags, uint16(flagBitmap.Int64()))
}
// Check refuse private chat option
if optBitmap.Bit(refuseChat) == 1 {
- flagBitmap.SetBit(flagBitmap, userFLagRefusePChat, 1)
+ flagBitmap.SetBit(flagBitmap, UserFlagRefusePChat, 1)
binary.BigEndian.PutUint16(cc.Flags, uint16(flagBitmap.Int64()))
}
banUntil := time.Now().Add(tempBanDuration)
cc.Server.banList[strings.Split(clientConn.RemoteAddr, ":")[0]] = &banUntil
- cc.Server.writeBanList()
case 2:
// send message: "You are permanently banned on this server"
cc.logger.Infow("Disconnect & ban " + string(clientConn.UserName))
))
cc.Server.banList[strings.Split(clientConn.RemoteAddr, ":")[0]] = nil
- cc.Server.writeBanList()
+ }
+
+ err := cc.Server.writeBanList()
+ if err != nil {
+ return res, err
}
}
optBitmap := big.NewInt(int64(binary.BigEndian.Uint16(options)))
flagBitmap := big.NewInt(int64(binary.BigEndian.Uint16(cc.Flags)))
- flagBitmap.SetBit(flagBitmap, userFlagRefusePM, optBitmap.Bit(refusePM))
+ flagBitmap.SetBit(flagBitmap, UserFlagRefusePM, optBitmap.Bit(refusePM))
binary.BigEndian.PutUint16(cc.Flags, uint16(flagBitmap.Int64()))
- flagBitmap.SetBit(flagBitmap, userFLagRefusePChat, optBitmap.Bit(refuseChat))
+ flagBitmap.SetBit(flagBitmap, UserFlagRefusePChat, optBitmap.Bit(refuseChat))
binary.BigEndian.PutUint16(cc.Flags, uint16(flagBitmap.Int64()))
// Check auto response
targetClient := cc.Server.Clients[binary.BigEndian.Uint16(targetID)]
flagBitmap := big.NewInt(int64(binary.BigEndian.Uint16(targetClient.Flags)))
- if flagBitmap.Bit(userFLagRefusePChat) == 1 {
+ if flagBitmap.Bit(UserFlagRefusePChat) == 1 {
res = append(res,
*NewTransaction(
TranServerMsg,
"encoding/binary"
)
-// User flags are stored as a 2 byte bitmap with the following values:
+// User flags are stored as a 2 byte bitmap and represent various user states
const (
- userFlagAway = 0 // User is away
- userFlagAdmin = 1 // User is admin
- userFlagRefusePM = 2 // User refuses private messages
- userFLagRefusePChat = 3 // User refuses private chat
+ UserFlagAway = 0 // User is away
+ UserFlagAdmin = 1 // User is admin
+ UserFlagRefusePM = 2 // User refuses private messages
+ UserFlagRefusePChat = 3 // User refuses private chat
)
// FieldOptions flags are sent from v1.5+ clients as part of TranAgreed