47 lines
1.3 KiB
Markdown
47 lines
1.3 KiB
Markdown
[](https://pypi.python.org/pypi/metaverse/)
|
|
[](https://pypi.python.org/pypi/metaverse/)
|
|
|
|
# PyMetaverse
|
|
A library for connecting to Second Life, OpenSimulator, or other compatible grids.
|
|
|
|
# Simple bot example
|
|
```py
|
|
import asyncio
|
|
import datetime
|
|
from metaverse import login
|
|
from metaverse.bot import SimpleBot
|
|
from metaverse.const import *
|
|
|
|
bot = SimpleBot()
|
|
|
|
@bot.on("message", name="ChatFromSimulator")
|
|
def ChatFromSimulator(simulator, message):
|
|
# Ignore start / stop
|
|
if message.ChatData.ChatType in (4, 5):
|
|
return
|
|
|
|
sender = message.ChatData.FromName.rstrip(b"\0").decode()
|
|
text = message.ChatData.Message.rstrip(b"\0").decode()
|
|
|
|
if text == "logout":
|
|
bot.say(0, "Ok!")
|
|
bot.logout()
|
|
|
|
print("[{}] {}: {}".format(
|
|
datetime.datetime.now().strftime("%Y-%M-%d %H:%m:%S"),
|
|
sender,
|
|
text
|
|
))
|
|
|
|
async def main():
|
|
await bot.login(("Example", "Resident"), "password")
|
|
await bot.run()
|
|
|
|
# Run everything
|
|
asyncio.run(main())
|
|
```
|
|
|
|
# Similar Projects
|
|
* Second Life Viewer (C++) - https://github.com/secondlife/viewer
|
|
* LibreMetaverse (C#) - https://github.com/cinderblocks/libremetaverse
|
|
* Node Metaverse (NodeJS) - https://github.com/CasperTech/node-metaverse |