Midmines Posted July 15, 2019 Report Posted July 15, 2019 (edited) I am new in node js, i start 2 days ago.Is that possible to create multiple specific input message? steam chat a: hello bot: !mymoney, !checkname [gameid] a: !checkname 440 bot: Team Fortress 2 a: !checkname 570 bot: Dota 2 node.js code ..... client.on("friendMessage", function(steamID, message) { if (message == "!mymoney") { client.chatMessage(steamID, duitgw) } else if (message == "!checkname"){ if (message.line2 == "440"){ //like this ..... } else if (message.line2 == notnumber){ //another condition .... } else if (message.line2 == isnt set){ //another condition .... } } else{ client.chatMessage(steamID, "!mymoney, !checkgame [gameid]") } }); ..... edit: i use comment for highlight Edited July 15, 2019 by Midmines Quote
SnaBe Posted July 16, 2019 Report Posted July 16, 2019 (edited) Yes, it's possible to have "inputs" in a message or command. To do so, you'll have to learn about regex. Here's an example: //Act on chat messages & commands client.on('friendMessage', (steamID, message) => { //Command place holder var cmd; //Does the message match our buy command if(cmd = message.match(/^!buy (\d+) (\D+)/i)) { //The amount to buy (input string to number) var amount = Number(cmd[1]); //The item to buy (input string) var item = cmd[2]; //Log the regex values console.log(`User ${steamID} would like to purchase ${amount} of ${item}`); //Call your function that takes these two values as arguments. sellItem(steamID, amount, item); } }); In the example above we're looking for a buy command match. The string has to start with !buy, contain a number & a set of characters. For numbers only we use 'd' & for characters we use 'D'. The number is the amount of an item to buy, while the charaters is the item's name. We can access these values by using the following notation cmd[1]. Here 1 is the first regex match & cmd[2] is the second one. The (), \ & + all have different uses, escpeially when it comes to matching something from a string using regex. You can read more about those used in the example above here. I hope this helps! Edited July 16, 2019 by SnaBe Midmines 1 Quote
Midmines Posted July 17, 2019 Author Report Posted July 17, 2019 Yes, it's possible to have "inputs" in a message or command. To do so, you'll have to learn about regex. Here's an example: //Act on chat messages & commands client.on('friendMessage', (steamID, message) => { //Command place holder var cmd; //Does the message match our buy command if(cmd = message.match(/^!buy (\d+) (\D+)/i)) { //The amount to buy (input string to number) var amount = Number(cmd[1]); //The item to buy (input string) var item = cmd[2]; //Log the regex values console.log(`User ${steamID} would like to purchase ${amount} of ${item}`); //Call your function that takes these two values as arguments. sellItem(steamID, amount, item); } }); In the example above we're looking for a buy command match. The string has to start with !buy, contain a number & a set of characters. For numbers only we use 'd' & for characters we use 'D'. The number is the amount of an item to buy, while the charaters is the item's name. We can access these values by using the following notation cmd[1]. Here 1 is the first regex match & cmd[2] is the second one. The (), \ & + all have different uses, escpeially when it comes to matching something from a string using regex. You can read more about those used in the example above here. I hope this helps! Big thanks to you master Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.