Skip to content

Commit fd81ab4

Browse files
committed
Fix in-game connect flow for selected servers
1 parent d4595fe commit fd81ab4

3 files changed

Lines changed: 27 additions & 10 deletions

File tree

src/containers/MainBody/ServerList/Item.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ import { images } from "../../../constants/images";
77
import { useDraggableItem } from "../../../hooks/draggable";
88
import { useContextMenu } from "../../../states/contextMenu";
99
import { useJoinServerPrompt } from "../../../states/joinServerPrompt";
10+
import { useSettings } from "../../../states/settings";
1011
import { useTheme } from "../../../states/theme";
12+
import { startGame } from "../../../utils/game";
1113
import { PING_TIMEOUT_VALUE } from "../../../utils/query";
1214
import { sc } from "../../../utils/sizeScaler";
1315
import { Server } from "../../../utils/types";
@@ -27,13 +29,19 @@ const ServerItem = memo((props: IProps) => {
2729
const lastPressTime = useRef(0);
2830
const { showPrompt, setServer } = useJoinServerPrompt();
2931
const { show: showContextMenu } = useContextMenu();
32+
const { nickName, gtasaPath } = useSettings();
3033

3134
const { attributes, listeners, setNodeRef, isDragging, style } =
3235
useDraggableItem(`${server.ip}:${server.port}`, isDraggable);
3336

3437
const onDoublePress = () => {
35-
setServer(server);
36-
showPrompt(true);
38+
if (server.hasPassword) {
39+
setServer(server);
40+
showPrompt(true);
41+
return;
42+
}
43+
44+
startGame(server, nickName, gtasaPath, "");
3745
};
3846

3947
const onPress = () => {

src/containers/MainBody/ServerList/SearchBar.tsx

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ import {
1717
} from "../../../states/genericStates";
1818
import { useJoinServerPrompt } from "../../../states/joinServerPrompt";
1919
import { usePersistentServers, useServers } from "../../../states/servers";
20+
import { useSettings } from "../../../states/settings";
2021
import { useTheme } from "../../../states/theme";
22+
import { startGame } from "../../../utils/game";
2123
import { sc } from "../../../utils/sizeScaler";
2224
import { Log } from "../../../utils/logger";
2325

@@ -74,6 +76,7 @@ const SearchBar = memo<SearchBarProps>(({ onChange }) => {
7476
const { filterMenu, showFilterMenu, searchData } = useGenericTempState();
7577
const { sideLists, showSideLists } = useGenericPersistentState();
7678
const { selected } = useServers();
79+
const { nickName, gtasaPath } = useSettings();
7780
const {
7881
favorites,
7982
removeFromFavorites,
@@ -112,12 +115,17 @@ const SearchBar = memo<SearchBarProps>(({ onChange }) => {
112115
if (!selected) return;
113116

114117
try {
115-
setServer(selected);
116-
showPrompt(true);
118+
if (selected.hasPassword) {
119+
setServer(selected);
120+
showPrompt(true);
121+
return;
122+
}
123+
124+
startGame(selected, nickName, gtasaPath, "");
117125
} catch (error) {
118126
Log.error("Error playing selected server:", error);
119127
}
120-
}, [selected, setServer, showPrompt]);
128+
}, [selected, setServer, showPrompt, nickName, gtasaPath]);
121129

122130
const toggleFavorite = useCallback(() => {
123131
if (!selected) return;

src/utils/game.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,14 @@ export const startGame = async (
7474
const { setSelected } = useServers.getState();
7575

7676
if (IN_GAME) {
77+
const resolvedIp = await getIpAddress(server.ip);
78+
const message = password.length
79+
? `connect:${resolvedIp}:${server.port}:${nickname}:${password}`
80+
: `connect:${resolvedIp}:${server.port}:${nickname}`;
81+
7782
invoke("send_message_to_game", {
7883
id: IN_GAME_PROCESS_ID,
79-
message: password.length
80-
? `connect:${await getIpAddress(server.ip)}:${
81-
server.port
82-
}:${nickname}:${password}`
83-
: `connect:${await getIpAddress(server.ip)}:${server.port}:${nickname}`,
84+
message,
8485
});
8586
return;
8687
}

0 commit comments

Comments
 (0)