roleplay commands, for real now

This commit is contained in:
Lio Young 2021-05-17 22:28:12 +02:00
parent fd831f2958
commit aece129f04
No known key found for this signature in database
GPG Key ID: 789795A11879E169
11 changed files with 466 additions and 0 deletions

41
src/modules/fun/boop.ts Normal file
View File

@ -0,0 +1,41 @@
// @ts-nocheck
import Command from '../../handler/structures/Command';
import { Context } from '../../utils/types';
import { MessageEmbed } from 'discord.js';
import lingua from '../../utils/lingua';
import replace from '../../utils/replace';
import { request } from '../../utils/commmand.roleplay';
export = class Boop extends Command {
constructor() {
super({
name: "boop",
description: "Boop someone's Snoot!",
cooldown: 1,
usage: `<@User>`
})
}
async command(ctx: Context) {
let action = "boop"
if (ctx.message.mentions.members?.size === 0) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_REQUIRE_MENTION))
if (ctx.message.mentions.members?.first()?.id === ctx.client.user?.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_ME))
if (ctx.message.mentions.members?.first()?.id === ctx.author.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_SELF))
let users = [ctx.message.author.username, ctx.message.mentions.members?.first()?.user.username]
let { image, provider, line } = await request(action, ctx.settings.locale, users)
if (ctx.settings.embeds) {
let Action = new MessageEmbed().setImage(image.url)
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) Action.setDescription(line)
Action
.setFooter(`${ctx.config.variables.name} - Image provided by ${provider}`, ctx.config.variables.avatar)
.setColor(ctx.config.variables.color)
ctx.channel.send(Action)
} else {
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) ctx.channel.send(`${line}\n\n${image.url}`)
else ctx.channel.send(image.url)
}
}
}

41
src/modules/fun/cuddle.ts Normal file
View File

@ -0,0 +1,41 @@
// @ts-nocheck
import Command from '../../handler/structures/Command';
import { Context } from '../../utils/types';
import { MessageEmbed } from 'discord.js';
import lingua from '../../utils/lingua';
import replace from '../../utils/replace';
import { request } from '../../utils/commmand.roleplay';
export = class Cuddle extends Command {
constructor() {
super({
name: "cuddle",
description: "Cuddle somebody!",
cooldown: 1,
usage: `<@User>`
})
}
async command(ctx: Context) {
let action = "cuddle"
if (ctx.message.mentions.members?.size === 0) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_REQUIRE_MENTION))
if (ctx.message.mentions.members?.first()?.id === ctx.client.user?.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_ME))
if (ctx.message.mentions.members?.first()?.id === ctx.author.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_SELF))
let users = [ctx.message.author.username, ctx.message.mentions.members?.first()?.user.username]
let { image, provider, line } = await request(action, ctx.settings.locale, users)
if (ctx.settings.embeds) {
let Action = new MessageEmbed().setImage(image.url)
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) Action.setDescription(line)
Action
.setFooter(`${ctx.config.variables.name} - Image provided by ${provider}`, ctx.config.variables.avatar)
.setColor(ctx.config.variables.color)
ctx.channel.send(Action)
} else {
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) ctx.channel.send(`${line}\n\n${image.url}`)
else ctx.channel.send(image.url)
}
}
}

42
src/modules/fun/hold.ts Normal file
View File

@ -0,0 +1,42 @@
// @ts-nocheck
import Command from '../../handler/structures/Command';
import { Context } from '../../utils/types';
import { MessageEmbed } from 'discord.js';
import lingua from '../../utils/lingua';
import replace from '../../utils/replace';
import { request } from '../../utils/commmand.roleplay';
export = class Hold extends Command {
constructor() {
super({
name: "hold",
description: "Hold somebody!",
cooldown: 1,
usage: `<@User>`
})
}
async command(ctx: Context) {
let action = "hold"
if (ctx.message.mentions.members?.size === 0) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_REQUIRE_MENTION))
if (ctx.message.mentions.members?.first()?.id === ctx.client.user?.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_ME))
if (ctx.message.mentions.members?.first()?.id === ctx.author.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_SELF))
let users = [ctx.message.author.username, ctx.message.mentions.members?.first()?.user.username]
let { image, provider, line } = await request(action, ctx.settings.locale, users)
if (ctx.settings.embeds) {
let Action = new MessageEmbed().setImage(image.url)
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) Action.setDescription(line)
Action
.setFooter(`${ctx.config.variables.name} - Image provided by ${provider}`, ctx.config.variables.avatar)
.setColor(ctx.config.variables.color)
ctx.channel.send(Action)
} else {
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) ctx.channel.send(`${line}\n\n${image.url}`)
else ctx.channel.send(image.url)
}
}
}

