dirk-cfx-react 1.0.35 → 1.0.37

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