* Add Smarty and Twig template engines
* Update composer.json
* Convert Widgets class to template engine and PHPStan fixes
* Fix widget initialisation
* Fix panel widget initialisation
* chore: remove debug return
* feat: convert 403/404 pages to new template system and general tidy
* chore: style fixes
* feat: update latest pages to new template engine
* feat: template base should not be nullable in onPageLoad
* feat: set template base directory upon initialisation and allow custom smarty security directories
* chore: fix style
* Initial work on reactions revamp and profile widgets
* Remove unneeded changes
* Remove unneeded change
* fix style
* Render emojis in reaction list StaffCP
* wip minecraft account profile widget, sticky widgets on profile page
* Add server name and IP to last seen
* remove
* rename to reaction score to match member list
* align reactions table contents center
* fix
* wip - nicer abstraction, widgets never query db, skin 3d viewer (undecided)
* wip - make reaction modals ajax, copy new reaction bar to profile posts
* wip reaction modals
* wip proper sorting
* wip modals
* wip get reaction submission working on profile wall posts
* add back helpful and creative default reactions
* reduce query amount on view topic
* remove debug statement
* wip
* wip
* simplify ProfileWidget pages
* Revert forum dropdown
* fix css syntax
* fix emoji title and alt being strange
* add back order input
* sort widgets by order in list
* fix settings link always showing
* phpdoc
* add widget name to exception
* insert default widget data if not found
* missing end if
* properly cache forum news per-group
* fix
* fix cache key, news permission check
* fix styling
* wip
* respect reaction ordering
* wip
* wip
* support custom reaction scores, update member list to properly calculate
* don't hardcode words
* wip
* allow multiple reactions
* redirect to post
* code style
* phpstan
* wip
* remove hardcoded terms + fix copy
* use npm for skinview3d
* create ReactionContext and refactor
* fix cache
* docblocks
* fix spelling
* pr amendments
* Initial commit, big additions. Linking/verifying discord id is complete
* Update admin.php
* Better validation errors + language updating
* Apply role change on user edit page - still some things to flush out though
* flush out some edge cases
* Add role in discord upon account validation & more
* Add api endpoint (need to test) & a lot of TODOs
* fix announcements a bit on Default template
* define bot url for easier move to self-hosting
* Add discord->website (adding) sync & lots of the TODOs
* Add discord role removal api endpoint
* Add logging od discord role add/remove & fix log table
* Add api_url to discord request for extra security & add todo's for error handling
* More API error handling for discord bot
* Add boilerplate error handling if bot throws error
* Add error messages for all discord linking
* If they have a role on the site, give it to them when they verify their id
* Resolve Sam's review
* Add info msgs so people know where to get discord IDs
* Add all language translations and update NMC version strings