Example #1
0
async def handle_get_buddies_legacy(p):
    buddies_query = BuddyList.load(parent=Penguin.on(Penguin.id == BuddyList.buddy_id)).where(
        BuddyList.penguin_id == p.data.id)

    buddies = []

    async with p.server.db.transaction():
        buddy_list = buddies_query.gino.iterate()

        async for buddy in buddy_list:
            buddy_presence = int(buddy.buddy_id in p.server.penguins_by_id)
            buddies.append(f'{buddy.buddy_id}|{buddy.parent.nickname}|{buddy_presence}')

    await p.send_xt('gb', *buddies)
    await update_player_presence(p)
Example #2
0
async def handle_get_mail(p):
    mail_query = PenguinPostcard.load(parent=Penguin.on(
        Penguin.id == PenguinPostcard.sender_id)).where(
            PenguinPostcard.penguin_id == p.data.id).order_by(
                PenguinPostcard.send_date.desc())

    postcards = []
    async with p.server.db.transaction():
        async for postcard in mail_query.gino.iterate():
            sender_name, sender_id = ('sys',
                                      0) if postcard.sender_id is None else (
                                          postcard.parent.nickname,
                                          postcard.sender_id)
            sent_timestamp = int(time.mktime(postcard.send_date.timetuple()))
            postcards.append(
                f'{sender_name}|{sender_id}|{postcard.postcard_id}|'
                f'{postcard.details}|{sent_timestamp}|{postcard.id}|{int(postcard.has_read)}'
            )
    await p.send_xt('mg', *postcards)
Example #3
0
async def get_igloo(penguin_id):
    return await PenguinIglooRoom.load(parent=Penguin.on(Penguin.igloo == PenguinIglooRoom.id))\
        .where(PenguinIglooRoom.penguin_id == penguin_id).gino.first()
Example #4
0
async def get_legacy_igloo_string(p, penguin_id):
    igloo = await PenguinIglooRoom.load(parent=Penguin.on(Penguin.igloo == PenguinIglooRoom.id))\
         .where(PenguinIglooRoom.penguin_id == penguin_id).gino.first()

    furniture_string = await get_layout_furniture(p, igloo.id)
    return f'{igloo.type}%{igloo.music}%{igloo.flooring}%{furniture_string}'