promotional bannermobile promotional banner
premium banner
Based on CustomNpcs, it provides some useful tools.

Description

The detail of API will provided later.

Functions

BetterCloneHandler:

    Provides clones' caches, instead of CNPC's real-time IO, it will be fast.

SheepAI:

    Implement class: saltsheep.ssl.api.SheepAI, saltsheep.ssl.api.SheepAIHandler

    new AI and inputs: owner IEntity, whetherShouldRun(IEntity)=>boolean, run(IEntity)=>void,endedRun(IEntity)=>void, canStopDefault boolean

    use SheepAIHandler to add ai to a ai group.

    SheepAI is working based on async thread, and use waitTick(int) to wait in the thread then use work(()=>void) to run in the server thread, it is well designed to have a great efficiency.

Task:

    A light function that provides task chain and delay work.

    Use like: Task.run(function(){}).append(Task.delay(10)).append(Task.run(function(){})).start();

    Also can be hignly customed, use Task.custom(runnable init, Callable<boolean> invoke, Callable<Task> clone), and it will ended when invoke return true or server stopped.

NeoPuppet:

    This function based on the edit of JobPuppet, the mod use ASM to append extra logic on JobPuppet getRotation method.

    It is too complex to explain, it is better to see in saltsheep.ssl.api.neo.AnimationHandler, saltsheep.ssl.api.neo.AnimationNode.

    It will be easy.

BothSideScript:

    It provides a chance to use script in both server and client, and you can switch it.

    It may be a bit dangerous for the server owner because I set no limit for the script. My meaning is, player can cheat by using it, because it works like a mod.

    The only way to avoid it completely is to delete the function.

    Using it:

        the files with suffix ".ssl.js" under directory .minecraft\SheepBothScripts, which contains its sub directory, will be loaded by eval.

        the scripts will defaultly have two extra global variable: station and script

        script: saltsheep.ssl.script.ScriptContainer, set the container name, hook events(FMLEvents will have special implement)

        station: saltsheep.ssl.api.Common.station, a javascript object stored at Java layer, you can use it to achieve the connection of scripts.

    But it didnt provide any client's wrapper API, which like CNPC's API,  for you.

The more:

    There's many scattered functions under saltsheep.ssl.api, you can discover it by yourself.

Dependencies

SheepKeyLib, CustomNpcs