dirk-cfx-react 1.0.35 → 1.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
+ import { useEffect, useMemo } from 'react';
1
2
  import { create } from 'zustand';
2
3
 
3
4
  // src/utils/colorWithAlpha.ts
@@ -206,8 +207,9 @@ async function fetchNui(eventName, data, mockData) {
206
207
  },
207
208
  body: JSON.stringify(data)
208
209
  };
209
- if (isEnvBrowser() && mockData !== void 0) return mockData;
210
- if (isEnvBrowser()) {
210
+ console.log(mockData);
211
+ if (isEnvBrowser() && mockData) return mockData;
212
+ if (isEnvBrowser() && mockData === void 0) {
211
213
  console.warn(
212
214
  `[fetchNui] Called fetchNui for event "${eventName}" in browser environment without mockData. Returning empty object.`
213
215
  );
@@ -215,20 +217,31 @@ async function fetchNui(eventName, data, mockData) {
215
217
  }
216
218
  const resourceName = window.GetParentResourceName ? window.GetParentResourceName() : "nui-frame-app";
217
219
  const resp = await fetch(`https://${resourceName}/${eventName}`, options);
218
- const respFormatted = await resp.json();
219
- return respFormatted;
220
+ return await resp.json();
220
221
  }
221
- function fetchOnLoad(eventName, data, mockData) {
222
- return fetchNui(eventName, data, mockData).catch((err) => {
223
- console.error(`[fetchOnLoad] Failed for ${eventName}:`, err);
224
- throw err;
225
- });
222
+ var initialFetches = {};
223
+ async function registerInitialFetch(eventName, data, mockData) {
224
+ const fetcher = () => fetchNui(eventName, data, mockData);
225
+ initialFetches[eventName] = fetcher;
226
+ return fetcher();
226
227
  }
227
- var fetchLuaTable = (tableName) => () => {
228
- if (isEnvBrowser()) {
229
- return Promise.resolve({});
230
- }
231
- return fetchNui("GET_LUA_TABLE", { tableName });
228
+ async function runFetches() {
229
+ return Promise.all(
230
+ Object.entries(initialFetches).map(async ([eventName, fetcher]) => {
231
+ const data = await fetcher();
232
+ return { eventName, data };
233
+ })
234
+ );
235
+ }
236
+ var useAutoFetcher = () => {
237
+ useEffect(() => {
238
+ if (isEnvBrowser()) return;
239
+ const run = async () => {
240
+ const results = await runFetches();
241
+ console.log("[useAutoFetcher] Fetched initial data:", results);
242
+ };
243
+ run();
244
+ }, []);
232
245
  };
233
246
 
234
247
  // src/utils/internalEvent.ts
@@ -264,10 +277,455 @@ var localeStore = create((set, get) => {
264
277
  };
265
278
  });
266
279
  var locale = localeStore.getState().locale;
267
- fetchOnLoad("GET_LOCALES").then((data) => {
280
+ registerInitialFetch("GET_LOCALES", void 0).then((data) => {
268
281
  localeStore.setState({ locales: data });
269
282
  });
283
+ var useProfanityStore = create(() => [
284
+ "ars3",
285
+ "a55",
286
+ "a55hole",
287
+ "ahole",
288
+ "anus",
289
+ "ash0le",
290
+ "ash0les",
291
+ "asholes",
292
+ "4r5e",
293
+ "5h1t",
294
+ "5hit",
295
+ "a55",
296
+ "anal",
297
+ "anus",
298
+ "ar5e",
299
+ "arrse",
300
+ "arse",
301
+ "ass",
302
+ "ass-fucker",
303
+ "asses",
304
+ "assfucker",
305
+ "assfukka",
306
+ "asshole",
307
+ "assholes",
308
+ "asswhole",
309
+ "a_s_s",
310
+ "b!tch",
311
+ "b00bs",
312
+ "b17ch",
313
+ "b1tch",
314
+ "ballsack",
315
+ "beastial",
316
+ "beastiality",
317
+ "bestial",
318
+ "bestiality",
319
+ "bi+ch",
320
+ "biatch",
321
+ "bitch",
322
+ "bitcher",
323
+ "bitchers",
324
+ "bitches",
325
+ "bitchin",
326
+ "bitching",
327
+ "blow job",
328
+ "blowjob",
329
+ "blowjobs",
330
+ "boiolas",
331
+ "bollock",
332
+ "bollok",
333
+ "boner",
334
+ "boob",
335
+ "boobs",
336
+ "booobs",
337
+ "boooobs",
338
+ "booooobs",
339
+ "booooooobs",
340
+ "breasts",
341
+ "buceta",
342
+ "bunny fucker",
343
+ "butthole",
344
+ "buttmuch",
345
+ "buttplug",
346
+ "c0ck",
347
+ "c0cksucker",
348
+ "carpet muncher",
349
+ "chink",
350
+ "cipa",
351
+ "cl1t",
352
+ "clit",
353
+ "clitoris",
354
+ "clits",
355
+ "cnut",
356
+ "cock",
357
+ "cock-sucker",
358
+ "cockface",
359
+ "cockhead",
360
+ "cockmunch",
361
+ "cockmuncher",
362
+ "cocks",
363
+ "cocksuck",
364
+ "cocksucked",
365
+ "cocksucker",
366
+ "cocksucking",
367
+ "cocksucks",
368
+ "cocksuka",
369
+ "cocksukka",
370
+ "cokmuncher",
371
+ "coksucka",
372
+ "coon",
373
+ "cum",
374
+ "cummer",
375
+ "cumming",
376
+ "cums",
377
+ "cumshot",
378
+ "cunilingus",
379
+ "cunillingus",
380
+ "cunnilingus",
381
+ "cunt",
382
+ "cuntlick",
383
+ "cuntlicker",
384
+ "cuntlicking",
385
+ "cunts",
386
+ "cyalis",
387
+ "cyberfuc",
388
+ "cyberfuck",
389
+ "cyberfucked",
390
+ "cyberfucker",
391
+ "cyberfuckers",
392
+ "cyberfucking",
393
+ "d1ck",
394
+ "dlck",
395
+ "dog-fucker",
396
+ "doggin",
397
+ "dogging",
398
+ "donkeyribber",
399
+ "dyke",
400
+ "ejaculate",
401
+ "ejaculated",
402
+ "ejaculates",
403
+ "ejaculating",
404
+ "ejaculatings",
405
+ "ejaculation",
406
+ "ejakulate",
407
+ "f u c k",
408
+ "f u c k e r",
409
+ "f4nny",
410
+ "fag",
411
+ "fagging",
412
+ "faggitt",
413
+ "faggot",
414
+ "faggs",
415
+ "fagot",
416
+ "fagots",
417
+ "fags",
418
+ "fannyflaps",
419
+ "fannyfucker",
420
+ "fatass",
421
+ "fcuk",
422
+ "fcuker",
423
+ "fcuking",
424
+ "feck",
425
+ "fecker",
426
+ "felching",
427
+ "fellate",
428
+ "fellatio",
429
+ "fingerfuck",
430
+ "fingerfucked",
431
+ "fingerfucker",
432
+ "fingerfuckers",
433
+ "fingerfucking",
434
+ "fingerfucks",
435
+ "fistfuck",
436
+ "fistfucked",
437
+ "fistfucker",
438
+ "fistfuckers",
439
+ "fistfucking",
440
+ "fistfuckings",
441
+ "fistfucks",
442
+ "fuck",
443
+ "fucka",
444
+ "fucked",
445
+ "fucker",
446
+ "fuckers",
447
+ "fuckhead",
448
+ "fuckheads",
449
+ "fuckin",
450
+ "fucking",
451
+ "fuckings",
452
+ "fuckingshitmotherfucker",
453
+ "fuckme",
454
+ "fucks",
455
+ "fuckwhit",
456
+ "fuckwit",
457
+ "fudge packer",
458
+ "fudgepacker",
459
+ "fuk",
460
+ "fuker",
461
+ "fukker",
462
+ "fukkin",
463
+ "fuks",
464
+ "fukwhit",
465
+ "fukwit",
466
+ "fux",
467
+ "fux0r",
468
+ "f_u_c_k",
469
+ "gangbang",
470
+ "gangbanged",
471
+ "gangbangs",
472
+ "gaysex",
473
+ "God",
474
+ "god-dam",
475
+ "god-damned",
476
+ "goddamn",
477
+ "goddamned",
478
+ "homo",
479
+ "jack-off",
480
+ "jerk-off",
481
+ "l3i+ch",
482
+ "l3itch",
483
+ "labia",
484
+ "lusting",
485
+ "m0f0",
486
+ "m0fo",
487
+ "m45terbate",
488
+ "ma5terb8",
489
+ "ma5terbate",
490
+ "masochist",
491
+ "master-bate",
492
+ "masterb8",
493
+ "masterbat*",
494
+ "masterbat3",
495
+ "masterbate",
496
+ "masterbation",
497
+ "masterbations",
498
+ "masturbate",
499
+ "mo-fo",
500
+ "mof0",
501
+ "mothafuck",
502
+ "mothafucka",
503
+ "mothafuckas",
504
+ "mothafuckaz",
505
+ "mothafucked",
506
+ "mothafucker",
507
+ "mothafuckers",
508
+ "mothafuckin",
509
+ "mothafucking",
510
+ "mothafuckings",
511
+ "mothafucks",
512
+ "mother fucker",
513
+ "motherfuck",
514
+ "motherfucked",
515
+ "motherfucker",
516
+ "motherfuckers",
517
+ "motherfuckin",
518
+ "motherfucking",
519
+ "motherfuckings",
520
+ "motherfuckka",
521
+ "motherfucks",
522
+ "muthafecker",
523
+ "muthafuckker",
524
+ "mutherfucker",
525
+ "n1gga",
526
+ "n1gger",
527
+ "nazi",
528
+ "nigg3r",
529
+ "nigg4h",
530
+ "nigga",
531
+ "niggah",
532
+ "niggas",
533
+ "niggaz",
534
+ "nigger",
535
+ "niggers",
536
+ "nob jokey",
537
+ "nobjocky",
538
+ "nobjokey",
539
+ "orgasim",
540
+ "orgasims",
541
+ "orgasm",
542
+ "orgasms",
543
+ "p0rn",
544
+ "penis",
545
+ "penisfucker",
546
+ "phonesex",
547
+ "phuck",
548
+ "phuked",
549
+ "phuking",
550
+ "phukked",
551
+ "phukking",
552
+ "phuks",
553
+ "phuq",
554
+ "pigfucker",
555
+ "pimpis",
556
+ "piss",
557
+ "pissed",
558
+ "pisser",
559
+ "pissers",
560
+ "pisses",
561
+ "pissflaps",
562
+ "pissin",
563
+ "pissing",
564
+ "pissoff",
565
+ "poop",
566
+ "porn",
567
+ "porno",
568
+ "pornography",
569
+ "pornos",
570
+ "prick",
571
+ "pricks",
572
+ "pron",
573
+ "pube",
574
+ "pusse",
575
+ "pussi",
576
+ "pussies",
577
+ "pussy",
578
+ "pussys",
579
+ "rectum",
580
+ "retard",
581
+ "rimjaw",
582
+ "rimming",
583
+ "s hit",
584
+ "s.o.b.",
585
+ "scroat",
586
+ "scrote",
587
+ "scrotum",
588
+ "semen",
589
+ "sex",
590
+ "sh!+",
591
+ "sh!t",
592
+ "sh1t",
593
+ "shemale",
594
+ "shit",
595
+ "shitdick",
596
+ "shite",
597
+ "shited",
598
+ "shitey",
599
+ "shitfuck",
600
+ "shitfull",
601
+ "shithead",
602
+ "shiting",
603
+ "shitings",
604
+ "shits",
605
+ "shitted",
606
+ "shitter",
607
+ "shitters",
608
+ "shitting",
609
+ "shittings",
610
+ "shitty",
611
+ "skank",
612
+ "slut",
613
+ "sluts",
614
+ "smegma",
615
+ "smut",
616
+ "son-of-a-bitch",
617
+ "spac",
618
+ "s_h_i_t",
619
+ "t1tt1e5",
620
+ "t1tties",
621
+ "teets",
622
+ "teez",
623
+ "testical",
624
+ "testicle",
625
+ "titfuck",
626
+ "tits",
627
+ "titt",
628
+ "tittie5",
629
+ "tittiefucker",
630
+ "titties",
631
+ "tittyfuck",
632
+ "tittywank",
633
+ "titwank",
634
+ "tosser",
635
+ "tw4t",
636
+ "twat",
637
+ "twathead",
638
+ "twatty",
639
+ "twunt",
640
+ "twunter",
641
+ "v14gra",
642
+ "v1gra",
643
+ "vagina",
644
+ "viagra",
645
+ "vulva",
646
+ "w00se",
647
+ "whoar",
648
+ "whore",
649
+ "xrated"
650
+ ]);
651
+ var isProfanity = (word) => {
652
+ const all = useProfanityStore.getState();
653
+ const profanityArray = Array.isArray(all) ? all : typeof all === "object" && all !== null ? Object.values(all) : [];
654
+ return profanityArray.includes(word);
655
+ };
656
+ function calculateXPForLevel(level, settings) {
657
+ if (level < settings.baseLevel) return 0;
658
+ if (level === 1) return 0;
659
+ if (level === 2) return settings.baseXP;
660
+ let totalXP = settings.baseXP;
661
+ for (let i = 2; i <= level - 1; i++) {
662
+ const baseRuneScapeXP = Math.floor((i + 300 * 2 ** (i / 7)) / 4);
663
+ totalXP += baseRuneScapeXP * settings.modifier;
664
+ }
665
+ return Math.floor(totalXP);
666
+ }
667
+ function generateLevelMap(settings) {
668
+ const levelMap = {};
669
+ for (let level = settings.baseLevel; level <= settings.maxLevel; level++) {
670
+ levelMap[level.toString()] = calculateXPForLevel(level, settings);
671
+ }
672
+ return levelMap;
673
+ }
674
+ function getLevelFromXP(xp, levelMap, settings) {
675
+ for (let level = settings.baseLevel; level <= settings.maxLevel; level++) {
676
+ const xpForLevel = levelMap[level.toString()];
677
+ if (xpForLevel > xp) return level - 1;
678
+ }
679
+ return settings.maxLevel;
680
+ }
681
+ function createSkill(defaultSettings) {
682
+ const useStore = create((set) => ({
683
+ settings: defaultSettings,
684
+ levelMap: generateLevelMap(defaultSettings),
685
+ setSettings: (updater) => set((state) => {
686
+ const newSettings = typeof updater === "function" ? updater(state.settings) : updater;
687
+ return {
688
+ settings: newSettings,
689
+ levelMap: generateLevelMap(newSettings)
690
+ };
691
+ })
692
+ }));
693
+ const useSkill = (xp) => {
694
+ const { settings, levelMap } = useStore();
695
+ return useMemo(() => {
696
+ const currentLevel = getLevelFromXP(xp, levelMap, settings);
697
+ const nextLevel = Math.min(currentLevel + 1, settings.maxLevel);
698
+ const currentLevelXP = levelMap[currentLevel.toString()] || 0;
699
+ const nextLevelXP = levelMap[nextLevel.toString()] || 0;
700
+ const xpInCurrentLevel = xp - currentLevelXP;
701
+ const xpRequiredForLevel = nextLevelXP - currentLevelXP;
702
+ const progressToLevel = xpRequiredForLevel > 0 ? xpInCurrentLevel / xpRequiredForLevel * 100 : 100;
703
+ const xpToNextLevel = Math.max(0, nextLevelXP - xp);
704
+ return {
705
+ currentLevel,
706
+ nextLevel,
707
+ currentLevelXP,
708
+ nextLevelXP,
709
+ progressToLevel: Math.min(100, Math.max(0, progressToLevel)),
710
+ xpToNextLevel
711
+ };
712
+ }, [xp, levelMap, settings]);
713
+ };
714
+ const skill = {
715
+ get settings() {
716
+ return useStore.getState().settings;
717
+ },
718
+ setSettings: (updater) => {
719
+ useStore.getState().setSettings(updater);
720
+ },
721
+ useSettings: () => useStore((state) => state.settings)
722
+ };
723
+ return {
724
+ skill,
725
+ useSkill
726
+ };
727
+ }
270
728
 
271
- export { colorWithAlpha, copyToClipboard, fetchLuaTable, fetchNui, fetchOnLoad, internalEvent, isEnvBrowser, locale, localeStore, noop, numberToRoman, openLink, splitFAString };
729
+ export { colorWithAlpha, copyToClipboard, createSkill, fetchNui, initialFetches, internalEvent, isEnvBrowser, isProfanity, locale, localeStore, noop, numberToRoman, openLink, registerInitialFetch, runFetches, splitFAString, useAutoFetcher, useProfanityStore };
272
730
  //# sourceMappingURL=index.js.map
273
731
  //# sourceMappingURL=index.js.map