From a9868cc89722fb8c1af4e6c85f83b114910a0cdd Mon Sep 17 00:00:00 2001 From: spikehidden Date: Sun, 12 Jun 2022 03:28:19 +0200 Subject: [PATCH 01/11] Separated config from actual script. - Separated config from actual script. - Included configs for Auto Generate Addon --- SpikeCodeRedeem-Config.dsc | 113 +++++++++++++++++++++++++++++++++++++ SpikeCodeRedeem.dsc | 25 -------- 2 files changed, 113 insertions(+), 25 deletions(-) create mode 100644 SpikeCodeRedeem-Config.dsc diff --git a/SpikeCodeRedeem-Config.dsc b/SpikeCodeRedeem-Config.dsc new file mode 100644 index 0000000..4cb2761 --- /dev/null +++ b/SpikeCodeRedeem-Config.dsc @@ -0,0 +1,113 @@ +# ++++++ License Notice ++++++ +# +# The following code is distributed under +# the CC-BY-SA-4.0 license (Attribution-ShareAlike 4.0 International). +# +# | You are free to: +# - Share +# copy and redistribute the material in any medium or format +# +# - Adapt +# remix, transform, and build upon the material +# for any purpose, even commercially. +# +# | Under the following terms: +# - Attribution +# You must give appropriate credit, +# provide a link to the license, and indicate if changes were made. +# You may do so in any reasonable manner, +# but not in any way that suggests the licensor endorses you or your use. +# +# - ShareAlike +# If you remix, transform, or build upon the material, +# you must distribute your contributions under the same license as the original. +# +# - A copy of the full license can be found here: https://creativecommons.org/licenses/by-sa/4.0/ +# +# ++++++ License End ++++++ +# +# +---------------------------------+ +# | | +# | Redeemable Codes - Configs | +# | | +# | This is only the config file | +# | DO NOT DELETE THIS FILE! | +# | | +# +---------------------------------+ +# +# @author Spikehidden +# @date 2022/06/10 +# @denizen-build 1.2.4-SNAPSHOT (build 1766-REL) +# @script-version 1.0 +# +# + REQUIREMENTS + +# - None +# +# + Required or recommended for some features + +# - A Pastebin Account + DevKey if you want to use that feature. + +# + CONTACT + +# +# If you need help with the setup +# or want me to add a feature please +# contact me via Twitter or Discord +# or open an issue at GitHub! +# +# - Twitter: https://spikey.biz/twitter +# - Discord: https://spikey.biz/discord +# - Twitch: https://spikey.biz/twitch +# - Ko-Fi: https://spikey.biz/kofi + +# ++++++ Config ++++++ +SpikeCodeRedeemData: + type: data + # ------ Pastebin ------ + # Do you want to use private or public pastes on Pastebin.com ? + # You can find more info in the readme at https://github.com/spikehidden/CodeRedeemScript + # Default is false as it is not recommended to use this feature when bulk creating codes! + UsePastebin: false + # Put your pastebin devKey in here as it's not possible to retrieve it from the "secrets.secret" file at the moment. + # As soon as it is possible we'll do it that way. + devKey: Put Your Key Here! + + # ------ Auto Generate ------ + # For these feature you need the Auto Generate Addon + auto: + # The prefix of the auto genereated code. + # Set to "none" (without quotes) to disable. + prefix: daily- + + # The name of the code after the prefix. + # Use "random" (without quotes) to generate a random code + code: random + + # A list of commands that should be executed when redeeming the code. + commands: + - say this is a command. + - minecraft:give

