KeyframeAPI | Cutscenes and Animations! icon

KeyframeAPI | Cutscenes and Animations! -----

Cutscenes and Animations made simple!



Code (Java):
/**
* KeyframeAPI - Public API Methods
*
* Use these static and instance methods to interact with keyframe animations.
*/


// Core Plugin Access
KeyframeAPI. getInstance ( ) ;
// Returns the main plugin instance.

// Animation Management
KeyframeAPI. keyframeAnimationExists ( String name ) ;
// Checks if a keyframe animation with the given name exists.

KeyframeAPI. createKeyframeAnimation ( String name ) ;
// Creates a new KeyframeAnimation with the given name.

KeyframeAPI. getKeyframeAnimation ( String name ) ;
// Retrieves an existing KeyframeAnimation by name.

KeyframeAPI. deleteKeyframeAnimation (KeyframeAnimation animation ) ;
// Deletes the given keyframe animation and removes it from the handler.

KeyframeAPI. getKeyframeAnimations ( ) ;
// Returns a list of all registered KeyframeAnimations.

// Playback Control
KeyframeAPI. playKeyframeAnimation (Player player, KeyframeAnimation animation ) ;
// Plays the specified keyframe animation for the given player.

// Playback Status
KeyframeAPI. isPlayingAnimation (Player player ) ;
// Returns true if the specified player is currently playing a keyframe animation.

KeyframeAPI. isRecordingAnimation (Player player ) ;
// Returns true if the specified player is currently recording an animation.
 
Code (Text):
/**
* KeyframeAPI - Animation Event Reference
*
* These events are part of the keyframe animation lifecycle and can be listened to using Bukkit's event system.
* They allow plugins to hook into various stages of keyframe animation playback and control.
*/

// Called when a keyframe animation is cancelled for a player.
KeyframeCancelEvent

// Called when a keyframe animation ends for a player.
KeyframeEndEvent

// Called when a keyframe sequence (a series of animations) finishes playing.
KeyframeSequenceEndEvent

// Called when a keyframe sequence starts for a player.
KeyframeSequenceStartEvent

// Called when the sequence switches from one animation to the next in a sequence.
KeyframeSequenceSwitchEvent

// Called when a keyframe animation starts for a player.
KeyframeStartEvent

// Called every tick during an active keyframe animation (can be used for syncing or effects).
KeyframeTickEvent
 
Code (Text):
package me.abhi.keyframeapi;

import me.abhi.keyframeapi.keyframe.KeyframeAnimationSequence;
import me.abhi.keyframeapi.keyframe.event.*;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;

public class KeyframeAPIExample implements Listener {

    public KeyframeAPIExample() {
        Bukkit.getPluginManager().registerEvents(this, KeyframeAPI.getInstance());
    }

    @EventHandler
    public void onJoin(PlayerJoinEvent event) {
        Player player = event.getPlayer();

        if (!KeyframeAPI.keyframeAnimationExists("join1") || !KeyframeAPI.keyframeAnimationExists("join2")) return;

        KeyframeAnimationSequence keyframeAnimationSequence = new KeyframeAnimationSequence(
                "join",
                player,
                KeyframeAPI.getKeyframeAnimation("join1"),
                KeyframeAPI.getKeyframeAnimation("join2"));

        keyframeAnimationSequence.play();
    }

    @EventHandler
    public void onKeyframeStart(KeyframeStartEvent event) {
        Player player = event.getPlayer();

        player.sendMessage(ChatColor.GREEN + "Keyframe Animation Started");
    }

    @EventHandler
    public void onKeyframeEnd(KeyframeEndEvent event) {
        Player player = event.getPlayer();

        player.sendMessage(ChatColor.GREEN + "Keyframe Animation Ended");
    }

    @EventHandler
    public void onKeyframeCancel(KeyframeCancelEvent event) {
        Player player = event.getPlayer();

        player.sendMessage(ChatColor.GREEN + "Keyframe Animation Cancelled");
    }

    @EventHandler
    public void onSequenceStart(KeyframeSequenceStartEvent event) {
        Player player = event.getPlayer();

        player.sendTitle(ChatColor.GOLD + "Welcome to the first scene!", null, 10, 40, 20);

    }

    @EventHandler
    public void onSequenceSwitch(KeyframeSequenceSwitchEvent event) {
        Player player = event.getPlayer();

        player.sendTitle(ChatColor.GOLD + "Welcome to the next scene!", null, 10, 40, 20);
    }

    @EventHandler
    public void onSequenceEnd(KeyframeSequenceEndEvent event) {
        Player player = event.getPlayer();

        player.teleport(Bukkit.getWorlds().get(0).getSpawnLocation());
        player.sendMessage(ChatColor.GOLD + "Have fun!");
    }
}
 
Resource Information
Author:
----------
Total Downloads: 16
First Release: Apr 29, 2025
Last Update: Apr 29, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings