1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package main
- import (
- "net/http"
- "regexp"
- "strconv"
- "time"
- )
- func AddBanIP(w http.ResponseWriter, r *http.Request) {
- IP, _ := mv(r, "ip", false)
- Created := currentTime()
- Source := "ArOZ Minecraft Terminal"
- Expires := "forever"
- Reason, _ := mv(r, "reason", false)
- if !Config.CheckDuplicateBannedIPs(IP) {
- Config.WriteBannedIP(IP, Created, Source, Expires, Reason)
- sendTextResponse(w, "OK")
- } else {
- sendTextResponse(w, "Duplicate Record")
- }
- }
- func AddBanPlayer(w http.ResponseWriter, r *http.Request) {
- UUID, _ := mv(r, "uuid", false)
- Name, _ := mv(r, "name", false)
- Created := currentTime()
- Source := "ArOZ Minecraft Terminal"
- Expires := "forever"
- Reason, _ := mv(r, "reason", false)
- if IsValidUUID(UUID) {
- if !Config.CheckDuplicateBannedPlayers(UUID, Name) {
- Config.WriteBannedPlayer(UUID, Name, Created, Source, Expires, Reason)
- sendTextResponse(w, "OK")
- } else {
- sendTextResponse(w, "Duplicate Record")
- }
- } else {
- sendTextResponse(w, "Incorrect UUID.")
- }
- }
- func AddOps(w http.ResponseWriter, r *http.Request) {
- UUID, _ := mv(r, "uuid", false)
- Name, _ := mv(r, "name", false)
- Level, _ := mv(r, "level", false)
- LevelI, _ := strconv.Atoi(Level)
- BypassesPlayerLimit, _ := mv(r, "bypass", false)
- BypassesPlayerLimitB, _ := strconv.ParseBool(BypassesPlayerLimit)
- if IsValidUUID(UUID) {
- if !Config.CheckDuplicateOps(UUID, Name) {
- Config.WriteOps(UUID, Name, LevelI, BypassesPlayerLimitB)
- sendTextResponse(w, "OK")
- } else {
- sendTextResponse(w, "Duplicate Record")
- }
- } else {
- sendTextResponse(w, "Incorrect UUID.")
- }
- }
- func AddWhitelist(w http.ResponseWriter, r *http.Request) {
- UUID, _ := mv(r, "uuid", false)
- Name, _ := mv(r, "name", false)
- if IsValidUUID(UUID) {
- if !Config.CheckDuplicateWhitelists(UUID, Name) {
- Config.WriteWhitelist(UUID, Name)
- sendTextResponse(w, "OK")
- } else {
- sendTextResponse(w, "Duplicate Record")
- }
- } else {
- sendTextResponse(w, "Incorrect UUID.")
- }
- }
- func currentTime() string {
- t := time.Now()
- return t.Format("2006-01-02 15:04:05 -0700")
- }
- //vaild UUID
- //https://stackoverflow.com/questions/25051675/how-to-validate-uuid-v4-in-go
- func IsValidUUID(uuid string) bool {
- r := regexp.MustCompile("^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[8|9|aA|bB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$")
- return r.MatchString(uuid)
- }
|