Name Saver for Multiplayer Piano

Auto-Save & Set your nickname on Multiplayer Piano. No more 'Anonymous.'

安装此脚本?
作者推荐脚本

您可能也喜欢EpicOS (v1) - Rewritten

安装此脚本
// ==UserScript==
// @name         Name Saver for Multiplayer Piano
// @namespace    https://github.com/slowstone72/MPP-name-saver
// @version      1.2.0
// @license      Unlicense
// @description  Auto-Save & Set your nickname on Multiplayer Piano. No more 'Anonymous.'
// @author       Callum Fisher <[email protected]>
// @match        *://multiplayerpiano.com/*
// @grant        none
// ==/UserScript==

// 2025.01.04 - 2025.01.07

const startMPPNameSaver = () => {
	console.log('[Name Saver for Multiplayer Piano v1.2.0] Running.');
	const setName = () => {
		MPP.client.sendArray([{
			'm': 'userset',
			'set': {
				'name': localStorage.nsNick
			}
		}]);
		if (!MPP.client.isConnected() || MPP.client.getOwnParticipant().name !== localStorage.nsNick) {
			setTimeout(setName, 5000);
			return;
		}
	}
	const checkName = () => {
		if (typeof localStorage.nsNick === 'undefined') localStorage.nsNick = MPP.client.getOwnParticipant().name;
		if (MPP.client.getOwnParticipant().name !== localStorage.nsNick) {
			setName();
		}
	}
	const saveName = () => {
		if (MPP.client.getOwnParticipant().name === localStorage.nsNick) return;
		localStorage.nsNick = MPP.client.getOwnParticipant().name;
	}
	if (MPP.client.isConnected()) checkName();
	MPP.client.on('hi', checkName);
	MPP.client.on('p', saveName);
}

// Start:

if (!window.addEventListener) {
	window.attachEvent('onload', startMPPNameSaver);
} else {
	window.addEventListener('load', startMPPNameSaver);
}