I've added various administrative endpoints to the Client. I don't believe forum admins can use them, but Brett and Eric sure can. I know SparkleMotion had this kind of power as well. Most administrative functions/methods end with 'AsAdmin;' i.e., 'banAsAdmin.' List of changes: - Removed the signup method - Merged defaultLogin with the login method (login with a token or an object containing username/password) - Added various administrative endpoints - Added the ability to (un)feature tracks - Added a 'toggle featured' method - Added createImageData, putImageData and getImageData to the Builder API - Moved various methods to their appropriate parent managers ... too many changes. I can't be bothered writing them. Send me a PM if you want further details. Featuring tracks, unlike other methods and functions, uses a setter to change the featured status on the track. Hence, you'll need to write code similar to the following code: Code: const client = new Client(); client.on("ready", async function() { const track = await this.tracks.fetch("1001"); track.featured = true; // or track.toggleFeatured(); }); client.login("token"); Further changes may be edited into this message. That'll be all. Changes: https://github.com/Calculamatrise/f...54a4e5de9984caec16af38ab2c059f15ea736caf23b50
v0.0.4-gamepad A new constructor is being introduced. I added the Builder API for track-makers, it's time I added the Gamepad API for players. I wasn't entirely sure on how to go about making this, so I've added a few options. Here's a sample code: Code: import frhd, { Gamepad } from "frhd"; // const Gamepad = frhd.Gamepad; const gamepad = new Gamepad(); gamepad.on("complete", function(records) { console.log(records); }); gamepad.on("tick", function(ticks) { this.toggleKey(this.keymap[Math.floor(Math.random() * ticks) % 5]); this.tick(10); }); // Result: (this result will not be persistent) { up_down: [ 0, 2 ], up_up: [ 1, 8 ], left_down: [ 3, 5, 10 ], left_up: [ 4, 9 ], right_down: [ 6 ], right_up: [ 7 ] } Second sample: Code: import frhd, { Gamepad } from "frhd"; // const Gamepad = frhd.Gamepad; const gamepad = new Gamepad(); gamepad.on("complete", function(records) { console.log(records); }); gamepad.setKeyDown("up"); gamepad.setKeyDown("left"); gamepad.tick(); gamepad.setKeyUp("up"); gamepad.toggleKey("left"); gamepad.complete(); // Result: { up_down: [ 0 ], up_up: [ 1 ], left_down: [ 0 ], left_up: [ 1 ] } The first parameter for the tick method is the maximum number of ticks. As soon as that tick count is reached, the tick event will no longer be triggered. Alternatively, you can call the complete method to forcefully prevent the event from being triggered. There's no limit to what you could do with this. If anyone has any suggestions, you may post a discussion on the GitHub repository. Cheers
I really need to learn JS like for real. It’s the most important programming language that I think I should know, and yet I don’t.
I don't recall. Most likely something to do with the mass removal of ghosts Totoca12 and I were working on b4 he was banned.
I believe he was asked to quit whilst they reviewed my script (which, I don't believe they ever did), but I don't recall. We definitely stopped though. Although, we did get through a good number of tracks.
I've started working on the update to the python version of this API wrapper. It's incomplete, but I did get the basic parts done. As of right now, there are only a handful of resources. Your abilities are very much limited; however, it's certainly better than what we had before. I haven't yet updated the module on pypi. I will update it as soon as I finish unit testing. Source: https://github.com/Calculamatrise/frpy
Updated the Python library. It is now more inline with Python best-practices and standards. All methods using camelCase are now using snake_casing. Also fixed some issues regarding imports, I believe the previous distributions were not packaged correctly. See more information here: Version 0.3.1