41
src/modules/fun/lick.ts Normal file
View File

@ -0,0 +1,41 @@
// @ts-nocheck
import Command from '../../handler/structures/Command';
import { Context } from '../../utils/types';
import { MessageEmbed } from 'discord.js';
import lingua from '../../utils/lingua';
import replace from '../../utils/replace';
import { request } from '../../utils/commmand.roleplay';
export = class Lick extends Command {
constructor() {
super({
name: "lick",
description: "Lick somebody!",
cooldown: 1,
usage: `<@User>`
})
}
async command(ctx: Context) {
let action = "lick"
if (ctx.message.mentions.members?.size === 0) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_REQUIRE_MENTION))
if (ctx.message.mentions.members?.first()?.id === ctx.client.user?.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_ME))
if (ctx.message.mentions.members?.first()?.id === ctx.author.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_SELF))
let users = [ctx.message.author.username, ctx.message.mentions.members?.first()?.user.username]
let { image, provider, line } = await request(action, ctx.settings.locale, users)
if (ctx.settings.embeds) {
let Action = new MessageEmbed().setImage(image.url)
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) Action.setDescription(line)
Action
.setFooter(`${ctx.config.variables.name} - Image provided by ${provider}`, ctx.config.variables.avatar)
.setColor(ctx.config.variables.color)
ctx.channel.send(Action)
} else {
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) ctx.channel.send(`${line}\n\n${image.url}`)
else ctx.channel.send(image.url)
}
}
}

42
src/modules/nsfw/bulge.ts Normal file
View File

@ -0,0 +1,42 @@
// @ts-nocheck
import Command from '../../handler/structures/Command';
import { Context } from '../../utils/types';
import { MessageEmbed } from 'discord.js';
import lingua from '../../utils/lingua';
import replace from '../../utils/replace';
import { request } from '../../utils/commmand.roleplay';
export = class Bulge extends Command {
constructor() {
super({
name: "bulge",
description: ":eyes:",
cooldown: 1,
nsfw: true,
usage: `<@User>`
})
}
async command(ctx: Context) {
let action = "nsfw_bulge"
if (ctx.message.mentions.members?.size === 0) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_REQUIRE_MENTION))
if (ctx.message.mentions.members?.first()?.id === ctx.client.user?.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_ME))
if (ctx.message.mentions.members?.first()?.id === ctx.author.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_SELF))
let users = [ctx.message.author.username, ctx.message.mentions.members?.first()?.user.username]
let { image, provider, line } = await request(action, ctx.settings.locale, users)
if (ctx.settings.embeds) {
let Action = new MessageEmbed().setImage(image.url)
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) Action.setDescription(line)
Action
.setFooter(`${ctx.config.variables.name} - Image provided by ${provider}`, ctx.config.variables.avatar)
.setColor(ctx.config.variables.color)
ctx.channel.send(Action)
} else {
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) ctx.channel.send(`${line}\n\n${image.url}`)
else ctx.channel.send(image.url)
}
}
}

View File

@ -0,0 +1,42 @@
// @ts-nocheck
import Command from '../../handler/structures/Command';
import { Context } from '../../utils/types';
import { MessageEmbed } from 'discord.js';
import lingua from '../../utils/lingua';
import replace from '../../utils/replace';
import { request } from '../../utils/commmand.roleplay';
export = class NSFW_Cuddle extends Command {
constructor() {
super({
name: "ncuddle",
description: "Cuddle someone lewdly!",
cooldown: 1,
nsfw: true,
usage: `<@User>`
})
}
async command(ctx: Context) {
let action = "nsfw_cuddle"
if (ctx.message.mentions.members?.size === 0) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_REQUIRE_MENTION))
if (ctx.message.mentions.members?.first()?.id === ctx.client.user?.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_ME))
if (ctx.message.mentions.members?.first()?.id === ctx.author.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_SELF))
let users = [ctx.message.author.username, ctx.message.mentions.members?.first()?.user.username]
let { image, provider, line } = await request(action, ctx.settings.locale, users)
if (ctx.settings.embeds) {
let Action = new MessageEmbed().setImage(image.url)
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) Action.setDescription(line)
Action
.setFooter(`${ctx.config.variables.name} - Image provided by ${provider}`, ctx.config.variables.avatar)
.setColor(ctx.config.variables.color)
ctx.channel.send(Action)
} else {
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) ctx.channel.send(`${line}\n\n${image.url}`)
else ctx.channel.send(image.url)
}
}
}

