couldnt find a built in function to apply camerashake to a player so i made this one
//--copperCompilerFileType:lib
//--copperCompilerRef:libs/dsmlStdLib.cc
import { TicksPerSecond, world } from "@minecraft/server"
/**
* Converts an amount of ticks to seconds
* @param {number} ticks Number of ticks to convert to seconds
* @returns {number} Number of seconds that equate to given ticks
*/
export function ticksToSecs(ticks) {
return ticks / TicksPerSecond;
}
//--copperCompilerObjType:enum
export const CamShakeType = {
Positional: "positional",
Rotational: "rotational"
}
/**
* @param {Player} player
* @param {number} intensity
* @param {number} ticks
* @param {CamShakeType} shakeType
*/
//--copperCompilerExtend:Player
export function camShake(player, intensity, ticks, shakeType) {
let gamerule = world.gameRules.sendCommandFeedback; // record the already set value
world.gameRules.sendCommandFeedback = false;
player.dimension.runCommand("camerashake add \"" + player.name + "\" " + intensity + " " + ticksToSecs(ticks) + " " + shakeType);
world.gameRules.sendCommandFeedback = gamerule; // preserve it
}