aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--utils/utils.js67
1 files changed, 35 insertions, 32 deletions
diff --git a/utils/utils.js b/utils/utils.js
index 48bb569..504b3bf 100644
--- a/utils/utils.js
+++ b/utils/utils.js
@@ -1,27 +1,27 @@
const NBTTagString = Java.type('net.minecraft.nbt.NBTTagString');
let utils = {
- addLore: function(item, prefix, value){
-
+ 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));
+ 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))
+ if (!done) {
+ list.func_74742_a(new NBTTagString(prefix + value))
}
-
+
item
.getNBT()
.getCompoundTag("tag")
@@ -29,29 +29,32 @@ let utils = {
.getRawNBT()
.func_74782_a("Lore", list);
},
- getSBID: function(item){
+ getSBID: function (item) {
return item?.getNBT()?.getCompoundTag("tag")?.getCompoundTag("ExtraAttributes")?.getString("id") || null
},
- calculateDistance: function(p1, p2) {
+ 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){
+
+ let ret = Math.hypot(a, b, c)
+
+ if (ret < 0) {
ret *= -1
}
return ret;
},
- calculateDistanceQuick: function(p1, p2) {
+ 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){
+
+ if (ret < 0) {
ret *= -1
}
return ret;
@@ -65,38 +68,38 @@ let utils = {
* @param {*} points
* @returns
*/
- fastestPathThrough:function(startPoint, points){
+ fastestPathThrough: function (startPoint, points) {
let ret = []
- while(ret.length<points.length){
+ 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++){
+
+ for (let i = 0; i < allOrders.length; i++) {
let order = allOrders[i]
let lastPoint = startPoint
- let positions = order.map((a)=>{
+ 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])
+ for (let i = 0; i < positions.length; i++) {
+ len += utils.calculateDistance(lastPoint, positions[i])
lastPoint = positions[i]
}
-
- if(len < lastOrderLength){
+
+ if (len < lastOrderLength) {
lastOrder = order
lastOrderLength = len
}
}
-
+
return lastOrder;
},
- permutation:function(array) {
+ permutation: function (array) {
function p(array, temp) {
var i, x;
if (!array.length) {
@@ -108,7 +111,7 @@ let utils = {
array.splice(i, 0, x);
}
}
-
+
var result = [];
p(array, []);
return result;