forked from zero-to-mastery/ZTM-Quest
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjokeTeller.interaction.js
More file actions
32 lines (29 loc) · 1.04 KB
/
Copy pathjokeTeller.interaction.js
File metadata and controls
32 lines (29 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { displayDialogue } from '../../utils';
import { interactionHandler } from '../handler.interactions';
export const interactionWithJokeTeller = (player, k, map) => {
interactionHandler(player, 'jokeTellerNpc', k, async () => {
try {
const response = await fetch(
'https://v2.jokeapi.dev/joke/Any?safe-mode'
);
if (!response.ok) {
throw new Error('Network response was not ok');
}
const { setup, joke, delivery } = await response.json();
displayDialogue({
k,
player,
characterName: 'Joke Teller',
text: [setup, joke, delivery].filter(Boolean),
});
} catch (error) {
k.debug.error('Failed to fetch joke:', error);
displayDialogue({
k,
player,
characterName: 'Joke Teller',
text: ['I am having trouble finding a joke right now.'],
});
}
});
};