64 diamonds + + # The intervall in hours of when the code gets generated. + interval: 24 + + # Amount of how many players can use the code. + # Set to "unlimited" (without quotes) to have no limit. + amount: unlimited + + # Should we delete the old code? + # Set to false to keep the old one but you need to + # set auto.code to random then or it will throw errors. + delete: true + + + # ------ Debug & Log ------ + # Shall redemption be logged? + redemptionLog: true + logPath: spikehidden/logs/ + + # ------ Advanced Settings ------ + # Don't change this unless Pastebin changed their API endpoints + API: + endpoint: pastebin.com/api/ + data: api_raw.php + login: api_login.php + paste: api_post.php \ No newline at end of file diff --git a/SpikeCodeRedeem.dsc b/SpikeCodeRedeem.dsc index c076412..a4c434a 100644 --- a/SpikeCodeRedeem.dsc +++ b/SpikeCodeRedeem.dsc @@ -58,31 +58,6 @@ # - Twitch: https://spikey.biz/twitch # - Ko-Fi: https://spikey.biz/kofi -# + Config + -SpikeCodeRedeemData: - type: data - # ------ Pastebin ------ - # Do you want to use private or public pastes on Pastebin.com ? - # You can find more info in the readme at https://github.com/spikehidden/CodeRedeemScript - # Default is false as it is not recommended to use this feature when bulk creating codes! - UsePastebin: false - # Put your pastebin devKey in here as it's not possible to retrieve it from the "secrets.secret" file at the moment. - # As soon as it is possible we'll do it that way. - devKey: Put Your Key Here! - - # ------ Debug & Log ------ - # Shall redemption be logged? - redemptionLog: true - logPath: spikehidden/logs/ - - # ------ Advanced Settings ------ - # Don't change this unless Pastebin changed their API endpoints - API: - endpoint: pastebin.com/api/ - data: api_raw.php - login: api_login.php - paste: api_post.php - # =========== DO NOT EDIT ANYTHING BELOW THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING! =========== # ++++++ Data for Updater Scripts ++++++ From d4361777166e6728566285a5c20ccc0050cebe30 Mon Sep 17 00:00:00 2001 From: spikehidden Date: Sun, 12 Jun 2022 03:28:49 +0200 Subject: [PATCH 02/11] Create SpikeCodeRedeemAutoGenerate.dsc Created Auto Generate Addon --- SpikeCodeRedeemAutoGenerate.dsc | 116 ++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 SpikeCodeRedeemAutoGenerate.dsc diff --git a/SpikeCodeRedeemAutoGenerate.dsc b/SpikeCodeRedeemAutoGenerate.dsc new file mode 100644 index 0000000..2485ed6 --- /dev/null +++ b/SpikeCodeRedeemAutoGenerate.dsc @@ -0,0 +1,116 @@ +# ++++++ License Notice ++++++ +# +# The following code is distributed under +# the CC-BY-SA-4.0 license (Attribution-ShareAlike 4.0 International). +# +# | You are free to: +# - Share +# copy and redistribute the material in any medium or format +# +# - Adapt +# remix, transform, and build upon the material +# for any purpose, even commercially. +# +# | Under the following terms: +# - Attribution +# You must give appropriate credit, +# provide a link to the license, and indicate if changes were made. +# You may do so in any reasonable manner, +# but not in any way that suggests the licensor endorses you or your use. +# +# - ShareAlike +# If you remix, transform, or build upon the material, +# you must distribute your contributions under the same license as the original. +# +# - A copy of the full license can be found here: https://creativecommons.org/licenses/by-sa/4.0/ +# +# ++++++ License End ++++++ +# +# +---------------------------------+ +# | | +# | Auto Generate Codes | +# | | +# | An Addon for | +# | Spikehidden's Redeemable Codes | +# | | +# +---------------------------------+ +# +# @author Spikehidden +# @date 2022/06/10 +# @denizen-build 1.2.4-SNAPSHOT (build 1766-REL) +# @script-version 1.0 +# +# + REQUIREMENTS + +# - Spikehidden Redeemable Codes | https://github.com/spikehidden/ +# +# + Required or recommended for some features + +# - A Pastebin Account + DevKey if you want to use that feature. + +# + CONTACT + +# +# If you need help with the setup +# or want me to add a feature please +# contact me via Twitter or Discord +# or open an issue at GitHub! +# +# - Twitter: https://spikey.biz/twitter +# - Discord: https://spikey.biz/discord +# - Twitch: https://spikey.biz/twitch +# - Ko-Fi: https://spikey.biz/kofi + +# ++++++ World ++++++ +SpikeCodeRedeemAutoEvents: + type: world + debug: false + events: + #- Check if core script is loaded + after server start: + - if : + - flag server SpikeCodeRedeem.addon.autogenerate + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Add-On <&dq>Auto Generate Codes<&dq> is loaded." to_console + - else: + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Add-On <&dq>Auto Generate Codes<&dq> can't be used without core script." to_console + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Download core script from https://github.com/spikehidden/CodeRedeemScript" to_console + + #-The actual magic happens here + on system time hourly: + - define interval + # Check if an interval was set and if not throw an error to the console. + - if <[interval]> == null: + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r There isn't an intervall specified for the auto generate feature." to_console + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Please check the <&dq>SpikeCodeRedeem-Config.dsc<&dq> in your Denizen Script directory" to_console + # Check if the hour flag already exists. + - if !: + - flag server spikeCodeRedeem.auto.hour:0 + + - define hour + - if <[hour]> >= <[interval]>: + - define code + - define prefix + - define amount + - define command + - define delete + - if <[code]> == null || <[prefix]> == null || <[amount]> == null || <[command]> == null || <[delete]> == null: + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Couldn't auto generate Code. There are missing arguments in the config." to_console + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Please check the <&dq>SpikeCodeRedeem-Config.dsc<&dq> in your Denizen Script directory" to_console + - stop + # Delete old code + - if <[delete]> && : + - define lastCode + - if ]>: + - flag server redeemableCodes.<[lastCode]>:! + - flag server spikeCodeRedeem.auto.lastCode:! + # Delete prefix if it's "none" + - if <[prefix]> == none: + - define prefix:! + # Inject code generator script. + - inject SpikeCodeCreateCode + - flag server spikeCodeRedeem.auto.lastCode:<[code]> + + #- Send current code to player on join. + after player join permission:spikehidden.coderedeem.autocode: + - if : + - define interval + - define code + - if ]>: + - narrate "The current <[interval]> hours code is <[code]>." \ No newline at end of file From bf81408933009c30fd348bfb71937a4ee9451766 Mon Sep 17 00:00:00 2001 From: spikehidden Date: Sun, 12 Jun 2022 03:29:39 +0200 Subject: [PATCH 03/11] Update README.md Added Permissions for Auto Generate Addon Note: Transfer to Wiki in future? --- README.md | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9fa2823..dfe3c48 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,18 @@ [![GitHub release](https://img.shields.io/github/release/Spikehidden/CodeRedeemScript?include_prereleases=&sort=semver&color=blue)](https://github.com/Spikehidden/CodeRedeemScript/releases/) -[![License](https://img.shields.io/badge/License-CC--BY--SA--4.0-blue)](#LICENSE) +[![License](https://img.shields.io/github/license/Spikehidden/CodeRedeemScript?logo=Creative%20commons)](#LICENSE) [![issues - CodeRedeemScript](https://img.shields.io/github/issues/Spikehidden/CodeRedeemScript)](https://github.com/Spikehidden/CodeRedeemScript/issues) -[![Discord - Support](https://img.shields.io/badge/Discord-Support-5865F2?logo=Discord&logoColor=white)](https://spikey.biz/discord) +[![Discord](https://img.shields.io/discord/731894292557201529?label=Discord&logo=Discord)](https://spikey.biz/discord) [![Ko-Fi - Donate](https://img.shields.io/badge/Ko--Fi-Donate-FF5E5B?logo=Ko-Fi&logoColor=white)](https://spikey.biz/kofi) [![Twitch - Subscribe](https://img.shields.io/badge/Twitch-Subscribe-9146FF?logo=Twitch&logoColor=white)](https://spikey.biz/twitch) +[![Spiget Stars](https://img.shields.io/spiget/stars/102540?label=spigotmc.org&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAAmklEQVQ4jaVTORKAIAzcOD6CRt9AbWPHv%2F2Bb9CGX8RGHCQHzrgVQ5LdTQgECVbuWpA4GKjJ1NyhJ8W7H%2FcI2lbU1lwHRd1z0W0BAM6wmjFtMFyr1sVz2ETNCKU3rXjK20ugEI29KWvEAEARDICodWCpU5TDpGjM4Miy%2BLbMjQtzE7U3L7kPiUfg4ctf8bGkzEvKDHxcJA%2B%2FCS5YrDUokhVf1AAAAABJRU5ErkJggg%3D%3D&style=flat)](https://www.spigotmc.org/resources/102540/) +[![GitHub all releases](https://img.shields.io/github/downloads/Spikehidden/CodeRedeemScript/total?logo=github&style=flat)](https://github.com/spikehidden/CodeRedeemScript/releases/latest) +[![GitHub stars](https://img.shields.io/github/stars/spikehidden/CodeRedeemScript)](https://github.com/spikehidden/CodeRedeemScript/stargazers) + # Spikehidden's Code Redeem Script A Denizen Script do create redeemable codes with pastebin support. -## Configs +## Config ### __**Default Config**__ ```yaml @@ -64,6 +68,23 @@ Currently we are supporting export formats for easier import of codelists for th If you want me to support more bots/software then just open an issue to request it and I happily will if possible. +## Commands & Permissions +### Core Script +| Command | arguments | Feature | Permissions | +| :----------------------- | :----------------------------------------------------------- | :---------------------------------- | :------------------------------------------------------------------------------- | +| redeemadmin create | (\/random) \ (\/group) | Create a new code | spikehidden.admin, spikehidden.coderedeem.admin, spikehidden.coderedeem.codes | +| redeemadmin edit | (code/group) \ (amount/command) \ | Edit a code or group | spikehidden.admin, spikehidden.coderedeem.admin, spikehidden.coderedeem.codes | +| redeemadmin delete | (code/group) \ | Delete a code or group | spikehidden.admin, spikehidden.coderedeem.admin, spikehidden.coderedeem.codes | +| redeem | \ | Redeem a code | spikehidden.admin, spikehidden.coderedeem.admin, spikehidden.coderedeem.redeem | +| bulkcreate | (\/random) \ (\/group) | Create a bunch of codes (group) | spikehidden.admin, spikehidden.coderedeem.admin, spikehidden.coderedeem.codes | +| pastebin | \ \ | Get and save your pastebin userkey | spikehidden.admin, spikehidden.coderedeem.admin, spikehidden.coderedeem.pastebin | +| commandgroup | "\" "\" (...) | Creates a temporary command group | spikehidden.admin, spikehidden.coderedeem.admin, spikehidden.coderedeem.codes | + +### Auto Generate Code AddOn +| Command | arguments | Feature | Permissions | +| :----------- | :-------- | :---------------------------------------- | :------------------------------ | +| (No command) | | Permission to get generated code on join. | spikehidden.coderedeem.autocode | + ## License Released under [CC-BY-SA-4.0](/LICENSE.md) by [@Spikehidden](https://github.com/Spikehidden). From bce6b2dad7cc168d39948e534b03dbdaefedb98d Mon Sep 17 00:00:00 2001 From: spikehidden Date: Sun, 12 Jun 2022 06:41:42 +0200 Subject: [PATCH 04/11] Updated Updater Settings --- SpikeCodeRedeem.dsc | 13 +++++++++---- SpikeCodeRedeemAutoGenerate.dsc | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/SpikeCodeRedeem.dsc b/SpikeCodeRedeem.dsc index a4c434a..42385eb 100644 --- a/SpikeCodeRedeem.dsc +++ b/SpikeCodeRedeem.dsc @@ -61,14 +61,18 @@ # =========== DO NOT EDIT ANYTHING BELOW THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING! =========== # ++++++ Data for Updater Scripts ++++++ +# This is in advance for a future project of mine. SpikeCodeRedeemUpdate: type: data - Github: + github: profile: Spikehidden respository: CodeRedeemScript - filename: SpikeCodeRedeem.dsc - version: 1.0 + files: + - SpikeCodeRedeem.dsc + - SpikeCodeRedeem-Config.dsc + version: 1.2 + prerelease: false # ++++++ Tasks ++++++ # + Create Code Task + @@ -158,7 +162,8 @@ SpikeCodeRedeemSystem: - flag server SpikeCodeRedeem - if : - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Spikehidden's Auto Updater has been found!" to_console - - flag server SpikehiddenUpdater.data:->:SpikeCodeRedeem.update + - flag server SpikeCodeRedeemUpdate:github + - flag server SpikehiddenUpdater.data:->:SpikeCodeRedeemUpdate - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Providing Update data for the Spikehidden's Auto Updater" to_console on shutdown: - flag server SpikeCodeRedeem:! diff --git a/SpikeCodeRedeemAutoGenerate.dsc b/SpikeCodeRedeemAutoGenerate.dsc index 2485ed6..4cd29aa 100644 --- a/SpikeCodeRedeemAutoGenerate.dsc +++ b/SpikeCodeRedeemAutoGenerate.dsc @@ -58,12 +58,33 @@ # - Twitch: https://spikey.biz/twitch # - Ko-Fi: https://spikey.biz/kofi +# =========== DO NOT EDIT ANYTHING BELOW THIS LINE IF YOU DON'T KNOW WHAT YOU'RE DOING! =========== + +# ++++++ Data for Updater Scripts ++++++ +# This is in advance for a future project of mine. +SpikeCodeRedeemAutoUpdate: + type: data + + github: + profile: Spikehidden + respository: CodeRedeemScript + files: + - SpikeCodeRedeemAutoGenerate.dsc + version: 1.2 + prerelease: false + # ++++++ World ++++++ SpikeCodeRedeemAutoEvents: type: world debug: false events: #- Check if core script is loaded + on server start: + - if : + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Spikehidden's Auto Updater has been found!" to_console + - flag server SpikeCodeRedeemAutoUpdate:github + - flag server SpikehiddenUpdater.data:->:SpikeCodeRedeemAutoUpdate + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Providing Update data of Auto Generate Addon for Spikehidden's Auto Updater" to_console after server start: - if : - flag server SpikeCodeRedeem.addon.autogenerate From 7a119cc91a989865adad3e3ebf754dc87fd0bc52 Mon Sep 17 00:00:00 2001 From: spikehidden Date: Sun, 12 Jun 2022 23:06:29 +0200 Subject: [PATCH 05/11] =?UTF-8?q?=E2=9E=A1=EF=B8=8F=F0=9F=93=82=20Moved=20?= =?UTF-8?q?scripts=20to=20new=20directory.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Denizen/scripts/SpikeCodeRedeem-Config.dsc | 0 .../Denizen/scripts/SpikeCodeRedeem.dsc | 0 .../Denizen/scripts/SpikeCodeRedeemAutoGenerate.dsc | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename SpikeCodeRedeem-Config.dsc => plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc (100%) rename SpikeCodeRedeem.dsc => plugins/Denizen/scripts/SpikeCodeRedeem.dsc (100%) rename SpikeCodeRedeemAutoGenerate.dsc => plugins/Denizen/scripts/SpikeCodeRedeemAutoGenerate.dsc (100%) diff --git a/SpikeCodeRedeem-Config.dsc b/plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc similarity index 100% rename from SpikeCodeRedeem-Config.dsc rename to plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc diff --git a/SpikeCodeRedeem.dsc b/plugins/Denizen/scripts/SpikeCodeRedeem.dsc similarity index 100% rename from SpikeCodeRedeem.dsc rename to plugins/Denizen/scripts/SpikeCodeRedeem.dsc diff --git a/SpikeCodeRedeemAutoGenerate.dsc b/plugins/Denizen/scripts/SpikeCodeRedeemAutoGenerate.dsc similarity index 100% rename from SpikeCodeRedeemAutoGenerate.dsc rename to plugins/Denizen/scripts/SpikeCodeRedeemAutoGenerate.dsc From 56e68a47e2ebd69ef7bbfa06e358097b3b9e4652 Mon Sep 17 00:00:00 2001 From: spikehidden Date: Mon, 13 Jun 2022 00:34:36 +0200 Subject: [PATCH 06/11] =?UTF-8?q?=E2=9C=A8=20Added=20first=20snippets=20fo?= =?UTF-8?q?r=20Wizebot=20Addon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scripts/SpikeCodeRedeem-Config.dsc | 12 ++- .../scripts/SpikeCodeRedeem-Wizebot.dsc | 88 +++++++++++++++++++ 2 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 plugins/Denizen/scripts/SpikeCodeRedeem-Wizebot.dsc diff --git a/plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc b/plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc index 4cb2761..572df06 100644 --- a/plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc +++ b/plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc @@ -61,6 +61,7 @@ # ++++++ Config ++++++ SpikeCodeRedeemData: type: data + # + Core configs # ------ Pastebin ------ # Do you want to use private or public pastes on Pastebin.com ? # You can find more info in the readme at https://github.com/spikehidden/CodeRedeemScript @@ -70,6 +71,7 @@ SpikeCodeRedeemData: # As soon as it is possible we'll do it that way. devKey: Put Your Key Here! + # + Add-On configs. # ------ Auto Generate ------ # For these feature you need the Auto Generate Addon auto: @@ -97,14 +99,20 @@ SpikeCodeRedeemData: # Set to false to keep the old one but you need to # set auto.code to random then or it will throw errors. delete: true + + # ------ Wizebot API ------- + # For these feature you need the Wizebot Addon + wizebot: + web: + port: 80 - # ------ Debug & Log ------ + #+ ------ Debug & Log ------ # Shall redemption be logged? redemptionLog: true logPath: spikehidden/logs/ - # ------ Advanced Settings ------ + #+ ------ Advanced Settings ------ # Don't change this unless Pastebin changed their API endpoints API: endpoint: pastebin.com/api/ diff --git a/plugins/Denizen/scripts/SpikeCodeRedeem-Wizebot.dsc b/plugins/Denizen/scripts/SpikeCodeRedeem-Wizebot.dsc new file mode 100644 index 0000000..fbcc515 --- /dev/null +++ b/plugins/Denizen/scripts/SpikeCodeRedeem-Wizebot.dsc @@ -0,0 +1,88 @@ +# ++++++ License Notice ++++++ +# +# The following code is distributed under +# the CC-BY-SA-4.0 license (Attribution-ShareAlike 4.0 International). +# +# | You are free to: +# - Share +# copy and redistribute the material in any medium or format +# +# - Adapt +# remix, transform, and build upon the material +# for any purpose, even commercially. +# +# | Under the following terms: +# - Attribution +# You must give appropriate credit, +# provide a link to the license, and indicate if changes were made. +# You may do so in any reasonable manner, +# but not in any way that suggests the licensor endorses you or your use. +# +# - ShareAlike +# If you remix, transform, or build upon the material, +# you must distribute your contributions under the same license as the original. +# +# - A copy of the full license can be found here: https://creativecommons.org/licenses/by-sa/4.0/ +# +# ++++++ License End ++++++ +# +# +---------------------------------+ +# | | +# | Redeemable Codes - Configs | +# | | +# | This is only the config file | +# | DO NOT DELETE THIS FILE! | +# | | +# +---------------------------------+ +# +# @author Spikehidden +# @date 2022/06/10 +# @denizen-build 1.2.4-SNAPSHOT (build 1766-REL) +# @script-version 1.2 +# +# + REQUIREMENTS + +# - Spikehidden Redeemable Codes | https://github.com/spikehidden/ +# +# + Required or recommended for some features + +# - A Pastebin Account + DevKey if you want to use that feature. + +# + CONTACT + +# +# If you need help with the setup +# or want me to add a feature please +# contact me via Twitter or Discord +# or open an issue at GitHub! +# +# - Twitter: https://spikey.biz/twitter +# - Discord: https://spikey.biz/discord +# - Twitch: https://spikey.biz/twitch +# - Ko-Fi: https://spikey.biz/kofi + +# ++++++ World ++++++ +SpikeCodeRedeemWizebotSystem: + type: world + debug: true + events: + #- Check if core script is loaded + on server start: + - if : + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Spikehidden's Auto Updater has been found!" to_console + - flag server SpikeCodeRedeemAutoUpdate:github + - flag server SpikehiddenUpdater.data:->:SpikeCodeRedeemAutoUpdate + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Providing Update data of Auto Generate Addon for Spikehidden's Auto Updater" to_console + after server start: + - if : + - define port + - flag server SpikeCodeRedeem.addon.wizebot + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Add-On <&dq>Wizebot<&dq> is loaded." to_console + - webserver start + - else: + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Add-On <&dq>Wizebot<&dq> can't be used without core script." to_console + - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Download core script from https://github.com/spikehidden/CodeRedeemScript" to_console + +SpikeCodeRedeemWizebotAPI: + type: world + debug: true + events: + webserver web request method:post path:/wizebot: + - \ No newline at end of file From a85b39b5de05fd6cb69675fa6f2a2a8c5fd6dee8 Mon Sep 17 00:00:00 2001 From: spikehidden Date: Sat, 18 Jun 2022 18:24:48 +0200 Subject: [PATCH 07/11] Update .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index fd76dbc..1f629ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *.bat *.ps1 -*_ignore.* \ No newline at end of file +*_ignore.* +*.psd From b94a10dcc9ad93b0f64db6140e4c604b18161cac Mon Sep 17 00:00:00 2001 From: spikehidden Date: Sat, 18 Jun 2022 20:06:21 +0200 Subject: [PATCH 08/11] =?UTF-8?q?=E2=9C=A8=20Added=20duration.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added the ability to set a duration for Codes and Code groups. --- plugins/Denizen/scripts/SpikeCodeRedeem.dsc | 62 ++++++++++++++------- 1 file changed, 42 insertions(+), 20 deletions(-) diff --git a/plugins/Denizen/scripts/SpikeCodeRedeem.dsc b/plugins/Denizen/scripts/SpikeCodeRedeem.dsc index 42385eb..bf0865f 100644 --- a/plugins/Denizen/scripts/SpikeCodeRedeem.dsc +++ b/plugins/Denizen/scripts/SpikeCodeRedeem.dsc @@ -90,6 +90,8 @@ SpikeCodeCreateCode: - if <[prefix].exists>: - define code <[prefix]><[code]> # Sets the amount how often the code can be used. + - if <[duration]> != unlimited: + - flag server redeemableCodes.<[code]> expire:<[duration]> - flag server redeemableCodes.<[code]>.amount:<[amount]> # Sets the commands that shall be executed! - if <[command]> == group: @@ -98,6 +100,7 @@ SpikeCodeCreateCode: - flag server redeemableCodes.<[code]>.commands: - flag server redeemableCodes.<[code]>.commands:->:<[command]> # Check if a permission shall be set. + # Not used at the moment - if <[permission]> != null: - define msg 'The code "<[code]>" with <[amount]> possible redemption(s) and the "<[permission]>" permission required was created!' - flag server redeemableCodes.<[code]>.permission:<[permission]> @@ -214,7 +217,7 @@ SpikeCodeRedeemAdminCommand: debug: false name: redeemsettings description: Admin Settings for Spike's redeemable codes. - usage: /redeemsettings <&lb>create/edit/delete<&rb> <&lb><<>code<>>/random<&rb> <&lb><<>amount of uses<>>/unlimited<&rb> <&lb><<>command<>>/group:<<>command group<>><&rb> (<<>permission<>>) + usage: /redeemsettings help - for help aliases: - redeemadmin - codeadmin @@ -225,7 +228,7 @@ SpikeCodeRedeemAdminCommand: allowed help: - determine |||||| tab completions: - 1: create|edit|delete + 1: create|edit|delete|help tab complete: - if >= 2: # If create @@ -235,8 +238,10 @@ SpikeCodeRedeemAdminCommand: - else if == 3: - determine 1|10|100|unlimited - else if == 4: + - determine 1s|1m|1h|1d|1w|1y|unlimited + - else if == 5: - determine group| - - else if >= 5: + - else if >= 6: - determine <<>argument<>> # If Edit - else if == edit: @@ -306,10 +311,11 @@ SpikeCodeRedeemAdminCommand: # define stuff for the create command - define code <[args].get[2].if_null[null]> - define amount <[args].get[3].if_null[null]> - - define command <[args].get[4].to[last].space_separated.if_null[null]> + - define duration <[args].get[4].as_duration.if_null[null]> + - define command <[args].get[5].to[last].space_separated.if_null[null]> - define permission null # Check if arguments exist - - if <[amount]> == null || <[command]> == null: + - if <[amount]> == null || <[command]> == null || <[duration]> == null: - define msg "Missing arguments!" # Check if amount is decimal or unlimited - else if !<[amount].is_decimal> && <[amount]> != unlimited: @@ -433,6 +439,13 @@ SpikeCodeRedeemAdminCommand: - define msg "The code group <&dq><[name]><&dq> with <[codeCount]> code/s was succesfully deleted." - else: - define msg 'The specified group does not exits!"' + + # - Help + - default: + - define msg "<&l><&9>Help for '/redeemsettings'<&r><&nl>" + - define msg "<[msg]>/redeemsettings create <&lb><<>code<>>|random<&rb> <&lb><<>uses<>>|unlimited<&rb> <&lb><<>duration<>>|unlimited<&rb> <&lb><<>command<>>|group<&rb><&nl>" + - define msg "<[msg]>/redeemsettings edit <&lb>code|group<&rb> <&lb><<>ID<>><&rb> <&lb>amount|command|duration<&rb> <&lb><<>value<>><&rb><&nl>" + - define msg "<[msg]>/redeemsettings delete <&lb><<>code|group<&rb> <&lb><<>name<>><&rb>" - narrate <[msg]> # + Command for redeeming codes. @@ -527,7 +540,7 @@ SpikeCodeRedeemBulkCreate: debug: false name: bulkcodecreate description: Admin Settings for Spike's redeemable codes. - usage: /bulkcodecreate <&lb><<>code group name<>><&rb> <&lb><<>amount of codes<>><&rb> <&lb><<>command<>>/group<<>command group<>><&rb> (<<>format for list export<>>) (<<>permission<>>) + usage: /bulkcodecreate <&lb><<>code group name<>><&rb> <&lb><<>Amount_of_Codes<>><&rb> <&lb><<>Duration<>><&rb> <&lb><<>command<>>/group<<>command group<>><&rb> (<<>format for list export<>>) (<<>permission<>>) aliases: - bulkcreate permission: spikehidden.admin;spikehidden.coderedeem.admin;spikehidden.coderedeem.codes @@ -538,36 +551,40 @@ SpikeCodeRedeemBulkCreate: 1: <<>Code_Group_Name<>> # amount of codes 2: 1|2|3|4|5|10|100|1000 + # duration + 3: 1s|1m|1h|1d|1w|1y # format - 3: list|wizebot + 4: list|wizebot default: tab complete: - - if == 4: + - if == 5: - determine group| - - else if == 5: + - else if == 6: - determine <&lb>prefix<&rb> - - else if >= 5: + - else if >= 7: - determine "Too many arguments! Try putting the arguments in quotes (<&dq><&dq>)!" script: - define args + # 1 - define group <[args].get[1].if_null[null]> + # 2 - define groupAmount <[args].get[2].if_null[null]> - - define command <[args].get[4].if_null[null]> - - define format <[args].get[3].if_null[null]> - - define prefix <[args].get[5].if_null[]> + # 3 + - define duration <[args].get[3].if_null[null]> + # 4 + - define format <[args].get[4].if_null[null]> + # 5 + - define command <[args].get[5].if_null[null]> + # 6 + - define prefix <[args].get[6].if_null[]> - define UsePastebin -# - define permission +# - define permission - define permission null - define amount 1 # check for missing arguments - - if <[group]> == null || <[groupAmount]> == null || <[command]> == null: - - narrate "Missing arguments!" - - stop - # - Create - # Check if arguments exist - - if <[groupAmount]> == null || <[command]> == null: + - if <[groupAmount]> == null || <[duration]> == null || <[command]> == null: - define msg "Missing arguments!" # Check if groupAmount is decimal - else if !<[groupAmount].is_decimal>: @@ -585,6 +602,9 @@ SpikeCodeRedeemBulkCreate: - narrate 'Could not create an unused random code group name. Try again or if this error persists open an issue on GitHub.' - stop - define group ]> + # Set group expire if duration is not unlimited + - if <[duration]> != unlimited: + - flag server redeemableGroups.<[group]> expire:<[duration]> # Sets the amount how may codes are in the group. - flag server redeemableGroups.<[group]>.amount:<[amount]> # Creates the specified amount of codes. @@ -604,6 +624,7 @@ SpikeCodeRedeemBulkCreate: # If so set the permission. - else: - define msg 'The group "<[group]>" with <[amount]> possible redemption was created!' + # Run pastbin task if it is set in config - if <[UsePastebin]>: - choose <[format]>: - case list: @@ -615,6 +636,7 @@ SpikeCodeRedeemBulkCreate: - run SpikeCodeSendPastebin def:|<[group]>|<[csv].separated_by[<&nl>]>|<[format]> - default: - run SpikeCodeSendPastebin def:|<[group]>|.codes].separated_by[<&nl>]>|list + # If not save list localy. - else: - choose <[format]>: - case list: From 32d55a81c27445a7ca74837f657d30fa06a2ec31 Mon Sep 17 00:00:00 2001 From: spikehidden Date: Sun, 19 Jun 2022 18:28:23 +0200 Subject: [PATCH 09/11] Wizebot API Integration AddOn ready - Added Configs for Wizebot API - Added Wizebot API AddOn Script --- .../scripts/SpikeCodeRedeem-Config.dsc | 41 +++++++++- .../scripts/SpikeCodeRedeem-Wizebot.dsc | 81 ++++++++++++++++++- 2 files changed, 119 insertions(+), 3 deletions(-) diff --git a/plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc b/plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc index 572df06..2785e75 100644 --- a/plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc +++ b/plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc @@ -71,6 +71,13 @@ SpikeCodeRedeemData: # As soon as it is possible we'll do it that way. devKey: Put Your Key Here! + # + Not AddOn specific configs + # This setting is used by the following AddOns: + # - Wizebot API + server: + name: My Minecraft Server + ip: mc.example.tld + # + Add-On configs. # ------ Auto Generate ------ # For these feature you need the Auto Generate Addon @@ -99,12 +106,44 @@ SpikeCodeRedeemData: # Set to false to keep the old one but you need to # set auto.code to random then or it will throw errors. delete: true - + # ------ Wizebot API ------- # For these feature you need the Wizebot Addon wizebot: web: + # Only change this if you use nginx or something similar. If you do it anyway Wizebot won't be able to connect to your server. port: 80 + API: + # Set here a SECURE API key. + # If set to none it's not usable + key: none + + shop: + # ID = Uses the item_id to check which commands to assign. + # group = Uses the "group" query parameter to get the - Easier + # For more info and to get t know how to get the item IDs take a look at the wiki on Github + # https://github.com/spikehidden/coderedeemscript/wiki + mode: ID + + # Map of group IDs which will be used for group mode. + groups: + # Group ID + group_01: + # List of Wizebot item IDs that shall be part of this group. + # Won't be used if mode is set to group + ids: + - 45761 + commands: + # The amount of random commands to choose. + amount: 1 + # The commands to randomly assign. + # Set amount to 0 to disable + random: + - minecraft:give

