diff --git a/extensions/text.js b/extensions/text.js index e03c7705a9..cc9c3e5da2 100644 --- a/extensions/text.js +++ b/extensions/text.js @@ -1,7 +1,8 @@ // Name: Text // ID: strings // Description: Manipulate characters and text. -// Original: CST1229 +// By: CST1229 +// By: BludIsAnLemon // License: MIT AND MPL-2.0 (function (Scratch) { @@ -372,12 +373,79 @@ }, }, }, + + "---", + + { + opcode: 'endsAt', + blockType: Scratch.BlockType.BOOLEAN, + text: Scratch.translate('[STRING] ends with [SUBSTRING]?'), + arguments: { + STRING: { + type: Scratch.ArgumentType.STRING, + defaultValue: 'apple' + }, + SUBSTRING: { + type: Scratch.ArgumentType.STRING, + defaultValue: 'banana' + } + } + }, + + "---", + + { + opcode: 'backwards', + blockType: Scratch.BlockType.REPORTER, + text: Scratch.translate('[STRING] backwards'), + arguments: { + STRING: { + type: Scratch.ArgumentType.STRING, + defaultValue: 'apple' + } + } + }, + + "---", + + { + opcode: 'trim', + blockType: Scratch.BlockType.REPORTER, + text: Scratch.translate('trim [STRING] at [METHOD]'), + arguments: { + STRING: { + type: Scratch.ArgumentType.STRING, + defaultValue: ' apple ' + }, + METHOD: { + type: Scratch.ArgumentType.STRING, + menu: "trimMethod" + } + } + } ], menus: { textCase: { acceptReporters: true, items: this._initCaseMenu(), }, + trimMethod: { + acceptReporters: true, + items: [ + { + text: Scratch.translate('both sides'), + value: 'both' + }, + { + text: Scratch.translate('the end'), + value: 'front' + }, + { + text: Scratch.translate('the start'), + value: 'back' + } + ] + } }, }; } @@ -613,6 +681,31 @@ return string; } } + endsAt(args) { + let STRING = args.STRING + return STRING.endsWith(args.SUBSTRING); + } + backwards(args) { + let backwardsText = Array.from(args.STRING); + backwardsText.reverse(); + return backwardsText.join(''); + } + trim(args) { + let method = args.METHOD; + let STRING = args.STRING; + if(method == "both") { + return STRING.trim(); + } + else if(method == "front") { + return STRING.trimEnd(); + } + else if(method == "back") { + return STRING.trimStart(); + } + else { + return 'Please select a valid method!'; + } + } } Scratch.extensions.register(new StringsExt());