This commit is contained in:
tsuk 2024-01-21 00:17:47 -08:00
commit 1e31c286df
4 changed files with 299 additions and 276 deletions

View file

@ -2,6 +2,7 @@ import os
import io import io
import base64 import base64
import time import time
import json
import asyncssh import asyncssh
from PIL import Image, PngImagePlugin from PIL import Image, PngImagePlugin
from discord.ext import commands, tasks from discord.ext import commands, tasks
@ -16,6 +17,7 @@ class PhixxyCom(commands.Cog):
self.working_dir = "tmp/phixxy.com/" self.working_dir = "tmp/phixxy.com/"
self.data_dir = "data/phixxy.com/" self.data_dir = "data/phixxy.com/"
self.folder_setup() self.folder_setup()
self.stable_diffusion_log = "data/stable_diffusion/stable_diffusion.log"
self.phixxy_loop.start() self.phixxy_loop.start()
def folder_setup(self): def folder_setup(self):
@ -27,6 +29,16 @@ class PhixxyCom(commands.Cog):
except: except:
print("PhixxyCom failed to make directories") print("PhixxyCom failed to make directories")
def find_prompt_from_filename(self, sd_log, filename):
with open(sd_log, 'r') as f:
lines = f.readlines()
for line in reversed(lines):
if filename in line:
prompt = line[line.index("Prompt: ") + 7:line.index("Filename: ")]
prompt = ''.join(prompt.rsplit(',', 1)) # Remove the last comma
return prompt
return "Unknown Prompt"
async def upload_sftp(self, local_filename, server_folder, server_filename): async def upload_sftp(self, local_filename, server_folder, server_filename):
remotepath = server_folder + server_filename remotepath = server_folder + server_filename
async with asyncssh.connect(self.SERVER, username=self.USERNAME, password=self.PASSWORD) as conn: async with asyncssh.connect(self.SERVER, username=self.USERNAME, password=self.PASSWORD) as conn:
@ -141,8 +153,7 @@ class PhixxyCom(commands.Cog):
for filename in os.listdir(folder): for filename in os.listdir(folder):
if filename[-4:] == '.png': if filename[-4:] == '.png':
filepath = folder + filename filepath = folder + filename
prompt = "Unknown Prompt" # Will have to update this later prompt = self.find_prompt_from_filename(self.stable_diffusion_log, filename)
html_file = "phixxy.com/ai-images/index.html" html_file = "phixxy.com/ai-images/index.html"
html_insert = '''<!--REPLACE THIS COMMENT--> html_insert = '''<!--REPLACE THIS COMMENT-->
<div> <div>

View file

@ -1,5 +1,4 @@
#plugin file for sparkytron 3000 #plugin file for sparkytron 3000
from discord.ext import commands from discord.ext import commands
import discord import discord
import random import random
@ -7,268 +6,295 @@ import os
import json import json
import math import math
import time import time
import aiohttp
class PokemonGame(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.working_dir = "tmp/pokemon/"
self.data_dir = "data/pokemon/"
self.folder_setup()
async def get_json(url): def folder_setup(self):
http_session = aiohttp.ClientSession() try:
async with http_session.get(url) as resp: if not os.path.exists(self.working_dir):
json_data = await resp.json() os.mkdir(self.working_dir)
return json_data if not os.path.exists(self.data_dir):
os.mkdir(self.data_dir)
except:
print("PokemonGame failed to make directories")
@commands.command( async def get_json(self, url):
description="Pokemon", async with self.bot.http_session.get(url) as resp:
help="Pokemon game", json_data = await resp.json()
brief="Pokemon Game",
aliases=['pkmn'],
hidden=True
)
async def pokemon(ctx, arg1=None, arg2=None, arg3=None, arg4=None):
async def starter_picker(id): #id = pokedex number
url = "https://pokeapi.co/api/v2/pokemon-species/" + str(id)
json_data = await get_json(url)
if (json_data["evolves_from_species"] == None) and (not json_data['is_mythical']) and (not json_data['is_legendary']):
return True
else:
return False
async def shiny_roll():
roll = random.randint(0,2047)
return not roll
async def save_pokemon(discord_id, pokemon_dict):
if not os.path.isdir("databases/pokemon/"):
os.makedirs("databases/pokemon/")
path = "databases/pokemon/"+str(discord_id)+".json"
pokemon_dict = json.dumps(pokemon_dict)
with open(path, 'w') as f:
f.writelines(pokemon_dict)
return True
async def load_pokemon(discord_id):
if not os.path.isdir("databases/pokemon/"):
os.makedirs("databases/pokemon/")
if os.path.isfile("databases/pokemon/"+str(discord_id)+".json"):
with open("databases/pokemon/"+str(discord_id)+".json", 'r') as f:
json_data = json.loads(f.readline())
return json_data
else:
return False
async def generate_starter(discord_id):
random.seed(discord_id)
json_data = await get_json('https://pokeapi.co/api/v2/pokemon-species/')
pokemon_count = json_data['count']
base_pokemon = False
while not base_pokemon:
starter_id = random.randint(1,pokemon_count)
base_pokemon = await starter_picker(starter_id)
random.seed()
return starter_id
async def get_pkmn_from_id(id):
url = 'https://pokeapi.co/api/v2/pokemon/' + str(id)
json_data = await get_json(url)
return json_data return json_data
async def give_buddy_food(pkmn_data): @commands.command(
description="Pokemon",
help="Pokemon game",
brief="Pokemon Game",
aliases=['pkmn'],
hidden=True
)
async def pokemon(self, ctx, *args):
async def starter_picker(id): #id = pokedex number
url = "https://pokeapi.co/api/v2/pokemon-species/" + str(id)
json_data = await self.get_json(url)
if (json_data["evolves_from_species"] == None) and (not json_data['is_mythical']) and (not json_data['is_legendary']):
return True
else:
return False
async def shiny_roll():
roll = random.randint(0,2047)
return not roll
async def save_pokemon(discord_id, pokemon_dict):
if not os.path.isdir("databases/pokemon/"):
os.makedirs("databases/pokemon/")
path = "databases/pokemon/"+str(discord_id)+".json"
pokemon_dict = json.dumps(pokemon_dict)
with open(path, 'w') as f:
f.writelines(pokemon_dict)
return True
async def load_pokemon(discord_id):
if not os.path.isdir("databases/pokemon/"):
os.makedirs("databases/pokemon/")
if os.path.isfile("databases/pokemon/"+str(discord_id)+".json"):
with open("databases/pokemon/"+str(discord_id)+".json", 'r') as f:
json_data = json.loads(f.readline())
return json_data
else:
return False
async def generate_starter(discord_id):
random.seed(discord_id)
json_data = await self.get_json('https://pokeapi.co/api/v2/pokemon-species/')
pokemon_count = json_data['count']
base_pokemon = False
while not base_pokemon:
starter_id = random.randint(1,pokemon_count)
base_pokemon = await starter_picker(starter_id)
random.seed()
return starter_id
async def get_pkmn_from_id(id):
url = 'https://pokeapi.co/api/v2/pokemon/' + str(id)
json_data = await self.get_json(url)
return json_data
async def give_buddy_food(pkmn_data):
try:
last_food = pkmn_data['last_food']
except:
last_food = 0
this_food = time.time()
if (this_food - last_food) >= 1800:
pkmn_data['last_food'] = this_food
level = await calc_pkmn_buddy_level(pkmn_data)
pkmn_data['buddy_xp'] += (4*level)
return pkmn_data, True
else:
return pkmn_data, False
async def give_buddy_affection(pkmn_data):
try:
last_hug = pkmn_data['last_hug']
except:
last_hug = 0
this_hug = time.time()
if (this_hug - last_hug) >= 600:
pkmn_data['last_hug'] = this_hug
level = await calc_pkmn_buddy_level(pkmn_data)
pkmn_data['buddy_xp'] += (3*level)
return pkmn_data, True
else:
return pkmn_data, False
async def calc_pkmn_buddy_level(pkmn_json): #this uses the 'fast' xp rate
buddy_xp = pkmn_json['buddy_xp']
return min(math.floor(((5*buddy_xp)/4)**(1/3)),100)
async def make_pmkn_embed(pkmn_dict):
if pkmn_dict['nickname']:
title = pkmn_dict['nickname'] + ' (' + pkmn_dict['name'].capitalize() + ')'
else:
title = pkmn_dict['name'].capitalize()
embed=discord.Embed(title=title)
if pkmn_dict['shiny']:
embed.set_image(url=pkmn_dict['sprites']['front_shiny'])
else:
embed.set_image(url=pkmn_dict['sprites']['front_default'])
nature = pkmn_dict['nature']
buddy_level = await calc_pkmn_buddy_level(pkmn_dict)
buddy_xp = pkmn_dict['buddy_xp']
types = []
for key in pkmn_dict['types']:
types.append(key['type']['name'].capitalize())
type_str = ', '.join(types)
embed.add_field(name="Nature", value=nature.capitalize(), inline=False)
embed.add_field(name="Buddy Level", value=buddy_level , inline=True)
embed.add_field(name="Buddy XP", value=buddy_xp, inline=True)
embed.add_field(name="Types", value=type_str, inline=False)
return embed
try: try:
last_food = pkmn_data['last_food'] if args[0]=='start':
except: if not os.path.isdir("databases/pokemon/"):
last_food = 0 os.makedirs("databases/pokemon/")
this_food = time.time() if not os.path.isfile("databases/pokemon/"+str(ctx.author.id)+'.json'):
if (this_food - last_food) >= 1800: uniq_id = time.time()
pkmn_data['last_food'] = this_food starter_id = await generate_starter(ctx.author.id)
level = await calc_pkmn_buddy_level(pkmn_data) json_data = await get_pkmn_from_id(starter_id)
pkmn_data['buddy_xp'] += (4*level) is_shiny = await shiny_roll()
return pkmn_data, True nature = random.randint(0,19)
else: nature_data = await self.get_json('https://pokeapi.co/api/v2/nature/')
return pkmn_data, False nature = nature_data['results'][nature]['name']
json_data['shiny'] = is_shiny
json_data['nickname'] = None
json_data['unique_id'] = uniq_id
json_data['nature'] = nature
json_data['buddy_level'] = 1
json_data['buddy_xp'] = 0
json_data['last_food'] = 0
json_data['last_hug'] = 0
await save_pokemon(ctx.author.id, json_data)
embed = await make_pmkn_embed(json_data)
await ctx.channel.send(embed=embed)
return
else:
await ctx.channel.send("You already have a pokemon!")
return
async def give_buddy_affection(pkmn_data): elif args[0] == 'nick' or args[0] == 'nickname':
nickname = args[1]
json_data = await load_pokemon(ctx.author.id)
json_data['nickname'] = nickname
await save_pokemon(ctx.author.id, json_data)
message = "You gave " + nickname + ' a new name!'
await ctx.channel.send(message)
return
elif args[0] == 'feed':
json_data = await load_pokemon(ctx.author.id)
json_data, fed = await give_buddy_food(json_data)
if fed:
await save_pokemon(ctx.author.id, json_data)
if json_data['nickname']:
message = "You " + args[0] + ' ' + json_data['nickname']
else:
message = "You " + args[0] + ' ' + json_data['name']
await ctx.channel.send(message)
return
else:
if json_data['nickname']:
message = "Your " + json_data['nickname'] + " isn't hungry!"
else:
message = "Your " + json_data['name'] + " isn't hungry!"
await ctx.channel.send(message)
return
elif args[0] == 'hug':
json_data = await load_pokemon(ctx.author.id)
json_data, hugged = await give_buddy_affection(json_data)
if hugged:
await save_pokemon(ctx.author.id, json_data)
if json_data['nickname']:
message = "You " + args[0] + ' ' + json_data['nickname']
else:
message = "You " + args[0] + ' ' + json_data['name']
await ctx.channel.send(message)
return
else:
if json_data['nickname']:
message = "You hugged " + json_data['nickname'] + " but " + json_data['nickname'] + " has been hugged recently."
else:
message = "You hugged " + json_data['name'] + " but " + json_data['name'] + " has been hugged recently."
await ctx.channel.send(message)
return
except:
#Default !pokemon behavior (Load and show pokemon embed)
discord_id = ctx.author.id
buddy_json = await load_pokemon(discord_id)
if not buddy_json:
await ctx.channel.send("You don't have a buddy yet. Type ```!pokemon start``` to start your Pokemon journey!")
else:
embed = await make_pmkn_embed(buddy_json)
message = await ctx.channel.send(embed=embed)
return
async def pkmn_msg(self, discord_id):
path = "databases/pokemon/"+str(discord_id)+'.json'
if os.path.isfile(path):
with open(path, 'r') as f:
json_data = json.loads(f.readline())
json_data['buddy_xp'] += random.randint(1,5)
json_data = json.dumps(json_data)
with open(path, 'w') as f:
f.writelines(json_data)
@commands.Cog.listener()
async def on_message(self, message: discord.Message):
await self.pkmn_msg(message.author.id)
@commands.command(
description="Pokedex",
help="Get information on pokemon",
brief="Pokedex",
aliases=['pdex'],
hidden=False
)
async def pokedex(self, ctx):
pokemon = ctx.message.content.split(" ", maxsplit=1)[1]
try: try:
last_hug = pkmn_data['last_hug'] shiny = False
if 'shiny ' in pokemon:
shiny = True
pokemon = pokemon.replace('shiny ', '')
url = "https://pokeapi.co/api/v2/pokemon/" + pokemon
dex_url = "https://pokeapi.co/api/v2/pokemon-species/" + pokemon
#try:
data = await self.get_json(url)
name = data['name']
height_str = str(int(data['height'])/10) + 'm'
weight_str = str(int(data['weight'])/10) + 'kg'
type1 = data['types'][0]['type']['name']
try:
type2 = data['types'][1]['type']['name']
type_str = type1.capitalize() + ', ' + type2.capitalize()
except:
type2 = "None"
type_str = type1.capitalize()
sprite = data["sprites"]["front_default"]
if shiny:
sprite = data["sprites"]["front_shiny"]
dex_data = await self.get_json(dex_url)
generation = dex_data['generation']['name'].upper().replace("GENERATION","Generation")
for entry in dex_data['flavor_text_entries']:
if entry['language']['name'] == 'en':
dex_desc = entry['flavor_text'].replace("\u000c", '\n')
dex_desc_game = entry['version']['name'].capitalize()
break
for entry in dex_data['genera']:
if entry['language']['name'] == 'en':
genus = entry['genus']
break
footer = generation + ' | Pokédex entry from Pokémon ' + dex_desc_game
dex_num = dex_data['pokedex_numbers'][0]['entry_number']
embed=discord.Embed(title=name.capitalize())
embed.set_image(url=sprite)
embed.add_field(name="Number", value=dex_num, inline=False)
embed.add_field(name=genus, value=dex_desc, inline=False)
embed.add_field(name="Weight", value=weight_str , inline=True)
embed.add_field(name="Height", value=height_str, inline=True)
embed.add_field(name="Types", value=type_str, inline=True)
embed.set_footer(text=footer)
await ctx.send(embed=embed)
except: except:
last_hug = 0 message = "No data for " + str(pokemon)
this_hug = time.time()
if (this_hug - last_hug) >= 600:
pkmn_data['last_hug'] = this_hug
level = await calc_pkmn_buddy_level(pkmn_data)
pkmn_data['buddy_xp'] += (3*level)
return pkmn_data, True
else:
return pkmn_data, False
async def calc_pkmn_buddy_level(pkmn_json): #this uses the 'fast' xp rate
buddy_xp = pkmn_json['buddy_xp']
return min(math.floor(((5*buddy_xp)/4)**(1/3)),100)
async def make_pmkn_embed(pkmn_dict):
if pkmn_dict['nickname']:
title = pkmn_dict['nickname'] + ' (' + pkmn_dict['name'].capitalize() + ')'
else:
title = pkmn_dict['name'].capitalize()
embed=discord.Embed(title=title)
if pkmn_dict['shiny']:
embed.set_image(url=pkmn_dict['sprites']['front_shiny'])
else:
embed.set_image(url=pkmn_dict['sprites']['front_default'])
nature = pkmn_dict['nature']
buddy_level = await calc_pkmn_buddy_level(pkmn_dict)
buddy_xp = pkmn_dict['buddy_xp']
types = []
for key in pkmn_dict['types']:
types.append(key['type']['name'].capitalize())
type_str = ', '.join(types)
embed.add_field(name="Nature", value=nature.capitalize(), inline=False)
embed.add_field(name="Buddy Level", value=buddy_level , inline=True)
embed.add_field(name="Buddy XP", value=buddy_xp, inline=True)
embed.add_field(name="Types", value=type_str, inline=False)
return embed
if arg1=='start':
if not os.path.isdir("databases/pokemon/"):
os.makedirs("databases/pokemon/")
if not os.path.isfile("databases/pokemon/"+str(ctx.author.id)+'.json'):
uniq_id = time.time()
starter_id = await generate_starter(ctx.author.id)
json_data = await get_pkmn_from_id(starter_id)
is_shiny = await shiny_roll()
nature = random.randint(0,19)
nature_data = await get_json('https://pokeapi.co/api/v2/nature/')
nature = nature_data['results'][nature]['name']
json_data['shiny'] = is_shiny
json_data['nickname'] = None
json_data['unique_id'] = uniq_id
json_data['nature'] = nature
json_data['buddy_level'] = 1
json_data['buddy_xp'] = 0
json_data['last_food'] = 0
json_data['last_hug'] = 0
await save_pokemon(ctx.author.id, json_data)
embed = await make_pmkn_embed(json_data)
await ctx.channel.send(embed=embed)
return
else:
await ctx.channel.send("You already have a pokemon!")
return
elif arg1 == 'nick' or arg1 == 'nickname':
nickname = arg2
json_data = await load_pokemon(ctx.author.id)
json_data['nickname'] = nickname
await save_pokemon(ctx.author.id, json_data)
message = "You gave " + nickname + ' a new name!'
await ctx.channel.send(message)
return
elif arg1 == 'feed':
json_data = await load_pokemon(ctx.author.id)
json_data, fed = await give_buddy_food(json_data)
if fed:
await save_pokemon(ctx.author.id, json_data)
if json_data['nickname']:
message = "You " + arg1 + ' ' + json_data['nickname']
else:
message = "You " + arg1 + ' ' + json_data['name']
await ctx.channel.send(message) await ctx.channel.send(message)
return
else:
if json_data['nickname']:
message = "Your " + json_data['nickname'] + " isn't hungry!"
else:
message = "Your " + json_data['name'] + " isn't hungry!"
await ctx.channel.send(message)
return
elif arg1 == 'hug':
json_data = await load_pokemon(ctx.author.id)
json_data, hugged = await give_buddy_affection(json_data)
if hugged:
await save_pokemon(ctx.author.id, json_data)
if json_data['nickname']:
message = "You " + arg1 + ' ' + json_data['nickname']
else:
message = "You " + arg1 + ' ' + json_data['name']
await ctx.channel.send(message)
return
else:
if json_data['nickname']:
message = "You hugged " + json_data['nickname'] + " but " + json_data['nickname'] + " has been hugged recently."
else:
message = "You hugged " + json_data['name'] + " but " + json_data['name'] + " has been hugged recently."
await ctx.channel.send(message)
return
#Default !pokemon behavior (Load and show pokemon embed)
discord_id = ctx.author.id
buddy_json = await load_pokemon(discord_id)
if not buddy_json:
await ctx.channel.send("You don't have a buddy yet. Type ```!pokemon start``` to start your Pokemon journey!")
else:
embed = await make_pmkn_embed(buddy_json)
message = await ctx.channel.send(embed=embed)
return
@commands.command(
description="Pokedex",
help="Get information on pokemon",
brief="Pokedex",
aliases=['pdex'],
hidden=False
)
async def pokedex(ctx):
pokemon = ctx.message.content.split(" ", maxsplit=1)[1]
try:
shiny = False
if 'shiny ' in pokemon:
shiny = True
pokemon = pokemon.replace('shiny ', '')
url = "https://pokeapi.co/api/v2/pokemon/" + pokemon
dex_url = "https://pokeapi.co/api/v2/pokemon-species/" + pokemon
#try:
data = await get_json(url)
name = data['name']
height_str = str(int(data['height'])/10) + 'm'
weight_str = str(int(data['weight'])/10) + 'kg'
type1 = data['types'][0]['type']['name']
try:
type2 = data['types'][1]['type']['name']
type_str = type1.capitalize() + ', ' + type2.capitalize()
except:
type2 = "None"
type_str = type1.capitalize()
sprite = data["sprites"]["front_default"]
if shiny:
sprite = data["sprites"]["front_shiny"]
dex_data = await get_json(dex_url)
generation = dex_data['generation']['name'].upper().replace("GENERATION","Generation")
for entry in dex_data['flavor_text_entries']:
if entry['language']['name'] == 'en':
dex_desc = entry['flavor_text'].replace("\u000c", '\n')
dex_desc_game = entry['version']['name'].capitalize()
break
for entry in dex_data['genera']:
if entry['language']['name'] == 'en':
genus = entry['genus']
break
footer = generation + ' | Pokédex entry from Pokémon ' + dex_desc_game
dex_num = dex_data['pokedex_numbers'][0]['entry_number']
embed=discord.Embed(title=name.capitalize())
embed.set_image(url=sprite)
embed.add_field(name="Number", value=dex_num, inline=False)
embed.add_field(name=genus, value=dex_desc, inline=False)
embed.add_field(name="Weight", value=weight_str , inline=True)
embed.add_field(name="Height", value=height_str, inline=True)
embed.add_field(name="Types", value=type_str, inline=True)
embed.set_footer(text=footer)
await ctx.send(embed=embed)
except:
message = "No data for " + str(pokemon)
await ctx.channel.send(message)
async def setup(bot): async def setup(bot):
bot.add_command(pokedex) await bot.add_cog(PokemonGame(bot))
bot.add_command(pokemon)

View file

@ -257,11 +257,12 @@ class StableDiffusion(commands.Cog):
folder = self.working_dir + "sfw/" folder = self.working_dir + "sfw/"
except: except:
folder = self.working_dir folder = self.working_dir
my_filename = folder + str(time.time_ns()) + ".png" my_filename = str(time.time_ns()) + ".png"
image.save(my_filename, pnginfo=pnginfo) filepath = folder + my_filename
image.save(filepath, pnginfo=pnginfo)
with open(my_filename, "rb") as fh: with open(filepath, "rb") as fh:
f = discord.File(fh, filename=my_filename) f = discord.File(fh, filename=filepath)
log_data = f'Author: {ctx.author.name}, Prompt: {prompt}, Filename: {my_filename}\n' log_data = f'Author: {ctx.author.name}, Prompt: {prompt}, Filename: {my_filename}\n'
with open(f"{self.data_dir}stable_diffusion.log", 'a') as log_file: with open(f"{self.data_dir}stable_diffusion.log", 'a') as log_file:

View file

@ -8,7 +8,6 @@ import time
import os import os
import asyncio import asyncio
from dotenv import load_dotenv from dotenv import load_dotenv
import aiohttp import aiohttp
#Stable Diffusion #Stable Diffusion
@ -35,7 +34,6 @@ bot = commands.Bot(command_prefix='!', intents=intents)
#discord setup END #discord setup END
async def handle_error(error): async def handle_error(error):
print(error) print(error)
current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
@ -44,6 +42,7 @@ async def handle_error(error):
f.write(log_line) f.write(log_line)
return error return error
def create_channel_config(filepath): def create_channel_config(filepath):
config_dict = { config_dict = {
"personality":"average", "personality":"average",
@ -215,17 +214,6 @@ async def on_reaction_add(reaction, user):
await message.add_reaction(emoji) await message.add_reaction(emoji)
async def pkmn_msg(discord_id):
path = "databases/pokemon/"+str(discord_id)+'.json'
if os.path.isfile(path):
with open(path, 'r') as f:
json_data = json.loads(f.readline())
json_data['buddy_xp'] += random.randint(1,5)
json_data = json.dumps(json_data)
with open(path, 'w') as f:
f.writelines(json_data)
@bot.event @bot.event
async def on_message(ctx): async def on_message(ctx):
#log stuff #log stuff
@ -233,9 +221,6 @@ async def on_message(ctx):
channel_vars = await get_channel_config(ctx.channel.id) channel_vars = await get_channel_config(ctx.channel.id)
chat_history_string = await log_chat_and_get_history(ctx, logfile, channel_vars) chat_history_string = await log_chat_and_get_history(ctx, logfile, channel_vars)
#add pokemon xp
await pkmn_msg(ctx.author.id)
#handle non-text channels (dms, etc) #handle non-text channels (dms, etc)
if ctx.channel.type.value != 0 and ctx.author.id != 242018983241318410: if ctx.channel.type.value != 0 and ctx.author.id != 242018983241318410:
#This used to notify the user it cannot respond in this channel, but that spammed threads #This used to notify the user it cannot respond in this channel, but that spammed threads
@ -243,7 +228,7 @@ async def on_message(ctx):
await react_to_msg(ctx, channel_vars["react_to_msgs"]) #emoji reactions await react_to_msg(ctx, channel_vars["react_to_msgs"]) #emoji reactions
if channel_vars["commands_enabled"] or (ctx.author.id == 242018983241318410 and ctx.content[0] == "!"): if channel_vars["commands_enabled"] or (ctx.author.id == 242018983241318410 and ctx.content[0] == "?"):
await bot.process_commands(ctx) await bot.process_commands(ctx)
if not channel_vars["commands_enabled"]: if not channel_vars["commands_enabled"]:
await ctx.channel.send("This command only ran because you set it to allow to run even when commands are disabled") await ctx.channel.send("This command only ran because you set it to allow to run even when commands are disabled")