Difference between revisions of "Manual:Networking Functions"
(Created page with "{{TOC right}} == Networking Functions == A collection of functions for managing networking. ===disconnect=== ;disconnect() : Disconnects you from the game right away. Note th...") |
|||
Line 103: | Line 103: | ||
sendGMCP([[Char.Skills.Get { "group": "woodlore", "name": "hide"}]]) | sendGMCP([[Char.Skills.Get { "group": "woodlore", "name": "hide"}]]) | ||
+ | </lua> | ||
+ | |||
+ | ===sendMSDP=== | ||
+ | ;sendMSDP(command) | ||
+ | : Sends a MSDP message to the server. The [http://tools.ietf.org/html/rfc3618 RFC on MSDP] contains further information about the protocol. | ||
+ | |||
+ | : See Also: [[Manual:Supported_Protocols#Adding_support_for_a_telnet_protocol|Adding support for telnet protocols]] | ||
+ | |||
+ | ;Example | ||
+ | <lua> | ||
+ | --This would send "My.String" to the server. | ||
+ | sendMSDP("My.String") | ||
</lua> | </lua> | ||
Revision as of 14:06, 6 June 2013
Networking Functions
A collection of functions for managing networking.
disconnect
- disconnect()
- Disconnects you from the game right away. Note that this will not properly log you out of the game.
- Example
<lua> disconnect() </lua>
downloadFile
- downloadFile(saveto, url)
- Downloads the resource at the given url into the saveto location on disk. This does not pause the script until the file is downloaded - instead, it lets it continue right away and downloads in the background. When a download is finished, the sysDownloadDone event is raised (with the saveto location as the argument), or when a download fails, the sysDownloadError event is raised with the reason for failure. You may call downloadFile multiple times and have multiple downloads going on at once - but they aren’t guaranteed to be downloaded in the same order that you started them in.
Note: Requires Mudlet 2.0+
- Example
<lua> -- this example will check the Imperian homepage to see how many players are on right now
-- in an alias, download the Imperian homepage for stats processing downloadFile(getMudletHomeDir().."/page.html", "http://www.imperian.com/")
-- then create a new script with the name of downloaded_file, add the event handler -- for sysDownloadDone, and use this to parse the webpage and display the amount function downloaded_file(_, filename)
-- is the file that downloaded ours? if not filename:match("page", 1, true) then return end
-- parse our ownloaded file for the player count io.input(filename) local s = io.read("*all") local pc = s:match([[<a href='players.php%?search=who'>(%d+)</a>]]) display("Imperian has "..tostring(pc).." players on right now.") io.open():close() os.remove(filename)
end </lua>
getNetworkLatency
- getNetworkLatency()
- Returns the last measured response time between the sent command and the server reply e.g. 0.058 (=58 milliseconds lag) or 0.309 (=309 milliseconds). Also known as server lag.
- Example
Need example
openUrl
- openUrl (url)
- Opens the default OS browser for the given URL.
- Example
<lua> openUrl("http://google.com") openUrl("www.mudlet.org") </lua>
reconnect
- reconnect()
- Force-reconnects (so if you're connected, it'll disconnect) you to the game.
- Example
<lua> -- you could trigger this on a log out message to reconnect, if you'd like reconnect() </lua>
sendAll
- sendAll(list of things to send, [echo back or not])
- send()'s a list of things to the game. If you'd like the commands not to be shown, include false at the end.
- Example
<lua> -- instead of using many send() calls, you can use one sendAll sendAll("outr paint", "outr canvas", "paint canvas") -- can also have the commands not be echoed sendAll("hi", "bye", false) </lua>
sendGMCP
- sendGMCP(command)
- Sends a GMCP message to the server. The IRE document on GMCP has information about what can be sent, and what tables it will use, etcetera.
- See Also: GMCP Scripting
- Example
<lua> --This would send "Core.KeepAlive" to the server, which resets the timeout sendGMCP("Core.KeepAlive")
--This would send a request for the server to send an update to the gmcp.Char.Skills.Groups table. sendGMCP("Char.Skills.Get {}")
--This would send a request for the server to send a list of the skills in the --vision group to the gmcp.Char.Skills.List table.
sendGMCP([[Char.Skills.Get { "group": "vision"}]])
--And finally, this would send a request for the server to send the info for --hide in the woodlore group to the gmcp.Char.Skills.Info table
sendGMCP([[Char.Skills.Get { "group": "woodlore", "name": "hide"}]]) </lua>
sendMSDP
- sendMSDP(command)
- Sends a MSDP message to the server. The RFC on MSDP contains further information about the protocol.
- See Also: Adding support for telnet protocols
- Example
<lua> --This would send "My.String" to the server. sendMSDP("My.String") </lua>
sendIrc
- sendIrc(channel, message)
- Sends a message to an IRC channel or person. You must have the IRC window open, and if speaking to a channel, be joined in that channel. IRC currently only works on the freenode network and password-protected channels aren't supported.
- Parameters
- channel:
- The channel to send the message to. Can be #<channelname> to send to a channel, or <person name> to send to a person. Passed as a string.
- message:
- The message to send. Passed as a string.
- Example
<lua> --This would send "hello from Mudlet!" to the channel #mudlet on freenode.net sendIrc("#mudlet", "hello from Mudlet!") --This would send "identify password" in a private message to Nickserv on freenode.net sendIrc("Nickserv", "identify password") </lua>
sendTelnetChannel102
- sendTelnetChannel102(msg)
- Sends a message via the 102 subchannel back to the MUD (that's used in Aardwolf). The msg is in a two byte format - see `help telopts` in Aardwolf on how that works.
- Example
<lua> -- turn prompt flags on: sendTelnetChannel102("\52\1")
-- turn prompt flags off: sendTelnetChannel102("\52\2") </lua>