From 776f1ab772d890d28d046d851c3c95f64ca8bd00 Mon Sep 17 00:00:00 2001 From: Karang Date: Tue, 2 Mar 2021 05:06:51 +0100 Subject: [PATCH] Fix moving in chat, fix breaking snapping view --- index.html | 6 +++--- index.js | 8 ++++---- lib/chat.js | 43 +++++++++++++++++++++---------------------- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/index.html b/index.html index c599e9a..6cdd82d 100644 --- a/index.html +++ b/index.html @@ -51,10 +51,10 @@ .chat { overflow: hidden; color: white; - font-size: 32px; + font-size: 16px; margin: 0px; line-height: 100%; - text-shadow: 4px 4px 0px #3f3f3f; + text-shadow: 2px 2px 0px #3f3f3f; font-family: mojangles, minecraft, monospace; width: 100%; max-height: calc(90px * 8) @@ -83,7 +83,7 @@ } - +
diff --git a/index.js b/index.js index 0815772..de4547e 100644 --- a/index.js +++ b/index.js @@ -7,7 +7,7 @@ const mineflayer = require('mineflayer') const { WorldView, Viewer } = require('prismarine-viewer/viewer') const Vec3 = require('vec3').Vec3 global.THREE = require('three') -const chat = require('./lib/chat') +const Chat = require('./lib/chat') const maxPitch = 0.5 * Math.PI const minPitch = -0.5 * Math.PI @@ -47,7 +47,7 @@ async function main () { renderer.setSize(window.innerWidth, window.innerHeight) document.body.appendChild(renderer.domElement) - chat.init(undefined, bot._client, renderer) + const chat = Chat.init(bot._client, renderer) // Create viewer const viewer = new Viewer(renderer) @@ -109,8 +109,8 @@ async function main () { } document.addEventListener('keydown', (e) => { + if (chat.inChat) return console.log(e.code) - if (e.code in codes) { bot.setControlState(codes[e.code], true) } @@ -127,7 +127,7 @@ async function main () { if (!ButtonBlock) return if (e.button === 0) { if (bot.canDigBlock(ButtonBlock)) { - bot.dig(ButtonBlock) + bot.dig(ButtonBlock, 'ignore') } } else if (e.button === 2) { const vecArray = [new Vec3(0, -1, 0), new Vec3(0, 1, 0), new Vec3(0, 0, -1), new Vec3(0, 0, 1), new Vec3(-1, 0, 0), new Vec3(1, 0, 0)] diff --git a/lib/chat.js b/lib/chat.js index 4dbf54c..6cb196b 100644 --- a/lib/chat.js +++ b/lib/chat.js @@ -33,7 +33,7 @@ const dictionary = { 'chat.type.text': '<%s> %s' } -export function init (mineweb, client, renderer) { +export function init (client, renderer) { const chat = document.querySelector('#chat') const chatInput = document.querySelector('#chatinput') @@ -47,10 +47,13 @@ export function init (mineweb, client, renderer) { // Show chat chat.style.display = 'block' - let inChat = false + const chatState = { + inChat: false + } + // Esc event - Doesnt work with onkeypress?! document.onkeydown = function (e) { - if (!inChat) return + if (!chatState.inChat) return e = e || window.event if (e.keyCode === 27 || e.key === 'Escape' || e.key === 'Esc') { disableChat() @@ -66,7 +69,7 @@ export function init (mineweb, client, renderer) { // Chat events document.onkeypress = function (e) { e = e || window.event - if (inChat === false) { + if (chatState.inChat === false) { if (e.code === 'KeyT') { enableChat(false) } @@ -77,13 +80,11 @@ export function init (mineweb, client, renderer) { return false } - if (!inChat) return + if (!chatState.inChat) return e.stopPropagation() if (e.code === 'Enter') { chatHistory.push(chatInput.value) - /* TODO: mineweb._client */ client.write('chat', { - message: chatInput.value - }) + client.write('chat', { message: chatInput.value }) disableChat() } } @@ -95,13 +96,13 @@ export function init (mineweb, client, renderer) { document.mozPointerLockElement === canvas ) { // Someone focused the game back so we hide chat. - inChat = false; + chatState.inChat = false; hideChat(); } }); */ function enableChat (isCommand) { // Set inChat value - inChat = true + chatState.inChat = true // Exit the pointer lock document.exitPointerLock() // Show chat input @@ -114,25 +115,19 @@ export function init (mineweb, client, renderer) { } // Focus element chatInput.focus() - // Disable controls - // mineweb._noa.inputs.disabled = true; chatHistoryPos = chatHistory.length } + function disableChat () { // Set inChat value - inChat = false + chatState.inChat = false + // Hide chat hideChat() renderer.domElement.requestPointerLock() - // Enable controls - // mineweb._noa.inputs.disabled = false; - // Focus noa again - /* const canvas = document.getElementById("noa-canvas"); - canvas.requestPointerLock = - canvas.requestPointerLock || canvas.mozRequestPointerLock; - canvas.requestPointerLock(); */ } + function hideChat () { // Clear chat input chatInput.value = '' @@ -166,8 +161,8 @@ export function init (mineweb, client, renderer) { } return shouldReturn } - // Client part - /* TODO: mineweb._client */ client.on('chat', function (packet) { + + client.on('chat', (packet) => { // Reading of chat message const fullmessage = JSON.parse(packet.message.toString()) let msglist = [] @@ -223,4 +218,8 @@ export function init (mineweb, client, renderer) { chat.appendChild(li) chat.scrollTop = chat.scrollHeight // Stay bottom of the list }) + + hideChat() + + return chatState }