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
|
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
|
// IsBanned reports whether a Peer is banned
|
||||||
func (p *Peer) IsBanned() (bool, string, error) {
|
func (p *Peer) IsBanned() (bool, string, error) {
|
||||||
db, err := initAuthDB()
|
db, err := initAuthDB()
|
||||||
|
|
18
igutils.go
18
igutils.go
|
@ -362,6 +362,24 @@ func init() {
|
||||||
p.SendChatMsg("Privileges updated.")
|
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",
|
RegisterChatCommand("ban",
|
||||||
privs("ban"),
|
privs("ban"),
|
||||||
"Bans an IP address or a connected player. Usage: ban <playername | IP address>",
|
"Bans an IP address or a connected player. Usage: ban <playername | IP address>",
|
||||||
|
|
Loading…
Reference in New Issue