Manual:Networking Functions

From Mudlet
Jump to: navigation, search

Contents

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.
See also: reconnect()
Example
disconnect()

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 Note: HTTPS downloads are supported since Mudlet 3.0, also returns the actual download URL that was used for download.

Example
-- create a function to parse the downloaded webpage and display a result
function downloaded_file(_, filename)
  -- is the file that downloaded ours?
  if not filename:find("achaea-who-count.html", 1, true) then return end
 
  -- read the contents of the webpage in
  local f, s, webpage = io.open(filename)
  if f then webpage = f:read("*a"); io.close(f) end
  -- delete the file on disk, don't clutter
  os.remove(filename)
 
  -- parse our downloaded file for the player count
  local pc = webpage:match([[Total: (%d+) players online]])
  display("Achaea has "..tostring(pc).." players on right now.")
end
 
-- register our function to run on the event that something was downloaded
registerAnonymousEventHandler("sysDownloadDone", "downloaded_file")
 
-- download a list of fake users for a demo
downloadFile(getMudletHomeDir().."/achaea-who-count.html", "https://www.achaea.com/game/who")

Result should look like this:

DownloadFile demo.png.

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
openUrl("http://google.com")
openUrl("www.mudlet.org")

reconnect

reconnect()
Force-reconnects (so if you're connected, it'll disconnect) you to the game.
Example
-- you could trigger this on a log out message to reconnect, if you'd like
reconnect()

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
-- 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)

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
--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"}]])

sendMSDP

sendMSDP(variable[, value][, value...])
Sends a MSDP message to the server.
Parameters
  • variable:
The variable, in MSDP terms, that you want to request from the server.
  • value:
The variables value that you want to request. You can request more than one value at a time.
See Also: MSDP support in Mudlet, Mud Server Data Protocol specification
Example
-- ask for a list of commands, lists, and reportable variables that the server supports
sendMSDP("LIST", "COMMANDS", "LISTS", "REPORTABLE_VARIABLES")
 
-- ask the server to start keeping you up to date on your health
sendMSDP("REPORT", "HEALTH")
 
-- or on your health and location
sendMSDP("REPORT", "HEALTH", "ROOM_VNUM", "ROOM_NAME")

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
--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")

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
-- turn prompt flags on:
sendTelnetChannel102("\52\1")
 
-- turn prompt flags off:
sendTelnetChannel102("\52\2")
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox