control

package module
v1.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2022 License: GPL-3.0 Imports: 14 Imported by: 361

README

zbpctrl

ZeroBot-Plugin 的控制库

Documentation

Overview

Package control 控制插件的启用与优先级等

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BanStatus added in v1.5.1

type BanStatus struct {
	ID      int64 `db:"id"`
	UserID  int64 `db:"uid"`
	GroupID int64 `db:"gid"`
}

BanStatus 在某群封禁某人的状态

type BlockStatus added in v1.5.1

type BlockStatus struct {
	UserID int64 `db:"uid"`
}

BlockStatus 全局 ban 某人

type Control

type Control[CTX any] struct {
	Service string
	Cache   map[int64]bool
	Options Options[CTX]
	Manager *Manager[CTX]
}

Control is to control the plugins.

func (*Control[CTX]) Ban

func (m *Control[CTX]) Ban(uid, gid int64)

Ban 禁止某人在某群使用本插件

func (*Control[CTX]) Disable

func (m *Control[CTX]) Disable(groupID int64)

Disable disables a group to pass the Manager. groupID == 0 (ALL) will operate on all grps.

func (*Control[CTX]) Enable

func (m *Control[CTX]) Enable(groupID int64)

Enable enables a group to pass the Manager. groupID == 0 (ALL) will operate on all grps.

func (*Control[CTX]) EnableMarkIn added in v1.4.0

func (m *Control[CTX]) EnableMarkIn(grp int64) EnableMark

EnableMarkIn 打印 ● 或 ○

func (*Control[CTX]) Flip added in v1.4.0

func (m *Control[CTX]) Flip() error

Flip 改变全局默认启用状态

func (*Control[CTX]) GetData

func (m *Control[CTX]) GetData(gid int64) int64

GetData 获取某个群的 62 位配置信息

func (*Control[CTX]) Handler

func (m *Control[CTX]) Handler(ctx uintptr, gid, uid int64) bool

Handler 返回 预处理器

func (*Control[CTX]) IsBannedIn

func (m *Control[CTX]) IsBannedIn(uid, gid int64) bool

IsBannedIn 某人是否在某群被 ban

func (*Control[CTX]) IsEnabledIn

func (m *Control[CTX]) IsEnabledIn(gid int64) bool

IsEnabledIn 查询开启群 当全局未配置或与默认相同时, 状态取决于单独配置, 后备为默认配置; 当全局与默认不同时, 状态取决于全局配置, 单独配置失效。

func (*Control[CTX]) Permit

func (m *Control[CTX]) Permit(uid, gid int64)

Permit 允许某人在某群使用本插件

func (*Control[CTX]) Reset

func (m *Control[CTX]) Reset(groupID int64)

Reset resets the default config of a group. groupID == 0 (ALL) is not allowed.

func (*Control[CTX]) SetData

func (m *Control[CTX]) SetData(groupID int64, data int64) error

SetData 为某个群设置中间 62 位配置数据 (除高低位)

func (*Control[CTX]) String added in v1.4.0

func (m *Control[CTX]) String() string

String 打印帮助

type EnableMark added in v1.4.0

type EnableMark bool

EnableMark 启用:●,禁用:○

func (EnableMark) String added in v1.4.0

func (em EnableMark) String() string

String 打印启用状态

type GroupConfig added in v1.5.1

type GroupConfig struct {
	GroupID int64 `db:"gid"`     // GroupID 群号
	Disable int64 `db:"disable"` // Disable 默认启用该插件
}

GroupConfig holds the group config for the Manager.

type Manager added in v1.4.0

type Manager[CTX any] struct {
	sync.RWMutex
	M map[string]*Control[CTX]
	D sql.Sqlite
}

func NewManager added in v1.4.0

func NewManager[CTX any](dbpath string) (m Manager[CTX])

func (*Manager[CTX]) CanResponse added in v1.5.1

func (manager *Manager[CTX]) CanResponse(gid int64) bool

CanResponse ...

func (*Manager[CTX]) DoBlock added in v1.4.0

func (manager *Manager[CTX]) DoBlock(uid int64) error

func (*Manager[CTX]) DoUnblock added in v1.4.0

func (manager *Manager[CTX]) DoUnblock(uid int64) error

func (*Manager[CTX]) ForEach added in v1.4.0

func (manager *Manager[CTX]) ForEach(iterator func(key string, manager *Control[CTX]) bool)

ForEach iterates through managers.

func (*Manager[CTX]) GetExtra added in v1.5.1

func (manager *Manager[CTX]) GetExtra(gid int64, obj any) error

func (*Manager[CTX]) IsBlocked added in v1.4.0

func (manager *Manager[CTX]) IsBlocked(uid int64) bool

func (*Manager[CTX]) Lookup added in v1.4.0

func (manager *Manager[CTX]) Lookup(service string) (*Control[CTX], bool)

Lookup returns a Manager by the service name, if not exist, it will return nil.

func (*Manager[CTX]) NewControl added in v1.5.1

func (manager *Manager[CTX]) NewControl(service string, o *Options[CTX]) *Control[CTX]

newctrl returns Manager with settings.

func (*Manager[CTX]) Response added in v1.5.1

func (manager *Manager[CTX]) Response(gid int64) error

Response opens the resp of the gid

func (*Manager[CTX]) SetExtra added in v1.5.1

func (manager *Manager[CTX]) SetExtra(gid int64, obj any) error

func (*Manager[CTX]) Silence added in v1.5.1

func (manager *Manager[CTX]) Silence(gid int64) error

Silence will drop its extra data

type Options

type Options[CTX any] struct {
	DisableOnDefault  bool
	Brief             string    // 简介
	Help              string    // 帮助文本信息
	Banner            string    // 背景图路径, 可为 http 或 本地 路径
	PrivateDataFolder string    // 全部小写的数据文件夹名, 不出现在 zbpdata
	PublicDataFolder  string    // 驼峰的数据文件夹名, 出现在 zbpdata
	OnEnable          func(CTX) // 启用插件后执行的命令, 为空则打印 “已启用服务: xxx”
	OnDisable         func(CTX) // 禁用插件后执行的命令, 为空则打印 “已禁用服务: xxx”
}

Options holds the optional parameters for the Manager.

type ResponseGroup added in v1.5.1

type ResponseGroup struct {
	GroupID int64  `db:"gid"` // GroupID 群号, 个人为负
	Extra   string `db:"ext"` // Extra 该群的扩展数据
}

ResponseGroup 响应的群

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL