Plugin to post Steam group announcements from the comfort of the game chat.
sm_an [message]
Posts an announcements with the message as title, if a message is not specified it will post the previous announcement.
an_steamgroupid
ID of the Steam Group where announcements are meant to be posted. How to get your group ID. (default = "")
-
an_uppercase
Changes the announcement title to upper-case. (default = 0) -
an_callerinfo
Displays client profile and Steam ID in the announcement description. (default = 1) -
an_serverinfo
Displays server name, n° of players and IP in the announcement description. (default = 1) -
an_revealpassword
Displays server password in the announcement description. (default = 0) -
an_redirecturl
URL pointing to a Steam Browser Protocol forwarder. This allows you to display the "Join Server" link. This is explained in detail below. (default = "") -
an_extrainfo
Extra text to add at the start of the announcement description. (default = "")
Now the redirect URL is just an URL pointing to a site hosting r.html which function is to receive the server IP, Port and Password as GET parameters and redirect the user to the server with a Steam Browser Protocol request (steam://connect/...), the reason to do this is because Steam doesn't allow Steam redirects inside its own site, it's dumb i know.
For example if you host r.html in your dropbox public folder, you would have:
an_redirecturl "https://dl.dropboxusercontent.com/u/69397859/r.html"
Then in the announcement description the "Click Here to Join" link:
https://dl.dropboxusercontent.com/u/69397859/r.html?ip=233.143.43.54&port=27015
And finally this page, would redirect you to the server:
steam://connect/233.143.43.54:27015/
DON'T FORGET TO SETUP STEAMCORE
When you fulfil the requirements, just install as any other plugin, copy announcer.smx inside the plugins folder in your sourcemod directory.
Compiled versions: announcer.smx.
If you want to compile the code yourself you have to add the include file steamcore.inc
(from SteamCore, duh) inside scripting/include
and then compile. (You can't use includes with the online compiler)
- When a profile name contains a website its not displayed, instead just the profile permalink is displayed. This happens beacuase there can not be an URL inside an URL, and i can't do anything about it.
[04/02/2015] v1.0
- Initial Release.
[05/02/2015] v1.1
- Added Cvar an_extrainfo.
[29/03/2015] v1.2
- [steamcore] Fixed critical bug that made announcements stopped working after a few calls.
- Fixed wrong eror messages being displayed.
- More detailed information on error messages.
- Added sm_announce as an alias for sm_an.
- Long profile names are now displayed correctly on the announcements description.
[08/05/2015] v1.3
- More detailed response phrases.
- Added map name and connect command to the announcement description.
- Fixed error of an invalid client index thrown when client disconnected before receiving the response.
[12/06/2015] v1.4
- Added Cvar an_uppercase.
[02/02/2017] v1.5
- [steamcore] Fixed critical bug caused by outdated method to post announcements.
[21/08/2017] v1.6
- Updated to the new SteamCore syntax.