Arras.io Chat GUI Template

Allows you to show words above your name in Arras.io

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Arras.io Chat GUI Template
// @description  Allows you to show words above your name in Arras.io
// @namespace    https://google.com/
// @version      1.0.0
// @author       ruubei
// @match        *://arras.io/*
// @grant        none
// ==/UserScript==

(function() {
  let chatOpen = false;
  let chatInput;

  const openChat = () => {
    if (!chatOpen) {
      chatInput = document.createElement('input');
      chatInput.type = 'text';
      chatInput.style.position = 'fixed';
      chatInput.style.bottom = '10px';
      chatInput.style.left = '10px';
      chatInput.style.width = '200px';
      chatInput.style.padding = '5px';
      chatInput.style.border = '1px solid black';
      chatInput.addEventListener('keydown', handleChatInput);
      document.body.appendChild(chatInput);
      chatInput.focus();
      chatOpen = true;
    }
  };

  const closeChat = () => {
    if (chatOpen) {
      document.body.removeChild(chatInput);
      chatOpen = false;
    }
  };

  const handleChatInput = (event) => {
    if (event.key === 'p') {
      const message = chatInput.value.trim();
      if (message !== '') {
        // Replace 'YOUR NAME' with your actual in-game name
        const name = 'YOUR NAME';
        const chatMessage = `^${name}^: ${message}`;
        chatInput.value = '';
        // Replace 'Socket' with the actual variable name for your socket connection
        // For example, if your socket connection variable is '123', replace 'Socket' with '123'
        // You may need to inspect the Arras.io page to find the correct variable name
        // Send the chat message to the server
          Socket.send('m', chatMessage);
      }
      closeChat();
    }
  };

  // Listen for the 'p' key press to open/close the chat GUI
  window.addEventListener('keydown', (event) => {
    if (event.key === 'p') {
      if (!chatOpen) {
        openChat();
      } else {
        closeChat();
      }
    }
  });
})();