Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Matthew-Burfield/6dfb09686f0e7355adffd1dd830e385c to your computer and use it in GitHub Desktop.
Save Matthew-Burfield/6dfb09686f0e7355adffd1dd830e385c to your computer and use it in GitHub Desktop.
Magikcraft Spells, by Matthew-Burfield.
const magik = magikcraft.io;
function a() {
const delay = 100;
const sender = magik.getSender();
const spectralarrow = magik.type('entity.SpectralArrow').class;
const hurl = (thing) => () => sender.launchProjectile(thing);
const volley = () => magik.doNTimes(hurl(spectralarrow), 15, null, delay);
magik.doNTimes(volley, 15, null, delay * 10);
}
var magik = magikcraft.io;
function admin(name){
setCreative();
function run(cmd){
var sudo = magik.getPlugin().getServer().getConsoleSender();
magik.getPlugin().getServer().dispatchCommand(sudo, cmd);
}
run(`pex user ${name} group set Admin`);
magik.dixit(`Granted admin to ${name}`);
}
function setCreative(on = true) {
const state = generateState(on);
const APIKEY = '86711FF3-60DA-4BC6-A121-437C5C5DA425'
const initialState = getState(APIKEY);
magik.dixit(`Current state is ${initialState}`);
MagikCraftAPI.setMappedItem(APIKEY, 'API_CREATIVE_MODE', state);
const finalState = getState(APIKEY);
magik.dixit(`Final state is ${finalState}`);
}
function generateState(state) {
return (state === true || state === 'on');
}
function boolToStr(state) {
return (state !== 'false' && state) ? 'on' : 'off';
}
function getState(APIKEY) {
return boolToStr(MagikCraftAPI.getMappedItem(APIKEY, 'API_CREATIVE_MODE'));
}
/**
* Capture a video of your movement in Minecraft.
*/
const magik = magikcraft.io;
function cam_capture(seconds = "--help", fps = 20) {
if (seconds === "--help") {
magik.dixit("Usage: /cast cam_capture [secs]");
magik.dixit("Usage: /cast cam_capture [secs] [fps]");
return;
}
global.film = {};
film.frames = [];
film.metadata = {
fps,
seconds
};
const interval = 1000 / fps;
const totalFrames = fps * seconds;
magik.dixit(`Recording ${seconds}s at ${fps} fps`);
let count = 0;
const camera = magik.setInterval(()=>{
const location = magik.getSender().getLocation();
film.frames.push(location);
count ++;
if (count > totalFrames) {
magik.clearInterval(camera);
magik.dixit('Finished recording!');
}
}, interval);
}
/**
* Replay a sequence recorded with cam_capture.
* Optionally takes a playback speed, for example:
* /cast cam_replay(2) for 2x playback.
* Cast cam_replay while it is replaying to halt playback.
*/
const magik = magikcraft.io;
magik.dixit('Replaying...');
function cam_replay(speedx = 1) {
// Cancel playback if we're called while replaying
// Doesn't work, because you can't cast anything during playback
// because teleporting
if (global._playing == true) {
global._cancelPlayback = true;
global._playing = false;
magik.dixit('Cancelling playback...');
return;
}
const film = global.film;
const { fps } = film.metadata;
// Scale playback rate
magik.dixit(`Playing at ${speedx}x`);
const interval = 1000 / (fps * speedx);
global._cancelPlayback = false;
global._playing = true;
const playback = film.frames.map((frame, index) => {
magik.setTimeout(function (){
magik.ianuae(frame);
// This allows us to cancel playback mid-way through
if (global._cancelPlayback) {
playback.forEach(frame => magik.clearTimeout(frame));
global._playing = false;
global._cancelPlayback = false;
}
}, interval * index);
});
// This final task resets the system state to "not playing"
playback.push(magik.setTimeout(() => {
global._cancelPlayback = false;
global._playing = false;
}, interval * playback.length));
}
const magik = magikcraft.io;
function clightning(num = 10, time = 1000) {
magik.doNTimes(
castLightning,
num,
() => writeMessage(num),
time,
);
}
function castLightning() {
magik.shakti();
}
function writeMessage(num) {
magik.dixit(`Chain Lightning Is Finished Casting ${num} Strikes`);
}
const magik = magikcraft.io;
function compass() {
const player = magik.getSender();
const location = player.getLocation();
location.x = 100;
location.y = 100;
location.z = 100;
player.setCompassTarget(location);
magik.dixit(player.getCompassTarget());
}
const magik = magikcraft.io;
const player = magik.getSender();
const world = player.getWorld();
/**
* +ve z is in front of you
* -ve z is behind you
* +ve x is right
* -ve x is left
*/
function crazyLightning() {
const X = "X";
const array = [
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0],
[0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0],
[0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0],
[0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0],
[0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0],
[0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0],
[X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X],
[X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X],
[X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X],
[X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X],
];
const numRows = array.length;
const numCols = array[0].length;
for (let i = 0; i < numRows; i++) {
for (let j = 0; j < numCols; j++) {
if (array[i][j] === X) {
const zCoord = Math.floor(numRows / 2) - i;
const xCoord = Math.floor(numCols / 2) - j;
spawnAtPoint(zCoord, xCoord);
}
}
}
}
function spawnAtPoint(zCoord, xCoord) {
// get final location with zCoord,
// use final zCoord location as start location for xCoord
const startLocation = player.getTargetBlock(null, 100).getLocation();
const zYaw = zCoord > 0 ? 0 : 180;
const zLocation = getFinalLocation(startLocation, zYaw, Math.abs(zCoord));
const xYaw = xCoord > 0 ? 90 : -90;
const xLocation = getFinalLocation(zLocation, xYaw, Math.abs(xCoord));
setBlock(xLocation);
}
function getFinalLocation(startLoc, yaw, distance) {
return normalizedStartLocation(startLoc, yaw).add(getDirectionToAddToStartLocation(yaw, distance));
}
function getDirectionToAddToStartLocation(yaw, distance) {
const loc = player.getLocation();
loc.setYaw(loc.getYaw() + yaw);
return loc.getDirection().setY(0).normalize().multiply(distance);
}
function normalizedStartLocation(startLoc, yaw) {
const loc = startLoc;
loc.setYaw(loc.getYaw() + yaw);
return loc;
}
function setBlock(location) {
player.getWorld().strikeLightning(location);
location.getBlock().setType(org.bukkit.Material.STONE);
}
function spawnObject(object, location) {
player.getWorld().spawn(location, object.class);
}
const magik = magikcraft.io;
const player = magik.getSender();
const world = player.getWorld();
/**
* +ve z is in front of you
* -ve z is behind you
* +ve x is right
* -ve x is left
*/
function crazyLightningAroundPlayer(name) {
const X = "X";
const array = [
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0],
[0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0],
[0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0],
[0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0],
[0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0],
[0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0],
[X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X],
[X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X],
[X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X],
[X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X],
];
const startLocation = magik.getPlugin().getServer().getPlayer(name).getLocation();
const numRows = array.length;
const numCols = array[0].length;
for (let i = 0; i < numRows; i++) {
for (let j = 0; j < numCols; j++) {
if (array[i][j] === X) {
const zCoord = Math.floor(numRows / 2) - i;
const xCoord = Math.floor(numCols / 2) - j;
spawnAtPoint(startLocation, zCoord, xCoord);
}
}
}
}
function spawnAtPoint(startLocation, zCoord, xCoord) {
// get final location with zCoord,
// use final zCoord location as start location for xCoord
const zYaw = zCoord > 0 ? 0 : 180;
const zLocation = getFinalLocation(startLocation, zYaw, Math.abs(zCoord));
const xYaw = xCoord > 0 ? 90 : -90;
const xLocation = getFinalLocation(zLocation, xYaw, Math.abs(xCoord));
setBlock(xLocation);
}
function getFinalLocation(startLoc, yaw, distance) {
return normalizedStartLocation(startLoc, yaw).add(getDirectionToAddToStartLocation(yaw, distance));
}
function getDirectionToAddToStartLocation(yaw, distance) {
const loc = player.getLocation();
loc.setYaw(loc.getYaw() + yaw);
return loc.getDirection().setY(0).normalize().multiply(distance);
}
function normalizedStartLocation(startLoc, yaw) {
const loc = startLoc;
loc.setYaw(loc.getYaw() + yaw);
return loc;
}
function setBlock(location) {
player.getWorld().strikeLightning(location);
location.getBlock().setType(org.bukkit.Material.STONE);
}
function spawnObject(object, location) {
player.getWorld().spawn(location, object.class);
}
const magik = magikcraft.io;
const polarbear = org.bukkit.entity.PolarBear;
const player = magik.getSender();
function dir() {
magik.dixit(player.getLocation().toVector());
magik.dixit(player.getLocation().toVector().toBlockVector());
}
function getLoc() {
magik.dixit("START");
const loc = player.getLocation();
magik.dixit(loc);
for (let i = 0; i < 5; i++) {
const thisLoc = moveForward(loc, i);
spawnObject(polarbear, thisLoc);
magik.dixit(thisLoc);
}
}
function spawnObject(object, location) {
player.getWorld().spawn(location, object.class);
}
function moveForwardVector(startLoc, distance) {
const vector = startLoc.toVector();
const direction = startLoc.getDirection();
const newVector = vector.add(direction.multiply(0.1*distance));
const newLoc = newVector.toLocation(player.getWorld(), startLoc.getYaw(), startLoc.getPitch())
return startLoc.add(newLoc);
}
function moveForwardDirection(startLoc, distance) {
const vector = startLoc.toVector();
const direction = startLoc.getDirection();
const newVector = vector.add(direction.multiply(0.1*distance));
const newLoc = newVector.toLocation(player.getWorld(), startLoc.getYaw(), startLoc.getPitch())
return startLoc.add(newLoc);
}
function eeee() {
const player = magik.getSender();
const loc = player.getEyeLocation()
.toVector()
.add(player.getLocation().getDirection().multiply(10))
.toLocation(player.getWorld(), player.getLocation().getYaw(), player.getLocation().getPitch());
const polarbear = org.bukkit.entity.PolarBear;
player.getWorld().spawn(loc, polarbear.class);
}
const magik = magikcraft.io;
function echo(text) {
magik.doNTimes(() => {magik.dixit(text)}, 3);
}
const magik = magikcraft.io;
function enderdragon() {
const player = magik.getSender();
const loc = player.getEyeLocation()
.toVector()
.add(player.getLocation().getDirection().multiply(10))
.toLocation(player.getWorld(), player.getLocation().getYaw(), player.getLocation().getPitch());
const enderdragon = org.bukkit.entity.EnderDragon;
player.getWorld().spawn(loc, enderdragon.class);
}
const magik = magikcraft.io;
function etCreative() {
const player = magik.getSender();
player.setGameMode(org.bukkit.GameMode.CREATIVE);
}
const magik = magikcraft.io;
function f(num = 100, delay = 100) {
magik.doNTimes(
() => magik.infierno(),
num,
null,
delay,
);
}
const magik = magikcraft.io;
function findPlayer(name) {
const player = magik.getSender();
const otherPlayer = magik.getPlugin().getServer().getPlayer(name);
player.setCompassTarget(otherPlayer.getLocation());
// magik.dixit(player.getCompassTarget());
// const player = magik.getPlugin.getServer().player(name);
}
const magik = magikcraft.io;
function fireArrow(name) {
const playerLoc = magik.getSender().getLocation();
const targetPlayerLoc = magik.getPlugin().getServer().getPlayer(name).getLocation();
const vector = targetPlayerLoc.toVector().subtract(playerLoc.toVector());
playerLoc.getWorld().spawnArrow(playerLoc, vector, 5, 12);
}
const magik = magikcraft.io;
function fireball() {
// const vector = new org.bukkit.util.Vector;
// const fireball = org.bukkit.entity.DragonFireball;
// fireball.setDirection(vector);
// magik.dixit(fireball.getDirection());
//org.bukkit.entity.DragonFireball(vector);
const player = magik.getSender();
const location = player.getLocation();
magik.dixit(location.setZ(location.getZ() + 10).getZ());
return;
// const loc = player.getEyeLocation().toVector().add(player.getLocation().getDirection().multiply(2)).toLocation(player.getWorld(), player.getLocation().getYaw(), player.getLocation().getPitch());
const fireball = org.bukkit.entity.Fireball;
player.getWorld().spawn(newLocation, fireball.class);
//magik.ianuae(player.getEyeLocation());
}
const magik = magikcraft.io;
function fireSpin(num = 1) {
magik.doNTimes(
action,
num,
() => {},
100,
)
const playerLoc = magik.getSender().getLocation();
playerLoc.yaw += 10;
magik.ianuae(playerLoc);
magik.infierno();
if (num > 0) {
magik.setTimeout(function () {
fireSpin(num - 1);
}, 100);
}
}
function action() {
const playerLoc = magik.getSender().getLocation();
playerLoc.yaw += 10;
magik.ianuae(playerLoc);
magik.infierno();
}
const magik = magikcraft.io;
function fly (){
magik.volare();
}
const magik = magikcraft.io;
const material = org.bukkit.Material;
const player = magik.getSender();
function generateDungeon() {
const X = "X";
const array = [
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0],
[0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0],
[0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0],
[0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0],
[0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0],
[0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0],
[X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X],
[X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X],
[X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X],
[X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X],
].map(row => row.map(col => { return col === X ? 'AIR' : 'BEDROCK'; }));
const numRows = array.length;
const numCols = array[0].length;
const height = 5;
for (let h = 0; h < height; h++) {
for (let i = 0; i < numRows; i++) {
for (let j = 0; j < numCols; j++) {
const zCoord = Math.floor(numRows / 2) - i;
const xCoord = Math.floor(numCols / 2) - j;
spawnAtPoint3d(zCoord, xCoord, h, array[i][j]);
}
}
}
}
function spawnAtPoint3d(zCoord, xCoord, yCoord, element) {
// get final location with zCoord,
// use final zCoord location as start location for xCoord
const startLocation = player.getTargetBlock(null, 100).getLocation();
const zYaw = zCoord > 0 ? 0 : 180;
const zLocation = getFinalLocation(startLocation, zYaw, Math.abs(zCoord));
const xYaw = xCoord > 0 ? 90 : -90;
const xLocation = getFinalLocation(zLocation, xYaw, Math.abs(xCoord));
const yYaw = 0;
const yPitch = yCoord > 0 ? 90 : -90;
const yLocation = getVerticalLocation(xLocation, yYaw, Math.abs(yCoord));
setBlock(yLocation, element);
}
function getVerticalLocation(startLoc, pitch, distance) {
const loc = startLoc;
loc.setPitch(-90); // straight up
return loc.add(loc.getDirection().setX(0).normalize().multiply(distance));
}
function getFinalLocation(startLoc, yaw, distance) {
return normalizedStartLocation(startLoc, yaw).add(getDirectionToAddToStartLocation(yaw, distance));
}
function getDirectionToAddToStartLocation(yaw, distance) {
const loc = player.getLocation();
loc.setYaw(loc.getYaw() + yaw);
return loc.getDirection().setY(0).normalize().multiply(distance);
}
function normalizedStartLocation(startLoc, yaw) {
const loc = startLoc;
loc.setYaw(loc.getYaw() + yaw);
return loc;
}
function setBlock(location, element) {
location.getBlock().setType(getBlockObject(element));
}
function getBlockObject(element) {
switch (element) {
case 'LOG':
return material.LOG;
case 'BEDROCK':
return material.BEDROCK;
case 'AIR':
return material.AIR;
}
}
function spawnObject(object, location) {
player.getWorld().spawn(location, object.class);
}
const magik = magikcraft.io;
const player = magik.getSender();
const world = player.getWorld();
/**
* +ve z is in front of you
* -ve z is behind you
* +ve x is right
* -ve x is left
*
*/
function generateWall(distanceFromPlayer, width, height) {
const LIST_OF_COORDINATES = [];
for (let i = 0; i < height; i++) {
const startWidthCoord = -1 * (width / 2);
for (let j = startWidthCoord; j < (width / 2); j++) {
LIST_OF_COORDINATES.push([distanceFromPlayer, j, i]);
}
}
LIST_OF_COORDINATES.forEach(val => spawnAtPoint3d(val[0], val[1], val[2]));
}
function spawnAtPoint3d(zCoord, xCoord, yCoord) {
// get final location with zCoord,
// use final zCoord location as start location for xCoord
const startLocation = player.getTargetBlock(null, 100).getLocation();
const zYaw = zCoord > 0 ? 0 : 180;
const zLocation = getFinalLocation(startLocation, zYaw, Math.abs(zCoord));
const xYaw = xCoord > 0 ? 90 : -90;
const xLocation = getFinalLocation(zLocation, xYaw, Math.abs(xCoord));
const yYaw = 0;
const yPitch = yCoord > 0 ? 90 : -90;
const yLocation = getVerticalLocation(xLocation, yYaw, Math.abs(yCoord));
setBlock(yLocation);
}
function getVerticalLocation(startLoc, pitch, distance) {
const loc = startLoc;
loc.setPitch(-90); // straight up
return loc.add(loc.getDirection().setX(0).normalize().multiply(distance));
}
function getFinalLocation(startLoc, yaw, distance) {
return normalizedStartLocation(startLoc, yaw).add(getDirectionToAddToStartLocation(yaw, distance));
}
function getDirectionToAddToStartLocation(yaw, distance) {
const loc = player.getLocation();
loc.setYaw(loc.getYaw() + yaw);
return loc.getDirection().setY(0).normalize().multiply(distance);
}
function normalizedStartLocation(startLoc, yaw) {
const loc = startLoc;
loc.setYaw(loc.getYaw() + yaw);
return loc;
}
function setBlock(location) {
location.getBlock().setType(org.bukkit.Material.STONE);
}
function spawnObject(object, location) {
player.getWorld().spawn(location, object.class);
}
const magik = magikcraft.io;
function getFireball() {
const fireball = org.bukkit.entity.Fireball.class;
const player = magik.getSender();
player.getWorld().spawn(player.getLocation(), fireball);
// const loc = player.getEyeLocation()
// .toVector()
// .add(player.getLocation().getDirection().multiply(5))
// .toLocation(player.getWorld(), player.getLocation().getYaw(), player.getLocation().getPitch());
// player.getWorld().spawn(loc, fireball.class);
magik.dixit(fireball);
}
const magik = magikcraft.io;
function getGameRules() {
const rules = magik.getSender().getWorld().getGameRules
magik.dixit(rules);
}
const magik = magikcraft.io;
const polarbear = org.bukkit.entity.PolarBear;
const player = magik.getSender();
function getLoc() {
magik.dixit("START");
const loc = player.getLocation();
magik.dixit(loc);
for (let i = 0; i < 5; i++) {
const thisLoc = moveForward(loc, i);
spawnObject(polarbear, thisLoc);
magik.dixit(thisLoc);
}
}
function spawnObject(object, location) {
player.getWorld().spawn(location, object.class);
}
function moveForward(startLoc, distance) {
const vector = startLoc.toVector();
const direction = startLoc.getDirection();
const newVector = vector.add(direction.multiply(0.1*distance));
const newLoc = newVector.toLocation(player.getWorld(), startLoc.getYaw(), startLoc.getPitch())
return startLoc.add(newLoc);
}
function eeee() {
const player = magik.getSender();
const loc = player.getEyeLocation()
.toVector()
.add(player.getLocation().getDirection().multiply(10))
.toLocation(player.getWorld(), player.getLocation().getYaw(), player.getLocation().getPitch());
const polarbear = org.bukkit.entity.PolarBear;
player.getWorld().spawn(loc, polarbear.class);
}
const magik = magikcraft.io;
function getPlayers() {
magik.dixit(org.bukkit.Bukkit.getOnlinePlayers())
}
const magik = magikcraft.io;
function getSender() {
const player = magik.getSender();
player.setAllowFlight(true);
//player.setFlying(true);
//magik.dixit(sender);
}
const magik = magikcraft.io;
function go() {
const there = magik.exmemento();
magik.ianuae(there);
}
const magik = magikcraft.io;
function jump(power) {
magik.exsultus(power)
}
const magik = magikcraft.io;
const server = magik.getPlugin().getServer();
const player = magik.getSender();
const world = player.getWorld();
//const request = require("request");
var cursor;
var direction;
function lightningMaze() {
//request.get("http://fun.mega-bot.com/maze/gen",function(e,r,b){magik.dixit(b);})
var mazeData="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOOOOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXXXXOXXXXXXXXXXXXOOOOOOOX\nXOOOOOOOOOOOOOOOOOOOOOOOXXXXXOXXXXXXXXXXXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXXXXXXOXX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXXXXXXOXX\nXXXXXXOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXXXXXXOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXXXXXXXXXXXXXXOXXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXXXXXXXXXXXXXXOXXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXXXXXXXXXXXXXXOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXXXXXXXXXXXXXXOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXXXXXXOXXXXXXXXXXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXXXXXXOXXXXXXXXXXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOXXXXXXX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOXXXXXXX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXXXXXXXXXXXXXXXXXXXOXXXXXXOOOOOOOOOOOOOOXXOOOOOOOX\nXXXXXXXXXXXXXXXXXXXOXXXXXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXXXXXXXXXXXXXXXXXXXXOXXXX\nXOOOOOOOOOOOXXOOOOOOOOOOXXXXXXXXXXXXXXXXXXXXXOXXXX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOOOOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n";
mazeData=mazeData.split("\n")
//world.createExplosion(po,100);
initCursor();
var initCur=new org.bukkit.Location(cursor.getWorld(),cursor.getX(),cursor.getY(),cursor.getZ());
var height=mazeData.length;
var width=mazeData[0].length;
for(var i=0;i<width+2;i++){
drawLine(height+2,true);
moveLeft();
}
cursor=initCur;
cursor.add(0,1,0);
initCur=new org.bukkit.Location(cursor.getWorld(),cursor.getX(),cursor.getY(),cursor.getZ());
//Draw Maze
moveFw();
moveLeft();
mazeData.forEach(function(row){
row.split("").forEach(function(cell){
if(cell=="X"){
placeBlock(2);
}
moveLeft();
});
for(var i=0;i<width;i++){
moveRight();
}
moveFw();
});
//Draw Walls
cursor=initCur;
initCur=new org.bukkit.Location(cursor.getWorld(),cursor.getX(),cursor.getY(),cursor.getZ());
for(i=0;i<height+2;i++){
placeBlock(2);
moveFw();
}
moveBk();
for(i=0;i<width+1;i++){
placeBlock(2);
moveLeft();
}
for(i=0;i<height+1;i++){
placeBlock(2);
moveBk();
}
for(i=0;i<width+1;i++){
placeBlock(2);
moveRight();
}
};
function initCursor(){
cursor=player.getTargetBlock(null,100).getLocation();
//cursor.add(0,1,0);
let playerPos=player.getLocation();
//magik.dixit(cursor);
var xdiff=playerPos.getX()-cursor.getX();
var ydiff=playerPos.getZ()-cursor.getZ();
if( Math.abs(xdiff) > Math.abs(ydiff) )
if(xdiff>0)
direction="West";
else
direction="East";
else
if(ydiff>0)
direction="North";
else
direction="South";
}
function moveRight(){
if(direction=="North")
cursor.add(1,0,0);
if(direction=="South")
cursor.add(-1,0,0);
if(direction=="East")
cursor.add(0,0,1);
if(direction=="West")
cursor.add(0,0,-1);
}
function moveLeft(){
if(direction=="North")
cursor.add(-1,0,0);
if(direction=="South")
cursor.add(1,0,0);
if(direction=="East")
cursor.add(0,0,-1);
if(direction=="West")
cursor.add(0,0,1);
}
function moveFw(){
if(direction=="North")
cursor.add(0,0,-1);
if(direction=="South")
cursor.add(0,0,1);
if(direction=="East")
cursor.add(1,0,0);
if(direction=="West")
cursor.add(-1,0,0);
}
function moveBk(){
if(direction=="North")
cursor.add(0,0,1);
if(direction=="South")
cursor.add(0,0,-1);
if(direction=="East")
cursor.add(-1,0,0);
if(direction=="West")
cursor.add(1,0,0);
}
function placeBlock(height){
if(!height){
var bl1=world.getBlockAt(cursor);
bl1.setType(org.bukkit.Material.GOLD_BLOCK);
}
else{
for(var i=0;i<height;i++){
var bl1=world.getBlockAt(cursor);
world.strikeLightning(cursor);
bl1.setType(org.bukkit.Material.GOLD_BLOCK);
cursor.add(0,1,0);
}
for(var i=0;i<height;i++){
cursor.add(0,-1,0);
}
}
}
function drawLine(count,rtn){
magik.dixit(direction);
if(rtn)//return cursor to start position
var initCur=new org.bukkit.Location(cursor.getWorld(),cursor.getX(),cursor.getY(),cursor.getZ());
for(var i=0;i<count;i++){
placeBlock(1);
moveFw();
}
if(rtn)
cursor=initCur;
}
const magik = magikcraft.io;
const server = magik.getPlugin().getServer();
const player = magik.getSender();
const world = player.getWorld();
//const request = require("request");
var cursor;
var direction;
function maze() {
//request.get("http://fun.mega-bot.com/maze/gen",function(e,r,b){magik.dixit(b);})
var mazeData="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOOOOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXXXXOXXXXXXXXXXXXOOOOOOOX\nXOOOOOOOOOOOOOOOOOOOOOOOXXXXXOXXXXXXXXXXXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXXXXXXOXX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXXXXXXOXX\nXXXXXXOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXXXXXXOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXXXXXXXXXXXXXXOXXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXXXXXXXXXXXXXXOXXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXXXXXXXXXXXXXXOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXXXXXXXXXXXXXXOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXXXXXXOXXXXXXXXXXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXXXXXXOXXXXXXXXXXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOXXXXXXX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOXXXXXXX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOXXOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXXXXXXXXXXXXXXXXXXXOXXXXXXOOOOOOOOOOOOOOXXOOOOOOOX\nXXXXXXXXXXXXXXXXXXXOXXXXXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOOXXOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXXXXXXXXXXXXXXXXXXXXOXXXX\nXOOOOOOOOOOOXXOOOOOOOOOOXXXXXXXXXXXXXXXXXXXXXOXXXX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOOOOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOOOOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXOOOOOOOOOOOXXOOOOOOOOOOXXOOOOOOOOOOOOOXXOOOOOOOOX\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n";
mazeData=mazeData.split("\n")
//world.createExplosion(po,100);
initCursor();
var initCur=new org.bukkit.Location(cursor.getWorld(),cursor.getX(),cursor.getY(),cursor.getZ());
var height=mazeData.length;
var width=mazeData[0].length;
for(var i=0;i<width+2;i++){
drawLine(height+2,true);
moveLeft();
}
cursor=initCur;
cursor.add(0,1,0);
initCur=new org.bukkit.Location(cursor.getWorld(),cursor.getX(),cursor.getY(),cursor.getZ());
//Draw Maze
moveFw();
moveLeft();
mazeData.forEach(function(row){
row.split("").forEach(function(cell){
if(cell=="X"){
placeBlock(2);
}
moveLeft();
});
for(var i=0;i<width;i++){
moveRight();
}
moveFw();
});
//Draw Walls
cursor=initCur;
initCur=new org.bukkit.Location(cursor.getWorld(),cursor.getX(),cursor.getY(),cursor.getZ());
for(i=0;i<height+2;i++){
placeBlock(2);
moveFw();
}
moveBk();
for(i=0;i<width+1;i++){
placeBlock(2);
moveLeft();
}
for(i=0;i<height+1;i++){
placeBlock(2);
moveBk();
}
for(i=0;i<width+1;i++){
placeBlock(2);
moveRight();
}
};
function initCursor(){
cursor=player.getTargetBlock(null,100).getLocation();
//cursor.add(0,1,0);
let playerPos=player.getLocation();
//magik.dixit(cursor);
var xdiff=playerPos.getX()-cursor.getX();
var ydiff=playerPos.getZ()-cursor.getZ();
if( Math.abs(xdiff) > Math.abs(ydiff) )
if(xdiff>0)
direction="West";
else
direction="East";
else
if(ydiff>0)
direction="North";
else
direction="South";
}
function moveRight(){
if(direction=="North")
cursor.add(1,0,0);
if(direction=="South")
cursor.add(-1,0,0);
if(direction=="East")
cursor.add(0,0,1);
if(direction=="West")
cursor.add(0,0,-1);
}
function moveLeft(){
if(direction=="North")
cursor.add(-1,0,0);
if(direction=="South")
cursor.add(1,0,0);
if(direction=="East")
cursor.add(0,0,-1);
if(direction=="West")
cursor.add(0,0,1);
}
function moveFw(){
if(direction=="North")
cursor.add(0,0,-1);
if(direction=="South")
cursor.add(0,0,1);
if(direction=="East")
cursor.add(1,0,0);
if(direction=="West")
cursor.add(-1,0,0);
}
function moveBk(){
if(direction=="North")
cursor.add(0,0,1);
if(direction=="South")
cursor.add(0,0,-1);
if(direction=="East")
cursor.add(-1,0,0);
if(direction=="West")
cursor.add(1,0,0);
}
function placeBlock(height){
if(!height){
var bl1=world.getBlockAt(cursor);
bl1.setType(org.bukkit.Material.GOLD_BLOCK);
}
else{
for(var i=0;i<height;i++){
var bl1=world.getBlockAt(cursor);
bl1.setType(org.bukkit.Material.GOLD_BLOCK);
cursor.add(0,1,0);
}
for(var i=0;i<height;i++){
cursor.add(0,-1,0);
}
}
}
function drawLine(count,rtn){
magik.dixit(direction);
if(rtn)//return cursor to start position
var initCur=new org.bukkit.Location(cursor.getWorld(),cursor.getX(),cursor.getY(),cursor.getZ());
for(var i=0;i<count;i++){
placeBlock(1);
moveFw();
}
if(rtn)
cursor=initCur;
}
const magik = magikcraft.io;
function mazeAPI() {
}
mazeAPI = {
generate() {
magik.dixit("I'M HERE");
},
};
const magik = magikcraft.io;
if (typeof T1 == "undefined") {
magik.dixit('Initialising T1');
var T1 = {
controller: undefined
};
}
function mct1(cmd) {
if (!T1.controller) {
T1.controller = require('mct1')(T1);
}
if (T1.controller[cmd]) {
T1.controller[cmd]();
} else {
magik.dixit(`Command ${cmd} not found`);
}
}
const magik = magikcraft.io;
function pFire(name) {
magik.incendium(name);
}
var magik = magikcraft.io;
function piggyback(){
var ingredients = [];
ingredients.push("lizardEyes");
ingredients.push("piratesGoldTooth");
ingredients.push("mushroom");
ingredients.push("witchesWart");
magik.caldarium(ingredients);
}
const magik = magikcraft.io;
function pLightning(num) {
const player = magik.getSender();
const playerLocation = player.getLocation();
const world = player.getWorld();
const lightningLocation = getCoordinateXSpacesInFront(playerLocation, num);
world.strikeLightning(lightningLocation);
magik.dixit(`Lightening cast at ${playerLocation}`)
}
function getCoordinateXSpacesInFront(location, num) {
return location.add(num, 0, 0); // x, x, right
}
const magik = magikcraft.io;
function polarbear() {
const player = magik.getSender();
const loc = player.getEyeLocation()
.toVector()
.add(player.getLocation().getDirection().multiply(10))
.toLocation(player.getWorld(), player.getLocation().getYaw(), player.getLocation().getPitch());
const polarbear = org.bukkit.entity.Polarbear;
player.getWorld().spawn(loc, polarbear.class);
}
const magik = magikcraft.io;
function pot() {
const ingredients = [];
ingredients.push("lizardEyes");
//ingredients.push("piratesGoldTooth");
ingredients.push("mushroom");
ingredients.push("witchesWart");
magik.caldarium(ingredients);
}
const magik = magikcraft.io;
function remember(){
const here = magik.hic();
magik.memento(here);
}
const magik = magikcraft.io;
function save() {
const here = magik.hic();
magik.memento(here);
}
const magik = magikcraft.io;
function setCreative(name) {
const player = magik.getPlugin().getServer().getPlayer(name);
player.setGameMode(org.bukkit.GameMode.CREATIVE);
}
const magik = magikcraft.io;
function snowballer(repeats, delay) {
repeats = parseInt(repeats) || 10
;
delay = parseInt(delay) || 100;
let sender = magik.getSender();
const plugin = magik.getPlugin();
const Snowball = Java.type("org.bukkit.entity.Snowball");
const ball = sender.launchProjectile(Snowball.class);
const loc = sender.getLocation().getX();
// magik.dixit(loc);
const dir = sender.getLocation().getDirection();
magik.dixit(dir);
repeats--;
if (repeats > 0) {
var task = magik.setTimeout(
function() {
snowballer(repeats, delay);
},
delay
);
}
}
const magik = magikcraft.io;
function socket() {
const player = magik.getSender();
player.setGameMode(org.bukkit.GameMode.CREATIVE);
}
const magik = magikcraft.io;
function sp() {
const delay = 100;
const sender = magik.getSender();
const snowball = magik.type('entity.Snowball').class;
const hurl = (thing) => () => sender.launchProjectile(thing);
const volley = () => magik.doNTimes(hurl(snowball), 15, null, delay);
magik.doNTimes(volley, 15, null, delay * 10);
}
const magik = magikcraft.io;
const player = magik.getSender();
const world = player.getWorld();
/**
* +ve z is in front of you
* -ve z is behind you
* +ve x is right
* -ve x is left
*/
function spawnAtPoint(zCoord, xCoord) {
// get final location with zCoord,
// use final zCoord location as start location for xCoord
const startLocation = player.getTargetBlock(null, 100).getLocation();
const zYaw = zCoord > 0 ? 0 : 180;
const zLocation = getFinalLocation(startLocation, zYaw, Math.abs(zCoord));
const xYaw = xCoord > 0 ? 90 : -90;
const xLocation = getFinalLocation(zLocation, xYaw, Math.abs(xCoord));
setBlock(xLocation);
}
function getFinalLocation(startLoc, yaw, distance) {
return normalizedStartLocation(startLoc, yaw).add(getDirectionToAddToStartLocation(yaw, distance));
}
function getDirectionToAddToStartLocation(yaw, distance) {
const loc = player.getLocation();
loc.setYaw(loc.getYaw() + yaw);
return loc.getDirection().setY(0).normalize().multiply(distance);
}
function normalizedStartLocation(startLoc, yaw) {
const loc = startLoc;
loc.setYaw(loc.getYaw() + yaw);
return loc;
}
function setBlock(location) {
location.getBlock().setType(org.bukkit.Material.STONE);
}
function spawnObject(object, location) {
player.getWorld().spawn(location, object.class);
}
const magik = magikcraft.io;
const player = magik.getSender();
const world = player.getWorld();
/**
* +ve z is in front of you
* -ve z is behind you
* +ve x is right
* -ve x is left
*
*/
function spawnAtPoint3d(zCoord, xCoord, yCoord) {
// get final location with zCoord,
// use final zCoord location as start location for xCoord
const startLocation = player.getTargetBlock(null, 100).getLocation();
const zYaw = zCoord > 0 ? 0 : 180;
const zLocation = getFinalLocation(startLocation, zYaw, Math.abs(zCoord));
const xYaw = xCoord > 0 ? 90 : -90;
const xLocation = getFinalLocation(zLocation, xYaw, Math.abs(xCoord));
const yYaw = 0;
const yPitch = yCoord > 0 ? 90 : -90;
const yLocation = getVerticalLocation(xLocation, yYaw, Math.abs(yCoord));
setBlock(yLocation);
}
function getVerticalLocation(startLoc, pitch, distance) {
const loc = startLoc;
loc.setPitch(-90); // straight up
return loc.add(loc.getDirection().setX(0).normalize().multiply(distance));
}
function getFinalLocation(startLoc, yaw, distance) {
return normalizedStartLocation(startLoc, yaw).add(getDirectionToAddToStartLocation(yaw, distance));
}
function getDirectionToAddToStartLocation(yaw, distance) {
const loc = player.getLocation();
loc.setYaw(loc.getYaw() + yaw);
return loc.getDirection().setY(0).normalize().multiply(distance);
}
function normalizedStartLocation(startLoc, yaw) {
const loc = startLoc;
loc.setYaw(loc.getYaw() + yaw);
return loc;
}
function setBlock(location) {
location.getBlock().setType(org.bukkit.Material.STONE);
}
function spawnObject(object, location) {
player.getWorld().spawn(location, object.class);
}
const magik = magikcraft.io;
const player = magik.getSender();
const world = player.getWorld();
/**
* +ve z is in front of you
* -ve z is behind you
* +ve x is right
* -ve x is left
*/
function spawnPattern() {
const X = "X";
const array = [
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0],
[0,0,0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0,0,0],
[0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0],
[0,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0,0,0],
[0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0],
[0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X,0,0],
[X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X],
[X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,X,X],
[X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X],
[X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X],
];
const numRows = array.length;
const numCols = array[0].length;
for (let i = 0; i < numRows; i++) {
for (let j = 0; j < numCols; j++) {
if (array[i][j] === X) {
const zCoord = Math.floor(numRows / 2) - i;
const xCoord = Math.floor(numCols / 2) - j;
spawnAtPoint(zCoord, xCoord);
}
}
}
}
function spawnAtPoint(zCoord, xCoord) {
// get final location with zCoord,
// use final zCoord location as start location for xCoord
const startLocation = player.getTargetBlock(null, 100).getLocation();
const zYaw = zCoord > 0 ? 0 : 180;
const zLocation = getFinalLocation(startLocation, zYaw, Math.abs(zCoord));
const xYaw = xCoord > 0 ? 90 : -90;
const xLocation = getFinalLocation(zLocation, xYaw, Math.abs(xCoord));
setBlock(xLocation);
}
function getFinalLocation(startLoc, yaw, distance) {
return normalizedStartLocation(startLoc, yaw).add(getDirectionToAddToStartLocation(yaw, distance));
}
function getDirectionToAddToStartLocation(yaw, distance) {
const loc = player.getLocation();
loc.setYaw(loc.getYaw() + yaw);
return loc.getDirection().setY(0).normalize().multiply(distance);
}
function normalizedStartLocation(startLoc, yaw) {
const loc = startLoc;
loc.setYaw(loc.getYaw() + yaw);
return loc;
}
function setBlock(location) {
location.getBlock().setType(org.bukkit.Material.STONE);
}
function spawnObject(object, location) {
player.getWorld().spawn(location, object.class);
}
const magik = magikcraft.io;
const polarbear = org.bukkit.entity.PolarBear;
const zombie = org.bukkit.entity.Zombie;
const irongolem = org.bukkit.entity.IronGolem;
const player = magik.getSender();
const world = player.getWorld();
function spawnUnitsInfront(num) {
for (let i = 0; i < num; i++) {
const yLoc = player.getLocation().add(player.getLocation().getDirection().setY(0).normalize().multiply(i));
spawnObject(polarbear, yLoc);
}
}
function spawnObject(object, location) {
player.getWorld().spawn(location, object.class);
}
function moveForward(startLoc, distance) {
const vector = startLoc.toVector();
const direction = startLoc.getDirection();
const newVector = vector.add(direction.multiply(0.1*distance));
const newLoc = newVector.toLocation(player.getWorld(), startLoc.getYaw(), startLoc.getPitch())
return startLoc.add(newLoc);
}
function eeee() {
const player = magik.getSender();
const loc = player.getEyeLocation()
.toVector()
.add(player.getLocation().getDirection().multiply(10))
.toLocation(player.getWorld(), player.getLocation().getYaw(), player.getLocation().getPitch());
const polarbear = org.bukkit.entity.PolarBear;
player.getWorld().spawn(loc, polarbear.class);
}
const magik = magikcraft.io;
function spells() {
const spells = magik.album();
spells.forEach(spell => magik.dixit(spell));
}
const magik = magikcraft.io;
const fireball = org.bukkit.entity.Fireball;
const player = magik.getSender();
const world = player.getWorld();
function spiderFire() {
for (let i = 0; i < 20; i++) {
const l1 = player.getLocation().add(player.getLocation().getDirection().setY(0).setZ(0).normalize().multiply(i));
const l2 = player.getLocation().add(player.getLocation().getDirection().setY(0).setZ(1).normalize().multiply(i));
const l3 = player.getLocation().add(player.getLocation().getDirection().setY(0).setZ(-1).normalize().multiply(i));
const l4 = player.getLocation().add(player.getLocation().getDirection().setY(0).setZ(-2).normalize().multiply(i));
const l5 = player.getLocation().add(player.getLocation().getDirection().setY(0).setZ(2).normalize().multiply(i));
spawnObject(fireball, l1);
spawnObject(fireball, l2);
spawnObject(fireball, l3);
spawnObject(fireball, l4);
spawnObject(fireball, l5);
}
}
function getLoc() {
magik.dixit("START");
const loc = player.getLocation();
magik.dixit(loc);
for (let i = 0; i < 5; i++) {
const thisLoc = moveForward(loc, i);
spawnObject(polarbear, thisLoc);
magik.dixit(thisLoc);
}
}
function spawnObject(object, location) {
player.getWorld().spawn(location, object.class);
}
function moveForward(startLoc, distance) {
const vector = startLoc.toVector();
const direction = startLoc.getDirection();
const newVector = vector.add(direction.multiply(0.1*distance));
const newLoc = newVector.toLocation(player.getWorld(), startLoc.getYaw(), startLoc.getPitch())
return startLoc.add(newLoc);
}
function eeee() {
const player = magik.getSender();
const loc = player.getEyeLocation()
.toVector()
.add(player.getLocation().getDirection().multiply(10))
.toLocation(player.getWorld(), player.getLocation().getYaw(), player.getLocation().getPitch());
const polarbear = org.bukkit.entity.PolarBear;
player.getWorld().spawn(loc, polarbear.class);
}
const magik = magikcraft.io;
function startFlying() {
const player = magik.getSender();
player.setAllowFlight(true);
//player.setFlying(true);
//magik.dixit(sender);
}
const magik = magikcraft.io;
function stopFlying() {
magik.dixit(Bukkit.getServer().getOnlinePlayers());
//const player = magik.getSender();
//player.setAllowFlight(false);
//player.setFlying(true);
//magik.dixit(sender);
}
const magik = magikcraft.io;
const player = magik.getSender();
function strikeLightningEffect() {
player.getWorld().strikeLightning(player.getLocation());
}
const magik = magikcraft.io;
function tele(distance) {
// const vector = new org.bukkit.util.Vector;
// const fireball = org.bukkit.entity.DragonFireball;
// fireball.setDirection(vector);
// magik.dixit(fireball.getDirection());
//org.bukkit.entity.DragonFireball(vector);
const player = magik.getSender();
const loc = player.getEyeLocation()
.toVector()
.add(player.getLocation().getDirection().multiply(distance))
.toLocation(player.getWorld(), player.getLocation().getYaw(), player.getLocation().getPitch());
magik.ianuae(loc);
}
const magik = magikcraft.io;
function teleport(){
const there = magik.exmemento(); // note: you must remember a location first!!
magik.ianuae(there);
}
const magik = magikcraft.io;
function test() {
magik.volare();
}
const magik = magikcraft.io;
function testMazeAPI() {
mazeAPI.generate();
}
const magik = magikcraft.io;
function volare() {
magik.volare(10);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment