All Downloads are FREE. Search and download functionalities are using the official Maven repository.

love.forte.simbot.definition.Member.kt Maven / Gradle / Ivy

There is a newer version: 3.0.0.preview.0.4
Show newest version
/*
 *  Copyright (c) 2021-2021 ForteScarlet 
 *
 *  根据 Apache License 2.0 获得许可;
 *  除非遵守许可,否则您不得使用此文件。
 *  您可以在以下网址获取许可证副本:
 *
 *       https://www.apache.org/licenses/LICENSE-2.0
 *
 *   有关许可证下的权限和限制的具体语言,请参见许可证。
 */

package love.forte.simbot.definition

import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.toList
import kotlinx.coroutines.runBlocking
import love.forte.simbot.Api4J
import love.forte.simbot.Bot
import love.forte.simbot.ID
import love.forte.simbot.Timestamp
import love.forte.simbot.action.MuteAction


/**
 * 一个组织下的成员,
 */
public interface Member : User, MemberInfo, MuteAction {

    override val id: ID
    override val bot: Bot

    /**
     * 在客观条件允许的情况下,对其进行禁言。
     *
     * 此行为不会捕获异常。
     *
     */
    override suspend fun mute(): Boolean

    @JvmSynthetic
    public suspend fun roles(): Flow
    @Api4J
    public val roles: List get() = runBlocking { roles().toList() }

}


/**
 * 一个成员信息。
 */
public interface MemberInfo : UserInfo {
    override val id: ID
    override val username: String
    override val avatar: String

    /**
     * 此成员在当前组织下的昵称。
     */
    public val nickname: String

    /**
     * 此成员加入当前组织的时间。
     *
     * _不被支持的可能性很大。_
     *
     */
    public val joinTime: Timestamp

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy