mirror of
https://github.com/qwerinope/qweribot.git
synced 2025-12-19 00:51:37 +01:00
add silverbullet, ensure user has item before using
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { createBotCommand } from "@twurple/easy-bot";
|
||||
import { useBlaster } from "../lib/items";
|
||||
import { useBlaster, useSilverBullet } from "../lib/items";
|
||||
import api from "../lib/api";
|
||||
|
||||
export default createBotCommand('use', async (params, { say, broadcasterId, userId }) => {
|
||||
@@ -7,11 +7,16 @@ export default createBotCommand('use', async (params, { say, broadcasterId, user
|
||||
|
||||
if (params[0] === undefined) return
|
||||
|
||||
switch(params[0].toLowerCase()) {
|
||||
switch (params[0].toLowerCase()) {
|
||||
case 'blaster':
|
||||
if (params[1] === undefined) return
|
||||
await useBlaster(broadcasterId, user!, params[1], say)
|
||||
break
|
||||
break
|
||||
case 'silver':
|
||||
case 'silverbullet':
|
||||
if (params[1] === undefined) return
|
||||
await useSilverBullet(broadcasterId, user!, params[1], say)
|
||||
break
|
||||
default:
|
||||
await say(`${params[0]} does not exist mandoooYikes`)
|
||||
}
|
||||
|
||||
@@ -28,9 +28,12 @@ export async function changeItemCount(user: HelixUser, item: string, amount = -1
|
||||
export async function useBlaster(broadcasterId: string, attacker: HelixUser, targetname: string, say: (arg0: string) => Promise<void>) {
|
||||
const target = await api.users.getUserByName(targetname)
|
||||
|
||||
const itemResult = await changeItemCount(attacker, 'blaster')
|
||||
|
||||
if (!itemResult.result && itemResult.reason === 'negative') { await say('You have no blasters mandoooYikes'); return }
|
||||
|
||||
const result = await timeout(broadcasterId, target!, 60, `You got blasted by ${attacker.name}`)
|
||||
if (result.status) {
|
||||
const itemResult = await changeItemCount(attacker, 'blaster')
|
||||
await say(`${targetname} got mandoooGun by ${attacker.name}! mandoooGOTTEM ${attacker.name} has ${itemResult.count} blaster${itemResult.count === 1 ? '' : 's'} remaining`)
|
||||
await addTimeoutToDB(attacker, target!, 'blaster')
|
||||
} else {
|
||||
@@ -48,3 +51,30 @@ export async function useBlaster(broadcasterId: string, attacker: HelixUser, tar
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export async function useSilverBullet(broadcasterId: string, attacker: HelixUser, targetname: string, say: (arg0: string) => Promise<void>) {
|
||||
const target = await api.users.getUserByName(targetname)
|
||||
|
||||
const itemResult = await changeItemCount(attacker, 'silverbullet')
|
||||
|
||||
if (!itemResult.result && itemResult.reason === 'negative') { await say('You have no silver bullets mandoooYikes'); return }
|
||||
|
||||
const result = await timeout(broadcasterId, target!, 60 * 60 * 24, `You got hit by a silver bullet fired by ${attacker.name}`)
|
||||
if (result.status) {
|
||||
await say(`${target?.name} mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute mandoooSalute `)
|
||||
await addTimeoutToDB(attacker, target!, 'silverbullet')
|
||||
} else {
|
||||
switch (result.reason) {
|
||||
case 'noexist':
|
||||
await say(`${targetname} doesn't exist!`)
|
||||
break
|
||||
case 'banned':
|
||||
await say(`${targetname} is already dead!`)
|
||||
break
|
||||
case 'unknown':
|
||||
await say(`NO!`)
|
||||
await timeout(broadcasterId, attacker, 60, "NO!")
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user