This repository was archived by the owner on Apr 5, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathheader.js
81 lines (71 loc) · 3.33 KB
/
header.js
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
window.addEventListener('load', () => {
const header = document.getElementById('header');
const sidebar = document.getElementById('sidebar');
document.getElementById('client-version').innerText =
`${CLIENT_VERSION.state} ${CLIENT_VERSION.major}.${CLIENT_VERSION.minor}.${CLIENT_VERSION.patch}`;
// Allow the user to change the size of the font in the console window
document.getElementById('small-text').addEventListener('click', () => setFontSize(12));
document.getElementById('medium-text').addEventListener('click', () => setFontSize(16));
document.getElementById('large-text').addEventListener('click', () => setFontSize(20));
// Include a toggle for terminal mode
document.body.addEventListener('keydown', (evt) => {
if (evt.ctrlKey && evt.key === 't'){
if (document.body.classList.contains('terminal-mode')){
header.style.display = 'flex';
sidebar.style.display = 'flex';
sidebar.classList.remove('hidden');
return document.body.classList.remove('terminal-mode');
}
header.style.display = 'none';
sidebar.style.display = 'none';
sidebar.classList.add('hidden');
document.body.classList.add('terminal-mode');
}
});
// Allow the user to press a button to pause receiving items (a.k.a. Malmo Mode)
document.getElementById('receive-items-toggle').addEventListener('click', (evt) => {
receiveItems ? disableReceivingItems() : enableReceivingItems();
});
// When the N64 connects or disconnects, update the client status
window.oot.deviceConnected(async (connected) => {
n64Connected = !!connected;
const statusDisplay = document.getElementById('n64-device-status');
statusDisplay.classList.add(connected ? 'connected' : 'disconnected');
statusDisplay.classList.remove(connected ? 'disconnected' : 'connected');
statusDisplay.innerText = connected ? 'Connected' : 'Disconnected';
if (!n64Connected) {
// Disconnect from the AP server
await connectToServer(null);
return;
}
// If the client has entered a server address, attempt to reconnect to that server
const serverAddress = document.getElementById('server-address').value;
if (serverAddress) {
await connectToServer(serverAddress, serverPassword);
}
});
});
const disableReceivingItems = () => {
const receiveItemsStatus = document.getElementById('receive-items-status');
receiveItems = false;
receiveItemsStatus.innerText = 'Disabled';
receiveItemsStatus.classList.remove('enabled');
receiveItemsStatus.classList.add('disabled');
appendConsoleMessage('You are no longer receiving items from other players. Items found in your ' +
' world will still be sent.');
};
const enableReceivingItems = () => {
const receiveItemsStatus = document.getElementById('receive-items-status');
receiveItems = true;
receiveItemsStatus.innerText = 'Enabled';
receiveItemsStatus.classList.remove('disabled');
receiveItemsStatus.classList.add('enabled');
appendConsoleMessage('You are now receiving items from other players.');
};
// Allow the user to change the size of text in the console window
const setFontSize = (size) => {
if (!size || parseInt(size, 10) < 1) {
return appendConsoleMessage('Font size must be an integer greater than zero.');
}
document.getElementById('console-output-wrapper').style.fontSize = `${parseInt(size, 10)}px`;
};