Add banlist command
parent
a79c7736ba
commit
a6848078aa
32
ban.go
32
ban.go
|
@ -80,6 +80,38 @@ func deleteBanItem(db *sql.DB, name string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// BanList returns the list of banned players and IP addresses
|
||||
func BanList() (map[string]string, error) {
|
||||
sql_readBanItems := `SELECT addr, name FROM ban;`
|
||||
|
||||
db, err := initAuthDB()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
stmt, err := db.Prepare(sql_readBanItems)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer stmt.Close()
|
||||
|
||||
rows, err := stmt.Query()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
r := make(map[string]string)
|
||||
|
||||
for rows.Next() {
|
||||
var addr, name string
|
||||
err = rows.Scan(&addr, &name)
|
||||
r[addr] = name
|
||||
}
|
||||
|
||||
return r, nil
|
||||
}
|
||||
|
||||
// IsBanned reports whether a Peer is banned
|
||||
func (p *Peer) IsBanned() (bool, string, error) {
|
||||
db, err := initAuthDB()
|
||||
|
|
18
igutils.go
18
igutils.go
|
@ -362,6 +362,24 @@ func init() {
|
|||
p.SendChatMsg("Privileges updated.")
|
||||
})
|
||||
|
||||
RegisterChatCommand("banlist",
|
||||
privs("ban"),
|
||||
"Prints the list of banned IP address and associated players. Usage: banlist",
|
||||
func(p *Peer, param string) {
|
||||
bans, err := BanList()
|
||||
if err != nil {
|
||||
p.SendChatMsg("An internal error occured while attempting to read the ban list.")
|
||||
return
|
||||
}
|
||||
|
||||
msg := "Address | Name\n"
|
||||
for addr, name := range bans {
|
||||
msg += addr + " | " + name + "\n"
|
||||
}
|
||||
|
||||
p.SendChatMsg(msg)
|
||||
})
|
||||
|
||||
RegisterChatCommand("ban",
|
||||
privs("ban"),
|
||||
"Bans an IP address or a connected player. Usage: ban <playername | IP address>",
|
||||
|
|
Loading…
Reference in New Issue