I've moved to https://git.eusv.net, got sick of GitHub's bs.
Discord: tgpholly
This repo is a read-only mirror of https://git.eusv.net/tgpholly/Binato
Home Page: https://git.eusv.net/tgpholly/Binato
License: MIT License
Discord: tgpholly
The code quality is, overall, significantly better than it used to be on the legacy-javascript branch.
There is however a lot of code quality issues, code that is basically unreadable in some places, missing types, use of the any "type", etc.
A good place to look where to start with this would be the codefactor issues.
Right now there are no steps for github actions to do so it will pass every single time even if there are issues.
client sends the server the away message and we just need to store that in the db and send it to people when they send a message and the user is offline
Clicking + in the chat window will soft crash the game
This is a serious issue, the passwords in the database are still the md5 hashed passwords the client sends but they are aes256 encrypted in the database. This can be handled way better with hash/salt.
Will require changes in Binato, Binato-Website and Binato-letsjs.
V8 will give up trying to JIT the code if there is a huge switch statement (which we have) so yeah we probably shouldn't do that.
To do this the data that packets and related functions take in needs to be generalized.
Multiplayer needs to be tracked so previous games, what maps were played, player scores, etc can be retrieved and shown on a round by round basis.
This would also make it so that file being used for match ids can be nuked.
Right now the scores for all players are squished on to the end of a row in mp_match_rounds
, this is pretty bad and we have to null any slots that didn't have a user in it. We could instead just store it in it's own table like mp_match_round_scores
and store it by match_id
, slot_id
and user_id
and exclude any slots that didn't have a user in it.
I've been working on a what initially started as a port and turned into a rewrite to TypeScript for a while now and it's looking good.
There's a few issues remaining before that can happen though:
any
everywhere it defeats the whole point of using typescript, use interfacesany
The task list™:
any
typed things (this is a large task)Would be cool if multiplayer could have plugins that are loaded on startup / are reloadable that can be added to multiplayer games dynamically. New rules etc.
16|osusrv | Failed to release mysql connection Error: Access denied for user 'u15029_osu'@'46.72.x.x' to database 'osu'
16|osusrv | at Packet.asError (/srv/gameap/b/osusrv/node_modules/mysql2/lib/packets/packet.js:728:17)
16|osusrv | at ClientHandshake.execute (/srv/gameap/b/osusrv/node_modules/mysql2/lib/commands/command.js:29:26)
16|osusrv | at PoolConnection.handlePacket (/srv/gameap/b/osusrv/node_modules/mysql2/lib/connection.js:456:32)
16|osusrv | at PacketParser.onPacket (/srv/gameap/b/osusrv/node_modules/mysql2/lib/connection.js:85:12)
16|osusrv | at PacketParser.executeStart (/srv/gameap/b/osusrv/node_modules/mysql2/lib/packet_parser.js:75:16)
16|osusrv | at Socket. (/srv/gameap/b/osusrv/node_modules/mysql2/lib/connection.js:92:25)
16|osusrv | at Socket.emit (node:events:527:28)
16|osusrv | at addChunk (node:internal/streams/readable:324:12)
16|osusrv | at readableAddChunk (node:internal/streams/readable:297:9)
16|osusrv | at Socket.Readable.push (node:internal/streams/readable:234:10) {
16|osusrv | code: 'ER_DBACCESS_DENIED_ERROR',
16|osusrv | errno: 1044,
16|osusrv | sqlState: '42000',
16|osusrv | sqlMessage: "Access denied for user 'u15029_osu'@'46.72.x.x' to database 'osu'",
16|osusrv | sql: undefined
16|osusrv | }
I use external DB running on MariaDB v 5.5.68 .
In config as a DB address i use my external DB's address, but in error it shows that it tried to connect to address that my current server uses, not the external one
OS: Ubuntu 20.04
Currently the multiplayer match and chat are inside one stream, would be useful to handle it this way since the tourney client requests to join the channel and only the channel
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.