diff --git a/README.md b/README.md index ce2052f..20d8238 100644 --- a/README.md +++ b/README.md @@ -4,18 +4,18 @@ This is a fork of [billsonnn/nitro-react](https://github.com/billsonnn/nitro-rea ## Installation -- Clone Nitro - - `git clone https://git.gurkengewuerz.de/nitro/nitro.git` -- Install the dependencies - - `npm install` -- Rename a few files - - Rename `apps/frontend/public/renderer-config.json.example` to `apps/frontend/public/renderer-config.json` and edit it - - Rename `apps/frontend/public/ui-config.json.example` to `apps/frontend/public/ui-config.json` and edit it +- Clone Nitro + - `git clone https://git.gurkengewuerz.de/nitro/nitro.git` +- Install the dependencies + - `npm install` +- Rename a few files + - Rename `apps/frontend/public/renderer-config.json.example` to `apps/frontend/public/renderer-config.json` and edit it + - Rename `apps/frontend/public/ui-config.json.example` to `apps/frontend/public/ui-config.json` and edit it ## Usage -- To use Nitro you need `.nitro` assets generated, see [nitro-converter](https://git.krews.org/nitro/nitro-converter) for instructions. -- See [Morningstar Websockets](https://git.krews.org/nitro/ms-websockets) for instructions on configuring websockets on your server. +- To use Nitro you need `.nitro` assets generated, see [nitro-converter](https://git.krews.org/nitro/nitro-converter) for instructions. +- See [Morningstar Websockets](https://git.krews.org/nitro/ms-websockets) for instructions on configuring websockets on your server. See [Gurkengewuerz/nitro-docker](https://git.gurkengewuerz.de/nitro/nitro-docker) for a complete setup. diff --git a/apps/frontend/src/App.tsx b/apps/frontend/src/App.tsx index b30343c..3e0a714 100644 --- a/apps/frontend/src/App.tsx +++ b/apps/frontend/src/App.tsx @@ -76,7 +76,7 @@ export const App: FC<{}> = props => { setMessage("Connection Error"); return; case NitroCommunicationDemoEvent.CONNECTION_CLOSED: - if(GetNitroInstance().roomEngine) GetNitroInstance().roomEngine.dispose(); + if (GetNitroInstance().roomEngine) GetNitroInstance().roomEngine.dispose(); HabboWebTools.send(-1, "client.init.handshake.fail"); diff --git a/apps/frontend/src/api/inventory/FurnitureUtilities.ts b/apps/frontend/src/api/inventory/FurnitureUtilities.ts index 874c821..89063a5 100644 --- a/apps/frontend/src/api/inventory/FurnitureUtilities.ts +++ b/apps/frontend/src/api/inventory/FurnitureUtilities.ts @@ -45,7 +45,12 @@ const addGroupableFurnitureItem = (set: GroupItem[], item: FurnitureItem, unseen break; } - } else if (item.category === FurniCategory.GUILD_FURNI || item.category === FurniCategory.FLOOR || item.category === FurniCategory.WALL_PAPER || item.category === FurniCategory.LANDSCAPE) { + } else if ( + item.category === FurniCategory.GUILD_FURNI || + item.category === FurniCategory.FLOOR || + item.category === FurniCategory.WALL_PAPER || + item.category === FurniCategory.LANDSCAPE + ) { if (item.stuffData.compare(groupItem.stuffData)) { existingGroup = groupItem; diff --git a/apps/frontend/src/common/layout/index.ts b/apps/frontend/src/common/layout/index.ts index 94773e5..e7835e5 100644 --- a/apps/frontend/src/common/layout/index.ts +++ b/apps/frontend/src/common/layout/index.ts @@ -18,7 +18,7 @@ export * from "./LayoutProgressBar"; export * from "./LayoutRarityLevelView"; export * from "./LayoutRoomPreviewerView"; export * from "./LayoutRoomThumbnailView"; -export * from './LayoutSearchSavesView'; +export * from "./LayoutSearchSavesView"; export * from "./LayoutTrophyView"; export * from "./limited-edition"; export * from "./UserProfileIconView"; diff --git a/apps/frontend/src/components/guide-tool/views/GuideToolOngoingView.tsx b/apps/frontend/src/components/guide-tool/views/GuideToolOngoingView.tsx index bca386a..5a092de 100644 --- a/apps/frontend/src/components/guide-tool/views/GuideToolOngoingView.tsx +++ b/apps/frontend/src/components/guide-tool/views/GuideToolOngoingView.tsx @@ -107,7 +107,8 @@ export const GuideToolOngoingView: FC = props => { key={index} pointer={chat.roomId ? true : false} className={chat.roomId ? "text-break text-underline" : "text-break"} - onClick={() => (chat.roomId ? TryVisitRoom(chat.roomId) : null)}> + onClick={() => (chat.roomId ? TryVisitRoom(chat.roomId) : null)} + > {chat.message} ))} diff --git a/apps/frontend/src/components/inventory/InventoryView.scss b/apps/frontend/src/components/inventory/InventoryView.scss index 1c0feab..2073c36 100644 --- a/apps/frontend/src/components/inventory/InventoryView.scss +++ b/apps/frontend/src/components/inventory/InventoryView.scss @@ -1,69 +1,69 @@ .nitro-inventory { - width: $inventory-width; - height: $inventory-height; + width: $inventory-width; + height: $inventory-height; - .empty-image { - background: url('@/assets/images/inventory/empty.png'); - width: 129px; - height: 181px; - } - - .empty-image { - background: url('@/assets/images/inventory/empty.png'); - background-repeat: no-repeat; - width: 129px; - height: 181px; - } - .empty-petsimage { - background: url('@/assets/images/inventory/petsempty.png'); - background-repeat: no-repeat; - width: 220px; - height: 220px; - } - .empty-furniimage { - background: url('@/assets/images/inventory/furniempty.png'); - background-repeat: no-repeat; - width: 220px; - height: 220px; - } - .empty-botsimage { - background: url('@/assets/images/inventory/botsempty.png'); - background-repeat: no-repeat; - width: 220px; - height: 220px; - } - - .bubble-inventory { - position: relative; - font-family: sans-serif; - font-size: 14px; - line-height: 5px; - width: auto; - background: #fff; - border-radius: 15px; - padding: 5px; - text-align: left; - color: #000; - } - .bubble-inventory-bottom-left:after { - content: ''; - position: absolute; - bottom: 0; - left: 15%; - width: 0; - height: 0; - border: 20px solid transparent; - border-top-color: #fff; - border-bottom: 0; - border-right: 0; - margin-left: -10px; - margin-bottom: -20px; - } + .empty-image { + background: url("@/assets/images/inventory/empty.png"); + width: 129px; + height: 181px; + } - .trade-button { - min-height: 0; - font-size: 8px; - padding: 1px 2px; - z-index: 5; - } + .empty-image { + background: url("@/assets/images/inventory/empty.png"); + background-repeat: no-repeat; + width: 129px; + height: 181px; + } + .empty-petsimage { + background: url("@/assets/images/inventory/petsempty.png"); + background-repeat: no-repeat; + width: 220px; + height: 220px; + } + .empty-furniimage { + background: url("@/assets/images/inventory/furniempty.png"); + background-repeat: no-repeat; + width: 220px; + height: 220px; + } + .empty-botsimage { + background: url("@/assets/images/inventory/botsempty.png"); + background-repeat: no-repeat; + width: 220px; + height: 220px; + } + + .bubble-inventory { + position: relative; + font-family: sans-serif; + font-size: 14px; + line-height: 5px; + width: auto; + background: #fff; + border-radius: 15px; + padding: 5px; + text-align: left; + color: #000; + } + .bubble-inventory-bottom-left:after { + content: ""; + position: absolute; + bottom: 0; + left: 15%; + width: 0; + height: 0; + border: 20px solid transparent; + border-top-color: #fff; + border-bottom: 0; + border-right: 0; + margin-left: -10px; + margin-bottom: -20px; + } + + .trade-button { + min-height: 0; + font-size: 8px; + padding: 1px 2px; + z-index: 5; + } } diff --git a/apps/frontend/src/components/inventory/InventoryView.tsx b/apps/frontend/src/components/inventory/InventoryView.tsx index 8bc822a..eacec71 100644 --- a/apps/frontend/src/components/inventory/InventoryView.tsx +++ b/apps/frontend/src/components/inventory/InventoryView.tsx @@ -31,7 +31,7 @@ const TAB_FURNITURE: string = "inventory.furni"; const TAB_BOTS: string = "inventory.bots"; const TAB_PETS: string = "inventory.furni.tab.pets"; const TAB_BADGES: string = "inventory.badges"; -const TABS = [ TAB_FURNITURE, TAB_PETS, TAB_BADGES, TAB_BOTS ]; +const TABS = [TAB_FURNITURE, TAB_PETS, TAB_BADGES, TAB_BOTS]; const UNSEEN_CATEGORIES = [UnseenItemCategory.FURNI, UnseenItemCategory.BOT, UnseenItemCategory.PET, UnseenItemCategory.BADGE]; export const InventoryView: FC<{}> = props => { diff --git a/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyView.tsx b/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyView.tsx index 9b22433..18db722 100644 --- a/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyView.tsx +++ b/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyView.tsx @@ -1,29 +1,33 @@ -import { FC } from 'react'; -import { Column, Grid, GridProps, Text } from '../../../common'; +import {FC} from "react"; -export interface InventoryCategoryEmptyViewProps extends GridProps -{ - title: string; - desc: string; +import {Column, Grid, GridProps, Text} from "../../../common"; + +export interface InventoryCategoryEmptyViewProps extends GridProps { + title: string; + desc: string; } -export const InventoryCategoryEmptyView: FC = props => -{ - const { title = '', desc = '', children = null, ...rest } = props; - - return ( - - -
- - -
- { title } - { desc } -
-
- - { children } - - ); -} \ No newline at end of file +export const InventoryCategoryEmptyView: FC = props => { + const {title = "", desc = "", children = null, ...rest} = props; + + return ( + + +
+ + +
+ + {title} + + + {" "} + {desc} + +
+
+ + {children} + + ); +}; diff --git a/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyViewBots.tsx b/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyViewBots.tsx index 9b830a0..f6f781c 100644 --- a/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyViewBots.tsx +++ b/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyViewBots.tsx @@ -1,29 +1,33 @@ -import { FC } from 'react'; -import { Column, Grid, GridProps, Text } from '../../../common'; +import {FC} from "react"; -export interface InventoryCategoryEmptyViewBotsProps extends GridProps -{ - title: string; - desc: string; +import {Column, Grid, GridProps, Text} from "../../../common"; + +export interface InventoryCategoryEmptyViewBotsProps extends GridProps { + title: string; + desc: string; } -export const InventoryCategoryEmptyViewBots: FC = props => -{ - const { title = '', desc = '', children = null, ...rest } = props; - - return ( - - -
- - -
- { title } - { desc } -
-
- - { children } - - ); -} +export const InventoryCategoryEmptyViewBots: FC = props => { + const {title = "", desc = "", children = null, ...rest} = props; + + return ( + + +
+ + +
+ + {title} + + + {" "} + {desc} + +
+
+ + {children} + + ); +}; diff --git a/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyViewFurni.tsx b/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyViewFurni.tsx index 8c9c377..2b235ee 100644 --- a/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyViewFurni.tsx +++ b/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyViewFurni.tsx @@ -1,29 +1,33 @@ -import { FC } from 'react'; -import { Column, Grid, GridProps, Text } from '../../../common'; +import {FC} from "react"; -export interface InventoryCategoryEmptyViewFurniProps extends GridProps -{ - title: string; - desc: string; +import {Column, Grid, GridProps, Text} from "../../../common"; + +export interface InventoryCategoryEmptyViewFurniProps extends GridProps { + title: string; + desc: string; } -export const InventoryCategoryEmptyViewFurni: FC = props => -{ - const { title = '', desc = '', children = null, ...rest } = props; - - return ( - - -
- - -
- { title } - { desc } -
-
- - { children } - - ); -} \ No newline at end of file +export const InventoryCategoryEmptyViewFurni: FC = props => { + const {title = "", desc = "", children = null, ...rest} = props; + + return ( + + +
+ + +
+ + {title} + + + {" "} + {desc} + +
+
+ + {children} + + ); +}; diff --git a/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyViewPets.tsx b/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyViewPets.tsx index 026a5a0..e795c89 100644 --- a/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyViewPets.tsx +++ b/apps/frontend/src/components/inventory/views/InventoryCategoryEmptyViewPets.tsx @@ -1,29 +1,33 @@ -import { FC } from 'react'; -import { Column, Grid, GridProps, Text } from '../../../common'; +import {FC} from "react"; -export interface InventoryCategoryEmptyViewPetsProps extends GridProps -{ - title: string; - desc: string; +import {Column, Grid, GridProps, Text} from "../../../common"; + +export interface InventoryCategoryEmptyViewPetsProps extends GridProps { + title: string; + desc: string; } -export const InventoryCategoryEmptyViewPets: FC = props => -{ - const { title = '', desc = '', children = null, ...rest } = props; - - return ( - - -
- - -
- { title } - { desc } -
-
- - { children } - - ); -} +export const InventoryCategoryEmptyViewPets: FC = props => { + const {title = "", desc = "", children = null, ...rest} = props; + + return ( + + +
+ + +
+ + {title} + + + {" "} + {desc} + +
+
+ + {children} + + ); +}; diff --git a/apps/frontend/src/components/inventory/views/bot/InventoryBotView.tsx b/apps/frontend/src/components/inventory/views/bot/InventoryBotView.tsx index 1c7ee81..2c478b2 100644 --- a/apps/frontend/src/components/inventory/views/bot/InventoryBotView.tsx +++ b/apps/frontend/src/components/inventory/views/bot/InventoryBotView.tsx @@ -4,7 +4,7 @@ import {FC, useEffect, useState} from "react"; import {GetRoomEngine, LocalizeText, UnseenItemCategory, attemptBotPlacement} from "../../../../api"; import {AutoGrid, Button, Column, Grid, LayoutRoomPreviewerView, Text} from "../../../../common"; import {useInventoryBots, useInventoryUnseenTracker} from "../../../../hooks"; -import { InventoryCategoryEmptyViewBots } from '../InventoryCategoryEmptyViewBots'; +import {InventoryCategoryEmptyViewBots} from "../InventoryCategoryEmptyViewBots"; import {InventoryBotItemView} from "./InventoryBotItemView"; interface InventoryBotViewProps { @@ -59,7 +59,8 @@ export const InventoryBotView: FC = props => { return () => setIsVisible(false); }, []); - if(!botItems || !botItems.length) return ; + if (!botItems || !botItems.length) + return ; return ( diff --git a/apps/frontend/src/components/inventory/views/furniture/InventoryFurnitureView.tsx b/apps/frontend/src/components/inventory/views/furniture/InventoryFurnitureView.tsx index b653ae9..51e1ea3 100644 --- a/apps/frontend/src/components/inventory/views/furniture/InventoryFurnitureView.tsx +++ b/apps/frontend/src/components/inventory/views/furniture/InventoryFurnitureView.tsx @@ -92,7 +92,7 @@ export const InventoryFurnitureView: FC = props => resetItems( UnseenItemCategory.FURNI, selectedItem.items.map(item => item.id) - ) + ); selectedItem.hasUnseenItems = false; }, [selectedItem, resetItems]); @@ -109,45 +109,55 @@ export const InventoryFurnitureView: FC = props => setIsVisible(true); return () => setIsVisible(false); - }, []) + }, []); if (!groupItems || !groupItems.length) return ; return ( - - - - - { filteredGroupItems && (filteredGroupItems.length > 0) && filteredGroupItems.map((item, index) => ) } - + + + + + {filteredGroupItems && + filteredGroupItems.length > 0 && + filteredGroupItems.map((item, index) => )} + + + + + + {selectedItem && selectedItem.stuffData.isUnique && ( + + )} + {selectedItem && selectedItem.stuffData.rarityLevel > -1 && ( + + )} + + {selectedItem && ( + + + {selectedItem.name} + {selectedItem.description} - - - - { selectedItem && selectedItem.stuffData.isUnique && - } - { (selectedItem && selectedItem.stuffData.rarityLevel > -1) && - } - - { selectedItem && - - - { selectedItem.name } - { selectedItem.description } - - - { !!roomSession && - } - { (selectedItem && selectedItem.isSellable) && - } - - } + + {!!roomSession && ( + + )} + {selectedItem && selectedItem.isSellable && ( + + )} - - ); -} \ No newline at end of file + + )} + + + ); +}; diff --git a/apps/frontend/src/components/inventory/views/pet/InventoryPetView.tsx b/apps/frontend/src/components/inventory/views/pet/InventoryPetView.tsx index 751dee9..fe20b61 100644 --- a/apps/frontend/src/components/inventory/views/pet/InventoryPetView.tsx +++ b/apps/frontend/src/components/inventory/views/pet/InventoryPetView.tsx @@ -4,7 +4,7 @@ import {FC, useEffect, useState} from "react"; import {GetRoomEngine, LocalizeText, UnseenItemCategory, attemptPetPlacement} from "../../../../api"; import {AutoGrid, Button, Column, Grid, LayoutRoomPreviewerView, Text} from "../../../../common"; import {useInventoryPets, useInventoryUnseenTracker} from "../../../../hooks"; -import { InventoryCategoryEmptyViewPets } from '../InventoryCategoryEmptyViewPets'; +import {InventoryCategoryEmptyViewPets} from "../InventoryCategoryEmptyViewPets"; import {InventoryPetItemView} from "./InventoryPetItemView"; interface InventoryPetViewProps { @@ -58,7 +58,8 @@ export const InventoryPetView: FC = props => { return () => setIsVisible(false); }, []); - if(!petItems || !petItems.length) return ; + if (!petItems || !petItems.length) + return ; return ( diff --git a/apps/frontend/src/components/navigator/views/search/NavigatorSearchSavesResultItemView.tsx b/apps/frontend/src/components/navigator/views/search/NavigatorSearchSavesResultItemView.tsx index 35c69d0..f6eb49c 100644 --- a/apps/frontend/src/components/navigator/views/search/NavigatorSearchSavesResultItemView.tsx +++ b/apps/frontend/src/components/navigator/views/search/NavigatorSearchSavesResultItemView.tsx @@ -37,7 +37,8 @@ export const NavigatorSearchSavesResultItemView: FC SendMessageComposer(new NavigatorSearchComposer(search.code.split(".").reverse()[0], search.filter))}> + onClick={() => SendMessageComposer(new NavigatorSearchComposer(search.code.split(".").reverse()[0], search.filter))} + > {search.filter !== "" ? LocalizeText("navigator.searchcode.title.query") + ": " + (!search.filter.split(":")[1] ? search.filter : search.filter.split(":")[1]) : LocalizeText(`${search.code}`)} diff --git a/apps/frontend/src/components/user-settings/UserSettingsView.tsx b/apps/frontend/src/components/user-settings/UserSettingsView.tsx index ce3e1ff..df91659 100644 --- a/apps/frontend/src/components/user-settings/UserSettingsView.tsx +++ b/apps/frontend/src/components/user-settings/UserSettingsView.tsx @@ -178,12 +178,7 @@ export const UserSettingsView: FC<{}> = props => { {LocalizeText("memenu.settings.other.skip.purchase.confirmation")} - setUiFPSCounter(event.target.checked)} - /> + setUiFPSCounter(event.target.checked)} /> {LocalizeText("memenu.settings.other.ui.show.fpscounter")} diff --git a/libs/renderer/.swcrc b/libs/renderer/.swcrc index b1b9844..17ee94a 100644 --- a/libs/renderer/.swcrc +++ b/libs/renderer/.swcrc @@ -20,5 +20,5 @@ "noInterop": true }, "sourceMaps": true, - "exclude": ["jest.config.ts",".*\\.spec.tsx?$",".*\\.test.tsx?$","./src/jest-setup.ts$","./**/jest-setup.ts$",".*.js$"] -} \ No newline at end of file + "exclude": ["jest.config.ts", ".*\\.spec.tsx?$", ".*\\.test.tsx?$", "./src/jest-setup.ts$", "./**/jest-setup.ts$", ".*.js$"] +} diff --git a/libs/renderer/project.json b/libs/renderer/project.json index 184c479..5b6b52d 100644 --- a/libs/renderer/project.json +++ b/libs/renderer/project.json @@ -6,27 +6,19 @@ "targets": { "build": { "executor": "@nrwl/js:swc", - "outputs": [ - "{options.outputPath}" - ], + "outputs": ["{options.outputPath}"], "options": { "outputPath": "dist/libs/renderer", "main": "libs/renderer/src/index.ts", "tsConfig": "libs/renderer/tsconfig.lib.json", - "assets": [ - "libs/renderer/*.md" - ] + "assets": ["libs/renderer/*.md"] } }, "lint": { "executor": "@nrwl/linter:eslint", - "outputs": [ - "{options.outputFile}" - ], + "outputs": ["{options.outputFile}"], "options": { - "lintFilePatterns": [ - "libs/renderer/**/*.ts" - ] + "lintFilePatterns": ["libs/renderer/**/*.ts"] } } },