USB
USB
Explore posts from servers
CC#
Created by USB on 1/2/2025 in #help
Crashes on events trying to read data across threads
Error: An exception of type 'System.InvalidOperationException' occurred in System.Windows.Forms.dll but was not handled in user code The cross-thread operation is invalid: The control simconnectstatus was obtained from a different thread than the thread on which it was created. Using .net framework 4.7.2 Code Where it crashes:
public partial class Form1 : Form
{
Connect connect = new Connect();
DefSimvars defSimvars = new DefSimvars();
public Form1()
{
InitializeComponent();
connect.OnData += Receivedata;
}

public void altitude_label_Click(object sender, EventArgs e)
{
}

public void simconnectstatus_Click(object sender, EventArgs e)
{

}

private void simconnect_logon_Click(object sender, EventArgs e)
{
this.simconnect_logon.Enabled = false;
this.simconnectstatus.Text = "Simconnect: Connecting...";
connect.Connectsim();
this.simconnect_logon.Enabled = true;

}

public void Receivedata(object sender, EventArgs e)
{
DefSimvars ab = (DefSimvars)e;
this.simconnectstatus.Text = ab.SimVars.message;
//this.latitude_label.Text = defSimvars.SimVars.latitude.ToString();
//this.longitude_label.Text = defSimvars.SimVars.longitude.ToString();
//this.altitude_label.Text = defSimvars.SimVars.altitude.ToString();
}
public partial class Form1 : Form
{
Connect connect = new Connect();
DefSimvars defSimvars = new DefSimvars();
public Form1()
{
InitializeComponent();
connect.OnData += Receivedata;
}

public void altitude_label_Click(object sender, EventArgs e)
{
}

public void simconnectstatus_Click(object sender, EventArgs e)
{

}

private void simconnect_logon_Click(object sender, EventArgs e)
{
this.simconnect_logon.Enabled = false;
this.simconnectstatus.Text = "Simconnect: Connecting...";
connect.Connectsim();
this.simconnect_logon.Enabled = true;

}

public void Receivedata(object sender, EventArgs e)
{
DefSimvars ab = (DefSimvars)e;
this.simconnectstatus.Text = ab.SimVars.message;
//this.latitude_label.Text = defSimvars.SimVars.latitude.ToString();
//this.longitude_label.Text = defSimvars.SimVars.longitude.ToString();
//this.altitude_label.Text = defSimvars.SimVars.altitude.ToString();
}
I don't know what todo, i'm trying to send a structure data from my connect.cs file back to form1.cs using evnets, here i am trying to call the ondata event and it works just fine but at bottom where i define event args E as defsimvars withc is a class that contains a structure i wanna use i get this error message
3 replies
DIAdiscord.js - Imagine an app
Created by USB on 1/31/2024 in #djs-questions
Autocompletion in Slash commands
Auto ocmpletion code:
const D = require("discord.js")
const fs = require("node:fs/promises")
module.exports = {
data: new D.SlashCommandBuilder()
.setName("querydata")
.setDescription("query the db for result")
.addStringOption(option =>
option.setName("q")
.setDescription("query data in memory")
.setAutocomplete(true)),

async autocomplete(Interaction) {
try {
console.log("\n Autocompletion started...")
const focusedvalue = Interaction.options.getFocused()
let files = []
const readdir = await fs.readdir("./Memory")
readdir.forEach(element => {
files.push(element)
console.log(`\n Pushing file: ${element}`)
});

const filteresdata = files.filter(filess => filess.startsWith(focusedvalue))
await Interaction.respond(
filteresdata.map(filess => ({ name: filess, value: filess }))
)
} catch (e) {
console.log(`\n Autocomplete function failed with error ${e}`)
return
}
},

async execute(Interaction) {
console.log(`\n Autocomplete finished`)
}
}
const D = require("discord.js")
const fs = require("node:fs/promises")
module.exports = {
data: new D.SlashCommandBuilder()
.setName("querydata")
.setDescription("query the db for result")
.addStringOption(option =>
option.setName("q")
.setDescription("query data in memory")
.setAutocomplete(true)),

async autocomplete(Interaction) {
try {
console.log("\n Autocompletion started...")
const focusedvalue = Interaction.options.getFocused()
let files = []
const readdir = await fs.readdir("./Memory")
readdir.forEach(element => {
files.push(element)
console.log(`\n Pushing file: ${element}`)
});

const filteresdata = files.filter(filess => filess.startsWith(focusedvalue))
await Interaction.respond(
filteresdata.map(filess => ({ name: filess, value: filess }))
)
} catch (e) {
console.log(`\n Autocomplete function failed with error ${e}`)
return
}
},

async execute(Interaction) {
console.log(`\n Autocomplete finished`)
}
}
Here is the code in Interacton event:
client.on(Events.InteractionCreate, async (interaction) => {
if (!interaction.isChatInputCommand()) return;
const command = interaction.client.commands.get(interaction.commandName);

try {
if (interaction.isAutocomplete()) {
await command.autocomplete(interaction)
return
}
await command.execute(interaction);
} catch (e) {
console.log(`\n InteractionCreate event failed with code: ${e}`)
return
}
});
client.on(Events.InteractionCreate, async (interaction) => {
if (!interaction.isChatInputCommand()) return;
const command = interaction.client.commands.get(interaction.commandName);

try {
if (interaction.isAutocomplete()) {
await command.autocomplete(interaction)
return
}
await command.execute(interaction);
} catch (e) {
console.log(`\n InteractionCreate event failed with code: ${e}`)
return
}
});
Any tips on what todo? dosnt seem like the code executes at all depsite autocomplete beeing active?
8 replies
DIAdiscord.js - Imagine an app
Created by USB on 1/28/2024 in #djs-questions
Error with choices in slash commands
Error:
ExpectedConstraintError: Invalid string format
at Object.run (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@sapphire\shapeshift\dist\cjs\index.cjs:2350:64)
at C:\Users\4339u\Desktop\UNORP2.2\node_modules\@sapphire\shapeshift\dist\cjs\index.cjs:939:67
at Array.reduce (<anonymous>)
at _StringValidator.parse (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@sapphire\shapeshift\dist\cjs\index.cjs:939:29)
at validateName (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\builders\dist\index.js:1578:17)
at SlashCommandUserOption.setName (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\builders\dist\index.js:1678:5)
at C:\Users\4339u\Desktop\UNORP2.2\Commands\Duno-send.cjs:8:11
at MixedClass._sharedAddOptionMethod (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\builders\dist\index.js:2280:50)
at MixedClass.addUserOption (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\builders\dist\index.js:2212:17)
at Object.<anonymous> (C:\Users\4339u\Desktop\UNORP2.2\Commands\Duno-send.cjs:7:10) {
constraint: 's.string.regex',
given: 'UserID',
expected: 'expected /^[\\p{Ll}\\p{Lm}\\p{Lo}\\p{N}\\p{sc=Devanagari}\\p{sc=Thai}_-]+$/u.test(expected) to be true'
}

Node.js v20.11.0
ExpectedConstraintError: Invalid string format
at Object.run (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@sapphire\shapeshift\dist\cjs\index.cjs:2350:64)
at C:\Users\4339u\Desktop\UNORP2.2\node_modules\@sapphire\shapeshift\dist\cjs\index.cjs:939:67
at Array.reduce (<anonymous>)
at _StringValidator.parse (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@sapphire\shapeshift\dist\cjs\index.cjs:939:29)
at validateName (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\builders\dist\index.js:1578:17)
at SlashCommandUserOption.setName (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\builders\dist\index.js:1678:5)
at C:\Users\4339u\Desktop\UNORP2.2\Commands\Duno-send.cjs:8:11
at MixedClass._sharedAddOptionMethod (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\builders\dist\index.js:2280:50)
at MixedClass.addUserOption (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\builders\dist\index.js:2212:17)
at Object.<anonymous> (C:\Users\4339u\Desktop\UNORP2.2\Commands\Duno-send.cjs:7:10) {
constraint: 's.string.regex',
given: 'UserID',
expected: 'expected /^[\\p{Ll}\\p{Lm}\\p{Lo}\\p{N}\\p{sc=Devanagari}\\p{sc=Thai}_-]+$/u.test(expected) to be true'
}

Node.js v20.11.0
Code:
data: new D.SlashCommandBuilder()
.setName("uno-send")
.setDescription("Takes your message and sends it to the member")
.addUserOption(option =>
option.setName('UserID').setDescription('The member to send message to').setRequired(true))
.addUserOption(option =>
option.setName('Preset').setDescription('The preset to use, write 0 for no preset').setRequired(true))
.addUserOption(option =>
option.setName('msg').setDescription('Comments to the message').setRequired(true)),
data: new D.SlashCommandBuilder()
.setName("uno-send")
.setDescription("Takes your message and sends it to the member")
.addUserOption(option =>
option.setName('UserID').setDescription('The member to send message to').setRequired(true))
.addUserOption(option =>
option.setName('Preset').setDescription('The preset to use, write 0 for no preset').setRequired(true))
.addUserOption(option =>
option.setName('msg').setDescription('Comments to the message').setRequired(true)),
Any tips?
7 replies
DIAdiscord.js - Imagine an app
Created by USB on 1/28/2024 in #djs-questions
Help registering Slash commands
I need some help with Slash commands
DiscordAPIError[0]: 405: Method Not Allowed
at handleErrors (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\rest\dist\index.js:722:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async SequentialHandler.runRequest (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\rest\dist\index.js:1120:23)
at async SequentialHandler.queueRequest (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\rest\dist\index.js:953:14)
at async _REST.request (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\rest\dist\index.js:1266:22)
at async RCMH (C:\Users\4339u\Desktop\UNORP2.2\Commands\CommandHandler.cjs:41:22)
at async C:\Users\4339u\Desktop\UNORP2.2\Commands\CommandHandler.cjs:23:13 {
requestBody: { files: undefined, json: [ [Object] ] },
rawError: { message: '405: Method Not Allowed', code: 0 },
code: 0,
status: 405,
method: 'PUT',
url: 'https://discord.com/api/v10/applications/983360693963218945/commands/undefined'
}
DiscordAPIError[0]: 405: Method Not Allowed
at handleErrors (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\rest\dist\index.js:722:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async SequentialHandler.runRequest (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\rest\dist\index.js:1120:23)
at async SequentialHandler.queueRequest (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\rest\dist\index.js:953:14)
at async _REST.request (C:\Users\4339u\Desktop\UNORP2.2\node_modules\@discordjs\rest\dist\index.js:1266:22)
at async RCMH (C:\Users\4339u\Desktop\UNORP2.2\Commands\CommandHandler.cjs:41:22)
at async C:\Users\4339u\Desktop\UNORP2.2\Commands\CommandHandler.cjs:23:13 {
requestBody: { files: undefined, json: [ [Object] ] },
rawError: { message: '405: Method Not Allowed', code: 0 },
code: 0,
status: 405,
method: 'PUT',
url: 'https://discord.com/api/v10/applications/983360693963218945/commands/undefined'
}
Code:
async function RCMH(RCMH_Commands, token) {
try {
const rest = new D.REST().setToken(token);
console.log(`Started refreshing ${RCMH_Commands.length} application (/) commands.`);

// The put method is used to fully refresh all commands in the guild with the current set
console.log(`Commands: ${RCMH_Commands.name} \n\n`)
// process.exit(0)
const data = await rest.put(
D.Routes.applicationCommand("983360693963218945"),
{ body: RCMH_Commands },
);
console.log(`Registering Commands ${RCMH_Commands}`)

console.log(`Successfully reloaded ${data.length} application (/) commands.`);
} catch (error) {
// And of course, make sure you catch and log any errors!
console.error(error);
}
}
async function RCMH(RCMH_Commands, token) {
try {
const rest = new D.REST().setToken(token);
console.log(`Started refreshing ${RCMH_Commands.length} application (/) commands.`);

// The put method is used to fully refresh all commands in the guild with the current set
console.log(`Commands: ${RCMH_Commands.name} \n\n`)
// process.exit(0)
const data = await rest.put(
D.Routes.applicationCommand("983360693963218945"),
{ body: RCMH_Commands },
);
console.log(`Registering Commands ${RCMH_Commands}`)

console.log(`Successfully reloaded ${data.length} application (/) commands.`);
} catch (error) {
// And of course, make sure you catch and log any errors!
console.error(error);
}
}
Can i get some help with the error message? its when i send the request body to the REST it fails
4 replies
DIAdiscord.js - Imagine an app
Created by USB on 1/25/2023 in #djs-questions
Trying to send buttons with embed
DiscordAPIError[50035]: Invalid Form Body components[0][UNION_TYPE_CHOICES]: Value of field "type" must be one of (1,). components[1][UNION_TYPE_CHOICES]: Value of field "type" must be one of (1,).
const embed = new D.EmbedBuilder()
.setTitle(`Note from: ${CTX.author.username}`)
.setDescription(CTX.content)
.setTimestamp()
.setColor(D.Colors.DarkGold)

const ThumbsUp = new D.ButtonBuilder()
.setLabel("1")
.setStyle(D.ButtonStyle.Success)
.setCustomId(`test123`)
.setEmoji("👍")


const ThumbsDown = new D.ButtonBuilder()
.setLabel("1")
.setCustomId(`test1231`)
.setStyle(D.ButtonStyle.Danger)
.setEmoji("👎")


await CTX.channel.send({ephemeral: true, embeds: [embed], components: [ThumbsUp, ThumbsDown]})
const embed = new D.EmbedBuilder()
.setTitle(`Note from: ${CTX.author.username}`)
.setDescription(CTX.content)
.setTimestamp()
.setColor(D.Colors.DarkGold)

const ThumbsUp = new D.ButtonBuilder()
.setLabel("1")
.setStyle(D.ButtonStyle.Success)
.setCustomId(`test123`)
.setEmoji("👍")


const ThumbsDown = new D.ButtonBuilder()
.setLabel("1")
.setCustomId(`test1231`)
.setStyle(D.ButtonStyle.Danger)
.setEmoji("👎")


await CTX.channel.send({ephemeral: true, embeds: [embed], components: [ThumbsUp, ThumbsDown]})
4 replies
DIAdiscord.js - Imagine an app
Created by USB on 1/12/2023 in #djs-questions
Receive DM from user to Bot
This is how i check for DM:
// Receive DM from users
if(msg.channel.type === d.ChannelType.DM) {
console.log("We received a DM")
}
// Receive DM from users
if(msg.channel.type === d.ChannelType.DM) {
console.log("We received a DM")
}
This is my intents:
const client = new d.Client({intents: [
d.GatewayIntentBits.Guilds,
d.GatewayIntentBits.DirectMessages,
d.GatewayIntentBits.GuildMessages,
d.GatewayIntentBits.MessageContent,
], partials: ['CHANNEL', 'MESSAGE', 'REACTION']})
const client = new d.Client({intents: [
d.GatewayIntentBits.Guilds,
d.GatewayIntentBits.DirectMessages,
d.GatewayIntentBits.GuildMessages,
d.GatewayIntentBits.MessageContent,
], partials: ['CHANNEL', 'MESSAGE', 'REACTION']})
Yet it dosn't respond to it? the if statement is inside "MessageCreate" i tried to search for answers here but all i found is peolpe missing intents witch i am not? (using latest version)
5 replies