add first patch
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
console.info("[SOCIETY] totems.js loaded");
|
||||
|
||||
const isEdging = (pos, x, z, radius) =>
|
||||
pos.x === x + radius ||
|
||||
pos.x === x - radius ||
|
||||
pos.z === z + radius ||
|
||||
pos.z === z - radius;
|
||||
|
||||
const runSpotTotem = (e, type) => {
|
||||
const { server, player, level, item } = e;
|
||||
|
||||
const block = player.getOnPos();
|
||||
const { x, y, z } = level.getBlock(block);
|
||||
let radius = 2;
|
||||
let scanBlock;
|
||||
let aboveBlock;
|
||||
for (let pos of BlockPos.betweenClosed(
|
||||
new BlockPos(x - radius, y - 1, z - radius),
|
||||
[x + radius, y + 1, z + radius]
|
||||
)) {
|
||||
if (isEdging(pos, x, z, radius)) {
|
||||
if (!level.isLoaded(pos)) continue;
|
||||
scanBlock = level.getBlock(pos);
|
||||
aboveBlock = level.getBlock(pos.above());
|
||||
if (
|
||||
aboveBlock.id == "minecraft:air" &&
|
||||
((type.equals("digspot") &&
|
||||
scanBlock.hasTag("society:treasure_spot_spawns")) ||
|
||||
(type.equals("fishingspot") &&
|
||||
scanBlock.id.equals("minecraft:water")))
|
||||
) {
|
||||
server.runCommandSilent(
|
||||
`execute as ${player.username} run littlejoys ${type} ${aboveBlock.x} ${aboveBlock.y} ${aboveBlock.z}`
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
server.runCommandSilent(
|
||||
`playsound botania:terrasteel_craft block @a ${player.x} ${player.y} ${player.z}`
|
||||
);
|
||||
server.runCommandSilent(
|
||||
`playsound stardew_fishing:complete block @a ${player.x} ${player.y} ${player.z}`
|
||||
);
|
||||
if (!player.isCreative()) item.count--;
|
||||
global.addItemCooldown(player, item.id, 20);
|
||||
};
|
||||
|
||||
ItemEvents.rightClicked("society:treasure_totem", (e) => {
|
||||
runSpotTotem(e, "digspot");
|
||||
});
|
||||
|
||||
ItemEvents.rightClicked("society:bubble_totem", (e) => {
|
||||
runSpotTotem(e, "fishingspot");
|
||||
});
|
||||
|
||||
|
||||
const runWeatherTotem = (e, weather) => {
|
||||
const { server, player, item } = e;
|
||||
|
||||
server.runCommandSilent(
|
||||
`weather ${weather}`
|
||||
);
|
||||
server.runCommandSilent(
|
||||
`playsound botania:terrasteel_craft block @a ${player.x} ${player.y} ${player.z}`
|
||||
);
|
||||
server.runCommandSilent(
|
||||
`playsound stardew_fishing:complete block @a ${player.x} ${player.y} ${player.z}`
|
||||
);
|
||||
if (!player.isCreative()) item.count--;
|
||||
global.addItemCooldown(player, item.id, 2000);
|
||||
};
|
||||
|
||||
ItemEvents.rightClicked("society:dry_totem", (e) => {
|
||||
runWeatherTotem(e, "clear");
|
||||
});
|
||||
|
||||
ItemEvents.rightClicked("society:rain_totem", (e) => {
|
||||
runWeatherTotem(e, "rain");
|
||||
});
|
||||
|
||||
ItemEvents.rightClicked("society:thunder_totem", (e) => {
|
||||
runWeatherTotem(e, "thunder");
|
||||
});
|
||||
Reference in New Issue
Block a user