aboutsummaryrefslogtreecommitdiff
path: root/commands/claim.js
blob: d549056fbc6b135b41bc3ffe5b3c5a563011186c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import axios from "../../axios"
import settings from "../settings"
import constants from "../util/constants"
const PREFIX = constants.PREFIX


export function claim(structure)
{
    if(!settings.claiming) 
    {
        ChatLib.chat(`${PREFIX}&cPlease turn on the &3Claiming&c setting in /cw settings!`)
        return
    }

    if (constants.serverData.map != "Crystal Hollows")
    {
        ChatLib.chat(`${PREFIX}&cThis command is only available in the crystal hollows!`)
        return
    }

    if (structure == undefined || !(structure.toLowerCase() == "throne" || structure.toLowerCase() == "spiral"))
    {
        ChatLib.chat(`${PREFIX}&cPlease enter the structure you wish to claim! (&3throne&c or &3spiral&c)`)
        return
    }

    axios.get(`https://ninjune.dev/api/claim?type=${structure}&id=${constants.serverData.server}&key=${constants.data.api_key}`)
    .then(res => {
        if(res.data.success)
            ChatLib.chat(`${PREFIX}&aSuccessfully claimed ${constants.serverData.server} as your server!`)
        else
            ChatLib.chat(`${PREFIX}&cError: ${res.data.reason}`)
    })
    .catch(err => {
        ChatLib.chat(`${PREFIX}&cError: ${err}`)
    })
    // key is used above to verify that the player trying to claim the lobby is the intended player, don't know a better way of doing this.
}


register('worldLoad', () => {
    if(!settings.claiming) return
    
    setTimeout(() => {
        const NetHandlerPlayClient = Client.getConnection(),
         PlayerMap = NetHandlerPlayClient.func_175106_d() // getPlayerInfoMap
        
        if(settings.debug) console.log(constants.serverData.server)
        axios.get(`https://ninjune.dev/api/claim?claimedlobby=${constants.serverData.server}`)
        .then(res => {
            if(res.data.claimed)
            {
                PlayerMap.filter(player => player.func_178853_c() > 0 && !player.func_178845_a().name.startsWith("!")).forEach((PlayerMP) => {
                    let player = PlayerMP.func_178845_a().name

                    res.data.structures.forEach((structure) => {
                        if (player == structure.player)
                            ChatLib.chat(`${PREFIX}&cThe ${structure.structure} in ${structure.server} is claimed by ${structure.player}.`) 
                            //holy im so good at naming things, structure.structure I must be a genius.
                    })
                })
            }
        })
        .catch(err => {
            if(!settings.debug) return
            ChatLib.chat(`${PREFIX}&cError: ${err}`)
        })
    }, 2000)
})

register('worldUnload', () => {
    axios.get(`https://ninjune.dev/api/unclaim?claimedlobby=${constants.serverData.server}&key=${constants.data.api_key}`) 
    // unclaims the lobby, isn't needed but will allow another player to claim lobby after claimer leaves. key used to verify identity of unclaimer.
})