42
src/modules/nsfw/nhold.ts Normal file
View File

@ -0,0 +1,42 @@
// @ts-nocheck
import Command from '../../handler/structures/Command';
import { Context } from '../../utils/types';
import { MessageEmbed } from 'discord.js';
import lingua from '../../utils/lingua';
import replace from '../../utils/replace';
import { request } from '../../utils/commmand.roleplay';
export = class NSFW_Hold extends Command {
constructor() {
super({
name: "nhold",
description: "Hug somebody!",
cooldown: 1,
nsfw: true,
usage: `<@User>`
})
}
async command(ctx: Context) {
let action = "hug"
if (ctx.message.mentions.members?.size === 0) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_REQUIRE_MENTION))
if (ctx.message.mentions.members?.first()?.id === ctx.client.user?.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_ME))
if (ctx.message.mentions.members?.first()?.id === ctx.author.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_SELF))
let users = [ctx.message.author.username, ctx.message.mentions.members?.first()?.user.username]
let { image, provider, line } = await request(action, ctx.settings.locale, users)
if (ctx.settings.embeds) {
let Action = new MessageEmbed().setImage(image.url)
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) Action.setDescription(line)
Action
.setFooter(`${ctx.config.variables.name} - Image provided by ${provider}`, ctx.config.variables.avatar)
.setColor(ctx.config.variables.color)
ctx.channel.send(Action)
} else {
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) ctx.channel.send(`${line}\n\n${image.url}`)
else ctx.channel.send(image.url)
}
}
}

42
src/modules/nsfw/nhug.ts Normal file
View File

@ -0,0 +1,42 @@
// @ts-nocheck
import Command from '../../handler/structures/Command';
import { Context } from '../../utils/types';
import { MessageEmbed } from 'discord.js';
import lingua from '../../utils/lingua';
import replace from '../../utils/replace';
import { request } from '../../utils/commmand.roleplay';
export = class NSFW_Hug extends Command {
constructor() {
super({
name: "nhug",
description: "Hug someone lewdly!",
cooldown: 1,
nsfw: true,
usage: `<@User>`
})
}
async command(ctx: Context) {
let action = "nsfw_hug"
if (ctx.message.mentions.members?.size === 0) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_REQUIRE_MENTION))
if (ctx.message.mentions.members?.first()?.id === ctx.client.user?.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_ME))
if (ctx.message.mentions.members?.first()?.id === ctx.author.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_SELF))
let users = [ctx.message.author.username, ctx.message.mentions.members?.first()?.user.username]
let { image, provider, line } = await request(action, ctx.settings.locale, users)
if (ctx.settings.embeds) {
let Action = new MessageEmbed().setImage(image.url)
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) Action.setDescription(line)
Action
.setFooter(`${ctx.config.variables.name} - Image provided by ${provider}`, ctx.config.variables.avatar)
.setColor(ctx.config.variables.color)
ctx.channel.send(Action)
} else {
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) ctx.channel.send(`${line}\n\n${image.url}`)
else ctx.channel.send(image.url)
}
}
}

42
src/modules/nsfw/nkiss.ts Normal file
View File

