diff --git a/extensions/text.js b/extensions/text.js
index e03c7705a9..d1ec10dd70 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,28 @@
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());