@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
19 lines (17 loc) • 2.54 kB
JavaScript
const ParseTildeCaretNotation = ({
input,
type,
source
}) => {
if (!input.startsWith("~") && !input.startsWith("^")) return Number.parseFloat(input);
switch (input[0]) {
case "~":
return source[`get${type.toUpperCase()}`]() + Number.parseFloat(input.slice(1, input.length) || "0");
case "^":
return Number.parseFloat(input.slice(1, input.length) || "0");
default:
throw new Error(`invalid input`);
}
};
export { ParseTildeCaretNotation as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyc2VUaWxkZUNhcmV0Tm90YXRpb24uZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9QYXJzZVRpbGRlQ2FyZXROb3RhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eSB9IGZyb20gJy4uL2VudGl0eS9FbnRpdHknO1xuXG5jb25zdCBQYXJzZVRpbGRlQ2FyZXROb3RhdGlvbiA9ICh7XG4gICAgaW5wdXQsXG4gICAgdHlwZSxcbiAgICBzb3VyY2Vcbn06IHtcbiAgICBpbnB1dDogc3RyaW5nO1xuICAgIHR5cGU6ICd4JyB8ICd5JyB8ICd6JztcbiAgICBzb3VyY2U6IEVudGl0eTtcbn0pOiBudW1iZXIgPT4ge1xuICAgIGlmICghaW5wdXQuc3RhcnRzV2l0aCgnficpICYmICFpbnB1dC5zdGFydHNXaXRoKCdeJykpIHJldHVybiBOdW1iZXIucGFyc2VGbG9hdChpbnB1dCk7XG5cbiAgICBzd2l0Y2ggKGlucHV0WzBdKSB7XG4gICAgICAgIGNhc2UgJ34nOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAoc291cmNlIGFzIGFueSlbYGdldCR7dHlwZS50b1VwcGVyQ2FzZSgpfWBdKCkgKyBOdW1iZXIucGFyc2VGbG9hdChpbnB1dC5zbGljZSgxLCBpbnB1dC5sZW5ndGgpIHx8ICcwJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgJ14nOlxuICAgICAgICAgICAgLy8gRklYTUU6XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyLnBhcnNlRmxvYXQoaW5wdXQuc2xpY2UoMSwgaW5wdXQubGVuZ3RoKSB8fCAnMCcpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGlucHV0YCk7XG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgUGFyc2VUaWxkZUNhcmV0Tm90YXRpb247XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSwwQkFBMEIsQ0FBQztBQUFBLEVBQzdCLEtBQUE7QUFBQSxFQUNBLElBQUE7QUFBQSxFQUNBO0FBQ0osQ0FJYyxLQUFBO0FBQ1YsRUFBQSxJQUFJLENBQUMsS0FBQSxDQUFNLFVBQVcsQ0FBQSxHQUFHLENBQUssSUFBQSxDQUFDLEtBQU0sQ0FBQSxVQUFBLENBQVcsR0FBRyxDQUFBLEVBQVUsT0FBQSxNQUFBLENBQU8sV0FBVyxLQUFLLENBQUE7QUFFcEYsRUFBUSxRQUFBLEtBQUEsQ0FBTSxDQUFDLENBQUc7QUFBQSxJQUNkLEtBQUssR0FBQTtBQUNELE1BQUEsT0FDSyxPQUFlLENBQU0sR0FBQSxFQUFBLElBQUEsQ0FBSyxXQUFZLEVBQUMsRUFBRSxDQUFFLEVBQUEsR0FBSSxNQUFPLENBQUEsVUFBQSxDQUFXLE1BQU0sS0FBTSxDQUFBLENBQUEsRUFBRyxLQUFNLENBQUEsTUFBTSxLQUFLLEdBQUcsQ0FBQTtBQUFBLElBRTdHLEtBQUssR0FBQTtBQUVELE1BQU8sT0FBQSxNQUFBLENBQU8sV0FBVyxLQUFNLENBQUEsS0FBQSxDQUFNLEdBQUcsS0FBTSxDQUFBLE1BQU0sS0FBSyxHQUFHLENBQUE7QUFBQSxJQUNoRTtBQUNJLE1BQU0sTUFBQSxJQUFJLE1BQU0sQ0FBZSxhQUFBLENBQUEsQ0FBQTtBQUFBO0FBRTNDOzs7OyJ9