@@ -90,6 +90,8 @@ SpikeCodeCreateCode:
9090 - if <[prefix] .exists> :
9191 - define code <[prefix] ><[code] >
9292 # Sets the amount how often the code can be used.
93+ - if <[duration] > != unlimited:
94+ - flag server redeemableCodes.<[code] > expire:<[duration] >
9395 - flag server redeemableCodes.<[code] > .amount:<[amount] >
9496 # Sets the commands that shall be executed!
9597 - if <[command] > == group:
@@ -98,6 +100,7 @@ SpikeCodeCreateCode:
98100 - flag server redeemableCodes.<[code] > .commands:<list>
99101 - flag server redeemableCodes.<[code] > .commands:->:<[command] >
100102 # Check if a permission shall be set.
103+ # Not used at the moment
101104 - if <[permission] > != null:
102105 - define msg 'The code "<[code] > " with <[amount] > possible redemption(s) and the "<[permission] > " permission required was created!'
103106 - flag server redeemableCodes.<[code] > .permission:<[permission] >
@@ -214,7 +217,7 @@ SpikeCodeRedeemAdminCommand:
214217 debug : false
215218 name : redeemsettings
216219 description : Admin Settings for Spike's redeemable codes.
217- usage : /redeemsettings <&lb> create/edit/delete <&rb> <&lb><<> code <>> /random <&rb> <&lb><<> amount of uses <>> /unlimited <&rb> <&lb><<> command <>> /group: <<> command group <>><&rb> ( <<> permission <>> )
220+ usage : /redeemsettings help - for help
218221 aliases :
219222 - redeemadmin
220223 - codeadmin
@@ -225,7 +228,7 @@ SpikeCodeRedeemAdminCommand:
225228 allowed help :
226229 - determine <player.has_permission[spikehidden.admin] > ||<context.server> ||<player.has_permission[spikehidden.coderedeem.admin] > ||<player.has_permission[spikehidden.coderedeem.codes] >
227230 tab completions :
228- 1 : create|edit|delete
231+ 1 : create|edit|delete|help
229232 tab complete :
230233 - if <context.raw_args.split_args.size> >= 2:
231234 # If create
@@ -235,8 +238,10 @@ SpikeCodeRedeemAdminCommand:
235238 - else if <context.raw_args.split_args.size> == 3:
236239 - determine 1|10|100|unlimited
237240 - else if <context.raw_args.split_args.size> == 4:
241+ - determine 1s|1m|1h|1d|1w|1y|unlimited
242+ - else if <context.raw_args.split_args.size> == 5:
238243 - determine group|<server.commands>
239- - else if <context.raw_args.split_args.size> >= 5 :
244+ - else if <context.raw_args.split_args.size> >= 6 :
240245 - determine <<> argument<>>
241246 # If Edit
242247 - else if <context.raw_args.split_args.get[1] > == edit:
@@ -306,10 +311,11 @@ SpikeCodeRedeemAdminCommand:
306311 # define stuff for the create command
307312 - define code <[args] .get[2] .if_null[null] >
308313 - define amount <[args] .get[3] .if_null[null] >
309- - define command <[args] .get[4] .to[last] .space_separated.if_null[null] >
314+ - define duration <[args] .get[4] .as_duration.if_null[null] >
315+ - define command <[args] .get[5] .to[last] .space_separated.if_null[null] >
310316 - define permission null
311317 # Check if arguments exist
312- - if <[amount] > == null || <[command] > == null:
318+ - if <[amount] > == null || <[command] > == null || < [duration] > == null :
313319 - define msg "Missing arguments!"
314320 # Check if amount is decimal or unlimited
315321 - else if !<[amount] .is_decimal> && <[amount] > != unlimited:
@@ -433,6 +439,13 @@ SpikeCodeRedeemAdminCommand:
433439 - define msg "The code group <&dq><[name] ><&dq> with <[codeCount] > code/s was succesfully deleted."
434440 - else :
435441 - define msg 'The specified group does not exits!"'
442+
443+ # - Help
444+ - default :
445+ - define msg "<&l><&9> Help for '/redeemsettings'<&r><&nl> "
446+ - define msg "<[msg] > /redeemsettings create <&lb><<> code<>> |random<&rb> <&lb><<> uses<>> |unlimited<&rb> <&lb><<> duration<>> |unlimited<&rb> <&lb><<> command<>> |group<&rb><&nl> "
447+ - define msg "<[msg] > /redeemsettings edit <&lb> code|group<&rb> <&lb><<> ID<>><&rb> <&lb> amount|command|duration<&rb> <&lb><<> value<>><&rb><&nl> "
448+ - define msg "<[msg] > /redeemsettings delete <&lb><<> code|group<&rb> <&lb><<> name<>><&rb> "
436449 - narrate <[msg] >
437450
438451# + Command for redeeming codes.
@@ -527,7 +540,7 @@ SpikeCodeRedeemBulkCreate:
527540 debug : false
528541 name : bulkcodecreate
529542 description : Admin Settings for Spike's redeemable codes.
530- usage : /bulkcodecreate <&lb><<> code group name<>><&rb> <&lb><<> amount of codes <>><&rb> <&lb><<> command<>> /group<<> command group<>><&rb> (<<> format for list export<>> ) (<<> permission<>> )
543+ 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<>> )
531544 aliases :
532545 - bulkcreate
533546 permission : spikehidden.admin;spikehidden.coderedeem.admin;spikehidden.coderedeem.codes
@@ -538,36 +551,40 @@ SpikeCodeRedeemBulkCreate:
538551 1 : <<> Code_Group_Name<>>
539552 # amount of codes
540553 2 : 1|2|3|4|5|10|100|1000
554+ # duration
555+ 3 : 1s|1m|1h|1d|1w|1y
541556 # format
542- 3 : list|wizebot
557+ 4 : list|wizebot
543558 default : <empty>
544559
545560 tab complete :
546- - if <context.raw_args.split_args.size> == 4 :
561+ - if <context.raw_args.split_args.size> == 5 :
547562 - determine group|<server.commands>
548- - else if <context.raw_args.split_args.size> == 5 :
563+ - else if <context.raw_args.split_args.size> == 6 :
549564 - determine <&lb> prefix<&rb>
550- - else if <context.raw_args.split_args.size> >= 5 :
565+ - else if <context.raw_args.split_args.size> >= 7 :
551566 - determine "Too many arguments! Try putting the arguments in quotes (<&dq><&dq> )!"
552567
553568 script :
554569 - define args <context.raw_args.split_args>
570+ # 1
555571 - define group <[args] .get[1] .if_null[null] >
572+ # 2
556573 - define groupAmount <[args] .get[2] .if_null[null] >
557- - define command <[args] .get[4] .if_null[null] >
558- - define format <[args] .get[3] .if_null[null] >
559- - define prefix <[args] .get[5] .if_null[<empty> ] >
574+ # 3
575+ - define duration <[args] .get[3] .if_null[null] >
576+ # 4
577+ - define format <[args] .get[4] .if_null[null] >
578+ # 5
579+ - define command <[args] .get[5] .if_null[null] >
580+ # 6
581+ - define prefix <[args] .get[6] .if_null[<empty> ] >
560582 - define UsePastebin <script[SpikeCodeRedeemData] .data_key[UsePastebin] .if_null[false] >
561- # - define permission <context.args.get[5 ].if_null[null]>
583+ # - define permission <context.args.get[7 ].if_null[null]>
562584 - define permission null
563585 - define amount 1
564586 # check for missing arguments
565- - if <[group] > == null || <[groupAmount] > == null || <[command] > == null:
566- - narrate "Missing arguments!"
567- - stop
568- # - Create
569- # Check if arguments exist
570- - if <[groupAmount] > == null || <[command] > == null:
587+ - if <[groupAmount] > == null || <[duration] > == null || <[command] > == null:
571588 - define msg "Missing arguments!"
572589 # Check if groupAmount is decimal
573590 - else if !<[groupAmount] .is_decimal> :
@@ -585,6 +602,9 @@ SpikeCodeRedeemBulkCreate:
585602 - narrate 'Could not create an unused random code group name. Try again or if this error persists open an issue on GitHub.'
586603 - stop
587604 - define group <entry[newgroup] .result.replace_text[<&dq> ] >
605+ # Set group expire if duration is not unlimited
606+ - if <[duration] > != unlimited:
607+ - flag server redeemableGroups.<[group] > expire:<[duration] >
588608 # Sets the amount how may codes are in the group.
589609 - flag server redeemableGroups.<[group] > .amount:<[amount] >
590610 # Creates the specified amount of codes.
@@ -604,6 +624,7 @@ SpikeCodeRedeemBulkCreate:
604624 # If so set the permission.
605625 - else :
606626 - define msg 'The group "<[group] > " with <[amount] > possible redemption was created!'
627+ # Run pastbin task if it is set in config
607628 - if <[UsePastebin] > :
608629 - choose <[format] > :
609630 - case list:
@@ -615,6 +636,7 @@ SpikeCodeRedeemBulkCreate:
615636 - run SpikeCodeSendPastebin def:<player> |<[group] > |<[csv] .separated_by[<&nl> ] > |<[format] >
616637 - default :
617638 - run SpikeCodeSendPastebin def:<player> |<[group] > |<server.flag[redeemableGroups.<[group] > .codes] .separated_by[<&nl> ] > |list
639+ # If not save list localy.
618640 - else :
619641 - choose <[format] > :
620642 - case list:
0 commit comments