diff --git a/giveitem.js b/giveitem.js index 3921a40..b0001c1 100644 --- a/giveitem.js +++ b/giveitem.js @@ -1,4 +1,6 @@ JsMacros.on("RecvMessage", JavaWrapper.methodToJava(event => { + const blacklist=["Wkicore_glasses"] + let msg = event.text.getString(); let match = msg.match(/^<([^>]+)>\s+!!get\s+([a-z0-9_\-.]+:[a-z0-9_\-.]+)\s+(\d+)/i); @@ -18,6 +20,19 @@ JsMacros.on("RecvMessage", JavaWrapper.methodToJava(event => { let id = match[2]; let count = parseInt(match[3]); + flag=0 + blacklist.forEach(players => { + if(players==player) + { + flag=1 + return + } + }) + if(flag) + { + return + } + let hasbot=0 World.getPlayers().forEach(player => { if(player.getName()=="bot_item") @@ -174,7 +189,40 @@ JsMacros.on("RecvMessage", JavaWrapper.methodToJava(event => { WestScanPos.forEach(pos => { WestscanRow(pos) }) - if(!blocks.has(ItemInfo.getName())) + Dzblocks = new Map() + function Dzframefacting(pos1,x,y,z) + { + if(pos1.faceOffset.x==782) + return pos(x-1,y+2,z) + return pos(x+1,y+2,z) + } + DzEastScanPos={ startPos: pos(782,77,-1464), faceOffset: {x:782,y:78}, floor: 1 } + DzWestscanPos={ startPos: pos(772,77,-1464), faceOffset: {x:772,y:78}, floor: 1 } + wall=-1517 + function DzScanRow(pos) + { + let x,y,z + [x,y,z]=[pos.startPos.getX(),pos.startPos.getY(),pos.startPos.getZ()] + while(z>=wall) + { + if(itemFrameMap.has(pos2str(Dzframefacting(pos,x,y,z)))) + { + if(itemFrameMap.get(pos2str(Dzframefacting(pos,x,y,z))).getName().getString()!="空气") + Dzblocks.set(itemFrameMap.get(pos2str(Dzframefacting(pos,x,y,z))).getName().getString(),{dx:x,dy:y,dz:z,df:(pos.floor),fo:(pos.faceOffset)}); + } + else if(World.getBlock(x,y,z).getName().getString()!="空气") + { + if(!Dzblocks.has(World.getBlock(x,y,z).getName().getString())) + { + Dzblocks.set(World.getBlock(x,y,z).getName().getString(),{dx:x,dy:y,dz:z,df:(pos.floor),fo:(pos.faceOffset)}) + } + } + z--; + } + } + DzScanRow(DzEastScanPos) + DzScanRow(DzWestscanPos) + if(!blocks.has(ItemInfo.getName()) && !Dzblocks.has(ItemInfo.getName())) { Chat.say("全物品没有或者以实体形式存在") Chat.say("@@ "+player) @@ -198,7 +246,7 @@ JsMacros.on("RecvMessage", JavaWrapper.methodToJava(event => { Chat.say("这要花不少时间,先生") } Chat.say("#goto "+dx.toString()+" "+dy.toString()+" "+dz.toString()) - while(Math.abs(gb_tt.getX()-dx-xx)>0.4 || Math.abs(gb_tt.getZ()-dz-zz)>0.4 || Math.abs(gb_tt.getY()-dy)>0) + while(Math.abs(gb_tt.getX()-dx-xx)>0.8 || Math.abs(gb_tt.getZ()-dz-zz)>0.8 || Math.abs(gb_tt.getY()-dy)>0.2) { gb_tt=Player.getPlayer().getPos() } @@ -206,12 +254,24 @@ JsMacros.on("RecvMessage", JavaWrapper.methodToJava(event => { Time.sleep(350) Player.getPlayer().setPos(dx+xx,dy,dz+zz) } - pos=blocks.get(ItemInfo.getName()) + // pos=blocks.get(ItemInfo.getName()) count=Counts - function getsome() + function getsome(dz) { - Goto1(pos.dx,77,-1432) - Player.interactions().interactBlock(pos.dx,pos.fo.y,pos.fo.z,"down", false) + Chat.log(!Dzblocks.has(ItemInfo.getName())) + if(!dz && ((count<1728 && blocks.has(ItemInfo.getName()) && Dzblocks.has(ItemInfo.getName())) || (blocks.has(ItemInfo.getName()) && !Dzblocks.has(ItemInfo.getName())))) + { + pos=blocks.get(ItemInfo.getName()) + Goto1(pos.dx,77,-1432) + Player.interactions().interactBlock(pos.dx,pos.fo.y,pos.fo.z,"down", false) + } + else + { + dz=1 + pos=Dzblocks.get(ItemInfo.getName()) + Goto1(777,77,pos.dz) + Player.interactions().interactBlock(pos.fo.x,pos.fo.y,pos.dz,"down", false) + } JsMacros.waitForEvent("OpenContainer"); Time.sleep(200) let slot=0; @@ -280,14 +340,32 @@ JsMacros.on("RecvMessage", JavaWrapper.methodToJava(event => { } else if(sum { }) } - might.sort((a,b)=>b.sd-a.sd) + might.sort((a,b)=>{ + if(a.sd!=b.sd) + return b.sd-a.sd + return a.fs.length-b.fs.length + }) if(might.length === 0) return diff --git a/respawn.js b/respawn.js index 47ba233..24659ff 100644 --- a/respawn.js +++ b/respawn.js @@ -1,4 +1,4 @@ JsMacros.on("Death",JavaWrapper.methodToJava(event => { - Client.waitTick(5) + Client.waitTick(10) event.respawn() })) \ No newline at end of file