Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add legacy shim for chatting (TalkPath) #20

Closed
ksmit799 opened this issue Jan 4, 2024 · 0 comments · Fixed by #21
Closed

Add legacy shim for chatting (TalkPath) #20

ksmit799 opened this issue Jan 4, 2024 · 0 comments · Fixed by #21
Assignees
Labels
enhancement New feature or request legacy Related specifically to legacy (Disney)
Milestone

Comments

@ksmit799
Copy link
Owner

ksmit799 commented Jan 4, 2024

The original OTP server intercepted TalkPath_* field updates and handled the filtering/broadcasting of those messages on the CA. The default behaviour of these messages is a broadcast, which makes either filtering impossible or requires modifying the DClass (which isn't feasible for legacy projects.)

The goal of this issue is to add an UberDOG shim that will receive these messages from the CA (if configured to do so) and handle the filtering there. The shim can then send the filtered message back to the CA to be received by clients (following the specific TalkPath field keywords.)

The following is an example of TalkPath dclass's for reference, these are often inherited by player avatars:

struct TalkModification {
  uint16 offset;
  uint16 size;
};

dclass TalkPath_owner {
  setTalk(uint32 fromAV, uint32 fromAC, string avatarName, string chat, TalkModification mods[], uint8 flags) broadcast ownsend;
};

dclass TalkPath_whisper {
  setTalkWhisper(uint32 fromAV, uint32 fromAC, string avatarName, string chat, TalkModification mods[], uint8 flags) ownrecv clsend;
};

dclass TalkPath_group {
  setTalkGroup(uint32 fromAV, uint32 fromAC, string avatarName, string chat, TalkModification mods[], uint8 flags) clsend airecv;
};

dclass TalkPath_account {
  setTalkAccount(uint32 toAc, uint32 fromAC, string fromName, string chat, TalkModification mods[], uint8 flags) airecv clsend;
};

dclass TalkPath_account_group {
  setTalkAccountGroup(uint32, string, string, uint32, TalkModification mods[], uint8 flags) clsend airecv;
};
@ksmit799 ksmit799 added the legacy Related specifically to legacy (Disney) label Jan 4, 2024
@ksmit799 ksmit799 added this to the 1.1.0 milestone Jan 4, 2024
@ksmit799 ksmit799 self-assigned this Jan 4, 2024
@ksmit799 ksmit799 added the enhancement New feature or request label Jan 4, 2024
@ksmit799 ksmit799 linked a pull request Jan 5, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request legacy Related specifically to legacy (Disney)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant