#development
1 messages ยท Page 121 of 1
the index is not being removed from the array
which would require you to have additional logic to handle null functions when emitting an event
@hushed robin i think you may have a point. i think for some reason a component in the actionrowbuilder is setting it to false
the way you are currently doing it there is no way to remove without screwing up the indexes
oh yeah
if you want to return an id, you will have to use objects
that way you can add/remove specific keys
who knows how i can do this without modifying it globally
would that at this point even be more efficient than findIndex > Object.is, slice?
the first condition i think was enabling it
since the second button has the custom_id of 'mode' it was enabling it @hushed robin
no
the first button does
you're overcomplicating it. i think what it's doing is setting custom_id of the first button to mode while the second one has a custom_id of "mode" which is called reassignment. it's assigning a new value to the second one being originally 'true' to 'false'
i don't know what you mean
the second button does not have the custom id 'mode'
where are you getting that from?
bro omfg. the first one is being set to mode
what about that?
^
if you know the key, yes, directly deleting the object key will likely be faster than having to find the index first
but for iterating and emitting the events, an array would be faster to iterate
ok now i might have figured it out
for some reason discordjs doesn't like 'true' being a value
do setDisabled() in both the original two buttons and then run it @hushed robin
do not put 'true' in it
honestly
wait do you want the first one disabled or enabled?
hey guys
do you actually program?
you just said an if statement was me assigning a variable
like are you serious
and i already know the issue, i said what it was
hahahah i had the same when i asked a question a few weeks earlier
he was talking shit tbf
i am doing fine, just ahd some fucking strange path issues with java so taht's why i am here. Wby
i'm doing great 
awesome!
on my way to asking XD
so guys, i recently created a JavaFX program, and do you see that focking jpeg file there? I am trying to load it as an icon using:
Image homePageIcon = new Image("40315055.jpeg");
homePageStage.getIcons().add(homePageIcon);
```
its returning me fucking null. i even set the root path once, even the absolute path and this still always returns me an error of url not found. Any help would be appreciated
i once found an article that explained how javaFX worked and it told me that it starts seraching and indexing files from the src folder. So only passing the file name should be fine.. well it isn't..?
Be nice and stop asking questions if you don't want help or solutions to them
They're trying to help but theres miscommunications going both ways
how is that being rude
i'm literally just saying he's not helping, i appreciate it but it's going nowhere
-mute @hushed robin Refusal to follow mod request to tone down their rude behaviour to helping devs in #development | 2d
battleless#0026 was successfully muted
Lol
Although I havenโt used javafx, I would assume it wants you to put that image in the resources folder
i'm cutting it from here after this. i've given you the most simplist solution the first time. you never thought it would work. even another mod told you to try it and you wouldn't. at this point i'm straight accusing you of gaslighting because you overcomplicated the code by putting extra code that wasn't needed. and no you never gave your solution to anyone as far as i've seen. other users who i talked to regarding your extra code also agreed it wasn't needed. unless you needed the condition statement, you could've easily disabled it by using the solutions i gave but noooooo, you complicated it more and had to accuse me of not being a programmer.
owh reaslly??
bro you are a hero
my god it worked wahahha
I CANT BELIEVE IT
javafx is their attempt at making a java-like frontend lang
personally I don't like how it feels, but is 100% better than dealing with swing
unless ofc u have a custom rendering logic
then swing is better as u can use canvas for some sweet buffering
Do NOT put anything non-code outside resources folder
That folder is made exactly for that, assets
Then use getClass().getResource() to retrieve it
Oh, just saw waffle answered it
Lord forgive me, I have sinned. I started using Java
cursed and bloated language by oracle
to be historically accurate sun microsystems
on a side note the person that made java coincidentally looks like a java developer
It's a good start
bump
lmao, we seem to loose a few people to Java now
Well. People are asking me to do minecraft related stuff and do server side only modding which is incredibly difficult
@bot.command()
async def play(ctx):
hug_emoji = discord.PartialEmoji(name='๐ค')
kiss_emoji = discord.PartialEmoji(name='๐')
slap_emoji = discord.PartialEmoji(name='๐')
options = ['Hug', 'Kiss', 'Slap']
embed = discord.Embed(title='Choose an action:',
description='\n'.join(options))
message = await ctx.send(embed=embed)
for option in options:
await message.add_reaction(hug_emoji)
await message.add_reaction(kiss_emoji)
await message.add_reaction(slap_emoji)
def check(reaction, user):
return user == ctx.author and str(reaction.emoji) in options
try:
reaction, user = await bot.wait_for('reaction_add',
timeout=30.0,
check=check)
except asyncio.TimeoutError:
await message.delete()
await ctx.send(
f"{ctx.author.mention}, you didn't choose an action in time.")
else:
xp = user_data[str(ctx.author.id)].get('xp', 0)
if reaction.emoji == hug_emoji:
await ctx.send(f"Trying to Hug Bright...")
await asyncio.sleep(4)
if xp >= 100:
user_data[str(ctx.author.id)]['level'] += 1
user_data[str(ctx.author.id)]['xp'] = 0
await ctx.send(
f"Bright Accepted Your Hug, you earned 50xp and leveled up to {user_data[str(ctx.author.id)]['level']}!"
)
# Update the welcome message with the new level
welcome_message = (
f"Welcome {ctx.author.name}! You're currently at level {user_data[str(ctx.author.id)]['level']} ||Normal Girl||"
)
await ctx.send(welcome_message)
else:
user_data[str(ctx.author.id)]['xp'] = xp + 50
await ctx.send(f"Bright Accepted Your Hug, you earned 50xp!")
elif reaction.emoji == kiss_emoji:
# handle kiss option
pass
elif reaction.emoji == slap_emoji:
# handle slap option
pass
# Write the updated user data to file
with open('user.json', 'w') as f:
json.dump(user_data, f, indent=4)
when the user react ๐ค
nothing happens
i created a brand new project, selected javafx, gradle, and also added jdk 20
whatt theee hell
why the fuck is intellji such a headache. I will switch back to eclipse if this shit doesn't workout, honestly have been trying to find a fix for 3 hours now.
``> Could not open cp_proj generic class cache for build file '/Users/apple/Desktop/VoltCPP/build.gradle' (/Users/apple/.gradle/caches/7.6/scripts/8jmd2jl9agvx7pmmk4tawqw2c).
BUG! exception in phase 'semantic analysis' in source unit 'BuildScript' Unsupported class file major version 64
``
Oracle only owns the name
And the oracle jdk, ofc
You're using an unsupported java version
It's not intellij's fault
i've fixed it apparently my jdk was not installed

another problem tho... I am trying to use the javafx.scene.media but it seems to not get recognized by the ide. This is my file structure, and beware, when i have a file above the gitignore, so basically right under the main folder voltcpp_v2 then it works.
So tf am i doing wrong
is it inside module-info?
module com.example.voltcpp_v2 { requires javafx.controls; requires javafx.fxml; opens com.example.voltcpp_v2 to javafx.fxml; exports com.example.voltcpp_v2;}```
this is its content
no i added it now..
and it works...
this shit took me 4 hours....
Thanks i didn't know what that module-info was tbh
that's not what I'm asking buddy
I wanna know if we're talking abt module info
if so, it's inside default package
yeah
u need to put inside some package
that was the module-info above
that's why it has the coffee icon
i indeed had to use import javafx.bla bla bla
yeah indeed
i found that media shit
i added it to the requires, but for some reason when starting the file it now tells me module not found: javafx.media requires javafx.media;
the module seems to be imported correctly tho..
just to confirm, did u put module-info inside your package chain?
no source files should be put directly under java
that's why it has the coffee icon
coffee icon = bad
yeah
put it inside your domain
inside the com.example?
I never really done this, and for some reason the javafx project did this on its own
did it? then it's different to java
ignore what I said
your issue is likely something else
it did
i could try moving it inside the domain, maybe it would work>
what are the intellij warnings?
this is what happens when i move it inside my domain
then it must be in the root
see what intellij has to say about those yellow lines
never ignore a yellow line
that's just gradle, i don't think it matters that much for this issue.
this is what happens when i try to run the program.
it definitely does matter, intellij is 99% right in most warning cases
strange as well because my media IS defined.
really
you mean these
see, it's ambigous
which means the runtime will be confused about what module ur meaning
yeah because it is already defined in my files that are not in the src folder
see if it has any suggested change
but once its in there boom it doesn't know fucking media
aight
which one should i choose
second
takes me to this page
...
ctrl click is an entirely different thing
this is what u want
usually it gives u a suggested fix, if it doesn't you'll need to google a bit on how to solve that
it sadly doesn't, i am using option, shift and enter but yeah
it does give me suggested fixes on all other files tho
just this file it doesn't.
if it's saying the declaration is ambiguous then u did something wrong
which is likely why it isn't finding that module
i don't think that's the problem tho
because javafx.controls and javafx.fxml work pretty fine without importing the javafx.media
but as soon as i add the media then it start to error
so it's rather an issue on the media package
lib 1
-----------------------
javafx.controls
javafx.fxml
lib 2
-----------------------
javafx.controls
javafx.fxml
javafx.media
i have made sure i added the javafx as a module, etc etc still doesn't wanna work.
this is why I think the error can be related
if the runtime is using lib 1 (because it was the first found), then it'll not find javafx.media
which is why ambiguity can be an issue, you need to explicity state which library you'll be using
you cant let the runtime "suppose" anything
i see
javafx is made to be more lenient than java, so it allows u to let it "suppose" things
is there any way to fix this manually instead of letting the ide do its thing
it's not the ide, it's the runtime that's confused
the ide simply noticed that potential issue
yeah i know, i rather meant can i like select which package to use manually instead of using the automatic fix thing you told me about
the alt + enter.
from this image, you the two libraries that are conflicting
do you really need the top one?
i saw some tutorial videos and they said java doesn;t come with javafx and i had to install some external packages to add
i can try to remove it?
oracle
yeah
those two comments are conflicting
intellij never install oracle jdk, u need to install from the site
which u shouldn't, because oracle jdk is bad as hell (many constraining contract clauses)
if u let intellij install it, then ur using openjdk
openjdk doesn't come with javafx, oracle jdk does iirc
it actually did install tho
intellij?
ok, then that's not the issue
see if this solves it
i am using the coretto version now tho
i deleted the modules of that javafx i installed
media is now undefined whahaha
all those are openjdk forks, it just changes the distributor
omg
the oracle jdk I mean is the "official" one
intellij will never download it as you need to sell your soul and firstborn to be able to download it
ok, that's better
add it on gradle
damn that person has the exact same issue as i do
that link shows how to do it on maven, but gradle is similar
simply convert this to gradle notation
or access the link right on top of that and select gradle
Bare with me i haven't fiddled with gradle since starting this course lmao
i have no clue where to change these settings
inside dependencies block
a dependency line will either be
implementation("group:name:version")
or
implementation group: "group", name: "name", version: "version" (recommended)
in the project structure?
in gradle.build
no
wait
well, try it
it shouldn't be, but I suppose javafx is different to the usual gradle.build structure
no i don't think so
then find ```gradle
dependencies {
...
}
yeah i found this:
dependencies { testImplementation("org.junit.jupiter:junit-jupiter-api:${junitVersion}") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")}
add a new line to it
implementation group: 'org.openjfx', name: 'javafx-media', version: '20.0.1'
should it be wrapped inside a testImp... or testRun...
sadly didn't work
maybe i should just give up and use vsc or something
did you sync the project?
i am mentally challenged how do i sync it?
now put it here to see if it works
and sync the project
anything u do in gradle.build will require a sync
like this
yes
no way it fucking worked
btw, did u sync it the first time u changed modules content?
this time
if not, try removing the dependencies line u added to see if it still works
Not sure whether this is part of the issue but now it says my ptah is not defined
i am on the brink of ending my bloodline
use getResource() instead of direct path
getClass().getResource("path")
new File("path") looks at the project root
Media media = new Media(getClass().getResource("background.mp4").toExternalForm());MediaPlayer mediaPlayer = new MediaPlayer(media);mediaPlayer.setAutoPlay(true);MediaView mediaView = new MediaView(mediaPlayer);``` i see, i changed it but now it returns me null lmao
i have a bdfd bot i have do vote log, but how i can do it with reward
/background.mp4
in the same place u log
simply do whatever u need to do with the info supplied
damn it worked, thanks kuu. i LOVE YOU
what ?
in the same place u log votes, use that same info to add rewards however u like
yw
btw, just adding to that, / indicates you're grabbing a resource from the resources root, the abscence of it means you want to grab from the current file's path
i have use Top Webhooks#3370 for log
you'll likely never want to use the latter, so always use leading /
oh, so ur using another bot for that
well, you'll need to use @top.gg/sdk library, idk how it works for bdfd
i can do its with @pliant gorge ?
no
you can't use bots for that, you need to implement the logic yourself (through code)
oh so i cant
you can, I just cant tell you how to do it with bdfd
I have no experience with bot builders
who can tell me
๐ I have heard of people doing it with bdfd, but its not something I know how to do.
if bdfd has a support server Id suggest going there
yeah, try asking at bdfd support server
oh you mean i got ask in bdfd support server
ok
It seems to me that the most logical option (in this case) is to read the embed and then use it to give the user a reward. I don't really know how this whole program works either, but if you can receive a message, you can also use it to give a reward to the user
Someone must have written it before
i see!
what theee heeeelll
there's no java specified there
nope not in there
try googling it then
@lyric mountain do you by chance know how to rotate an image? Trying to allow rotations to be applied to objects and I canโt fully figure it out
Iโll try that ๐
remember, rotate is in radians
I got stuck for some time trying to figure out why the angles were all messed up, turns out I was using degrees
(After I fix a different bug Iโm getting, for some reason my ECS is freaking out when I load an object)
lmao
And all im getting is NULL as the error ๐ญ
Agh
Difficult to debug
Something with my for loop is freaking out since this only occurs when I create a game object
add the exception class to ur logger
[FATAL] the.exception.class.IsThisException: message
C
but given the stacktrace, I'd say that's a CME
Ahhhhh itโs a CME
lul, thought so, it's the only exception that nextNode can throw
I need to just queue objects until the next update cycle
Since thatโs what I do with deleting them as well
Thereโs probably a better solution but thisโll do for now
honestly, don't think there is
it's basically the same that I'm doing
all new entities go on a queue, which gets dumped to the entities set on the next simulation cycle
Sounds good, pretty much what Iโm doing
Iโve got it working, I just need to fix my rotation and my math now
remember, radians 
Yup
Radians are intuitive though
(Ironically working on this while Iโm in my calc class rn)
never liked radians, like, I know 0 and 360 are the same point, that 180 is halfway and 90 is a quarter
for radians it's always a calculus for angles (2 * PI * prcnt)
pi is half a circle, 2pi is a circle, pi/2 is a quarter circle
It makes a lot more sense when doing trig
(imo)
@lyric mountain is there a way to set the width and height of the image after transformation
Because itโs setting my sprites back to their original size
Nvm got it with scale yeah
or all three in transform
yw
btw, make sure you set the anchor to a decent coordinate
the default rotate anchor is the top-left corner
Yup, Iโm going to set it to the middle of my sprite
Width / 2 height / 2
Also casting is a 0 cost operation right
Apparently not
Thatโs alright, seems like the JVM is smart enough to optimize this actually
yep, don't bother with such minimal optimizations, else you'll make JIT's job harder
@lyric mountain for some reason AffineTransform is making my rectangular sprite look like this:
Iโm using ```java
tr.translate(finalX, finalY);
tr.scale(finalWidth / spriteWidth, finalHeight / spriteHeight);
tr.rotate(rotation, finalWidth / 2f, finalHeight / 2f);
I guess I need to scale after I rotate
I'm back
rotate should always be applied last
what's ur original sprite?
oh, wait, try using spriteWidth instead of finalWidth for rotate
same for height
Same thing happens
And this is using rotate as the last transformation
Translating, scaling, then rotating
Doing translation, rotation with the negative version of my angle (with 0,0 anchor points) then scaling seems to yield a decent result
Angled at 65 degrees
would be useful yeah
btw, do note translate is delta, not coordinates
so ```java
at.translate(1, 0);
at.translate(1, 0);
will make the transform move 2 units to the right
same for the others
meanwhile me multiplying by 0.5f vs dividing by 2 everywhere ๐
yeah
i think * 0.5f and / 2f can have rounding differences though
not that it matters for any practical purposes
Hi how i can make position in leaderboard of user with sequelize
I really dunno what to do anymore beacuse this is getting on my nerves! Everytime I code and embed response in js for command and fix all errors it message not embed. It reply discord api unknown interaction! This is my code for v14:
const { EmbedBuilder, ButtonBuilder, ButtonStyle, ActionRowBuilder } = require('discord.js');
// Set a 30-minute cooldown for the command
const cooldowns = new Map();
module.exports = {
data: new SlashCommandBuilder()
.setName('funfact')
.setDescription('Get a random fun fact!'),
async execute(interaction) {
// Check if the user is on cooldown
const userCooldown = cooldowns.get(interaction.user.id);
if (userCooldown && (Date.now() - userCooldown) < (30 * 60 * 1000)) {
const remainingTime = Math.ceil((userCooldown + (30 * 60 * 1000) - Date.now()) / (60 * 1000));
return interaction.reply({ content: `**This command is on cooldown.** Please wait ${remainingTime} minutes before using it again.`, ephemeral: true });
}
// Set the user's cooldown
cooldowns.set(interaction.user.id, Date.now());
const facts = [
"If you consistently fart for 6 years and 9 months, enough gas is produced to create the energy of an atomic bomb.",
"Bananas are berries, but strawberries are not.",
// Add more facts here...
];
const fact = facts[Math.floor(Math.random() * facts.length)];
const embed = new EmbedBuilder()
.setColor('#0099ff')
.setTitle('Did you know?')
.setDescription(fact)
.build(); // Fix: Add .build() at the end
const button = new ButtonBuilder()
.setCustomId('newFact')
.setLabel('New Fun Fact')
.setStyle(ButtonStyle.PRIMARY)
.setDisabled(false)
.build();
const row = new ActionRowBuilder()
.addComponent(button)
.build();
await interaction.reply({ embeds: [embed], components: [row] });
},
};
I got other command named /topic and it embed reply suggest topic its working but /funfact not working
What does .build() do in all this?
Hi how can i make leader board with sequelize
-sequelize model name: Tags
-cash: zawarte_partnerstwa
-user id in model: ID
It need to look like
- Kitki30#4111 - Cash: 100
- Username#2222 - Cash:2
I don't know much about sequelize I search it online and Iโm assuming itโs a database so one thing you could do is fetch all users in the guild from the database and then sort it on how much cash the user has
I dont how to do that if i do find all in sewuelize and push it to array get that output:
Tags model:
Just to clarify youโre creating a discord bot right?
Yes
You need to fetch all users from your database that are in the guild the command was issued
How
I donโt know how you saved the users in your database nor do I know how the package ur using for your database works Iโm sorry
This is an old example
// leaderboard.js
module.exports = {
name: 'leaderboard',
description: 'Displays the leaderboard based on cash',
execute(message, args) {
// Retrieve a list of all the users in the server
const users = message.guild.members.cache;
// Sort the list of users by their cash amount
const sortedUsers = users.sort((a, b) => {
return getUserCash(b) - getUserCash(a);
});
// Build the leaderboard message
let leaderboardMsg = 'Leaderboard - Cash\n';
sortedUsers.forEach((user, index) => {
leaderboardMsg += `${index + 1}. ${user.user.username}: ${getUserCash(user)}\n`;
});
// Send the leaderboard message to the channel where the command was used
message.channel.send(leaderboardMsg);
},
};
// Helper function to retrieve a user's cash amount
function getUserCash(user) {
// In this example, we'll assume that each user has a "cash" property attached to their Discord user object
return user.user.cash || 0;
}
Users in database is saved as id
I'd suggest you read it and maybe you'll learn something from it
https://stackoverflow.com/questions/36259532/sequelize-findall-sort-order-in-nodejs
Only thing youโd have to change is ofc the message to interactions and the helper function to fetch the cash from your database
so i have a bot pretty old written in djs 13 and its in 100 servers, most small ones with a couple of members. now i want to make the bot to be avaible to everyone, so it has to leave some small servers and i want to put a member requirement on it so it doesnt reach 100 servers this quick. i dont want the bot to just leave servers without people knowing why, any like ways i could solve this the best (no i dont want to verify the bot since i am not going to maintain it at all)
iirc there's no built in feature for that, you can check the guild member count when your bot joins one - then leave if it's smaller than your desired count
yeah but like its at 100 servers rn so it needs to leave servers below lets say 50 members and i want to notify the owners somehow to make sure they know why it left but idk what way would be the best to do so
what about sending a message in a chat or to the owner?
yeah so i was considering those but to the owner idk if it will be considered as unwanted dming and in a chat would be kind of weird if the top channel is announcements and my bot suddenly sends a message there or something like that
If you do not want to send the owner a dm, do a filter on special channels or try to check if there are a general/bot chat
Is it against tos to buy a bots code?
Buying code of/for a bot, no - buying a bot with its token, yes
I wonโt buy the token just@the code
No one would have even noticed if you hadn't asked
Then it's fine, it's just like paying someone to code
Do note, this will be a negative blow to ur bot's reputation
Also, "available to everyone" but don't want to verify?
Just shutdown the bot at that point lmfao
Yep, that's the proper way, notify all current servers that it'll cease working after X days
looking for a developer team to develop a discord bot in discord.py or discord.js pm me for more information ๐
-needdev
@earnest phoenix
You seem to be asking for something you don't have experience for or something that hasn't been done yet, but really need for your bot/server.
You can hire developers from Fiverr or Freelancer to code the things you need for your bot/server.
NullReferenceException: Object reference not set to an instance of an object
UnityEditor.Graphs.Edge.WakeUp () (at <f3a68e51ee8d41df8b60333ca1187c56>:0)
UnityEditor.Graphs.Graph.DoWakeUpEdges (System.Collections.Generic.List1[T] inEdges, System.Collections.Generic.List1[T] ok, System.Collections.Generic.List`1[T] error, System.Boolean inEdgesUsedToBeValid) (at <f3a68e51ee8d41df8b60333ca1187c56>:0)
unity, have zero clue how to fix. I don't even know if its a script thats causing it or if inside unity
Symptoms
I am getting the error below appearing in my console:
NullReferenceException: Object reference not set to an instance of an object
Cause
This error is caused when an objectย is tryi...
yeah I saw that
if you're calling onload after obj gets logged, it of course isn't defined
as it hasn't reached that part of code before your log statement
what should I do
yeah cant really help there otherwise, it just isnt defined as your log is getting executed before your onload callback triggers
How should I change it? To be right
onload is async
when onload runs, the function is already finished and exited
console.log and return happens first, and only later onload happens
so the console.log and return happens when obj is still undefined
if you want to return something that is created inside onload, you need to return a Promise, which makes that an async function
i did thanks
Hey i just want know how do for Control what the bot says
https://discord.com/developers/docs/getting-started
Look up tutorials on YouTube if you want to start coding, pretty helpful
read docs to understand better
or watch any 2023 updated tutorial on YouTube
You already got a response, long time ago
how do i list the users in a GROUP_DM channel when i use the create channel api method? is it permission_overwrites?
https://discord.com/developers/docs/resources/guild#create-guild-channel
i need to use this
https://discord.com/developers/docs/resources/user#create-group-dm
do i need oauth perms to create a group dm?
i have the interaction token and the bot token, but i dont have user access tokens. sounds like oauth tokens
yeah looks like oauth
each user needs to login with their discord accounts and give you their access token with the gdm.join scope
that's probably smart. group dm are probably popular for spamming people
does anyone know a better way to do this
let quantityData = undefined;
let itemQuantity = undefined;
if (i.values.length === 1) {
await i.showModal(quantityModal);
const filter = interaction => interaction.customId === 'quantity';
quantityData = await interaction.awaitModalSubmit({ filter, time: 60000 })
.catch(() => {
console.log('Item quantity modal was not filled.')
});
itemQuantity = parseInt(quantityData.fields.getTextInputValue('itemQuantity'));
if (isNaN(itemQuantity)) {
return await quantityData.reply({
content: 'The item quantity must be a number!',
ephemeral: true
});
};
};
if (quantityData !== undefined && itemQuantity !== undefined) {
await quantityData.update({
embeds: [tradeEmbed(i.user, Array.from(offer, (item => { return { name: item[1].name, icon: item[1].icon, emoji: item[1].emoji, amount: item[1].amount }})), Array.from(request, (item => { return { name: item[1].name, icon: item[1].icon, emoji: item[1].emoji, amount: item[1].amount }})))]
});
quantityData = undefined;
itemQuantity = undefined;
} else {
await i.update({
embeds: [tradeEmbed(i.user, Array.from(offer, (item => { return { name: item[1].name, icon: item[1].icon, emoji: item[1].emoji, amount: item[1].amount }})), Array.from(request, (item => { return { name: item[1].name, icon: item[1].icon, emoji: item[1].emoji, amount: item[1].amount }})))]
});
};
};
because it's really buggy
i wanna access the variable from that top if statement outside of it
one liner is based
what does that mean
i can read this perfectly fine
โ ๏ธ
@unkempt ocean
that's the first scam ad on discord I've seen with a phone number lmfao
ty
gdead development
-needdev
server error 
app.post("/dblwebhook", webhook.listener(vote => {
console.log('Recived a vote!', vote)
// vote will be your vote object, e.g
const user = client.users.cache.get(vote.user)
if (!user){
return
} else {
const embedE = new MessageEmbed()
.setTitle('VOTING SYSTEM')
.addField(`Thanks <@!${vote.user}> for voting`,`You got 5000 coins as for now this is the only voting reward join the support server and tell us some suggestions`)
user.send({ embeds: [embedE]})
db.add(`money_${vote.user}`, 5000)
// console.log(vote) // 395526710101278721 < user who voted\
} // You can also throw an error to the listener callback in order to resend the webhook after a few seconds
}))``` when i do send test and when i voted nothing happened
Have you set the IP/domain and port correctly in your bot's webhook panel on Top.gg
well, I've been wondering why I shouldn't use https://npmjs.org/postgres package
hey guys i created this snake game in javaFX but let me tell you that's not how a snake should move ๐คฃ
this is my current code:
(This is being ran once a new Segment of the snake is created):
@Override
public void onNewSegment(Segment segment){
Rectangle xRect = new Rectangle (4,4 , 20, 20);
xRect.setFill(Color.rgb(8, 80,2));
xRect.translateXProperty().bind(segment.getXProperty());
xRect.translateYProperty().bind(segment.getYProperty());
getChildren().add(xRect);}
code snippet ran once the snake head eats food:
body.add(x);
world.moveFoodRandomly();
for (SnakeSegmentListener listener : listeners) {
listener.onNewSegment(x);
}}
for (Segment x : body) {
currentX = x.getX();
currentY = x.getY();
x.setPosition(currentX + direction.getDX(), currentY + direction.getDY());}
how can i make the snake well, move like a snake?
i dont see any reason why not use it
well idk why either
A database like any other. People have their favorites and those they don't like
the reason it's not working as expected (ignoring the horrible framerate) is that you forgot to store the previous position
the segment must be bound to the parent's last pos, not current pos
that way it'll "lag" behind the parent
oowh damn i see
btw, it'll not work as you expect it to, unless you either rotate the segment to align with the movement vector OR make the whole snake fixed to a grid
else it'll look really weird (a square moving without facing forward)
oowh i see, i tried a lot of things out and just cannot seem to fix this
I have a rotate vector which moves only the head of the snake
should i maybe change it to rotate all the segments?
no, always treat each segment separate
snaker (the name of that game) is really simple, all you need is to have segments bound to the parent's previous state
it's a pretty good way of learning OOP, as you're kinda forced to use it
Yeah i already figured that, i kinda drew it out a bit and came up with this code:
the movement is basically
H = head
S1 = segment 1
H | moves to target pos
S1 | moves to H
S2 | moves to S1
S3 | moves to S2
S4 | moves to S#
SN | moves to S(N-1)
for (int i = 1; i < body.size(); i++) {
body.get(i).setPosition(body.get(i - 1).getX(),
body.get(i - 1).getY());
}
body.get(0).setPosition(newX, newY);
BUT you need to store the last known position
else every segment will move to the head's new pos
isn't that already saved in the body?
it has an x and y coordinate
the body list
yeah
cuz based on this code we are first setting the segment next to our head to the old head position, then the 2nd segment to this current segment etc etc and then after that we update
or am i lacking rationality here
so ```groovy
def segments = [...]
segments.each { seg ->
seg.oldPos = seg.pos
if (seg.head) {
seg.pos = [x + dX, y + dY]
} else {
seg.pos = seg.parent.oldPos
}
}
basically
dX would be either -1, 0 or 1, depending on the X movement, dY the same but for Y movement
hmm i see, and seg.parent.oldPosX would just be body.get(i-1).get(x)?
as the head is index 0, tail [0, ->]
or is body.get(i-1).get(x) not the old value?
pos and oldPos are arrays of coordinates
ofc u should not overwrite it on each frame, so u could have pos.x and pos.y
but on groovy I can override operators, so let's just consider that's what I did
i see, but couldn't we use body for that instead as that already contains the segments and their position getters?
Or is that actually an old value, because in that case we could maybe define the current positions in the array as you said below the for loop,
you'd have 2 arrays, one for current pos and one for old pos
forget abt body, there's no body
you can't have a global coordinate property because the segments move independent of the body
aside from shadowing the parent
a segment must only know its parent (previous segment)
if there's no parent, it's a head
the body is not a global coordinate
my bad that i didn't specify it, it's a linkedlist that contains all segments
and each segment has a getX and getY
that's fine then
btw, use arraydeque
u don't need random access, so u can save some overhead
arraydeque is better for sequential iteration
my lecturer gave us the template code, we are sadly not allowed to change it
for (int i = 0; i < body.size(); i++) {
if(i == 0){
body.get(i).setPosition(newX, newY);
}else{
body.get(i).setPosition(body.get(i-1).getX(), body.get(i-1).getY());
}}```
ah, ok then
omg intellji keeps on fucking my code up like this when i copu
I cant read oneline code
my bad, intellji does it automatically for some reason after enabling beta mode
that wont work
you'll have all segments stay where the head is
because setPosition will change the state
owh shit than i have to implement that
start from the tail and move up to the head
hmm that;s interesting but seems a bit harder then the getOldX method tho
H = head
S1 = segment 1
SN | moves to S(N-1)
S4 | moves to S3
S3 | moves to S2
S2 | moves to S1
S1 | moves to H
H | moves to target pos
so how would we set the oldx? maybe in the segments creating a new private oldX and upon use of setPosition, first setting the oldX and then chaning the current shit
private final int[] position = new int[2];
private final int[] oldPosition = new int[2];
whenever u update position, save the current values to oldPosition
BEFORE u update the value
ah i see
I will actually try that out right now
for (int i = 0; i < body.size(); i++) {
if(i == 0){
body.get(i).setPosition(newX, newY);
}
else{
int[] previousCoords = body.get(i-1).getOldCoordinates(); body.get(i).setPosition(previousCoords[0], previousCoords[1]);
}
}``` my new move code
public void setPosition(int x, int y) {
oldCoordinates[0] = this.x.getValue();
oldCoordinates[1] = this.y.getValue();
this.x.setValue(x);
this.y.setValue(y);}```
the new segment.setPosition()
i think it could be working but do you know what the problem is?
what error?
i think that the rectangle is 20x20, but the position only changes with 1 so it like looks like the rectangles are tangled togeher. see the video below:
please ffs make that thing faster
look, now it's a blob because i think that the code is working but the rectangle is like 20x20 so even if it changes the position by 1px it doesn't really change
should we do like. + 20 to make it work
the issue is because it's not aligned to a grid
oowh
so it IS lagging behind the head, but only 1 pixel behind
the segments are way too big for a 1px grid
make the grid bigger
what grid tho
...
we are working with a borderpane as root and not a gridpane
the movement grid, it's 1px by 1px (image pixels) by default
if u increase it to, say, 20px, the snake will "jump" by 20px on each movement
owh i see
it's as simple as drawImage(segment, segment.getX() * 20, segment.getY() * 20, null)
owhh that's the scaler
there's one defined in the file, it's 16 instead of 20 tho
so that means our square should be 16 as well?
i fixed this shit earlier on with the +20 and -20
this was for my direction as it was overlapping
instad of the scaler can't we just use this said method
...why don't u simply use a movement array?
private final int[] vector = new int[2]
and what should that array represent?
x.setPosition(position.x + vector.x, position.y + vector.y)
the movement vector
for X, for example, [-1, 0] would mean 1 unit to the left
[1, 1] would be 1 unit to the right, 1 unit down
which cant exist in a snake game, but whatever
is this for like the directions?
yes
I have a directions class made already
instead of having a switch-case
an enum class
yes, and it's bad
they provided it
they are bad then
whahahaha
shiii but this means that i must multiply everything with 16 to make it work?
only when rendering
or only the part where we set the objects
ahh
the actual values don't matter, only the part where you show the game
this is what they did btw
setPrefSize(world.getSize() * SCALE, world.getSize() * SCALE);```
the scale is 16
this is how i represent one segment of the body:
Rectangle xRect = new Rectangle (4,4 , 20, 20);
xRect.setFill(Color.rgb(8, 80,2));
xRect.translateXProperty().bind(segment.getXProperty());
xRect.translateYProperty().bind(segment.getYProperty());
getChildren().add(xRect);```
but where should the scaler be applied tho, i was thinking about the width and height but that would make this rectangle humongous
where u draw it
this is where i create the element and add it to the borderpane
but it doesn't seem the right spot to do so
idk what that code is supposed to do, but simply multiply where u draw the elements
that's in the code above right?
I am just creating a new rectangle (which is the part of my body) and then add it to the borderpane
that's it.
segment.getXProperty() multiply the return of this
inside that method, not outside
i must multiply my property?
hmm
it's. a predefined method tho
so this means i cannot really touch it
is there no other way to fix this
idk, you'll need to figure that out yourself
what you need is to multiply the rendering coordinates, that's as far as I can say
you'll need to find out where
if it was regular java it'd be easier as hell, idk why ur teacher chose javafx for a game
they could've passed a site or app project instead, not a game
they are trying to fuck us that's why
but you've been a great help, appreciate it!
you guys wanna see something cursed
No
const size = chunks.length * 8 - last < 4294967296n ? last < 65536n ? last < 256n ? 7 : 6 : last < 16777216n ? 5 : 4 : last < 281474976710656n ? last < 1099511627776n ? 3 : 2 : last < 72057594037927936n ? 1 : 0;

<?php
class เถฉ
{
public bool $๐;
public bool $๐ก;
public int $๐;
public function __construct(bool $๐, int $๐ = 0, int $๐จ)
{
if($๐) $this->๐ = true;
$this->๐ = $๐;
$this->๐ = $๐จ;
if($this->๐) $this->๐ช();
}
public function ๐ช()
{
while($this->๐)
{
$this->๐++; $this->๐--;
echo "เถฉ ๐ช ๐ [{$this->๐}] ๐\n";
}
}
}
new เถฉ(1, 0, 6);
?>
old
lmao
btw when tool to visualize experimental code coverage
fn ๐๐๐(๐๐: i32, ๐๐: i32) -> String {
if !๐๐.is_positive() || !๐๐.is_positive() {
return "๐ซ๐ฑ๐๐ป๐".to_string();
}
let ๐๐ = ๐๐.to_string().chars().rev().collect::<String>().parse::<i32>().unwrap();
let ๐๐ = ๐๐.to_string().chars().rev().collect::<String>().parse::<i32>().unwrap();
let ๐ = ๐๐ + ๐๐;
let ๐๐๐ = ๐.to_string().chars().map(|๐| match ๐ {
'0' => '๐',
'1' => '๐บ',
'2' => '๐ก',
'3' => '๐ป',
'4' => '๐ฐ',
'5' => '๐คข',
'6' => '๐คก',
'7' => '๐ค',
'8' => '๐คฏ',
_ => '๐ฝ',
}).collect::<String>();
๐๐๐
}
lmao
Most likely when we mark code coverage as stable, as making a visualizer in the current state can be a bit messy
should be pretty simple to just parse this output
โน src\packer.js | 34.94 | 48.28 | 38.46 | 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 102, 103, 104, 105, 146, 147, 149, 150, 151, 152, 153, 154, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 213, 214, 215, 216, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 244, 245, 246, 247, 248, 249
...```
or you think that output is still gonna change?
It could change, that's what I meant
rewrite node in this style
I think that's in consideration from what I read in a discussion about it
I have been trying to find these rendering coordinates, what exactly are they?
The getX() and getY() of the segments?
Fanciness ๐, contribution rate ๐
when you try to optimize every single bigint breakpoint
@Override
public void onNewSegment(Segment segment) {
Rectangle xRect = new Rectangle (4,4 , 20, 20);
xRect.setFill(Color.rgb(8, 80,2));
xRect.translateXProperty().bind(segment.getXProperty());
xRect.translateYProperty().bind(segment.getYProperty());
getChildren().add(xRect);
}
public SnakeGame(World world) {
Segment head = new Segment(3,3);
world.getSnake().addSegment(head);
onNewSegment(head);
world.getSnake().setDirection(Direction.DOWN);
setPrefSize(world.getSize() * SCALE, world.getSize() * SCALE);
this.world = world;
world.getSnake().addListener(this);
Food food = world.getFood();
food.moveTo(25,65);
IntegerProperty foodPosX = food.getXProperty();
IntegerProperty foodPosY = food.getYProperty();
Circle foodObj = new Circle(10);
foodObj.setFill(Color.rgb(0, 0,255));
foodObj.centerXProperty().bind(foodPosX);
foodObj.centerYProperty().bind(foodPosY);
getChildren().add(foodObj);```
this is my only rendering code i use
Tim bashing their head on the numpad for the last one
indeed
converting a bigint to bytes is faster using dataview than converting to number lel
ie:
buffer[index] = Number(1n); // slower
dataview.setBigUint64(index, 1n, true) // faster
even tho the latter writes 8 bytes and the former only writes one
conversions are a pain am i right? xd
Yeah, they are
not that big of a difference
but increase the number or writes, and it becomes a very big difference
What engine/runtime version are you testing on?
chromium idk
v111
lemme update, since chromium doesnt auto update lel
ye same result on v113
new amogus
is there something like github co-pilot that helps writes commit messages in intellij?
how can i loop a message to keep sending?
a brain
Not in intellij though but it exists for the terminal
So someone most likely made the same as plugin
like a neural network?
No a brain, as in your brain 
Commit messages are shorter than 50 characters
Took you more time to write here than think and write a commit message
but i have to remember all the things i did
"Minor changes"
Just
Add things
but yeah as mentioned, exists in terminal
Heard about it months ago, some GitHub repo
Like commitai or whatever
If you search you'll find that one
ctrl+ k then ctrl+shift+k is how i commit and push
don't worry much abt messages if you're the sole maintainer
chances are you'll never go back anyway, and if you do, you're very likely to know which commit to revert to
Although it's good practice to have not nonsense commit messages
commit message are useful even when programming solo
hey kuu are these the graphics you were talking about? Honestly i am completely stuck now and this is the only thing left so i can finish this assignment
like idk what the graphics should look like
you told me about multiplying the x and y getproperty but that amde my code a mess by moving all rectangles out of the field directly
well yeah, that'll happen if you multiply the global coordinates
it'll make the canvas much larger
shit man
this shit is the only thing left so i can hand in this assignment
but i just don't get how to change the pref size so that the rectangles are not fucking each other
to better explain the issue:
let's say you have a game panel of 1024x1024, in your current case that means a 1024x1024 grid
thing is, it'll be very granular (each step moves the segment by 1px in the global coordinates)
to make it more "skippy" you need to reduce the grid by size / scale, then upscale to fit the game panel
for example, if you divide the grid by 8 you'd have a 128x128 grid in local coordinates, then you upscale it by 8x so you get a 1024x1024 grid in global coordinates
this would make each pixel in local space represent 8 pixels in global space
does this make sense?
hmmm
so all my global coordinates must be divided by 16?
because my game is 12 x 16
but what is the local grid
im downloading a gif into ./downloads/ and i call the gif media.gif and i want to use it to reply to a command and i have the code bellow but it doesnt work```js
const attachment = new AttachmentBuilder('./downloads/media.gif', {
name: 'media.gif',
});
const embed = {
description: 'Attachment',
image: {
url: attachment://${attachment.name},
},
};
let message = interaction.reply({ embeds: [embed], files: [attachment] });
like if i knew it would be ez
should i multiply everything with 16?
Would that be upscaling lmao
is it possible to make a PRIVATE_THREAD and add and remove members from the thread? and that thread parent being a message
https://discord.com/developers/docs/resources/channel#start-thread-from-message
hi
who knows

// Sayuri.Codex optimise @lang:auto @o3
// Sayuri.Codex optimiser ERROR: There was syntax error when copying source snippet.
// Take this code with a grain of salt.
let quantityData, itemQuantity;
if (i.values.length === 1) {
await i.showModal(quantityModal);
quantityData = await interaction
.awaitModalSubmit({
filter: ({ customId }) => customId === 'quantity',
time: 60000
})
.catch(() => {
console.log('Item quantity modal was not filled.')
});
itemQuantity = parseInt(quantityData.fields.getTextInputValue('itemQuantity'));
if (isNaN(itemQuantity))
return quantityData.reply({
content: 'The item quantity must be a number!',
ephemeral: true
});
}
const embeds = [
tradeEmbed(i.user, Array.from(offer, ([, item]) => item)),
Array.from(request, (([, item]) => item))
]
if (quantityData && itemQuantity) {
await quantityData.update({
// Sayuri.Codex optimiser ERROR: Ambiguous use case for `embeds` array: Same value was used on alternative branch of this condition
// embeds: [
// tradeEmbed(i.user, Array.from(offer, ([, item]) => item)),
// Array.from(request, (([, item]) => item))
// ]
embeds
});
// Sayuri.Codex optimiser WARN: Those variables are not used after reassigned
quantityData = itemQuantity = null;
//
} else {
await i.update({
// Sayuri.Codex optimiser ERROR: Duplicated code fragment
// embeds: [
// tradeEmbed(i.user, Array.from(offer, ([, item]) => item)),
// Array.from(request, (([, item]) => item))
// ]
embeds
});
}
what is this
you asked
alright
why does this occur
i don't even know what you are trying to convey
โWhy does this occurโ
Also shows a complex modal process and doesnโt say whatโs wrong
look
it doesn't add
to royal chair
have you considered trying something called debugging?
no
you need that to troubleshoot and know the bug by monitoring application behaviour in real time
sounds like you know your stuff
that might be the most horrendous use of logical OR I've ever seen
doesn't work as in what
how am i suppose to use it
that is technically a valid use but it makes code so much more confusing
the source code is even more
how
This should work in theory, but you've probably not given us information that's important
don't forget the
๐
you might find some cool advanced use of syntax / built-in apis
what
lol ok
lets go
so you dont need my explanation anymore
๐
๐ต๏ธ
C
- Refresh Data
- Edit
- Save
i mean the bot icon
it still showing the old icon and i dont see a place to change it
And that's how you do it
i edited my bot icon on discord developers portal
Literally just click the buttons i've sent above 
but i dont see the option to change icon on topgg. i edited some of the contextual data and saved
o
where are the buttons fr, i dont see any
This is all i see
it's literally on your bot's page
right below the "Edit" button there is the "Refresh Data" button
Click that one
The edit
yeah i clicked that
fam, i still dont see my bot icon change

just run the program
with whatever your bot program's entry point is
eg. node then node main.js
and for webservers or database servers, do the same
^
if you want your bot to update when you change source code, use a daemon
i usually just write my own reload code since daemon would restart the whole bot when i update source code
does linux have an undo shortcut or command?
like
lets say i accidentaly delete the wrong file
can i undo that
Nope
ah
once a file is deleted, it's lost forever (even on windows)
cant i use ctrl z on windows? as long as its in the bin
I mean, you "can" retrieve it if you shutdown the system right away and take it to a data restore technician
"as long as it's in the bin", so not deleted
fair enough
windows actual delete shotcut is shift + del, if u just "delete" the file it simply moves to a reserved folder (bin)
u can do something similar on linux, just make a folder and write an alias to move things to there
o
Errr no, you're just deleting the sector numbers off your table your data is being written on
Just because your system doesn't know where the data is located anymore, doesn't mean it's deleted
As long as the sectors aren't overwritten (by accident) data is always "completely" recoverable
If the data would be overwritten aka. deleted for real your drive would reach its max TBW real quick
too keep things simpe
how to delete a bot from my profile
By clicking on the very secret delete button on your bot's page
I know, mind blowing

Daily reminder to use git
why
gitgud
npm ERR! code 3221225786
npm ERR! path C:\Users\Astrid\AppData\Roaming\npm\node_modules\node-pty
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node scripts/install.js
npm ERR! Building the projects in this solution one at a time. To enable parallel build, please add the "-m" switch.
npm ERR!
npm ERR! conpty.cc
npm ERR! path_util.cc
npm ERR! win_delay_load_hook.cc
npm ERR! Generating code
npm ERR! Previous IPDB not found, fall back to full compilation.
npm ERR! All 946 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
npm ERR! Finished generating code
npm ERR! conpty.vcxproj -> C:\Users\Astrid\AppData\Roaming\npm\node_modules\node-pty\build\Release\\conpty.node
npm ERR! conpty_console_list.cc
npm ERR! win_delay_load_hook.cc
npm ERR! Generating code
npm ERR! Previous IPDB not found, fall back to full compilation.
npm ERR! All 177 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
npm ERR! Finished generating code```
Enjoy the chat flood, can anyone help me?
Yeah I'm aware, just to relate your statement which could cause confusion
help with what exactly?
The actual error is below that, show the entire thing
Put it in a bin like https://sourceb.in/
Looks like itโs trying to find a folder/file that doesnโt exist
I do not find it
Hard to find 
Where?
I am there look at the picture
you pressed ctrl C
yea took a bit too long
and it's installed now
it was hanging
not forever
but the spinner wasn't spinning either
so
yeah some times that happens xD
๐ฅ
Can you help me to add button which opens modal and send the input the same channel where the button was clicked @earnest phoenix @hushed robin
Just show your current code
yuh
And if you've made no attempt before, do at least one and show the code you came up with
are you using discord.js?
A sec
if so they have a guide on using modals
I have made manu
Then show them
Many
if (interaction.commandName == "important") {
let embed = new MessageEmbed()
.setColor("BLURPLE")
.setTitle(Important!!)
.setDescription(To add the members to the server, you will need a bot. After you added the bot. Click on **Done**.);
let noob = new MessageActionRow().addComponents([new MessageButton()
.setLabel("Done")
.setCustomId("done_done")
.setStyle("SUCCESS")
.setEmoji("โ
๏ธ"),
]);
return interaction.reply({
embeds: [embed],
components: [noob],
I have to add modal in this
this will help
it explains how to use modals
that bot is a little sussy
that breaks TOS, shouldn't ask for help with it here
whats the bot do
so what is it then
I suppose the bot invite would try to sneak a "Join servers" scope so whatever that command is could simply pull its users to the server
took too long to send that, internet had a hiccup
So thatโs how raids end up happening so easily sometimesโฆ
well, I mean, the bot's intent could be to allow "member sharing" among servers, but it'd definitely crash the server in the process lmao
ok
Is this the original package?
Ye
can someone teach me, how to make my bot send a message to a channel when someone votes for it?
can someone help me with that error?
TypeError: Chart is not a constructor
Can someone verify my bots pls
wait your turn
it takes 1 - 2 weeks or more
Chart is not a constructor
not sure how you want someone to help further without knowing what Chart is ๐
Youโre calling new Chart() somewhere, and thatโs not a thing
i mean isnt that how we usually use it?
you didnt explain what Chart is
its not a built in thing, its either something you made, or a library you are using
so if its something you made, show it, if its a library you're using, tell us which library it is
Yeah we donโt know what Chart is, but from this error message itโs obviously not a class
yeah but we dont know if its supposed to be a class or not
so we dont know if they are using it wrong, or the lib is broken
hey, how do i use sqlalchemy with multi processing? When a new process is spawned i can see a new postgres connection but it keeps crashing and it doesnt update the data
imagine it's an interface

call a snake handler
Hey
lib seems to be broken lol
well, what lib is it?
chart.js
are u using official chart.js or that alpha fork of it?
also doubt it's broken as it's one of the most used node libs
hey guys sup
is here anyone that knows how to work with the firebase to help me a bit
i am pretty sure i gave up on fixing that error and now that I reopened the game I dont get that error anymore. Weird lol
i can try
i can catch, you'll fail for UnknownIssueException
anyone have a bot idea ?
a bot that tries and catches an UnknownIssueException for the guys above
Broo.. Whut
what language ?
english
I'm having a problem with my bot page
the profile picture of the bot appears as a letter insted of the proper icon
refresh data -> edit -> save

pro memers in action
@errant horizon You're here too
@lyric mountain streams my beloved






