/// <summary> /// 处理角色禁言 /// </summary> /// <param name="obj"></param> /// <returns></returns> private async Task <string> OnHandleServerBlacklist(JObject obj) { var channel_arr = obj["channel"].ToObject <short[]>(); var role_list = obj["role"].ToString().Split(','); if (channel_arr.Length > 0) { var type = (MuteType)obj["type"].ToObject <short>(); var final_date = DateTime.UtcNow; switch (type) { case MuteType.Mute_Hour: final_date = final_date.AddHours(1); break; case MuteType.Mute_Month: final_date = final_date.AddMonths(1); break; case MuteType.Mute_Year: final_date = final_date.AddYears(1); break; case MuteType.Mute_Forever: final_date = final_date.AddYears(99); break; case MuteType.Mute_Cancel: final_date.AddDays(-1); break; } //TODO 接口不支持多用户暂时写死 var role_uuid = await RPGServerPersistenceManager.Instance.GetRoleUUIDByNameAsync(role_list[0], this); var result = await TLGMUtil.ForbidChat(this, role_uuid, final_date); return(ResponseResult(result)); } return(ResponseResult(false)); }
/// <summary> /// GMT系统广播 /// </summary> /// <param name="obj"></param> /// <returns></returns> private Task <string> OnHandleServerAnnouncement(JObject obj) { var channel_arr = obj["channel"].ToObject <List <short> >(); if (channel_arr.Count > 0) { bool result = false; var primary_channel = channel_arr.Contains(ClientChatRequest.CHANNEL_SYSTEM) ? ClientChatRequest.CHANNEL_SYSTEM : ClientChatRequest.CHANNEL_TYPE_WORLD; List <string> groups = obj["group"].ToObject <List <string> >(); TLClientChatNotify notify = new TLClientChatNotify(); notify.channel_type = primary_channel; channel_arr.Remove(primary_channel); if (channel_arr.Count > 0) { notify.show_channel = channel_arr.ToArray(); } notify.func_type = obj["style"].ToObject <short>(); notify.content = obj["text"].ToString(); result = TLGMUtil.PushPublicMessage(this, (CHANNEL_TYPE)primary_channel, notify, groups); return(Task.FromResult(ResponseResult(result))); } return(Task.FromResult(ResponseResult(false))); }