Documentation ¶
Index ¶
- Constants
- Variables
- func CanModifyRep(conf *models.ReputationConfig, sender, receiver *dstate.MemberState) error
- func CheckSetCooldown(conf *models.ReputationConfig, senderID int64) (bool, error)
- func ClearCooldown(guildID, senderID int64) error
- func CmdGiveRep(parsed *dcmd.Data) (interface{}, error)
- func DefaultConfig(guildID int64) *models.ReputationConfig
- func DelRep(ctx context.Context, gid int64, userID int64) error
- func GetConfig(ctx context.Context, guildID int64) (*models.ReputationConfig, error)
- func GetUserStats(guildID, userID int64) (score int64, rank int, err error)
- func HandleGetReputation(w http.ResponseWriter, r *http.Request) interface{}
- func HandleLeaderboardJson(w http.ResponseWriter, r *http.Request) interface{}
- func HandlePostReputation(w http.ResponseWriter, r *http.Request) (templateData web.TemplateData, err error)
- func IsAdmin(gs *dstate.GuildState, member *dstate.MemberState, ...) bool
- func KeyCooldown(guildID, userID int64) string
- func ModifyRep(ctx context.Context, conf *models.ReputationConfig, guildID int64, ...) (err error)
- func RegisterPlugin()
- func SetRep(ctx context.Context, gid int64, senderID, userID int64, points int64) error
- type LeaderboardEntry
- type Plugin
- type PostConfigForm
- type RankEntry
- type UserError
Constants ¶
View Source
const DBSchema = `` /* 1417-byte string literal not displayed */
Variables ¶
View Source
var ( ErrMissingRequiredGiveRole = UserError("Missing the required role to give points") ErrMissingRequiredReceiveRole = UserError("Missing the required role to receive points") ErrBlacklistedGive = UserError("Blaclisted from giving points") ErrBlacklistedReceive = UserError("Blacklisted from receiving points") ErrCooldown = UserError("You're still on cooldown") )
View Source
var (
ErrUserNotFound = errors.New("User not found")
)
Functions ¶
func CanModifyRep ¶
func CanModifyRep(conf *models.ReputationConfig, sender, receiver *dstate.MemberState) error
Returns a user error if the sender can not modify the rep of receiver Admins are always able to modify the rep of everyone
func CheckSetCooldown ¶
func CheckSetCooldown(conf *models.ReputationConfig, senderID int64) (bool, error)
CheckSetCooldown checks and updates the reputation cooldown of a user, it returns true if the user was not on cooldown
func ClearCooldown ¶
func CmdGiveRep ¶
func DefaultConfig ¶
func DefaultConfig(guildID int64) *models.ReputationConfig
func HandleGetReputation ¶
func HandleGetReputation(w http.ResponseWriter, r *http.Request) interface{}
func HandleLeaderboardJson ¶
func HandleLeaderboardJson(w http.ResponseWriter, r *http.Request) interface{}
func HandlePostReputation ¶
func HandlePostReputation(w http.ResponseWriter, r *http.Request) (templateData web.TemplateData, err error)
func IsAdmin ¶
func IsAdmin(gs *dstate.GuildState, member *dstate.MemberState, config *models.ReputationConfig) bool
func KeyCooldown ¶
func ModifyRep ¶
func ModifyRep(ctx context.Context, conf *models.ReputationConfig, guildID int64, sender, receiver *dstate.MemberState, amount int64) (err error)
func RegisterPlugin ¶
func RegisterPlugin()
Types ¶
type LeaderboardEntry ¶
type LeaderboardEntry struct { *RankEntry Username string `json:"username"` Bot bool `json:"bot"` Avatar string `json:"avatar"` }
func DetailedLeaderboardEntries ¶
func DetailedLeaderboardEntries(guildID int64, ranks []*RankEntry) ([]*LeaderboardEntry, error)
type Plugin ¶
type Plugin struct{}
func (*Plugin) AddCommands ¶ added in v1.4.1
func (p *Plugin) AddCommands()
type PostConfigForm ¶
type PostConfigForm struct { Enabled bool EnableThanksDetection bool PointsName string `valid:",50"` Cooldown int `valid:"0,86401"` // One day MaxGiveAmount int64 RequiredGiveRole string `valid:"role,true"` RequiredReceiveRole string `valid:"role,true"` BlacklistedGiveRole string `valid:"role,true"` BlacklistedReceiveRole string `valid:"role,true"` AdminRole string `valid:"role,true"` }
func (PostConfigForm) RepConfig ¶
func (p PostConfigForm) RepConfig() *models.ReputationConfig
Click to show internal directories.
Click to hide internal directories.