diamond 64 + # A list of commands that are always assigned to a code. + # Set to "alwaysCommand: none" to disable + always: + - minecraft:say

redeemed #+ ------ Debug & Log ------ diff --git a/plugins/Denizen/scripts/SpikeCodeRedeem-Wizebot.dsc b/plugins/Denizen/scripts/SpikeCodeRedeem-Wizebot.dsc index fbcc515..ee4dc9b 100644 --- a/plugins/Denizen/scripts/SpikeCodeRedeem-Wizebot.dsc +++ b/plugins/Denizen/scripts/SpikeCodeRedeem-Wizebot.dsc @@ -84,5 +84,82 @@ SpikeCodeRedeemWizebotAPI: type: world debug: true events: - webserver web request method:post path:/wizebot: - - \ No newline at end of file + webserver web request method:post path:/wizebot/create: + # Get query parameters + - define query + - define code <[query].get[code].if_null[random]> + - define queryKey <[query].get[key].if_null[null]> + - define duration <[query].get[duration].if_null[unlimited]> + - define prefix <[query].get[prefix].if_null[]> + - define group <[query].get[group].if_null[null]> + + # Map POST parameters: + - define post + - define item_id <[post].get[item_id]> + - define item_name <[post].get[item_name]> + - define viewer_id <[post].get[item_id]> + - define viewer_name <[post].get[item_id]> + + # Get stuff from config + - define key + - define mode + - define groupList + + # If key is missing, invalid or not configerured send 401 ERROR + - if <[key]> == none || <[queryKey]> != <[key]>: + - define answer "UNAUTHORIZED - KEY IS MISSING OR INVALID" + - determine code:401 passively + - determine headers:[Content-Type=text/plain] passively + - determine RAW_TEXT_CONTENT:<[answer]> + + # If nothing is set up in the Config send KO status and ERROR + - if <[groupList]> == none: + - define text "Configuration Error! - Please tell the Streamer that something went wrong." + - define status KO + - define answer "{<&dq>status<&dq>: <&dq><[status]><&dq>, <&dq>text_to_return<&dq>: <&dq><[text]><&dq>}" + - determine code:200 passively + - determine headers:[Content-Type=application/json] passively + - determine RAW_TEXT_CONTENT:<[answer]> + + # Get group if in ID mode + - if <[mode]> == ID: + - foreach <[groupList]>: + - if <[key].get[ids].contains_text[<[item_id]>]>: + - define group <[key]> + - foreach stop + + # Get group Data + - define groupData ].if_null[none]> + - define randomAmount <[groupData].get[amount].if_null[0]> + - define random <[groupData].get[commands.random].if_null[null]> + - define always <[groupData].get[commands.always].if_null[none]> + + # Add always commands. + - if <[always]> != none: + - define commands <[always].as_list> + + # Choose radnom commands. + - if <[randomAmount]> <= 0 || <[random]> == null: + - define commands:->:<[random].random[<[randomAmount]>]> + + # If commands are empty run error. + - if !<[commands].exists>: + - define text "Configuration Error! - Please tell the Streamer that something went wrong." + - define status KO + - define answer "{<&dq>status<&dq>: <&dq><[status]><&dq>, <&dq>text_to_return<&dq>: <&dq><[text]><&dq>}" + - determine code:200 passively + - determine headers:[Content-Type=application/json] passively + - determine RAW_TEXT_CONTENT:<[answer]> + + #Inject Code Creation Task + - define amount 1 + - inject SpikeCodeCreateCode + + # Finaly send the code to Wizebot + - define text "Your code for <[server.name]> is <&dq><[code]><&dq>" + - define status OK + - define answer "{<&dq>status<&dq>: <&dq><[status]><&dq>, <&dq>text_to_return<&dq>: <&dq><[text]><&dq>}" + - determine code:401 passively + - determine headers:[Content-Type=application/json] passively + - determine RAW_TEXT_CONTENT:<[answer]> + From cfab7279e124485f81e83d2925cb7580f9437d79 Mon Sep 17 00:00:00 2001 From: spikehidden Date: Wed, 29 Mar 2023 20:41:52 +0200 Subject: [PATCH 10/11] Update FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 3694199..071db5e 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,6 @@ # These are supported funding model platforms -github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +github: spikehidden # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: # Replace with a single Patreon username open_collective: # Replace with a single Open Collective username ko_fi: spikehidden From 991654933537d3526761a82ac063e792edb3b2a6 Mon Sep 17 00:00:00 2001 From: spikehidden Date: Wed, 29 Mar 2023 20:42:20 +0200 Subject: [PATCH 11/11] Don't ask --- .../scripts/SpikeCodeRedeem-Config.dsc | 6 +- .../scripts/SpikeCodeRedeem-Wizebot.dsc | 68 +++++++++++-------- plugins/Denizen/scripts/SpikeCodeRedeem.dsc | 24 +++---- 3 files changed, 54 insertions(+), 44 deletions(-) diff --git a/plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc b/plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc index 2785e75..f73c86c 100644 --- a/plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc +++ b/plugins/Denizen/scripts/SpikeCodeRedeem-Config.dsc @@ -132,18 +132,18 @@ SpikeCodeRedeemData: # List of Wizebot item IDs that shall be part of this group. # Won't be used if mode is set to group ids: - - 45761 + - 64509 commands: # The amount of random commands to choose. amount: 1 # The commands to randomly assign. # Set amount to 0 to disable random: - - minecraft:give

