-
Posts
2,146 -
Joined
-
Last visited
-
Days Won
149
Content Type
Profiles
Forums
Events
Everything posted by Magictallguy
-
We have a "Flag as spammer" feature that allows us to - you guessed it - flag the user as a spammer. The forum software's automation takes over according to a few rules set up in the back end that removes the posts and bans the account in question.
-
We've been fighting it during the temporary antispam downtime. Don't worry, they won't win π
-
Busy, busy! KumaBot Defender (an anti-bot, anti-threat solution for use on Twitch) is demanding a fair chunk of my time. I've also been working with clients on their projects, ranging from text-based games to eCommerce and CMS work. TL;DR: Still here, just busy.
-
Error reporting! When in doubt, go straight for the logs. Glad you found it π
-
If you're already using Docker, why not Dockerize your project? If you're not using containers, why not?! Once over the initial hurdle of "whaddafuqisthisballs?!", Docker/Podman/Portainer can be span up in 1 command. There are a few forks of the now open-source MCCv2 which include variations of configs to run in containers. On a personal note, since writing a drop-in Docker config (copy files -> paste files, done), I haven't touched LAMP/XAMPP/WAMP (couldn't anyway, I'm on Linux) and don't bloody want to!
-
Agreed! However, the question of "how far away from original MCC do we want to take this?" was raised. I otherwise swear by dependency injection
-
Are browserbased games still fun to play in 2024?
Magictallguy replied to miyevan's topic in Browsergames
There's still quite a large following for this style of game. It would stand to evidence that people still consider it fun. Also, these games are making a resurgence, so they must be wanted. -
You'd be surprised what motivation does for one's desire to code. In one day, I refactored MCCv2 in its entirety to use ParagonIE's EasyDB - last night. Here's the branch π Edit: And here's a Dockerized version
-
If nobody beats me to it, consider it done. I'm not as experienced with Eloquent as I'd like to be, so I'll be avoiding implementation. If the concept gains traction, I'll bite the bullet and blow off the dust, as it were. That being said, replacing an ORM with another on a project this arguably small would be a small feat. As for PDO (which @ags_cs4 mentioned), I quite like ParagonIE's EasyDB. Its performance - while I can't provide statistics right now - has been exactly what I'm looking for; easy to use, fast, (relatively) light on resources. .. which, thinking about it, also opens another question - do we want to rely on package managers (npm, composer, etc.) or ship it all in-house?
-
While that isn't my choice, I admit I'm curious! Semi-related; So, what about .. transactions? 2 method additions to the database class and we've got easy-enough transactions. I'm aware that MyISAM is a non-transactional storage engine, whereas InnoDB would support them fine (not to worry, MyISAM will just ignore the commit/rollback and run as "normal"). /** * @param string $name * @param array $arguments * @return void */ public function __call(string $name, array $arguments) { call_user_func_array([$this->connection_id, $name], $arguments); } /** * @param Closure $func * @return void */ public function try_transaction(Closure $func): void { try { $this->begin_transaction(); $func(); $this->commit(); } catch (mysqli_sql_exception $e) { $this->rollBack(); throw $e; } } Then, for usage, and using the new staff roles as example; /* BEFORE */ $this->db->query( 'DELETE FROM users_roles WHERE staff_role = ' . $role_id, ); $this->db->query( 'DELETE FROM staff_roles WHERE id = ' . $role_id, ); stafflog_add(ucfirst($log)); /* AFTER (where $role_id is the role's ID and $log is a string) */ $save = function () use ($role_id, $log) { $this->db->query( 'DELETE FROM users_roles WHERE staff_role = ' . $role_id, ); $this->db->query( 'DELETE FROM staff_roles WHERE id = ' . $role_id, ); stafflog_add(ucfirst($log)); }; $this->db->try_transaction($save); Do we want?
-
Oh, sick! Gimme a moment to update the cronless crons to use the new staff roles and I'll fire PRs π Branches merged, PR sent
-
So yeah, about having a place to send all these. The open-sourcing has renewed the soft spot for MCC
-
So, thought I'd start the ball rolling on releasing up-to-date mods for MCCv2-PHP8-Community (or whatever Dave's calling it) - here's a staff roles overhaul, loosely based on Discord's Roles, and on a feature branch. Want it? (I may or may not be hinting at the possibility of an MVC-ish release too) For anyone else here, feel free to use/upgrade these concepts π Edit: Just finished overhauling the crons. Now with optional "use timestamps instead" alternative to crons, the ability to force-run a cron, and status logging
-
This was fun. More, please! π Ooh! Here's a potentially-horrifying idea. Lets go through and update all MCCv2 mods to be PHP8-compliant and release them under one mass repo (with author's permission if not considered abandonware, of course) >:D Ooooh! Can we do a module installer? plzplzplz
-
As much as I would like to, I wasn't sure on just how far away from MCCv2's "origins" we wanted to pull it. So this PR is primarily PHP8-compliance (and a minor optimisation to the viewuser->staff->gethostbyaddr calls) Huh, second time I've heard that project today - and nope, but I'm curious to see what that would chuck back. Little bits, here and there. There's much more I'd like to do, but again, I don't want to pull it too far away from what it was (without community approval, at least) -- Edit: On a related note, I did write up a docker-compose.yml - runs OOTB with `docker compose up` (with optional -d flag to detach) - if we want to be able to dockerize it (great for dev *cough cough*)
-
Done. PR sent. PR set as draft while I run tests. PR re-sent!
-
I sure do - Orsokuma
-
Without wanting to seem like I'm fanning the flames here; Ali, you've been posting in this topic with updates to the engine as you've gone along and responded to people posting here too. Does that not imply you've been checking as you go along? I can certainly understand the convenience of instant messaging platforms as I much prefer them myself. That being said, I've found public transparency to be useful. Not only does it allow people to read the answers to questions already asked (which might include their own), it also shows you're actively engaging the people using your stuff. Uridium raises a valid point. This is your own project-based thread in a programming-oriented forum, it makes perfect sense to talk about your project here
-
This implies you've entered the wrong connection details. Hi, I'm one of the guys who wrote it π
-
Det hΓΈres ut som et "du"-problem kekekek
-
You previously have successfully installed this mod. The error message you're getting, in this context, means that there isn't a match in your switch() statement You've probably seen something like this.. switch ($_GET['action']) { case 'something': doSomething(); break; case 'else': doSomethingElse(); break; default: echo 'Error, this script requires an action.'; break; } ..and in your URL, you've probably seen something like: yoursite.com/staff_users.php?action=example If you're trying to give an "action" that doesn't exist (i.e., isn't in your switch() statement), then you're gonna see that "Error, action required" message. In a nutshell, make sure that whatever you're clicking on your site is going to the right place. Note: GETDATA (in this case, the $_GET['action'] bit) is case-sensitive. I.e., "example" is not a match to "Example".
-
Maria
-
Based almost entirely on this query INSERT INTO `loan_shark` (ls_id, `ls_userid`, `ls_amount`, `ls_interest`, ls_daily, `ls_remaining`, `ls_time`) VALUES ('', {$ir['userid']}, {$amount}, {$interest}, {$dailyPayment}, {$remaining}, {$time}) and a cursory glance at the rest of the code, I'm throwing a guess at this: CREATE TABLE loan_shark ( ls_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, ls_userid INT NOT NULL, ls_amount INT NOT NULL DEFAULT 0, ls_daily INT NOT NULL DEFAULT 0, ls_remaining INT NOT NULL DEFAULT 0, ls_time INT NOT NULL DEFAULT 0, FOREIGN KEY (ls_userid) REFERENCES users(userid) );
-
I'm certainly curious - please feel free to share your experiences. I'd like to learn ^.^
-
If running on PHP 8.2 and above, you can use null coalescence $userid = $_SESSION['switch_to'] ?? $_SESSION['userid'];