AlterEgo

AlterEgo

39k Downloads

Announce Keystone to other channels

choss opened this issue ยท 8 comments

commented

Hi,
can we add the functionality to announce keystones to either communities (single channel) or battle-net communities (multi-channel, across more than wow)

This would make organization of events much easier, than having to manually copy/paste the key info.

Relevant APIs are
C_Club.GetSubscribedClubs() -- lists all communities person is member of
local streams = C_Club.GetStreams(123456789); -- get all channels in a community

The communities have a type... which says what kind they are

commented

Bad news @choss

Blizzard protected the messaging to only work on hardware input (clicking, typing etc.) according to the warcraft wiki.
I guess people just automated too much spam unfortunately and they had to restrict it in the patch afterwards.

Patch 8.1.0 (2018-12-11): Protected. May only be called in response to a hardware event.

Reference: https://warcraft.wiki.gg/wiki/API_C_Club.SendMessage

commented

Hey there @choss

Appreciate your input. Sorry for the delay.

I've actually never been in or used a community before, so I didn't think of this. The same goes for Bnet communities ๐Ÿ˜„

I'm sure this would be easy to implement, however how would the user set this up/use this with the settings/announce button, considering Bnet communities have multiple channels? Nested dropdown for multi-channel communities?

commented

No worries about the delay. I an fine with that. I also am not quite there yet with a full working code sample.
I noticed there a multiple types of communities of course

  1. Single channel -> I kind of would put them into the drop down, just like another random channel we have
  2. Bnet Communities -> I think nested dropdown would be perfect, but something like " -> " in the drop down would also help immensely I think.

As a value add, it would be of course even greater, if we could configure the contents of the drop-down somewhere in the settings.
For a minimal concept which would solve my issue, it would be even enough to have it somewhere in the settings where I could manually add a channel with the "parameters" to give to SendChatMessage (SendChatMessage( ,"CHANNEL" ,nil,)). The hard part is getting the correct channel-id actually and also passing that through the methods.

As for the use-case: The realms where I am on have communities which basically organize cross-realm, cross-faction, cross-guild M+. The guilds tend to be more around a group of friends and not a specific goal. Communities help a lot there and also we like to post our keys into the Community to see what is available for running on a given night. I don't know how this translates to other peoples situation, but i think this might help a lot.

commented

Good feedback and suggestions.

I am worried that having the user "add" the streams (channels) manually from one area in the GUI to another, would be too complex compared to the current simplicity of a single dropdown for settings. I'd prefer a simple checkbox (with nested streams in multi-channel clubs).

I don't use communities/clubs, so I don't know how many communities people usually end up having (or what the limit is), but I think just adding the streams (single or nested for Bnet) to the Announce button and settings dropdown (auto-announcement) is probably the quickest and easiest way to work with.

Now... here comes a new "challenge" to factor in: Clubs per character? I assume communities are managed for each character individually and not account-wide yeah? Similar to guilds.
If that's the case then I'll have to introduce character-based settings as everything right now is global.

Edit: Actually nevermind. The activated streams for announcement don't cross over between characters anyway and won't announce anything on a different character that isn't in the same club/channel, so the settings are still global.

commented

Ah sorry for making you investigate this and for all the work. This sucks :(
I would have assumed that a click on the report button is a hardware event

commented

Ah sorry for making you investigate this and for all the work. This sucks :( I would have assumed that a click on the report button is a hardware event

My bad. You're right. The Announce dropdown will most likely work fine. It's the auto-announcement that won't work.
And you're not wasting my time. I appreciate you ๐Ÿ‘

I'll look into adding communities to the Announce button and see if it works.

commented

That would be fantastic and I will happily test it and give feedback. My quick tests with wowlua addon say that at least for in game communities it works. For the Bnet communities I need to figure out, if I am dumb or if it's the blizzard api ๐Ÿ˜„

Also thank you for the appreciation! I btw love your addon!

commented

Also just a quick note: with my standard method of testing I found out:

  • You can send messages to bnet communities (sub-channels)
  • You can send messages to ingame communities

But for this to work, you need to add the chat to your local chat tab. (in the community interface you can select this) Then they get a channel number and the c_club message actually works (with the community prefix, channel prefix)

I assume it is the same as the restrictions to guilds: you need to be actively subscribed to the channel in order to be able to post into it.

Source for the last sentence: https://wowwiki-archive.fandom.com/wiki/API_SendChatMessage

Relevant excerpt: "The earliest you can send a chat message to "GUILD" is after the event "CLUB_STREAM_SUBSCRIBED" is fired, as this is when the Community channel is loaded. (Guild is a Community channel)"