diamond 64 + - minecraft:give <<>p<>> diamond 64 # A list of commands that are always assigned to a code. # Set to "alwaysCommand: none" to disable always: - - minecraft:say

redeemed + - minecraft:say <<>p<>> redeemed <[code]> #+ ------ Debug & Log ------ diff --git a/plugins/Denizen/scripts/SpikeCodeRedeem-Wizebot.dsc b/plugins/Denizen/scripts/SpikeCodeRedeem-Wizebot.dsc index ee4dc9b..b122346 100644 --- a/plugins/Denizen/scripts/SpikeCodeRedeem-Wizebot.dsc +++ b/plugins/Denizen/scripts/SpikeCodeRedeem-Wizebot.dsc @@ -64,18 +64,18 @@ SpikeCodeRedeemWizebotSystem: debug: true events: #- Check if core script is loaded - on server start: + on scripts loaded: - if : - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Spikehidden's Auto Updater has been found!" to_console - flag server SpikeCodeRedeemAutoUpdate:github - flag server SpikehiddenUpdater.data:->:SpikeCodeRedeemAutoUpdate - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Providing Update data of Auto Generate Addon for Spikehidden's Auto Updater" to_console - after server start: + after scripts loaded: - if : - define port - flag server SpikeCodeRedeem.addon.wizebot - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Add-On <&dq>Wizebot<&dq> is loaded." to_console - - webserver start + - webserver start port:<[port]> - else: - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Add-On <&dq>Wizebot<&dq> can't be used without core script." to_console - announce "<&ss>9[SpikeCodeRedeem]<&ss>r Download core script from https://github.com/spikehidden/CodeRedeemScript" to_console @@ -84,7 +84,7 @@ SpikeCodeRedeemWizebotAPI: type: world debug: true events: - webserver web request method:post path:/wizebot/create: + on webserver web request method:post path:/wizebot/create: # Get query parameters - define query - define code <[query].get[code].if_null[random]> @@ -93,15 +93,24 @@ SpikeCodeRedeemWizebotAPI: - define prefix <[query].get[prefix].if_null[]> - define group <[query].get[group].if_null[null]> + #headers + - define heads + - define type <[heads].get[content-type].get[1]> + - define boundary <[type].replace_text[multipart/form-data; boundary=]> + # Map POST parameters: - - define post - - define item_id <[post].get[item_id]> - - define item_name <[post].get[item_name]> - - define viewer_id <[post].get[item_id]> - - define viewer_name <[post].get[item_id]> + - define prepost ]> + - define prepost <[prepost].split[<&chr[000D]><&chr[000A]>]> + - define prepost <[prepost].separated_by[]> + - define post_list <[prepost].split[--<[boundary]>].remove[first].remove[last]> + - define post <[post_list].to_map[<&dq>]> + - define item_id <[post].get[item_id].if_null[null]> + - define item_name <[post].get[item_name].if_null[null]> + - define viewer_id <[post].get[item_id].if_null[null]> + - define viewer_name <[post].get[item_id].if_null[null]> # Get stuff from config - - define key + - define key - define mode - define groupList @@ -116,50 +125,55 @@ SpikeCodeRedeemWizebotAPI: - if <[groupList]> == none: - define text "Configuration Error! - Please tell the Streamer that something went wrong." - define status KO - - define answer "{<&dq>status<&dq>: <&dq><[status]><&dq>, <&dq>text_to_return<&dq>: <&dq><[text]><&dq>}" + - definemap answer: + status: <[status]> + text_to_return: <[text]> - determine code:200 passively - determine headers:[Content-Type=application/json] passively - - determine RAW_TEXT_CONTENT:<[answer]> + - determine RAW_TEXT_CONTENT:<[answer].to_json> # Get group if in ID mode - if <[mode]> == ID: - foreach <[groupList]>: - - if <[key].get[ids].contains_text[<[item_id]>]>: + - if <[value].get[ids].contains_text[<[item_id]>]>: - define group <[key]> - foreach stop # Get group Data - define groupData ].if_null[none]> - - define randomAmount <[groupData].get[amount].if_null[0]> - - define random <[groupData].get[commands.random].if_null[null]> - - define always <[groupData].get[commands.always].if_null[none]> + - define randomAmount <[groupData].deep_get[commands.amount].if_null[0]> + - define random <[groupData].deep_get[commands.random].if_null[null]> + - define always <[groupData].deep_get[commands.always].if_null[none]> # Add always commands. - if <[always]> != none: - - define commands <[always].as_list> + - define commands <[always].as[list]> # Choose radnom commands. - - if <[randomAmount]> <= 0 || <[random]> == null: + - if <[randomAmount]> >= 1 && <[random]> != null: - define commands:->:<[random].random[<[randomAmount]>]> # If commands are empty run error. - - if !<[commands].exists>: + - if <[commands].if_null[].is_empty>: - define text "Configuration Error! - Please tell the Streamer that something went wrong." - define status KO - - define answer "{<&dq>status<&dq>: <&dq><[status]><&dq>, <&dq>text_to_return<&dq>: <&dq><[text]><&dq>}" + - definemap answer: + text_to_return: <[text]> + status: <[status]> - determine code:200 passively - determine headers:[Content-Type=application/json] passively - - determine RAW_TEXT_CONTENT:<[answer]> + - determine RAW_TEXT_CONTENT:<[answer].to_json> #Inject Code Creation Task - define amount 1 + - define permission null - inject SpikeCodeCreateCode # Finaly send the code to Wizebot - - define text "Your code for <[server.name]> is <&dq><[code]><&dq>" - - define status OK - - define answer "{<&dq>status<&dq>: <&dq><[status]><&dq>, <&dq>text_to_return<&dq>: <&dq><[text]><&dq>}" - - determine code:401 passively - - determine headers:[Content-Type=application/json] passively - - determine RAW_TEXT_CONTENT:<[answer]> + - definemap answer: + text_to_return: Your code for Foxcraft is: <[code]> + status: OK + - determine passively code:200 + - determine passively headers:[Content-Type=application/json] + - determine RAW_TEXT_CONTENT:<[answer].to_json> diff --git a/plugins/Denizen/scripts/SpikeCodeRedeem.dsc b/plugins/Denizen/scripts/SpikeCodeRedeem.dsc index 1aa7823..080dde9 100644 --- a/plugins/Denizen/scripts/SpikeCodeRedeem.dsc +++ b/plugins/Denizen/scripts/SpikeCodeRedeem.dsc @@ -79,14 +79,14 @@ SpikeCodeRedeemUpdate: SpikeCodeCreateCode: type: task debug: false - definitions: code|amount|command|permission|prefix|code_amount|group + definitions: code|amount|command|permission|prefix|code_amount|group|commands script: # Check if a random code shall be generated - if <[code]> == random: - define url https://www.random.org/strings/?num=<[code_amount].if_null[1]>&len=8&digits=on&upperalpha=off&loweralpha=on&unique=on&format=plain&rnd=new - ~webget <[url]> save:newcodelist - - define newCodeList ]> + - define newCodeList ]> # - define code ]> # - define code <[code].replace_text[<&nl>]> # - if <[prefix].exists>: @@ -94,27 +94,23 @@ SpikeCodeCreateCode: - else: - define newCodeList ]> - define codeList - - foreach <[newCodeList]> as:code: + - foreach <[newCodeList]> as:value: + - define code <[value]> # Add prefix - if <[prefix].exists>: - define code <[prefix]><[code]> - # Sets the amount how often the code can be used. - - if <[duration]> != unlimited: - - flag server redeemableCodes.<[code]> expire:<[duration]> - - flag server redeemableCodes.<[code]>.amount:<[amount]> + # Sets the amount how often the code can be used. + - flag server redeemableCodes.<[code]>.amount:<[amount]> # Sets the commands that shall be executed! - - if <[command]> == group: + - if <[commands].exists>: + - flag server redeemableCodes.<[code]>.commands:<[commands]> + - else if <[command]> == group: - flag server redeemableCodes.<[code]>.commands: - else: - flag server redeemableCodes.<[code]>.commands: - flag server redeemableCodes.<[code]>.commands:->:<[command]> - # Add code group if existing - - if <[group].exists>: - - flag server redeemableCodes.<[code]>.group:<[group]> - - flag server redeemableGroups.<[group]>.codes:->:<[code]> # Check if a permission shall be set. - # Not used at the moment - - if <[permission]> != null: + - if <[permission].if_null[null]> != null: - define msg 'The code "<[code]>" with <[amount]> possible redemption(s) and the "<[permission]>" permission required was created!' - flag server redeemableCodes.<[code]>.permission:<[permission]> # If so set the permission.