Skip to content
This repository was archived by the owner on Sep 26, 2023. It is now read-only.

Commit 73c35e5

Browse files
committed
added ctrg
1 parent b2ea54a commit 73c35e5

File tree

3 files changed

+64
-3
lines changed

3 files changed

+64
-3
lines changed

src/commands/updateHours.ts

+21-3
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,17 @@ import {
77
getMedics,
88
getPolice,
99
getActivity,
10+
getCtrg,
1011
} from "../connectionGameCP";
1112
import PlayerData from "../player-schema";
1213

1314
export default {
1415
category: "Management",
1516
description: "Updates hours for all factions!",
1617
slash: true,
17-
testOnly: false,
18+
testOnly: true,
1819
guildOnly: true,
19-
globalCooldown: "30m",
20+
// globalCooldown: "30m",
2021

2122
callback: async ({ interaction, guild }) => {
2223
let member = guild!.members.cache.get(interaction.user.id);
@@ -76,8 +77,22 @@ export default {
7677
rank: string;
7778
}[] = await getHato();
7879

80+
const allCtrg: {
81+
uid: string;
82+
name: string;
83+
last_logout: string;
84+
join_date: string;
85+
permission: string;
86+
admin_level: string;
87+
permission_level: number;
88+
rank: string;
89+
}[] = await getCtrg();
90+
7991
const allSteam: string[] = [];
8092

93+
for (const ctrg of allCtrg) {
94+
allSteam.indexOf(ctrg.uid) === -1 ? allSteam.push(ctrg.uid) : null;
95+
}
8196
for (const officer of allPolice) {
8297
allSteam.indexOf(officer.uid) === -1 ? allSteam.push(officer.uid) : null;
8398
}
@@ -116,10 +131,13 @@ export default {
116131
minutesAPC: activity.total.Police,
117132
minutesNHS: activity.total.NHS,
118133
minutesHato: activity.total.HATO,
134+
minutesCtrg: activity.total.CTRG,
119135
};
120136

137+
console.log(activitySlim);
138+
121139
await new PlayerData(activitySlim).save();
122-
await new Promise((resolve) => setTimeout(resolve, 600));
140+
await new Promise((resolve) => setTimeout(resolve, 1000));
123141
}
124142
},
125143
} as ICommand;

src/connectionGameCP.ts

+39
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,45 @@ export const getPolice = async () => {
156156
return officers;
157157
};
158158

159+
export const getCtrg = async () => {
160+
const raw = await superagent.get(ctrgRequestUrl);
161+
const data = JSON.parse(raw.text);
162+
const totalCtrg = data.recordsTotal;
163+
let start = 0;
164+
let ctrg: {
165+
uid: string;
166+
name: string;
167+
last_logout: string;
168+
join_date: string;
169+
permission: string;
170+
admin_level: string;
171+
permission_level: number;
172+
rank: string;
173+
}[] = [];
174+
175+
while (start < totalCtrg) {
176+
const link = `https://grandtheftarma.com/gamecp/api/whitelist/CTRG?draw=1&columns%5B0%5D%5Bdata%5D=uid&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=name&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=rank&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=function&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=join_date&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=true&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B5%5D%5Bdata%5D=function&columns%5B5%5D%5Bname%5D=&columns%5B5%5D%5Bsearchable%5D=true&columns%5B5%5D%5Borderable%5D=false&columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=2&order%5B0%5D%5Bdir%5D=desc&start=${start}&length=30&search%5Bvalue%5D=&search%5Bregex%5D=false`;
177+
const raw = await superagent.get(link);
178+
const data = JSON.parse(raw.text);
179+
data.data.forEach(
180+
(ctrgMember: {
181+
uid: string;
182+
name: string;
183+
last_logout: string;
184+
join_date: string;
185+
permission: string;
186+
admin_level: string;
187+
permission_level: number;
188+
rank: string;
189+
}) => {
190+
ctrg.push(ctrgMember);
191+
}
192+
);
193+
start += 30;
194+
}
195+
return ctrg;
196+
};
197+
159198
export const getActivity = async (uid: string) => {
160199
const activityUrl = `https://grandtheftarma.com/gamecp/api/tools/activity?draw=2&columns%5B0%5D%5Bdata%5D=player_id&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=false&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=function&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=false&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=function&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=false&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=function&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=false&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=start&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=false&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B5%5D%5Bdata%5D=function&columns%5B5%5D%5Bname%5D=&columns%5B5%5D%5Bsearchable%5D=true&columns%5B5%5D%5Borderable%5D=false&columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B6%5D%5Bdata%5D=function&columns%5B6%5D%5Bname%5D=&columns%5B6%5D%5Bsearchable%5D=true&columns%5B6%5D%5Borderable%5D=false&columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&start=0&length=30&search%5Bvalue%5D=${uid}`;
161200
const raw = await superagent.get(activityUrl);

src/player-schema.ts

+4
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ const schema = new Schema({
2222
type: Number,
2323
required: true,
2424
},
25+
minutesCtrg: {
26+
type: Number,
27+
required: true,
28+
},
2529
});
2630

2731
export default mongoose.model("PlayerData", schema, "PlayerData");

0 commit comments

Comments
 (0)