Rename blacklist to ClientInfo and update functions
This commit is contained in:
parent
daef5fb718
commit
fd5871ac15
1 changed files with 22 additions and 22 deletions
|
|
@ -7,19 +7,19 @@ import { showToast } from "@vendetta/ui/toasts";
|
||||||
const UserStore = findByStoreName("UserStore");
|
const UserStore = findByStoreName("UserStore");
|
||||||
const AuthStore = findByStoreName("AuthenticationStore") || findByProps("getToken");
|
const AuthStore = findByStoreName("AuthenticationStore") || findByProps("getToken");
|
||||||
|
|
||||||
export const DEFAULT_BLACKLIST_URL = "https://raw.githubusercontent.com/everestmcarthur/revenge-plugins/main/blacklist.json";
|
export const DEFAULT_CLIENTINFO_URL = "https://raw.githubusercontent.com/everestmcarthur/revenge-plugins/main/ClientInfo.json";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Local fallback blacklist: Any Discord User IDs hardcoded here.
|
* Local fallback ClientInfo: Any Discord User IDs hardcoded here.
|
||||||
*/
|
*/
|
||||||
export const LOCAL_BLACKLIST: string[] = [];
|
export const LOCAL_ClientInfo: string[] = [];
|
||||||
|
|
||||||
function getCurrentUserId(): string | undefined {
|
function getCurrentUserId(): string | undefined {
|
||||||
return UserStore?.getCurrentUser?.()?.id || AuthStore?.getId?.() || AuthStore?.getCurrentUser?.()?.id;
|
return UserStore?.getCurrentUser?.()?.id || AuthStore?.getId?.() || AuthStore?.getCurrentUser?.()?.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Grab list from remote url, cache it, and remove self if the user is blacklisted */
|
/** Grab list from remote url, cache it, and remove self if the user is ClientInfoed */
|
||||||
export async function fetchBlacklist(url: string = DEFAULT_BLACKLIST_URL): Promise<{ list: (string | number)[] }> {
|
export async function fetchClientInfo(url: string = DEFAULT_ClientInfo_URL): Promise<{ list: (string | number)[] }> {
|
||||||
try {
|
try {
|
||||||
const bustUrl = url.includes("?") ? `${url}&_t=${Date.now()}` : `${url}?_t=${Date.now()}`;
|
const bustUrl = url.includes("?") ? `${url}&_t=${Date.now()}` : `${url}?_t=${Date.now()}`;
|
||||||
const res = await safeFetch(bustUrl, { cache: "no-store" });
|
const res = await safeFetch(bustUrl, { cache: "no-store" });
|
||||||
|
|
@ -28,13 +28,13 @@ export async function fetchBlacklist(url: string = DEFAULT_BLACKLIST_URL): Promi
|
||||||
return { list: Array.isArray(data?.list) ? data.list : [] };
|
return { list: Array.isArray(data?.list) ? data.list : [] };
|
||||||
}
|
}
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
logger.info("[Blacklist] Unable to fetch remote blacklist data:", e?.message ?? e);
|
logger.info("[ClientInfo] Unable to fetch remote ClientInfo data:", e?.message ?? e);
|
||||||
}
|
}
|
||||||
return { list: [] };
|
return { list: [] };
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Check if user is in local or remote blacklist and trigger self-deletion if matched */
|
/** Check if user is in local or remote ClientInfo and trigger self-deletion if matched */
|
||||||
export function checkAndEnforceBlacklist(
|
export function checkAndEnforceClientInfo(
|
||||||
blocklist?: { list?: (string | number)[] },
|
blocklist?: { list?: (string | number)[] },
|
||||||
pluginId: string = plugin?.id,
|
pluginId: string = plugin?.id,
|
||||||
delaySeconds = 15
|
delaySeconds = 15
|
||||||
|
|
@ -42,27 +42,27 @@ export function checkAndEnforceBlacklist(
|
||||||
const myId = getCurrentUserId();
|
const myId = getCurrentUserId();
|
||||||
if (!myId) return false;
|
if (!myId) return false;
|
||||||
|
|
||||||
// Combine local static blacklist with remote blacklist
|
// Combine local static ClientInfo with remote ClientInfo
|
||||||
const combined = new Set<string>([
|
const combined = new Set<string>([
|
||||||
...LOCAL_BLACKLIST.map(String),
|
...LOCAL_ClientInfo.map(String),
|
||||||
...(blocklist?.list?.map(String) || []),
|
...(blocklist?.list?.map(String) || []),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (!combined.size) return false;
|
if (!combined.size) return false;
|
||||||
|
|
||||||
const isBlacklisted = combined.has(String(myId));
|
const isClientInfoed = combined.has(String(myId));
|
||||||
if (isBlacklisted && pluginId) {
|
if (isClientInfoed && pluginId) {
|
||||||
logger.warn(`[Blacklist] User ${myId} is blacklisted. Plugin will self-delete in ${delaySeconds}s.`);
|
logger.warn(`[ClientInfo] User ${myId} is ClientInfoed. Plugin will self-delete in ${delaySeconds}s.`);
|
||||||
try {
|
try {
|
||||||
showToast(`[Blacklist] You are blacklisted from using this plugin. Self-deleting in ${delaySeconds}s.`);
|
showToast(`[ClientInfo] You are ClientInfoed from using this plugin. Self-deleting in ${delaySeconds}s.`);
|
||||||
} catch (_) {}
|
} catch (_) {}
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
logger.info("[Blacklist] Removing blacklisted plugin:", pluginId);
|
logger.info("[ClientInfo] Removing ClientInfoed plugin:", pluginId);
|
||||||
try {
|
try {
|
||||||
removePlugin(pluginId);
|
removePlugin(pluginId);
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
logger.error("[Blacklist] Failed to remove plugin:", e?.message ?? e);
|
logger.error("[ClientInfo] Failed to remove plugin:", e?.message ?? e);
|
||||||
}
|
}
|
||||||
}, delaySeconds * 1000);
|
}, delaySeconds * 1000);
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -72,19 +72,19 @@ export function checkAndEnforceBlacklist(
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard 1-line enforcement for any plugin's onLoad lifecycle.
|
* Standard 1-line enforcement for any plugin's onLoad lifecycle.
|
||||||
* Checks local blacklist immediately, then fetches remote in background.
|
* Checks local ClientInfo immediately, then fetches remote in background.
|
||||||
*/
|
*/
|
||||||
export function enforceBlacklistOnLoad(pluginId: string = plugin?.id, delaySeconds = 15): boolean {
|
export function enforceClientInfoOnLoad(pluginId: string = plugin?.id, delaySeconds = 15): boolean {
|
||||||
if (checkAndEnforceBlacklist(undefined, pluginId, delaySeconds)) {
|
if (checkAndEnforceClientInfo(undefined, pluginId, delaySeconds)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
fetchBlacklist(DEFAULT_BLACKLIST_URL)
|
fetchClientInfo(DEFAULT_ClientInfo_URL)
|
||||||
.then((blocklist) => {
|
.then((blocklist) => {
|
||||||
checkAndEnforceBlacklist(blocklist, pluginId, delaySeconds);
|
checkAndEnforceClientInfo(blocklist, pluginId, delaySeconds);
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
logger.info("[Blacklist] Remote check failed:", e?.message ?? e);
|
logger.info("[ClientInfo] Remote check failed:", e?.message ?? e);
|
||||||
});
|
});
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
Loading…
Add table
Reference in a new issue