server-donation-tool

A tool to transform your game-server donations into a self-service experience for your donators.

MIT License

Stars
19

Bot releases are visible (Hide)

server-donation-tool - v2.0.0-alpha2 Latest Release

Published by FlorianSW 5 months ago

Changes:

  • prevent overwrites of parallel Nitrado API changes: The nitrado API allows the priority setting to be overwritten only. In edge cases, this might result in two updates (e.g. two separate nitrado perk redeems) to overwrite each other, resulting in one priority queue to not being persisted to Nitrado. This issue is fixed now.
  • fix visiting the page with the donation details after a redeem (before this fix the donation tool errored with a Steam Mismatch error message)

Full Changelog: https://github.com/FlorianSW/server-donation-tool/compare/v2.0.0-alpha1...v2.0.0-alpha2

server-donation-tool - Support for DayZ Console servers

Published by FlorianSW 5 months ago

This release contains some major changes. The update should work without any issues and changes needed, if you do not plan on using the new Nitrado Console serverr priority queue perk. However, as there are some changes to how the donation tool works, this will be a major version.

Changes:

  • New Nitrado Priority Queue perk: With this perk, you can provide your DayZ Console players automated priority queue as well.
    • Added config nitrado to be able to configure the nitrado authentication settings
    • Added new NITRADO_PRIORITY_QUEUE perk
  • Account linking requirement improvement: The donation tool is now more transparent in communicating the required accounts for perks of a package. It will show the required accounts for each package on the package selection page (start page). When the donator aims to donate for a package where an account link is missing, the donator will get a tutorial on how to link the account.
  • Account Linking refresh is now more straight forward: Before this update, a donator needed to link an account (PSN, XBox, Steam, etc) with their Discord account, then logout from the donation tool, log back in and select the donation package again. This is now all done with a 'Done, try again' button, which will automatically fetch the new account links and continue the donation workflow where the donator left..

Full Changelog: https://github.com/FlorianSW/server-donation-tool/compare/v1.7.0...v2.0.0-alpha1

server-donation-tool - Support for collecting VAT

Published by FlorianSW over 1 year ago

Changes

New features

I'm pleased to announce the availability of the following new functionality within the server donation tool:

  • the donation tool now allows you to collect VAT for EU-based countries. See the documentation for more information
  • a new auditor role is added to allow users with special rights to get insights into donations; the membership to that role is based on Discord roles and can be configured with a new configuration option
  • there is a new overview page to get statistics about how many donations were made in one month (/statistics). The UI is not perfect, yet, and will be improved in future releases. The main focus is to get you an overview of VAT you collected and need to pay to your tax authority.

Other changes

  • Variable prices are now supported in the discord /donate command
  • Fix an issue that donators where not redirected to the redeem page when they donated with the discord /donate command and where not logged in to the website already
  • the start page (with the package selection) is not login-protected anymore, allowing your donators to look at available packages before they need to login. Once a selection is made, the donator still needs to login in order to continue with the donation process.
  • Fix Discord Slash command integration

Changes to Perks

  • No changes to perks

Changes to the config.yml

  • Additional configuration for VAT support was added
  • Additional configuration for auditor role was added

Update notes

In order to update to this release, follow these steps (additionally to any steps mentioned in the official documentation):

  • Ensure you have NodeJS version 16.6 or higher installed. You can check that by running node -v in your command line window. If it is not a supported version, first upgrade NodeJS before continuing to upgrade the Donation tool. If you do not update NodeJS first, the donation tool will not start and bring your donation website offline!
  • Download the source code of this release (either with a git pull to the tag or by downloading the zip file from this page)
  • Run npm ci to update the required dependencies
server-donation-tool - Discord donate command for better interaction with discord users

Published by FlorianSW about 2 years ago

Changes

New features

I'm pleased to announce the availability of the following new functionality within the server donation tool:

  • A new feature utilizing Discord Slash Commands allows your discord users to easier interact with the Donation tool. It reduces the effort of a discord user to open a webpage before it is absolutely necessary. The discord donate command will allow a discord user to select a donation package and the preferred payment method before opening the webbrowser to finish the transaction.
  • The default theme was changed in the used colors and some other smaller design adjustments.
  • When a payment in PayPal is refunded, the perks of the donation will now be refuned for the donator.

Other changes

  • An avatar image is now shown next to the account the user is logged in with (Steam and Discord), if there is any.
  • The discord "Perks redeemed message" now contains the perks the package contains, as well as the perks the donator redeemed.
  • The user logout and user profile links in the header are not shown anymore when the user is not logged in.
  • There are two more notification types for the refunds feature, which is not enabled by default: SUCCESSFUL_REFUND and REFUND_ERROR. If you want to get these notifications as well, add these types to your discord.notifications.types array in the config.yml

