Compare commits
	
		
			No commits in common. "0d375cac92f92e8e013dbf04b062c66373a0ddad" and "2656c97b7d506858ae9ecdd0dccf50758db1dc9e" have entirely different histories.
		
	
	
		
			0d375cac92
			...
			2656c97b7d
		
	
		|  | @ -1,12 +1,12 @@ | ||||||
| { | { | ||||||
|   "name": "schat2-clive", |   "name": "schat2-clive", | ||||||
|   "version": "1.16.5", |   "version": "1.16.4", | ||||||
|   "lockfileVersion": 2, |   "lockfileVersion": 2, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "packages": { |   "packages": { | ||||||
|     "": { |     "": { | ||||||
|       "name": "schat2-clive", |       "name": "schat2-clive", | ||||||
|       "version": "1.16.5", |       "version": "1.16.4", | ||||||
|       "license": "ISC", |       "license": "ISC", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "bhttp": "^1.2.8", |         "bhttp": "^1.2.8", | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| { | { | ||||||
|   "name": "schat2-clive", |   "name": "schat2-clive", | ||||||
|   "version": "1.16.5", |   "version": "1.16.4", | ||||||
|   "description": "Game host for SChat 2-powered chat sites", |   "description": "Game host for SChat 2-powered chat sites", | ||||||
|   "main": "src/app.js", |   "main": "src/app.js", | ||||||
|   "scripts": { |   "scripts": { | ||||||
|  |  | ||||||
|  | @ -16,24 +16,9 @@ const emojis = { | ||||||
| 	rock: '🪨', | 	rock: '🪨', | ||||||
| 	paper: '📄', | 	paper: '📄', | ||||||
| 	scissors: '✂️', | 	scissors: '✂️', | ||||||
| 	scissoring: ':scissoring:', |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const emojiAliases = { | async function play(context, hand) { | ||||||
| 	rock: 'rock', |  | ||||||
| 	paper: 'paper', |  | ||||||
| 	page_facing_up: 'paper', |  | ||||||
| 	page_with_curl: 'paper', |  | ||||||
| 	newspaper: 'paper', |  | ||||||
| 	newspaper_roll: 'paper', |  | ||||||
| 	scroll: 'paper', |  | ||||||
| 	scissors: 'scissors', |  | ||||||
| 	scissoring: 'scissors', |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| const emojiLookup = Object.fromEntries(Object.entries(emojis).map(([key, emoji]) => [emoji, key])); |  | ||||||
| 
 |  | ||||||
| async function play(context, hand, originalHand) { |  | ||||||
| 	const counter = Object.keys(wins)[crypto.randomInt(0, 3)]; | 	const counter = Object.keys(wins)[crypto.randomInt(0, 3)]; | ||||||
| 
 | 
 | ||||||
| 	const userWins = wins[hand] === counter; | 	const userWins = wins[hand] === counter; | ||||||
|  | @ -44,17 +29,11 @@ async function play(context, hand, originalHand) { | ||||||
| 	await timers.setTimeout(500); | 	await timers.setTimeout(500); | ||||||
| 	context.sendMessage(`${emojis.paper} Paper!`, context.room.id); | 	context.sendMessage(`${emojis.paper} Paper!`, context.room.id); | ||||||
| 	await timers.setTimeout(500); | 	await timers.setTimeout(500); | ||||||
| 
 |  | ||||||
| 	if (originalHand === 'scissoring') { |  | ||||||
| 		context.sendMessage(`${emojis.scissoring} Scissoring!`, context.room.id); |  | ||||||
| 	} else { |  | ||||||
| 	context.sendMessage(`${emojis.scissors} Scissors!`, context.room.id); | 	context.sendMessage(`${emojis.scissors} Scissors!`, context.room.id); | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	await timers.setTimeout(750); | 	await timers.setTimeout(750); | ||||||
| 
 | 
 | ||||||
| 	if (userWins) { | 	if (userWins) { | ||||||
| 		context.sendMessage(`${style.bold('You win!')} ${config.user.username} played ${style.italic(counter)} ${emojis[counter]} against your ${style.italic(originalHand)} ${emojis[originalHand]}`, context.room.id); | 		context.sendMessage(`${style.bold('You win!')} ${config.user.username} played ${style.italic(counter)} ${emojis[counter]} against your ${style.italic(hand)} ${emojis[hand]}`, context.room.id); | ||||||
| 
 | 
 | ||||||
| 		context.setPoints(context.user, 1); | 		context.setPoints(context.user, 1); | ||||||
| 		context.setPoints(config.user, 1); | 		context.setPoints(config.user, 1); | ||||||
|  | @ -63,7 +42,7 @@ async function play(context, hand, originalHand) { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (botWins) { | 	if (botWins) { | ||||||
| 		context.sendMessage(`${style.bold('You lose...')} ${config.user.username} played ${style.italic(counter)} ${emojis[counter]} against your ${style.italic(originalHand)} ${emojis[originalHand]}`, context.room.id); | 		context.sendMessage(`${style.bold('You lose...')} ${config.user.username} played ${style.italic(counter)} ${emojis[counter]} against your ${style.italic(hand)} ${emojis[hand]}`, context.room.id); | ||||||
| 
 | 
 | ||||||
| 		context.setPoints(context.user, -1); | 		context.setPoints(context.user, -1); | ||||||
| 		context.setPoints(config.user, 1); | 		context.setPoints(config.user, 1); | ||||||
|  | @ -71,21 +50,16 @@ async function play(context, hand, originalHand) { | ||||||
| 		return; | 		return; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	context.sendMessage(`${style.bold('It\'s a draw.')} ${config.user.username} also played ${style.italic(originalHand)} ${emojis[originalHand]}`, context.room.id); | 	context.sendMessage(`${style.bold('It\'s a draw.')} ${config.user.username} also played ${style.italic(counter)} ${emojis[counter]}`, context.room.id); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| async function onCommand(args, context) { | async function onCommand(args, context) { | ||||||
| 	return play(context, context.command, context.command); | 	return play(context, context.command); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| async function onMessage(args, context) { | async function onMessage(args, context) { | ||||||
| 	const emojiHand = emojiLookup[context.message.body]; | 	if (context.user?.username !== config.user.username && Object.values(emojis).some((emoji) => new RegExp(`^${emoji}$`, 'u').test(context.message.body))) { | ||||||
| 	const emojiAliasHand = config.platform === 'schat' && context.message.originalBody?.match(/^:((?:rock)|(?:paper)|(?:scissors)|(?:scissoring)|(?:page_facing_up)|(?:page_with_curl)):$/)?.[1]; | 		play(context, context.command); | ||||||
| 
 |  | ||||||
| 	const hand = emojiHand || emojiAliases[emojiAliasHand]; |  | ||||||
| 
 |  | ||||||
| 	if (hand && context.user?.username !== config.user.username) { |  | ||||||
| 		play(context, hand, emojiHand || emojiAliasHand); |  | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -94,5 +68,5 @@ module.exports = { | ||||||
| 	onMessage, | 	onMessage, | ||||||
| 	name: 'Rock, Paper, Scissors', | 	name: 'Rock, Paper, Scissors', | ||||||
| 	commands: ['rock', 'paper', 'scissors'], | 	commands: ['rock', 'paper', 'scissors'], | ||||||
| 	help: 'Can you read my mind? Play ~rock, ~paper, or ~scissors.', | 	help: 'What\'s your next move? Try ~dice [rolls] [faces], ~die or ~roll', | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -235,7 +235,6 @@ function onMessage(message, bot, games) { | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (message.type === 'message') { |  | ||||||
| 	Object.values(Object.fromEntries(Object.values(games).map((game) => [game.key, game]))).forEach((game) => game.onMessage?.(message, { | 	Object.values(Object.fromEntries(Object.values(games).map((game) => [game.key, game]))).forEach((game) => game.onMessage?.(message, { | ||||||
| 		...game, | 		...game, | ||||||
| 		bot, | 		bot, | ||||||
|  | @ -248,7 +247,6 @@ function onMessage(message, bot, games) { | ||||||
| 		logger, | 		logger, | ||||||
| 	})); | 	})); | ||||||
| } | } | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| module.exports = { | module.exports = { | ||||||
| 	onMessage, | 	onMessage, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue