Skip to content

Metaphoriker/pathetic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4001f5a · Sep 22, 2023
Jul 4, 2023
Sep 22, 2023
Sep 22, 2023
Sep 22, 2023
Sep 22, 2023
Sep 22, 2023
Mar 22, 2022
Feb 23, 2023
Feb 7, 2022
Jun 20, 2023
Sep 22, 2023

Repository files navigation

Pathetic

A simple and intuitive 1.8-1.20 A* pathfinding API for Spigot & Paper plugins

How to import

Maven

	<repositories>
		<repository>
		    <id>jitpack.io</id>
		    <url>https://jitpack.io</url>
		</repository>
	</repositories>
 
	<dependency>
	    <groupId>com.github.patheloper.pathetic</groupId>
	    <artifactId>pathetic-mapping</artifactId>
	    <version>VERSION</version>
	</dependency>

Gradle

	allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}
    
	dependencies {
	        implementation 'com.github.patheloper.pathetic:pathetic-mapping:VERSION'
	}

Example API Usage

public class PathExample extends JavaPlugin {
    
    @Override
    public void onEnable() {
    
        PatheticMapper.initialize(this);
        goFindSomePath(randomLocation(), randomLocation());
    }
    
    private void goFindSomePath(PathPosition start, PathPosition end) {

        Pathfinder pathfinder = PatheticMapper.newPathfinder();
        pathfinder.findPath(start, end).thenAccept(pathfinderResult ->
                pathfinderResult.getPath().getPositions().forEach(location ->
                        player.sendBlockChange(location, Material.YELLOW_STAINED_GLASS.createBlockData())));
    }
    
    private PathPosition randomLocation() {
        ThreadLocalRandom instance = ThreadLocalRandom.current();
        return new PathPosition(instance.nextInt(0, 100), instance.nextInt(0, 100), instance.nextInt(0, 100));
    }
}

See the pathetic-example module for a more in-depth example plugin.

Javadocs:

Access the Javadocs here