Simplify chat client example
This commit is contained in:
@@ -6,7 +6,7 @@ import asyncio
|
||||
from contextlib import aclosing
|
||||
import os
|
||||
|
||||
from hippolyzer.lib.base.message.message import Message, Block
|
||||
from hippolyzer.lib.base.message.message import Message
|
||||
from hippolyzer.lib.base.templates import ChatType, ChatSourceType
|
||||
from hippolyzer.lib.client.hippo_client import HippoClient
|
||||
|
||||
@@ -21,13 +21,7 @@ async def amain():
|
||||
return
|
||||
if "hello" not in str(message["ChatData"]["Message"]).lower():
|
||||
return
|
||||
await client.session.main_region.circuit.send_reliable(
|
||||
Message(
|
||||
"ChatFromViewer",
|
||||
Block("AgentData", SessionID=client.session.id, AgentID=client.session.agent_id),
|
||||
Block("ChatData", Message=f'Hello {message["ChatData"]["FromName"]}!', Channel=0, Type=ChatType.SHOUT),
|
||||
)
|
||||
)
|
||||
await client.send_chat(f'Hello {message["ChatData"]["FromName"]}!', chat_type=ChatType.SHOUT)
|
||||
|
||||
async with aclosing(client):
|
||||
await client.login(
|
||||
@@ -36,25 +30,13 @@ async def amain():
|
||||
start_location=os.environ.get("HIPPO_START_LOCATION", "home"),
|
||||
)
|
||||
print("I'm here")
|
||||
await client.session.main_region.circuit.send_reliable(
|
||||
Message(
|
||||
"ChatFromViewer",
|
||||
Block("AgentData", SessionID=client.session.id, AgentID=client.session.agent_id),
|
||||
Block("ChatData", Message="Hello World!", Channel=0, Type=ChatType.SHOUT),
|
||||
)
|
||||
)
|
||||
await client.send_chat("Hello World!", chat_type=ChatType.SHOUT)
|
||||
client.session.message_handler.subscribe("ChatFromSimulator", _respond_to_chat)
|
||||
while True:
|
||||
try:
|
||||
await asyncio.sleep(0.001)
|
||||
except (KeyboardInterrupt, asyncio.CancelledError):
|
||||
await client.session.main_region.circuit.send_reliable(
|
||||
Message(
|
||||
"ChatFromViewer",
|
||||
Block("AgentData", SessionID=client.session.id, AgentID=client.session.agent_id),
|
||||
Block("ChatData", Message="Goodbye World!", Channel=0, Type=ChatType.SHOUT),
|
||||
)
|
||||
)
|
||||
await client.send_chat("Goodbye World!", chat_type=ChatType.SHOUT)
|
||||
return
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -22,7 +22,7 @@ from hippolyzer.lib.base.message.udpdeserializer import UDPMessageDeserializer
|
||||
from hippolyzer.lib.base.network.caps_client import CapsClient, CAPS_DICT
|
||||
from hippolyzer.lib.base.network.transport import ADDR_TUPLE, Direction, SocketUDPTransport, AbstractUDPTransport
|
||||
from hippolyzer.lib.base.settings import Settings, SettingDescriptor
|
||||
from hippolyzer.lib.base.templates import RegionHandshakeReplyFlags
|
||||
from hippolyzer.lib.base.templates import RegionHandshakeReplyFlags, ChatType
|
||||
from hippolyzer.lib.base.transfer_manager import TransferManager
|
||||
from hippolyzer.lib.base.xfer_manager import XferManager
|
||||
from hippolyzer.lib.client.asset_uploader import AssetUploader
|
||||
@@ -482,6 +482,13 @@ class HippoClient(BaseClientSessionManager):
|
||||
)
|
||||
session.transport.close()
|
||||
|
||||
def send_chat(self, message: Union[bytes, str], channel: int = 0, chat_type=ChatType.NORMAL) -> asyncio.Future:
|
||||
return self.session.main_region.circuit.send_reliable(Message(
|
||||
"ChatFromViewer",
|
||||
Block("AgentData", SessionID=self.session.id, AgentID=self.session.agent_id),
|
||||
Block("ChatData", Message=message, Channel=channel, Type=chat_type),
|
||||
))
|
||||
|
||||
async def _attempt_resends(self):
|
||||
while True:
|
||||
await asyncio.sleep(0.5)
|
||||
|
||||
Reference in New Issue
Block a user