协议定义
This commit is contained in:
@@ -29,4 +29,10 @@ message Chat2G_EnterResponse // IRouteResponse
|
||||
message Chat2G_ChatMessage // IRouteMessage
|
||||
{
|
||||
ChatMessageInfo Message = 1; //聊天内容
|
||||
}
|
||||
}
|
||||
|
||||
///创建聊天频道
|
||||
message Club2Chat_CreateChannel // IRouteMessage
|
||||
{
|
||||
int64 ChannelId = 1; //频道id
|
||||
}
|
||||
|
||||
86
Config/NetworkProtocol/Outer/ChatMessage.proto
Normal file
86
Config/NetworkProtocol/Outer/ChatMessage.proto
Normal file
@@ -0,0 +1,86 @@
|
||||
syntax = "proto3";
|
||||
package Fantasy.Network.Message;
|
||||
|
||||
///请求邮件列表
|
||||
message C2Game_GetMailsRequest // ICustomRouteRequest,Game2C_GetMailsResponse,GameRoute
|
||||
{
|
||||
|
||||
}
|
||||
///获取邮件列表响应
|
||||
message Game2C_GetMailsResponse // ICustomRouteResponse
|
||||
{
|
||||
repeated MailInfo Mail = 1;
|
||||
}
|
||||
|
||||
///新邮件推送
|
||||
message Game2C_HaveMail // ICustomRouteMessage,GameRoute
|
||||
{
|
||||
MailInfo Mail = 1;
|
||||
}
|
||||
|
||||
message Game2C_MailState // ICustomRouteMessage,GameRoute
|
||||
{
|
||||
int32 MailState = 1;
|
||||
int64 MailId = 2;
|
||||
}
|
||||
|
||||
|
||||
////////////// ******** 聊天 *******/////////////
|
||||
|
||||
///创建频道
|
||||
message C2Chat_CreateChannelRequest // ICustomRouteRequest,Caht2C_CreateChannelResponse,ChatRoute
|
||||
{
|
||||
string Name = 1; //频道名称
|
||||
}
|
||||
|
||||
///创建频道响应
|
||||
message Caht2C_CreateChannelResponse // ICustomRouteResponse
|
||||
{
|
||||
int64 ChannelId = 1; //创建的频道id
|
||||
}
|
||||
|
||||
///请求进入频道
|
||||
message C2Chat_JoinChannelRequest // ICustomRouteRequest,Caht2C_JoinChannelResponse,ChatRoute
|
||||
{
|
||||
int64 Target = 1; // 频道id
|
||||
}
|
||||
|
||||
///进入频道响应
|
||||
message Caht2C_JoinChannelResponse // ICustomRouteResponse
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
///发送聊天
|
||||
message C2Chat_SendMessageRequest // ICustomRouteRequest,Caht2C_SendMessageResponse,ChatRoute
|
||||
{
|
||||
int32 Type = 1; //消息类型 0.频道聊天 1.私聊
|
||||
string Message = 2;
|
||||
int64 Target = 3; //目标id,频道id或者好友id
|
||||
}
|
||||
|
||||
///发送聊天响应
|
||||
message Caht2C_SendMessageResponse // ICustomRouteResponse
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
///推送消息
|
||||
message Chat2C_Message // ICustomRouteMessage,ChatRoute
|
||||
{
|
||||
ChatMessageInfo Message = 1;
|
||||
}
|
||||
|
||||
|
||||
///获取聊天记录请求
|
||||
message C2Chat_GetChatRecordRequest // ICustomRouteRequest,Caht2C_GetChatRecordResponse,ChatRoute
|
||||
{
|
||||
int64 Target = 1; // 好友id或频道id
|
||||
int32 Type = 2; // 获取聊天记录类型 0.频道 1.好友
|
||||
}
|
||||
|
||||
///获取聊天记录响应
|
||||
message Caht2C_GetChatRecordResponse // ICustomRouteResponse
|
||||
{
|
||||
repeated ChatMessageInfo Messages = 1; //聊天记录
|
||||
}
|
||||
@@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
package Fantasy.Network.Message;
|
||||
|
||||
|
||||
|
||||
// 协议分为:
|
||||
// ProtoBuf:可以在Outer和Inner文件里使用。
|
||||
// MemoryPack:可以在Outer和Inner文件里使用。
|
||||
@@ -51,65 +50,5 @@ message C2Game_GetRoleInfoRequest // ICustomRouteRequest,Game2C_GetRoleInfoRespo
|
||||
|
||||
message Game2C_GetRoleInfoResponse // ICustomRouteResponse
|
||||
{
|
||||
string Name;
|
||||
string RoleId;
|
||||
}
|
||||
|
||||
///请求邮件列表
|
||||
message C2Game_GetMailsRequest // ICustomRouteRequest,Game2C_GetMailsResponse,GameRoute
|
||||
{
|
||||
|
||||
}
|
||||
///获取邮件列表响应
|
||||
message Game2C_GetMailsResponse // ICustomRouteResponse
|
||||
{
|
||||
repeated MailInfo Mail = 1;
|
||||
}
|
||||
|
||||
///新邮件推送
|
||||
message Game2C_HaveMail // ICustomRouteMessage,GameRoute
|
||||
{
|
||||
MailInfo Mail = 1;
|
||||
}
|
||||
|
||||
message Game2C_MailState // ICustomRouteMessage,GameRoute
|
||||
{
|
||||
int32 MailState = 1;
|
||||
int64 MailId = 2;
|
||||
}
|
||||
|
||||
message C2Chat_JoinChannelRequest // ICustomRouteRequest,Caht2C_JoinChannelResponse,ChatRoute
|
||||
{
|
||||
int64 Target = 1; // 频道id
|
||||
}
|
||||
|
||||
///进入频道响应
|
||||
message Caht2C_JoinChannelResponse // ICustomRouteResponse
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
///发送聊天
|
||||
message C2Chat_SendMessageRequest // ICustomRouteRequest,Caht2C_SendMessageResponse,ChatRoute
|
||||
{
|
||||
int32 Type = 1; //消息类型 0.频道聊天 1.私聊
|
||||
string Message = 2;
|
||||
int64 Target = 3; //目标id,频道id或者好友id
|
||||
}
|
||||
|
||||
///发送聊天响应
|
||||
message Caht2C_SendMessageResponse // ICustomRouteResponse
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
///推送消息
|
||||
message Chat2C_Message // ICustomRouteMessage,ChatRoute
|
||||
{
|
||||
ChatMessageInfo Message = 1;
|
||||
}
|
||||
|
||||
message C2G_LoginRequest1 // IRequest,G2C_LoginResponse
|
||||
{
|
||||
string ToKen = 1;
|
||||
}
|
||||
RoleSimpleInfo Roles = 1; //角色列表
|
||||
}
|
||||
116
Config/NetworkProtocol/Outer/SocialMessage.proto
Normal file
116
Config/NetworkProtocol/Outer/SocialMessage.proto
Normal file
@@ -0,0 +1,116 @@
|
||||
syntax = "proto3";
|
||||
package Fantasy.Network.Message;
|
||||
|
||||
message ClubInfo
|
||||
{
|
||||
int64 Id = 1; //工会ID
|
||||
string Name = 2; //工会名称
|
||||
int64 CreateTime = 3; //创建时间
|
||||
int64 OwnerId = 4; //工会创建者ID
|
||||
int32 MemberCount = 5; //成员数量
|
||||
}
|
||||
|
||||
///请求创建工会
|
||||
message C2S_CreateRequest // ICustomRouteRequest,Caht2C_GetChatRecordResponse,SocialRoute
|
||||
{
|
||||
string Name = 1; //工会名称
|
||||
}
|
||||
|
||||
///创建工会响应
|
||||
message S2C_CreateResponse // ICustomRouteResponse
|
||||
{
|
||||
ClubInfo Club = 1; //创建的工会信息
|
||||
}
|
||||
|
||||
///请求工会信息
|
||||
message C2S_GetClubInfoRequest // ICustomRouteRequest,S2C_GetClubInfoResponse,SocialRoute
|
||||
{
|
||||
int64 ClubId = 1; //工会ID
|
||||
}
|
||||
///响应工会信息
|
||||
message S2C_GetClubInfoResponse // ICustomRouteResponse
|
||||
{
|
||||
string Name = 1; //工会名称
|
||||
}
|
||||
|
||||
/// 请求工会成员列表
|
||||
message C2S_GetMemberListRequest // ICustomRouteRequest,S2C_GetMemberListResponse,SocialRoute
|
||||
{
|
||||
int64 ClubId = 1; //工会ID
|
||||
}
|
||||
|
||||
/// 响应工会成员列表
|
||||
message S2C_GetMemberListResponse // ICustomRouteResponse
|
||||
{
|
||||
repeated RoleSimpleInfo Members = 1; //工会成员列表
|
||||
}
|
||||
|
||||
///获取工会列表请求
|
||||
message C2S_GetClubListRequest // ICustomRouteRequest,S2C_GetClubListResponse,SocialRoute
|
||||
{
|
||||
|
||||
}
|
||||
///获取工会列表响应
|
||||
message S2C_GetClubListResponse // ICustomRouteResponse
|
||||
{
|
||||
repeated ClubInfo Clubs = 1; //工会列表
|
||||
}
|
||||
|
||||
/// 请求加入工会
|
||||
message C2S_JoinClubRequest // ICustomRouteRequest,S2C_JoinClubResponse,SocialRoute
|
||||
{
|
||||
int64 ClubId = 1; //工会ID
|
||||
}
|
||||
|
||||
/// 响应加入工会
|
||||
message S2C_JoinClubResponse // ICustomRouteResponse
|
||||
{
|
||||
ClubInfo Club = 1; //加入的工会信息
|
||||
}
|
||||
|
||||
/// 请求退出工会
|
||||
message C2S_LeaveClubRequest // ICustomRouteRequest,S2C_LeaveClubResponse,SocialRoute
|
||||
{
|
||||
int64 ClubId = 1; //工会ID
|
||||
}
|
||||
|
||||
/// 响应退出工会
|
||||
message S2C_LeaveClubResponse // ICustomRouteResponse
|
||||
{
|
||||
int64 ClubId = 1; //退出的工会ID
|
||||
}
|
||||
|
||||
/// 请求解散工会
|
||||
message C2S_DissolveClubRequest // ICustomRouteRequest,S2C_DissolveClubResponse,SocialRoute
|
||||
{
|
||||
int64 ClubId = 1; //工会ID
|
||||
}
|
||||
|
||||
/// 响应解散工会
|
||||
message S2C_DissolveClubResponse // ICustomRouteResponse
|
||||
{
|
||||
int64 ClubId = 1; //解散的工会ID
|
||||
}
|
||||
|
||||
/// 请求操作申请
|
||||
message C2S_DisposeJoinRequest // ICustomRouteRequest,S2C_DisposeJoinResponse,SocialRoute
|
||||
{
|
||||
int64 ClubId = 1; //工会ID
|
||||
int64 ApplicantId = 2; //申请人ID
|
||||
int32 Agree = 3; //是否同意申请,1表示同意,0表示拒绝
|
||||
}
|
||||
|
||||
/// 响应操作申请
|
||||
message S2C_DisposeJoinResponse // ICustomRouteResponse
|
||||
{
|
||||
int64 ClubId = 1; //工会ID
|
||||
int64 ApplicantId = 2; //申请人ID
|
||||
int32 Agree = 3; //是否同意申请,1表示同意,0表示拒绝
|
||||
}
|
||||
|
||||
///推送消息
|
||||
message S2C_ClubChange // ICustomRouteMessage,SocialRoute
|
||||
{
|
||||
ClubInfo Club = 1;
|
||||
int32 ChangeType = 2; //变更类型 0.创建 1.解散 2.加入 3.退出 4.申请处理
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
// Route协议定义(需要定义1000以上、因为1000以内的框架预留)
|
||||
GateRoute = 1001 // Gate
|
||||
ChatRoute = 1002 // Chat
|
||||
GameRoute = 1003 // Game
|
||||
GameRoute = 1003 // Game
|
||||
SocialRoute = 1004 // Social
|
||||
@@ -28,6 +28,8 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Game\Friend\" />
|
||||
<Folder Include="Generate\NetworkProtocol\" />
|
||||
<Folder Include="Map\" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
8
Entity/Game/Club/ClubManageComponent.cs
Normal file
8
Entity/Game/Club/ClubManageComponent.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
using Fantasy.Entitas;
|
||||
|
||||
namespace NB.Club;
|
||||
|
||||
public class ClubManageComponent : Entity
|
||||
{
|
||||
public readonly Dictionary<long, Club> Clubs = new();
|
||||
}
|
||||
337
Entity/Generate/NetworkProtocol/ChatMessage.cs
Normal file
337
Entity/Generate/NetworkProtocol/ChatMessage.cs
Normal file
@@ -0,0 +1,337 @@
|
||||
using ProtoBuf;
|
||||
|
||||
using System.Collections.Generic;
|
||||
using MongoDB.Bson.Serialization.Attributes;
|
||||
using Fantasy;
|
||||
using Fantasy.Network.Interface;
|
||||
using Fantasy.Serialize;
|
||||
// ReSharper disable InconsistentNaming
|
||||
// ReSharper disable RedundantUsingDirective
|
||||
// ReSharper disable RedundantOverriddenMember
|
||||
// ReSharper disable PartialTypeWithSinglePart
|
||||
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
// ReSharper disable CheckNamespace
|
||||
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
|
||||
#pragma warning disable CS8618
|
||||
|
||||
namespace Fantasy
|
||||
{
|
||||
/// <summary>
|
||||
/// 请求邮件列表
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2Game_GetMailsRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2Game_GetMailsRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2Game_GetMailsRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2Game_GetMailsRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Game2C_GetMailsResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2Game_GetMailsRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.GameRoute;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取邮件列表响应
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Game2C_GetMailsResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static Game2C_GetMailsResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Game2C_GetMailsResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
Mail.Clear();
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Game2C_GetMailsResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Game2C_GetMailsResponse; }
|
||||
[ProtoMember(1)]
|
||||
public List<MailInfo> Mail = new List<MailInfo>();
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 新邮件推送
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Game2C_HaveMail : AMessage, ICustomRouteMessage, IProto
|
||||
{
|
||||
public static Game2C_HaveMail Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Game2C_HaveMail>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Mail = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Game2C_HaveMail>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Game2C_HaveMail; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.GameRoute;
|
||||
[ProtoMember(1)]
|
||||
public MailInfo Mail { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class Game2C_MailState : AMessage, ICustomRouteMessage, IProto
|
||||
{
|
||||
public static Game2C_MailState Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Game2C_MailState>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
MailState = default;
|
||||
MailId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Game2C_MailState>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Game2C_MailState; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.GameRoute;
|
||||
[ProtoMember(1)]
|
||||
public int MailState { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public long MailId { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// /////////// ******** 聊天 *******/////////////
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// 创建频道
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2Chat_CreateChannelRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2Chat_CreateChannelRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2Chat_CreateChannelRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Name = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2Chat_CreateChannelRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Caht2C_CreateChannelResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2Chat_CreateChannelRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.ChatRoute;
|
||||
[ProtoMember(1)]
|
||||
public string Name { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 创建频道响应
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Caht2C_CreateChannelResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static Caht2C_CreateChannelResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Caht2C_CreateChannelResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
ChannelId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Caht2C_CreateChannelResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Caht2C_CreateChannelResponse; }
|
||||
[ProtoMember(1)]
|
||||
public long ChannelId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求进入频道
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2Chat_JoinChannelRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2Chat_JoinChannelRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2Chat_JoinChannelRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Target = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2Chat_JoinChannelRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Caht2C_JoinChannelResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2Chat_JoinChannelRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.ChatRoute;
|
||||
[ProtoMember(1)]
|
||||
public long Target { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 进入频道响应
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Caht2C_JoinChannelResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static Caht2C_JoinChannelResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Caht2C_JoinChannelResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Caht2C_JoinChannelResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Caht2C_JoinChannelResponse; }
|
||||
[ProtoMember(1)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 发送聊天
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2Chat_SendMessageRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2Chat_SendMessageRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2Chat_SendMessageRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Type = default;
|
||||
Message = default;
|
||||
Target = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2Chat_SendMessageRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Caht2C_SendMessageResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2Chat_SendMessageRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.ChatRoute;
|
||||
[ProtoMember(1)]
|
||||
public int Type { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public string Message { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public long Target { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 发送聊天响应
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Caht2C_SendMessageResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static Caht2C_SendMessageResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Caht2C_SendMessageResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Caht2C_SendMessageResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Caht2C_SendMessageResponse; }
|
||||
[ProtoMember(1)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 推送消息
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Chat2C_Message : AMessage, ICustomRouteMessage, IProto
|
||||
{
|
||||
public static Chat2C_Message Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Chat2C_Message>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Message = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Chat2C_Message>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Chat2C_Message; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.ChatRoute;
|
||||
[ProtoMember(1)]
|
||||
public ChatMessageInfo Message { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取聊天记录请求
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2Chat_GetChatRecordRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2Chat_GetChatRecordRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2Chat_GetChatRecordRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Target = default;
|
||||
Type = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2Chat_GetChatRecordRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Caht2C_GetChatRecordResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2Chat_GetChatRecordRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.ChatRoute;
|
||||
[ProtoMember(1)]
|
||||
public long Target { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public int Type { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取聊天记录响应
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Caht2C_GetChatRecordResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static Caht2C_GetChatRecordResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Caht2C_GetChatRecordResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
Messages.Clear();
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Caht2C_GetChatRecordResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Caht2C_GetChatRecordResponse; }
|
||||
[ProtoMember(1)]
|
||||
public List<ChatMessageInfo> Messages = new List<ChatMessageInfo>();
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -132,4 +132,25 @@ namespace Fantasy
|
||||
[ProtoMember(1)]
|
||||
public ChatMessageInfo Message { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 创建聊天频道
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Club2Chat_CreateChannel : AMessage, IRouteMessage, IProto
|
||||
{
|
||||
public static Club2Chat_CreateChannel Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Club2Chat_CreateChannel>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ChannelId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Club2Chat_CreateChannel>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return InnerOpcode.Club2Chat_CreateChannel; }
|
||||
[ProtoMember(1)]
|
||||
public long ChannelId { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,5 +7,6 @@ namespace Fantasy
|
||||
public const uint G2Chat_EnterRequest = 1073751826;
|
||||
public const uint Chat2G_EnterResponse = 1207969554;
|
||||
public const uint Chat2G_ChatMessage = 939534097;
|
||||
public const uint Club2Chat_CreateChannel = 939534098;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -181,248 +181,15 @@ namespace Fantasy
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
Name = default;
|
||||
RoleId = default;
|
||||
Roles = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Game2C_GetRoleInfoResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Game2C_GetRoleInfoResponse; }
|
||||
[ProtoMember(1)]
|
||||
public string Name { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public string RoleId { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求邮件列表
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2Game_GetMailsRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2Game_GetMailsRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2Game_GetMailsRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2Game_GetMailsRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Game2C_GetMailsResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2Game_GetMailsRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.GameRoute;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取邮件列表响应
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Game2C_GetMailsResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static Game2C_GetMailsResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Game2C_GetMailsResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
Mail.Clear();
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Game2C_GetMailsResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Game2C_GetMailsResponse; }
|
||||
[ProtoMember(1)]
|
||||
public List<MailInfo> Mail = new List<MailInfo>();
|
||||
public RoleSimpleInfo Roles { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 新邮件推送
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Game2C_HaveMail : AMessage, ICustomRouteMessage, IProto
|
||||
{
|
||||
public static Game2C_HaveMail Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Game2C_HaveMail>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Mail = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Game2C_HaveMail>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Game2C_HaveMail; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.GameRoute;
|
||||
[ProtoMember(1)]
|
||||
public MailInfo Mail { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class Game2C_MailState : AMessage, ICustomRouteMessage, IProto
|
||||
{
|
||||
public static Game2C_MailState Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Game2C_MailState>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
MailState = default;
|
||||
MailId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Game2C_MailState>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Game2C_MailState; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.GameRoute;
|
||||
[ProtoMember(1)]
|
||||
public int MailState { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public long MailId { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class C2Chat_JoinChannelRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2Chat_JoinChannelRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2Chat_JoinChannelRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Target = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2Chat_JoinChannelRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Caht2C_JoinChannelResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2Chat_JoinChannelRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.ChatRoute;
|
||||
[ProtoMember(1)]
|
||||
public long Target { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 进入频道响应
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Caht2C_JoinChannelResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static Caht2C_JoinChannelResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Caht2C_JoinChannelResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Caht2C_JoinChannelResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Caht2C_JoinChannelResponse; }
|
||||
[ProtoMember(1)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 发送聊天
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2Chat_SendMessageRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2Chat_SendMessageRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2Chat_SendMessageRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Type = default;
|
||||
Message = default;
|
||||
Target = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2Chat_SendMessageRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Caht2C_SendMessageResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2Chat_SendMessageRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.ChatRoute;
|
||||
[ProtoMember(1)]
|
||||
public int Type { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public string Message { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public long Target { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 发送聊天响应
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Caht2C_SendMessageResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static Caht2C_SendMessageResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Caht2C_SendMessageResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Caht2C_SendMessageResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Caht2C_SendMessageResponse; }
|
||||
[ProtoMember(1)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 推送消息
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class Chat2C_Message : AMessage, ICustomRouteMessage, IProto
|
||||
{
|
||||
public static Chat2C_Message Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<Chat2C_Message>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Message = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<Chat2C_Message>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.Chat2C_Message; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.ChatRoute;
|
||||
[ProtoMember(1)]
|
||||
public ChatMessageInfo Message { get; set; }
|
||||
}
|
||||
[ProtoContract]
|
||||
public partial class C2G_LoginRequest1 : AMessage, IRequest, IProto
|
||||
{
|
||||
public static C2G_LoginRequest1 Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2G_LoginRequest1>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ToKen = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2G_LoginRequest1>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public G2C_LoginResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2G_LoginRequest1; }
|
||||
[ProtoMember(1)]
|
||||
public string ToKen { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,22 +2,42 @@ namespace Fantasy
|
||||
{
|
||||
public static partial class OuterOpcode
|
||||
{
|
||||
public const uint C2A_LoginRequest = 268445457;
|
||||
public const uint A2C_LoginResponse = 402663185;
|
||||
public const uint C2G_LoginRequest = 268445458;
|
||||
public const uint G2C_LoginResponse = 402663186;
|
||||
public const uint G2C_RepeatLogin = 134227729;
|
||||
public const uint C2Game_GetRoleInfoRequest = 2281711377;
|
||||
public const uint Game2C_GetRoleInfoResponse = 2415929105;
|
||||
public const uint C2Game_GetMailsRequest = 2281711378;
|
||||
public const uint Game2C_GetMailsResponse = 2415929106;
|
||||
public const uint C2Game_GetMailsRequest = 2281711377;
|
||||
public const uint Game2C_GetMailsResponse = 2415929105;
|
||||
public const uint Game2C_HaveMail = 2147493649;
|
||||
public const uint Game2C_MailState = 2147493650;
|
||||
public const uint C2Chat_CreateChannelRequest = 2281711378;
|
||||
public const uint Caht2C_CreateChannelResponse = 2415929106;
|
||||
public const uint C2Chat_JoinChannelRequest = 2281711379;
|
||||
public const uint Caht2C_JoinChannelResponse = 2415929107;
|
||||
public const uint C2Chat_SendMessageRequest = 2281711380;
|
||||
public const uint Caht2C_SendMessageResponse = 2415929108;
|
||||
public const uint Chat2C_Message = 2147493651;
|
||||
public const uint C2G_LoginRequest1 = 268445459;
|
||||
public const uint C2Chat_GetChatRecordRequest = 2281711381;
|
||||
public const uint Caht2C_GetChatRecordResponse = 2415929109;
|
||||
public const uint C2A_LoginRequest = 268445457;
|
||||
public const uint A2C_LoginResponse = 402663185;
|
||||
public const uint C2G_LoginRequest = 268445458;
|
||||
public const uint G2C_LoginResponse = 402663186;
|
||||
public const uint G2C_RepeatLogin = 134227729;
|
||||
public const uint C2Game_GetRoleInfoRequest = 2281711382;
|
||||
public const uint Game2C_GetRoleInfoResponse = 2415929110;
|
||||
public const uint C2S_CreateRequest = 2281711383;
|
||||
public const uint S2C_CreateResponse = 2415929111;
|
||||
public const uint C2S_GetClubInfoRequest = 2281711384;
|
||||
public const uint S2C_GetClubInfoResponse = 2415929112;
|
||||
public const uint C2S_GetMemberListRequest = 2281711385;
|
||||
public const uint S2C_GetMemberListResponse = 2415929113;
|
||||
public const uint C2S_GetClubListRequest = 2281711386;
|
||||
public const uint S2C_GetClubListResponse = 2415929114;
|
||||
public const uint C2S_JoinClubRequest = 2281711387;
|
||||
public const uint S2C_JoinClubResponse = 2415929115;
|
||||
public const uint C2S_LeaveClubRequest = 2281711388;
|
||||
public const uint S2C_LeaveClubResponse = 2415929116;
|
||||
public const uint C2S_DissolveClubRequest = 2281711389;
|
||||
public const uint S2C_DissolveClubResponse = 2415929117;
|
||||
public const uint C2S_DisposeJoinRequest = 2281711390;
|
||||
public const uint S2C_DisposeJoinResponse = 2415929118;
|
||||
public const uint S2C_ClubChange = 2147493652;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,5 +6,6 @@ namespace Fantasy
|
||||
public const int GateRoute = 1001; // Gate
|
||||
public const int ChatRoute = 1002; // Chat
|
||||
public const int GameRoute = 1003; // Game
|
||||
public const int SocialRoute = 1004; // Social
|
||||
}
|
||||
}
|
||||
|
||||
476
Entity/Generate/NetworkProtocol/SocialMessage.cs
Normal file
476
Entity/Generate/NetworkProtocol/SocialMessage.cs
Normal file
@@ -0,0 +1,476 @@
|
||||
using ProtoBuf;
|
||||
|
||||
using System.Collections.Generic;
|
||||
using MongoDB.Bson.Serialization.Attributes;
|
||||
using Fantasy;
|
||||
using Fantasy.Network.Interface;
|
||||
using Fantasy.Serialize;
|
||||
// ReSharper disable InconsistentNaming
|
||||
// ReSharper disable RedundantUsingDirective
|
||||
// ReSharper disable RedundantOverriddenMember
|
||||
// ReSharper disable PartialTypeWithSinglePart
|
||||
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
// ReSharper disable CheckNamespace
|
||||
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
|
||||
#pragma warning disable CS8618
|
||||
|
||||
namespace Fantasy
|
||||
{
|
||||
[ProtoContract]
|
||||
public partial class ClubInfo : AMessage, IProto
|
||||
{
|
||||
public static ClubInfo Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<ClubInfo>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Id = default;
|
||||
Name = default;
|
||||
CreateTime = default;
|
||||
OwnerId = default;
|
||||
MemberCount = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<ClubInfo>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoMember(1)]
|
||||
public long Id { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public string Name { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public long CreateTime { get; set; }
|
||||
[ProtoMember(4)]
|
||||
public long OwnerId { get; set; }
|
||||
[ProtoMember(5)]
|
||||
public int MemberCount { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求创建工会
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2S_CreateRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2S_CreateRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2S_CreateRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Name = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2S_CreateRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public Caht2C_GetChatRecordResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2S_CreateRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.SocialRoute;
|
||||
[ProtoMember(1)]
|
||||
public string Name { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 创建工会响应
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class S2C_CreateResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static S2C_CreateResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<S2C_CreateResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
Club = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<S2C_CreateResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.S2C_CreateResponse; }
|
||||
[ProtoMember(1)]
|
||||
public ClubInfo Club { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求工会信息
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2S_GetClubInfoRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2S_GetClubInfoRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2S_GetClubInfoRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ClubId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2S_GetClubInfoRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public S2C_GetClubInfoResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2S_GetClubInfoRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.SocialRoute;
|
||||
[ProtoMember(1)]
|
||||
public long ClubId { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 响应工会信息
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class S2C_GetClubInfoResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static S2C_GetClubInfoResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<S2C_GetClubInfoResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
Name = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<S2C_GetClubInfoResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.S2C_GetClubInfoResponse; }
|
||||
[ProtoMember(1)]
|
||||
public string Name { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求工会成员列表
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2S_GetMemberListRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2S_GetMemberListRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2S_GetMemberListRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ClubId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2S_GetMemberListRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public S2C_GetMemberListResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2S_GetMemberListRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.SocialRoute;
|
||||
[ProtoMember(1)]
|
||||
public long ClubId { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 响应工会成员列表
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class S2C_GetMemberListResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static S2C_GetMemberListResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<S2C_GetMemberListResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
Members.Clear();
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<S2C_GetMemberListResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.S2C_GetMemberListResponse; }
|
||||
[ProtoMember(1)]
|
||||
public List<RoleSimpleInfo> Members = new List<RoleSimpleInfo>();
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取工会列表请求
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2S_GetClubListRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2S_GetClubListRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2S_GetClubListRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2S_GetClubListRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public S2C_GetClubListResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2S_GetClubListRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.SocialRoute;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取工会列表响应
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class S2C_GetClubListResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static S2C_GetClubListResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<S2C_GetClubListResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
Clubs.Clear();
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<S2C_GetClubListResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.S2C_GetClubListResponse; }
|
||||
[ProtoMember(1)]
|
||||
public List<ClubInfo> Clubs = new List<ClubInfo>();
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求加入工会
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2S_JoinClubRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2S_JoinClubRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2S_JoinClubRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ClubId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2S_JoinClubRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public S2C_JoinClubResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2S_JoinClubRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.SocialRoute;
|
||||
[ProtoMember(1)]
|
||||
public long ClubId { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 响应加入工会
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class S2C_JoinClubResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static S2C_JoinClubResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<S2C_JoinClubResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
Club = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<S2C_JoinClubResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.S2C_JoinClubResponse; }
|
||||
[ProtoMember(1)]
|
||||
public ClubInfo Club { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求退出工会
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2S_LeaveClubRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2S_LeaveClubRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2S_LeaveClubRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ClubId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2S_LeaveClubRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public S2C_LeaveClubResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2S_LeaveClubRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.SocialRoute;
|
||||
[ProtoMember(1)]
|
||||
public long ClubId { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 响应退出工会
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class S2C_LeaveClubResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static S2C_LeaveClubResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<S2C_LeaveClubResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
ClubId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<S2C_LeaveClubResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.S2C_LeaveClubResponse; }
|
||||
[ProtoMember(1)]
|
||||
public long ClubId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求解散工会
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2S_DissolveClubRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2S_DissolveClubRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2S_DissolveClubRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ClubId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2S_DissolveClubRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public S2C_DissolveClubResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2S_DissolveClubRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.SocialRoute;
|
||||
[ProtoMember(1)]
|
||||
public long ClubId { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 响应解散工会
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class S2C_DissolveClubResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static S2C_DissolveClubResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<S2C_DissolveClubResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
ClubId = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<S2C_DissolveClubResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.S2C_DissolveClubResponse; }
|
||||
[ProtoMember(1)]
|
||||
public long ClubId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 请求操作申请
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class C2S_DisposeJoinRequest : AMessage, ICustomRouteRequest, IProto
|
||||
{
|
||||
public static C2S_DisposeJoinRequest Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<C2S_DisposeJoinRequest>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ClubId = default;
|
||||
ApplicantId = default;
|
||||
Agree = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<C2S_DisposeJoinRequest>(this);
|
||||
#endif
|
||||
}
|
||||
[ProtoIgnore]
|
||||
public S2C_DisposeJoinResponse ResponseType { get; set; }
|
||||
public uint OpCode() { return OuterOpcode.C2S_DisposeJoinRequest; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.SocialRoute;
|
||||
[ProtoMember(1)]
|
||||
public long ClubId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public long ApplicantId { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public int Agree { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 响应操作申请
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class S2C_DisposeJoinResponse : AMessage, ICustomRouteResponse, IProto
|
||||
{
|
||||
public static S2C_DisposeJoinResponse Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<S2C_DisposeJoinResponse>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
ErrorCode = default;
|
||||
ClubId = default;
|
||||
ApplicantId = default;
|
||||
Agree = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<S2C_DisposeJoinResponse>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.S2C_DisposeJoinResponse; }
|
||||
[ProtoMember(1)]
|
||||
public long ClubId { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public long ApplicantId { get; set; }
|
||||
[ProtoMember(3)]
|
||||
public int Agree { get; set; }
|
||||
[ProtoMember(4)]
|
||||
public uint ErrorCode { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 推送消息
|
||||
/// </summary>
|
||||
[ProtoContract]
|
||||
public partial class S2C_ClubChange : AMessage, ICustomRouteMessage, IProto
|
||||
{
|
||||
public static S2C_ClubChange Create(Scene scene)
|
||||
{
|
||||
return scene.MessagePoolComponent.Rent<S2C_ClubChange>();
|
||||
}
|
||||
public override void Dispose()
|
||||
{
|
||||
Club = default;
|
||||
ChangeType = default;
|
||||
#if FANTASY_NET || FANTASY_UNITY
|
||||
GetScene().MessagePoolComponent.Return<S2C_ClubChange>(this);
|
||||
#endif
|
||||
}
|
||||
public uint OpCode() { return OuterOpcode.S2C_ClubChange; }
|
||||
[ProtoIgnore]
|
||||
public int RouteType => Fantasy.RouteType.SocialRoute;
|
||||
[ProtoMember(1)]
|
||||
public ClubInfo Club { get; set; }
|
||||
[ProtoMember(2)]
|
||||
public int ChangeType { get; set; }
|
||||
}
|
||||
}
|
||||
26
Hotfix/Chat/Handler/C2Chat_CreateChannelRequestHandler.cs
Normal file
26
Hotfix/Chat/Handler/C2Chat_CreateChannelRequestHandler.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using Fantasy;
|
||||
using Fantasy.Async;
|
||||
using Fantasy.Network.Interface;
|
||||
|
||||
namespace NB.Chat;
|
||||
|
||||
/// <summary>
|
||||
/// 请求创建频道
|
||||
/// </summary>
|
||||
public class
|
||||
C2Chat_CreateChannelRequestHandler : RouteRPC<ChatUnit, C2Chat_CreateChannelRequest, Caht2C_CreateChannelResponse>
|
||||
{
|
||||
protected override async FTask Run(ChatUnit entity, C2Chat_CreateChannelRequest request,
|
||||
Caht2C_CreateChannelResponse response, Action reply)
|
||||
{
|
||||
var channelCenter = entity.Scene.GetComponent<ChatChannelCenterComponent>();
|
||||
if (channelCenter == null)
|
||||
{
|
||||
response.ErrorCode = ErrorCode.ErrServer;
|
||||
return;
|
||||
}
|
||||
|
||||
var channel = await channelCenter.Create(entity);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -24,22 +24,22 @@ public class
|
||||
if (oldChannelId > 0)
|
||||
{
|
||||
//退出旧的频道
|
||||
if (channelCenter.TryGet(oldChannelId, out var oldChannel) && oldChannel != null)
|
||||
var oldChannel = await channelCenter.Get(oldChannelId);
|
||||
if (oldChannel != null)
|
||||
{
|
||||
oldChannel.Exit(entity);
|
||||
}
|
||||
}
|
||||
|
||||
//加入新频道
|
||||
if (channelCenter.TryGet(request.Target, out var channel) && channel != null)
|
||||
var newChannel = await channelCenter.Get(request.Target);
|
||||
if (newChannel != null)
|
||||
{
|
||||
channel.Enter(entity);
|
||||
newChannel.Enter(entity);
|
||||
}
|
||||
else
|
||||
{
|
||||
response.ErrorCode = ErrorCode.ChatNotChannel;
|
||||
}
|
||||
|
||||
await FTask.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,14 @@ public sealed class
|
||||
protected override async FTask Run(ChatUnit chatUnit, C2Chat_SendMessageRequest request,
|
||||
Caht2C_SendMessageResponse response, Action reply)
|
||||
{
|
||||
if (request.Type == 0) //频道聊天
|
||||
{
|
||||
|
||||
}
|
||||
else if (request.Type == 1) //私聊
|
||||
{
|
||||
|
||||
}
|
||||
ChatSceneHelper.Broadcast(chatUnit.Scene, new ChatMessageInfo()
|
||||
{
|
||||
Content = request.Message,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Fantasy.Entitas;
|
||||
using Fantasy.Async;
|
||||
using Fantasy.Entitas;
|
||||
using Fantasy.Entitas.Interface;
|
||||
using Fantasy.Helper;
|
||||
|
||||
@@ -22,15 +23,22 @@ public class ChatChannelCenterComponentDestroySystem : DestroySystem<ChatChannel
|
||||
public static class ChatChannelCenterComponentSystem
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取
|
||||
/// 获取一个频道
|
||||
/// </summary>
|
||||
/// <param name="self"></param>
|
||||
/// <param name="channelId"></param>
|
||||
/// <param name="channel"></param>
|
||||
/// <returns></returns>
|
||||
public static bool TryGet(this ChatChannelCenterComponent self, long channelId, out ChatChannel? channel)
|
||||
public static async FTask<ChatChannel?> Get(this ChatChannelCenterComponent self, long channelId)
|
||||
{
|
||||
return self.Channels.TryGetValue(channelId, out channel);
|
||||
if (self.Channels.TryGetValue(channelId, out var channel))
|
||||
{
|
||||
return channel;
|
||||
}
|
||||
|
||||
//查数据库
|
||||
channel = await self.Scene.World.DataBase.Query<ChatChannel>(channelId, true);
|
||||
self.Channels.Add(channel.Id, channel);
|
||||
return channel;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -38,22 +46,20 @@ public static class ChatChannelCenterComponentSystem
|
||||
/// </summary>
|
||||
/// <param name="self"></param>
|
||||
/// <param name="unit"></param>
|
||||
/// <param name="channelId"></param>
|
||||
/// <returns></returns>
|
||||
public static ChatChannel Apply(this ChatChannelCenterComponent self, ChatUnit unit, long channelId)
|
||||
public static async FTask<ChatChannel> Create(this ChatChannelCenterComponent self, ChatUnit unit)
|
||||
{
|
||||
if (self.Channels.TryGetValue(channelId, out var channel))
|
||||
{
|
||||
return channel;
|
||||
}
|
||||
|
||||
channel = Entity.Create<ChatChannel>(self.Scene, channelId, true, true);
|
||||
var channel = Entity.Create<ChatChannel>(self.Scene, true, true);
|
||||
channel.Creator = unit.Role.RoleId;
|
||||
channel.CreateTime = TimeHelper.Now;
|
||||
self.Channels.Add(channelId, channel);
|
||||
self.Channels.Add(channel.Id, channel);
|
||||
//保存到数据库
|
||||
await self.Scene.World.DataBase.Save(channel);
|
||||
|
||||
return channel;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 解散
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user