@ -0,0 +1,42 @@
// @ts-nocheck
import Command from '../../handler/structures/Command';
import { Context } from '../../utils/types';
import { MessageEmbed } from 'discord.js';
import lingua from '../../utils/lingua';
import replace from '../../utils/replace';
import { request } from '../../utils/commmand.roleplay';
export = class NSFW_Kiss extends Command {
constructor() {
super({
name: "nkiss",
description: "Kiss someone lewdly!",
cooldown: 1,
nsfw: true,
usage: `<@User>`
})
}
async command(ctx: Context) {
let action = "nsfw_kiss"
if (ctx.message.mentions.members?.size === 0) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_REQUIRE_MENTION))
if (ctx.message.mentions.members?.first()?.id === ctx.client.user?.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_ME))
if (ctx.message.mentions.members?.first()?.id === ctx.author.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_SELF))
let users = [ctx.message.author.username, ctx.message.mentions.members?.first()?.user.username]
let { image, provider, line } = await request(action, ctx.settings.locale, users)
if (ctx.settings.embeds) {
let Action = new MessageEmbed().setImage(image.url)
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) Action.setDescription(line)
Action
.setFooter(`${ctx.config.variables.name} - Image provided by ${provider}`, ctx.config.variables.avatar)
.setColor(ctx.config.variables.color)
ctx.channel.send(Action)
} else {
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) ctx.channel.send(`${line}\n\n${image.url}`)
else ctx.channel.send(image.url)
}
}
}

41
src/modules/nsfw/nlick.ts Normal file
View File

@ -0,0 +1,41 @@
// @ts-nocheck
import Command from '../../handler/structures/Command';
import { Context } from '../../utils/types';
import { MessageEmbed } from 'discord.js';
import lingua from '../../utils/lingua';
import replace from '../../utils/replace';
import { request } from '../../utils/commmand.roleplay';
export = class NSFW_Lick extends Command {
constructor() {
super({
name: "nlick",
description: "Hug someone lewdly!",
cooldown: 1,
nsfw: true
})
}
async command(ctx: Context) {
let action = "nsfw_lick"
if (ctx.message.mentions.members?.size === 0) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_REQUIRE_MENTION))
if (ctx.message.mentions.members?.first()?.id === ctx.client.user?.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_ME))
if (ctx.message.mentions.members?.first()?.id === ctx.author.id) return ctx.channel.send(replace(/ACTION/g, action, lingua[ctx.settings.locale].RP_SELF))
let users = [ctx.message.author.username, ctx.message.mentions.members?.first()?.user.username]
let { image, provider, line } = await request(action, ctx.settings.locale, users)
if (ctx.settings.embeds) {
let Action = new MessageEmbed().setImage(image.url)
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) Action.setDescription(line)
Action
.setFooter(`${ctx.config.variables.name} - Image provided by ${provider}`, ctx.config.variables.avatar)
.setColor(ctx.config.variables.color)
ctx.channel.send(Action)
} else {
if ((line && ctx.message.mentions.members?.size !== 0) && ctx.settings.interactiontext) ctx.channel.send(`${line}\n\n${image.url}`)
else ctx.channel.send(image.url)
}
}
}

View File

@ -0,0 +1,50 @@
import yiff from "./yiff";
type action =
"hug"
| "boop"
| "kiss"
| "lick"
| "hold"
| "cuddle"
| "nsfw_hug"
| "nsfw_kiss"
| "nsfw_lick"
| "nsfw_hold"
| "nsfw_cuddle"
| "nsfw_bulge"
function line(category: action) {
return undefined
}
export async function request(action: action, locale: string) {
switch (action) {
case "hug":
return { image: await yiff.sheri("hug"), provider: "sheri.bot", line: line(action) };
case "boop":
return { image: await yiff.sheri("boop"), provider: "sheri.bot", line: line(action) };
case "kiss":
return { image: await yiff.sheri("kiss"), provider: "sheri.bot", line: line(action) };
case "lick":
return { image: await yiff.sheri("lick"), provider: "sheri.bot", line: line(action) };
case "hold":
return { image: await yiff.sheri("hold"), provider: "sheri.bot", line: line(action) };
case "cuddle":
return { image: await yiff.sheri("cuddle"), provider: "sheri.bot", line: line(action) };
case "nsfw_hug":
return { image: await yiff.sheri("nhug"), provider: "sheri.bot", line: line(action) };
case "nsfw_kiss":
return { image: await yiff.sheri("nkiss"), provider: "sheri.bot", line: line(action) };
case "nsfw_lick":
return { image: await yiff.sheri("nlick"), provider: "sheri.bot", line: line(action) };
case "nsfw_hold":
return { image: await yiff.sheri("nhold"), provider: "sheri.bot", line: line(action) };
case "nsfw_cuddle":
return { image: await yiff.sheri("ncuddle"), provider: "sheri.bot", line: line(action) };
case "nsfw_bulge":
return { image: await yiff.sheri("nbulge"), provider: "sheri.bot", line: line(action) };
}
}