public void TestAllBytesWritten() { MsgMessage msg = new MsgMessage(); msg.Header.RequestId = 1; msg.Header.ResponseTo = 11; Assert.AreEqual(16,msg.Header.MessageLength); msg.Message = "A"; MemoryStream buffer = new MemoryStream(18); msg.Write(buffer); Byte[] output = buffer.ToArray(); String hexdump = BitConverter.ToString(output); //Console.WriteLine("Dump: " + hexdump); Assert.IsTrue(output.Length > 0); Assert.AreEqual(output.Length, msg.Header.MessageLength); Assert.AreEqual("12-00-00-00-01-00-00-00-0B-00-00-00-E8-03-00-00-41-00", hexdump); }
protected bool IsMeCommand(MsgMessage message) { return(message.MessageText.Length > 5 && message.MessageText.Substring(0, 4).ToUpperInvariant() == "/ME "); }
public void HandleChatMessage(ServerPlayer sender, MsgMessage message) { // check all the ways we can ingore this if (message == null) { return; } bool isAction = IsMeCommand(message); if (!isAction) { if (AcceptTextCommand != null && AcceptTextCommand(sender, message)) { return; } } else if (message.MessageText.Length < 5) { return; } if (!sender.Allowances.AllowChat) { return; } ChatMessageEventArgs inChat = new ChatMessageEventArgs(); inChat.To = null; inChat.Allow = true; inChat.Filtered = false; inChat.From = sender; inChat.Action = isAction; if (isAction) { inChat.MessageText = message.MessageText.Substring(3); } else { inChat.MessageText = message.MessageText; } if (message.To <= PlayerConstants.MaxUseablePlayerID) { inChat.To = Players.GetPlayerByID(message.To); if (inChat.To == null) { return; } inChat.ToTeam = inChat.To.ActualTeam; inChat.ChatType = ChatMessageEventArgs.ChatMessageTypes.PrivateMessage; } else if (message.To == PlayerConstants.AllPlayersID) { inChat.ChatType = ChatMessageEventArgs.ChatMessageTypes.PublicMessage; } else if (message.To >= PlayerConstants.FirstTeamID && message.To <= PlayerConstants.LastTeamID) { TeamColors toTeam = PlayerConstants.GetTeamColorFromID(message.To); if (toTeam != sender.ActualTeam || Players.GetTeamPlayerCount(toTeam) == 0) { return; } inChat.ToTeam = toTeam; inChat.ChatType = ChatMessageEventArgs.ChatMessageTypes.TeamMessage; } else { foreach (var group in GetGroups()) { if (message.To == group.BroadcastID) { inChat.To = null; inChat.ToGroup = group; inChat.ChatType = ChatMessageEventArgs.ChatMessageTypes.GroupMessage; } } } if (inChat.ChatType == ChatMessageEventArgs.ChatMessageTypes.Unknown) { return; } MessageReceived?.Invoke(this, inChat); if (!inChat.Allow) { return; } PushMessageToFilter(inChat); }
/// <summary> /// 是否发放 /// </summary> /// <param name="id">Drawid</param> /// <param name="type">发放类型 1发放 2驳回</param> /// <returns></returns> public JsonHelp Issue(int id, int type, string userId, string userName, string summary) { JsonHelp json = new JsonHelp() { Status = "n", Msg = "操作失败" }; using (var tran = DB.Fin_Draw.BeginTransaction) { try { var Draw = FindEntity(p => p.DrawId == id); if (Draw.DrawState == "已发放" || Draw.DrawState == "已驳回") { json.Msg = "提现已审核,不能重复审核"; return(json); } Member_Info member = DB.Member_Info.FindEntity(Draw.MemberId); if (type == 1) { Draw.DrawState = "已发放"; Draw.ConfirmTime = DateTime.Now; Draw.ConfirmEmpId = userId; Draw.ConfirmEmpName = userName; if (Update(Draw)) { json.Status = "y"; json.Msg = "发放成功"; DB.SysLogs.setAdminLog(Enums.EventType.Edit, string.Format("提现发放成功,提现人:[{0}],提现金额:[{1}]", Draw.MemberCode, Draw.DrawAmount)); tran.Complete(); //发送模板通知 if (member != null && string.IsNullOrEmpty(member.OpenID) == false) { MsgMessage _msg = new MsgMessage(); _msg.Send_DrawSuccess(Draw, member.OpenID, $"http://{HttpContext.Current.Request.Url.Host}/Member_Finance/Draw/Index"); } } } else if (type == 2) { member.Coins = member.Coins + Draw.DrawAmount; DB.Fin_LiuShui.AddLS(member.MemberId, Draw.DrawAmount.Value, "提现驳回", "奖金"); if (DB.Member_Info.Update(member)) { Draw.DrawState = "已驳回"; Draw.ConfirmTime = DateTime.Now; Draw.ConfirmEmpId = userId; Draw.ConfirmEmpName = userName; Draw.Summary = summary; Update(Draw); json.Status = "y"; json.Msg = "驳回成功"; DB.SysLogs.setAdminLog(Enums.EventType.Edit, string.Format("提现已驳回,提现人:[{0}],提现金额:[{1}]", Draw.MemberCode, Draw.DrawAmount)); tran.Complete(); //发送模板通知 if (member != null && string.IsNullOrEmpty(member.OpenID) == false) { MsgMessage _msg = new MsgMessage(); _msg.Send_DrawError(Draw, member.OpenID, $"http://{HttpContext.Current.Request.Url.Host}/Member_Finance/Draw/Index"); } } } } catch (Exception e) { DB.Rollback(); LogHelper.Error("发放资金出错:" + e.Message); } } return(json); }