Changes to Perks

Changes to the config.yml

  • New configuration options were added to the discord config object to support the new Discord Slash Commands feature. The options are within the commands key.

Update notes

In order to update to this release, follow these steps (additionally to any steps mentioned in the official documentation):

  • Ensure you have NodeJS version 16.6 or higher installed. You can check that by running node -v in your command line window. If it is not a supported version, first upgrade NodeJS before continuing to upgrade the Donation tool. If you do not update NodeJS first, the donation tool will not start and bring your donation website offline!
  • Download the source code of this release (either with a git pull to the tag or by downloading the zip file from this page)
  • Run npm ci to update the required dependencies
server-donation-tool - Stripe.com as a new, additional payment provider

Published by FlorianSW almost 3 years ago

Changes

New features

I'm pleased to announce the availability of the following new functionality within the server donation tool:

  • Stripe.com can now be used as an additional payment provider (additionally or instead of PayPal.com). Stripe.com is currently not available for subscriptions. If you want to offer subscribeable packages, you need to setup at least PayPal.com.
  • Donators can now unselect perks they do not want to redeem once they donated (#50)
  • On a new page "Account" a donator can inspect what perks they own right now and see the recent donations they made

Other changes

  • You can now define a separate name for a package used exclusively in the payment providers (e.g. Paypal) pages, like the statement/activity or checkout process pages. See the documentation for more information.
  • Fixed an issue that could allow donators to redeem perks of an order which is not yet paid
  • The discord notifications DONATED, SUBSCRIPTION_EXECUTED, SUCCESSFUL_REDEEM and REDEEM_ERROR now contain the perks of the package to better distinguish packages with the same name (#51)
  • The Dockerfile shipped in this repository was wrongfully using nodeJS 14.x as a base image, which is not suppored since version 1.3.0 of the server donation tool. The Dockerfile is now updated to a working version.
  • Each donation is now shareable by default. There is no need for a donator anymore to select if they want to donate and earn the packages for themselves or gift to someone else. This should simplify the donation process for donators.
  • Updated cftools-sdk to v1.7.0 to make resolving a CFTools ID of a Steam ID more efficient (one cause of #53). More optimizations to improve rate limit handling for CFTools related actions are planned.

Changes to Perks

  • The Priority Queue perk, powered by CFTools Cloud, now supports to be configured with multiple cftools server IDs. When one priority queue perk has multiple server IDs, the donator can choose from one of these servers where they want to get priority queue on. This can be useful in situations, where you would otherwise configure multiple different packages with exactly the same configuration, while only changing the server where the priority queue slot is redeemed. If you want to have one package, which grants priority queue on multiple servers, continue to configure one package with multiple priority queue perks.

Changes to the config.yml

  • The paypal key is now optional (conditionally, either stripe or paypal, or any future payment provider must be configured)
  • There is a new stripe configuration key to configure the Stripe.com payment provider

Update notes

In order to update to this release, follow these steps (additionally to any steps mentioned in the official documentation):

  • Ensure you have NodeJS version 16.6 or higher installed. You can check that by running node -v in your command line window. If it is not a supported version, first upgrade NodeJS before continuing to upgrade the Donation tool. If you do not update NodeJS first, the donation tool will not start and bring your donation website offline!
  • Download the source code of this release (either with a git pull to the tag or by downloading the zip file from this page)
  • Run npm ci to update the required dependencies
server-donation-tool - Donator features and fixes

Published by FlorianSW almost 3 years ago

Changes

New features

I'm pleased to announce the availability of the following new functionality within the server donation tool:

  • Donation perks are now automatically redeemed to donators when possible (#41). This is only done when the donation was made for the donator itself (not as a gift) and only, if it was not redeemed already (in case a donator wants to open the donation overview later).
  • A donator can now complete a pending subscription or cancel it (e.g. when they accidentally closed the PayPal "Approve subscription" tab or decided to not subscribe while already being in the payment screen) (#39).
  • A new donation notification hook was added (DONATED_PUBLIC), which can be used to send a notification to a public Discord channel. It does not contain sensitive information by default (except the Discord username of the donator). The message can be adjusted by server owners with the message key NOTIFICATIONS_PAYMENT_SUCCESSFUL_PUBLIC_DESCRIPTION. See the documentation for message overrides for more information regarding this. (#42)

Other changes

  • Donators can now buy a package as a gift, even when they are subscribed to this package
  • Fixed an issue where donations in currencies other than USD did not work (#36)
  • Fixed an error that made the app crash when a donation link was opened which was redeemed by another Steam account already
  • Fixed subscription plans in PayPal did not contain the package name of the package they were for
  • Fixed an issue where the tool crashed when the discord user was not in the discord server of the community and a redeem of a perk failed
  • Internally cleanup uncompleted donations
  • Fixed an issue that could result in a crash when starting the tool, when a database migration was due to be done. See the recent releases for more detail (Update notes).

Changes to Perks

No changes made to perks.

Changes to the config.yml

  • In discord.notifications.types a new type is allowed: DONATED_PUBLIC

Update notes

In order to update to this release, follow these steps (additionally to any steps mentioned in the official documentation):

  • Ensure you have NodeJS version 16.6 or higher installed. You can check that by running node -v in your command line window. If it is not a supported version, first upgrade NodeJS before continuing to upgrade the Donation tool. If you do not update NodeJS first, the donation tool will not start and bring your donation website offline!
  • Download the source code of this release (either with a git pull to the tag or by downloading the zip file from this page)
  • Run npm ci to update the required dependencies
server-donation-tool - Expand variety of options for donators (new NodeJS requirement)

Published by FlorianSW about 3 years ago

Changes

⚠️ This release requires at least NodeJS 16.6 or higher to work properly! ⚠️

New features

I'm pleased to announce the availability of the following new functionality within the server donation tool:

  • Donators are now able to either donate and redeem the perks that the selected package includes by themself, or, alternatively, donate and gift the perks to someone else. This is done by sharing the donation link (which is shown after the donation was made to the donator) with someone they know (e.g. through discord) by simple copy-pasting it. The donation link can be shared multiple times, however, only one person can redeem the package.
  • Subscriptions for packages: Donators can now subscribe to a package, in order to automatically donate the packages price in a monthly cycle (and benefit from the perks included in this package); see the documentation for more details
  • The Package selection page (the first screen a donator sees after login) was overhauled and has a new, more user-friendly design.

Other changes

  • Updated the cftools-sdk to version 1.6.2, which includes a fix for randomly occurring token expired responses from CFTools
  • Add a retry link for a failed perk notification in discord (to be shared with the donator when they open a support request with the community)
  • A donator will get a message from the donation discord bot when redeeming a perk failed. This message includes a retry link for the donator to retry the redeem at a later time (#24).
  • When redeeming a donation package, it will now start any expiring perks from the first time the donation is redeemed (which might be days after the donation was done). This also applies to gifted donations.
  • Whitelist entries (available since the last release) are now also shown in the "Perks you own section"
  • The donate page was redesigned (together with the new subscribe page) and now summarizes the donation for the donator
  • Fixed an issue where a donator could not redeem their perks with the 'Redeem' button on the donation page
  • Fixed an issue that made the donation target not working at the beginning of a month
  • Updated several dependencies, including Discord.JS, which increases the NodeJS version requirement from 14.x to 16.6 or higher

Changes to Perks

  • A new perk, BattleMetrics Reserved Slot, was introduced in this release. It has very basic support only (issuing a reserved slot). It does, however, not show that the perk was issued in the "Perks you own" section. Extending a reserved slot does also not work (a new slot will be issues only, while remaining the existing one). A manually permanently issued slot will also be ignored when issuing a new one. This is related to a limitation in the BattleMeteics API, which I'm currently trying to clarify with the BattleMetrics support in order to provide full compatibility in this tool. Because of these limitations, I've not added documentation for this perk, yet. If you want to use this perk, you should also keep in mind that the functionality might not be as expected, and it will change in the future :)

Changes to the config.yml

  • Packages can now be marked as "subscribeable" (as part of the support for Subscriptions)
  • There's a new object battlemetrics on the root of the configuration, which contains a key for the access_token issues by BattleMetrics to use the new BattleMetrics Reserved Slot perk

Update notes

In order to update to this release, follow these steps (additionally to any steps mentioned in the official documentation):

  • Ensure you have NodeJS version 16.6 or higher installed. You can check that by running node -v in your command line window. If it is not a supported version, first upgrade NodeJS before continuing to upgrade the Donation tool. If you do not update NodeJS first, the donation tool will not start and bring your donation website offline!
  • Download the source code of this release (either with a git pull to the tag or by downloading the zip file from this page
  • Run npm ci to update the required dependencies

When starting the new version the first time, you may see error messages like:

(node:13568) UnhandledPromiseRejectionWarning: Error: alter table `<table-name>` [...] `<column-name>` [...] - SQLITE_ERROR: duplicate column name: [...]
(Use `node --trace-warnings ...` to show where the warning was created)
(node:13568) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)

If this is the case, stop the app and start it again. If this error persists, please get in contact with us.
This error is related to the way of how the tool does database migrations. Generally, this should not impact the data integrity or functionality of the tool (except for the first start, where the error message occurs). We're investigating better ways to handle database migration paths in order to avoid this inconvenience.

server-donation-tool - Whitelisting perk and general improvements

Published by FlorianSW about 3 years ago

Changes

New features

I'm pleased to announce the availability of the following new functionality within the server donation tool:

  • There is a new perk: Whitelist. It will create a whitelist entry for the donator on the configured CFTools Cloud server. Same as the priority queue, it can either be a temporary whitelist (for x days) or a permanent one. See the documentation for more information.
  • Donators can now leave a custom message when donating. This message will be delivered with the DONATED discord notification type, for now, only. If you did not setup this notification, yet, you will not see these messages for now (feedback is welcome where this message could be displayed at additionally).

Other changes

  • Fix unresponsive error when donation steam ID does not match current users steam ID
  • Fix exposing steam ID used for a donation to a potentially other user
  • The PayPal checkout screen will now show better suited information:
    • The shipping address section is now not shown anymore
    • The donator can inspect the chosen product on the checkout screen again, if needed
    • The transaction will be classified as a donation in the donators transaction history

Changes to Perks

There were no changes made to existing perks.

Changes to the config.yml

The following changes were made to the structure of the config.yml file:

  • WHITELIST is a new perk type for the packages.perks configuration option.

Update notes

In order to update to this release, follow these steps (additionally to any steps mentioned in the official documentation):

  • Download the source code of this release (either with a git pull to the tag or by downloading the zip file from this page
  • Run npm ci to update the required dependencies
server-donation-tool - Expiring Discord roles and donation targets

Published by FlorianSW about 3 years ago

Changes

New features

I'm pleased to announce the availability of the following new functionality within the server donation tool:

  • Expiring discord roles: Same as with priority queue, the Discord Role perk now can have an expiration in days when the role should be removed from the donator again
  • Donation targets: Better communicate what amount of donation you target for in order to keep the services running. You can configure a monthly donation target, where donations are counted up to. You can change the message that is visible with the donation target text using the Message Overrides feature. See the documentation for donation targets for more information.
  • Privacy Policy: With the recent changes to the Server Donation Tool, it is wise to also explain your donators what data the tool is collecting, processing and for what reason it does so. The privacy policy is generated automatically based on partials and should suit most use cases. However, if you see the need to update it or use your own policy, you can configure your own partials as well (with the app.privacyPolicy.partials configuration options).

Other changes

  • Improved how links to the donation tool are rendered in social media (e.g. Discord)
  • You can now disable donation packages (use this in order to "remove" a package instead of deleting it's definition)
  • You can configure a Google Analytics measurement ID to analyze the usage of the Donation tool with Google Analytics (the privacy policy is updated automatically to include a section for GA once it is configured). IP anonymization is enabled by default and can not be disabled for privacy reasons.

Changes to Perks

The following Perk integrations where changed:

  • Discord role assignment: A new optional configuration parameter, amountInDays, was added in order to enable expiring discord roles

Changes to the config.yml

The following changes were made to the structure of the config.yml file:

  • Added a new object under the community section: donationTarget, it has the following structure (parent keys are included for better orientation):
app:
  community:
    donationTarget:
      monthly: 100.00

See the config.full.yml for a full description and documentation about the new configuration options. See the corresponding donation targets documentation as well.

  • Added a new configuration setting to configure Google Analytics:
app:
  googleAnalytics:
    trackingId: GA-ABC123

Update notes

In order to update to this release, follow these steps (additionally to any steps mentioned in the official documentation):

  • Download the source code of this release (either with a git pull to the tag or by downloading the zip file from this page
  • Run npm ci to update the required dependencies
server-donation-tool - Initial release

Published by FlorianSW about 3 years ago

Changes

New features

This is the initial release of the Server Donation Tool. It includes, among others, the following major features and improvements:

  • Paypal integration to process donations
  • Configurable Packages
  • Configurable Perk (a set of benefits a donator earns for a donating for a specific package)
  • Packages with a variable price tag
  • Login with Discord and additionally with Steam

Changes to Perks

The following Perk integrations where added:

  • Discord role assignment
  • Priority Queue slot assignment (to the steam ID), powered by CFTools Cloud
  • Freetext perk

Changes to the config.yml

As this is the initial release, the configuration YAML file is identical to the example config file and no changes where made. In future releases, you'll find relevant changes of the configuration here.

Update notes

In order to update to this release, follow these steps (additionally to any steps mentioned in the official documentation):

  • Download the source code of this release (either with a git pull to the tag or by downloading the zip file from this page
  • Run npm ci to update the required dependencies
Badges
Extracted from project README
Discord Docker Pulls Tests Documentation
Related Projects