aboutsummaryrefslogtreecommitdiff
path: root/utils/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'utils/utils.js')
-rw-r--r--utils/utils.js141
1 files changed, 0 insertions, 141 deletions
diff --git a/utils/utils.js b/utils/utils.js
deleted file mode 100644
index 1f6cd6e..0000000
--- a/utils/utils.js
+++ /dev/null
@@ -1,141 +0,0 @@
-const NBTTagString = Java.type('net.minecraft.nbt.NBTTagString');
-
-let utils = {
- addLore: function (item, prefix, value) {
-
- const list = item
- .getNBT()
- .getCompoundTag("tag")
- .getCompoundTag("display")
- .getTagMap()
- .get("Lore")
-
- let done = false
- // Gets the current lore lines
- for (let i = 0; i < list.func_74745_c(); i++) {
- if (String(list.func_150307_f(i)).startsWith(prefix)) {
- list.func_150304_a(i, new NBTTagString(prefix + value));
- done = true
- }
- }
- if (!done) {
- list.func_74742_a(new NBTTagString(prefix + value))
- }
-
- item
- .getNBT()
- .getCompoundTag("tag")
- .getCompoundTag("display")
- .getRawNBT()
- .func_74782_a("Lore", list);
- },
- getSBID: function (item) {
- return item?.getNBT()?.getCompoundTag("tag")?.getCompoundTag("ExtraAttributes")?.getString("id") || null
- },
- getSBUUID: function (item) {
- return item?.getNBT()?.getCompoundTag("tag")?.getCompoundTag("ExtraAttributes")?.getString("uuid") || null
- },
- getSBEnchant: function (item, enchant) {
- return item?.getNBT()?.getCompoundTag("tag")?.getCompoundTag("ExtraAttributes")?.getCompoundTag("enchantments")?.getInteger(enchant) || null
- },
- calculateDistance: function (p1, p2) {
- var a = p2[0] - p1[0];
- var b = p2[1] - p1[1];
- var c = p2[2] - p1[2];
-
- let ret = Math.hypot(a, b, c)
-
- if (ret < 0) {
- ret *= -1
- }
- return ret;
- },
- calculateDistanceQuick: function (p1, p2) {
- var a = p2[0] - p1[0];
- var b = p2[1] - p1[1];
- var c = p2[2] - p1[2];
-
- let ret = a * a + b * b + c * c
-
- if (ret < 0) {
- ret *= -1
- }
- return ret;
- },
- /**
- * Please try not to use this
- * it has O(n!)
- * only use if points < 10 or something
- * D:
- * @param {*} startPoint
- * @param {*} points
- * @returns
- */
- fastestPathThrough: function (startPoint, points) {
- let ret = []
- while (ret.length < points.length) {
- ret.push(ret.length)
- }
-
- let allOrders = utils.permutation(ret)
-
- let lastOrder = []
- let lastOrderLength = Infinity
-
- for (let i = 0; i < allOrders.length; i++) {
- let order = allOrders[i]
- let lastPoint = startPoint
- let positions = order.map((a) => {
- return points[a]
- })
- let len = 0
- for (let i = 0; i < positions.length; i++) {
- len += utils.calculateDistance(lastPoint, positions[i])
- lastPoint = positions[i]
- }
-
- if (len < lastOrderLength) {
- lastOrder = order
- lastOrderLength = len
- }
- }
-
- return lastOrder;
- },
- permutation: function (array) {
- function p(array, temp) {
- var i, x;
- if (!array.length) {
- result.push(temp);
- }
- for (i = 0; i < array.length; i++) {
- x = array.splice(i, 1)[0];
- p(array, temp.concat(x));
- array.splice(i, 0, x);
- }
- }
-
- var result = [];
- p(array, []);
- return result;
- },
- toMessageWithLinks: function (text, color = "f") {
- return text.split(" ").reduce((c, curr) => {
- if (curr.match(/(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[A-Z0-9+&@#\/%=~_|$])/igm)) {
- c.push(curr)
- c.push("&" + color)
- } else {
- c[c.length - 1] += (c[c.length - 1].length === 2 ? "" : " ") + curr
- }
- return c
- }, ["&" + color]).map(a => {
- if (a.match(/(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[A-Z0-9+&@#\/%=~_|$])/igm)) {
- return new TextComponent("&" + color + "&n" + a + "&" + color + ' ').setHover("show_text", "Click to open " + a.trim().replace(/^(?:[&§][0-9a-fmn])+|(?:[&§][0-9a-fmn])+$/g, "")).setClick("open_url", a.trim())
- } else {
- return new TextComponent(a + ' ')
- }
- }).reduce((c, curr) => c.addTextComponent(curr), new Message())
- }
-}
-
-module.exports = utils \ No newline at end of file