Last active
August 12, 2017 04:02
-
-
Save Matthew-Burfield/6dfb09686f0e7355adffd1dd830e385c to your computer and use it in GitHub Desktop.
Magikcraft Spells, by Matthew-Burfield.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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')); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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)); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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`); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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()); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function echo(text) { | |
magik.doNTimes(() => {magik.dixit(text)}, 3); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function etCreative() { | |
const player = magik.getSender(); | |
player.setGameMode(org.bukkit.GameMode.CREATIVE); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function f(num = 100, delay = 100) { | |
magik.doNTimes( | |
() => magik.infierno(), | |
num, | |
null, | |
delay, | |
); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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()); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function fly (){ | |
magik.volare(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function getGameRules() { | |
const rules = magik.getSender().getWorld().getGameRules | |
magik.dixit(rules); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function getPlayers() { | |
magik.dixit(org.bukkit.Bukkit.getOnlinePlayers()) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function getSender() { | |
const player = magik.getSender(); | |
player.setAllowFlight(true); | |
//player.setFlying(true); | |
//magik.dixit(sender); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function go() { | |
const there = magik.exmemento(); | |
magik.ianuae(there); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function jump(power) { | |
magik.exsultus(power) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function mazeAPI() { | |
} | |
mazeAPI = { | |
generate() { | |
magik.dixit("I'M HERE"); | |
}, | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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`); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function pFire(name) { | |
magik.incendium(name); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var magik = magikcraft.io; | |
function piggyback(){ | |
var ingredients = []; | |
ingredients.push("lizardEyes"); | |
ingredients.push("piratesGoldTooth"); | |
ingredients.push("mushroom"); | |
ingredients.push("witchesWart"); | |
magik.caldarium(ingredients); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function pot() { | |
const ingredients = []; | |
ingredients.push("lizardEyes"); | |
//ingredients.push("piratesGoldTooth"); | |
ingredients.push("mushroom"); | |
ingredients.push("witchesWart"); | |
magik.caldarium(ingredients); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function remember(){ | |
const here = magik.hic(); | |
magik.memento(here); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function save() { | |
const here = magik.hic(); | |
magik.memento(here); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function setCreative(name) { | |
const player = magik.getPlugin().getServer().getPlayer(name); | |
player.setGameMode(org.bukkit.GameMode.CREATIVE); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function socket() { | |
const player = magik.getSender(); | |
player.setGameMode(org.bukkit.GameMode.CREATIVE); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function spells() { | |
const spells = magik.album(); | |
spells.forEach(spell => magik.dixit(spell)); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function startFlying() { | |
const player = magik.getSender(); | |
player.setAllowFlight(true); | |
//player.setFlying(true); | |
//magik.dixit(sender); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function stopFlying() { | |
magik.dixit(Bukkit.getServer().getOnlinePlayers()); | |
//const player = magik.getSender(); | |
//player.setAllowFlight(false); | |
//player.setFlying(true); | |
//magik.dixit(sender); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
const player = magik.getSender(); | |
function strikeLightningEffect() { | |
player.getWorld().strikeLightning(player.getLocation()); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function teleport(){ | |
const there = magik.exmemento(); // note: you must remember a location first!! | |
magik.ianuae(there); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function test() { | |
magik.volare(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const magik = magikcraft.io; | |
function testMazeAPI() { | |
mazeAPI.generate(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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