Neapolitan Pasta Maker

    magikcraft-lore-core
    TypeScript icon, indicating that this package has built-in type declarations

    1.2.1 • Public • Published

    The Core Lore for the Magikcraft API

    durablePlayerMap

    Added: Wednesday 6 September, 2017

    magik.memento and magik.exmemento use the durablePlayerMap instead of a JavaScript object.

    toJSON and fromJSON

    Added: Thursday 17 August, 2017

    The helper methods magik.toJSON and magik.fromJSON serialise Java types to/from JSON for transport or storage.

    At the moment the only supported Java type is a BukkitLocation. You can use this to publish a BukkitLocation over the eventbus, and to consume a BukkitLocation from the eventbus.

    Here is an example:

    Publish your location via the Eventbus

    This spell publishes your current location over the eventbus.

    const magik = magikcraft.io;
    const locationTopic = 'locations';
    
    // Publish my location over the eventbus
    function publishLocation() {
        const here = magik.hic(); // get player current location
        const hereJSON = magik.toJSON(here); // turn it into a JSON object
        // magik.dixit(JSON.stringify(hereJSON)); // you can print it out
    
        // Publish player location to 'locations' topic on the eventbus
        eventbus.publish(locationTopic, {name: global.PlayerName, location: hereJSON});
    }
    

    Teleport to Player spell

    Here is a teleport spell that uses the eventbus published locations to teleport to the last published location for a player:

    const magik = magikcraft.io;
    const locationTopic = 'locations';
    
    function tp2p(name = '@@INIT'){
        // If global.locations doesn't exist, we are not subscribed yet
        if (!global.locations) {
            global.locations = {};
            eventbus.subscribe(locationTopic, event => {
                const who = event.data.name;
                const where = event.data.location;
                global.locations[who] = where;
            });
        }
        if (name === '@@INIT') {
            return;
        }
        if (!global.locations[name]) {
            magik.dixit(`No published location found for ${name}!`);
            return;
        }
    
        const whereJSON = global.locations[name];
    
        // Turn the JSON into a BukkitLocation
        const where = magik.fromJSON(whereJSON);
        magik.ianuae(where);
    }
    

    .

    Install

    npm i magikcraft-lore-core

    DownloadsWeekly Downloads

    4

    Version

    1.2.1

    License

    AGPL

    Last publish

    Collaborators

    • sitapati