Skip to content

MinecraftMediaLibrary/EzMediaCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Code Coverage Dependency Status Documentation Status Discord Language

EzMediaCore is a library written in Java using the Bukkit API and NMS classes to provide a helpful tool for other media plugins to take advantage of. One of the most fascinating features include the ability to render videos on a Spigot server. It uses optimized dithering algorithms, hardware acceleration, and native code to speed up the process. The library takes advantage of VLC Media Player, a speedy, universal program that plays all sorts of media for users.

example-playback.mp4

Frame rates may reach up to 35, at times with extremely great quality. As a comparison, a smooth animation is approximately 25 frames. The library is capable of playing media in all sorts of ways, such as maps, entities, chat, scoreboards, debug markers.


Prerequisites

  • Java 16
  • Minecraft versions 1.16.5 and 1.17 supported

Add the following to your build.gradle configuration:

repositories {  
    maven {  
        url 'https://jitpack.io'  
    }  
}  
dependencies {  
    implementation 'com.github.MinecraftMediaLibrary:EzMediaCore:master-SNAPSHOT'  
}  

Take a look at this module for examples on how to use the library. It is the plugin I used that displayed the video.


Building Locally

  1. Run BuildTools for versions 1.16.5 and 1.17.1.
  2. Clone the repository by using the following Git link: https://github.com/MinecraftMediaLibrary/EzMediaCore.git
  3. Run gradlew shadowJar on the parent project to build a jar for the plugin.

Public Testing Server

Thanks to Mishal321, they freely gave us a public test server. Join our Discord server and you are able to access the IP to the testing server!


Contributors/Acknowledgements

  • BananaPuncher714 for creating MinecraftVideo, leading the spark, and also providing a Floyd Steinberg dithering implementation.
  • Jetp250 for a fast dithering table class.
  • Emilyy for helping me with asynchronous tasks and implementation.
  • Conclure for helping me migrate from maven to gradle and overall big API improvements.
  • itxfrosty for helping me develop a Discord bot to play music.
  • Rouge_Ram for developing a Discord bot to use in the Pulse Development Server.
  • Mishal321, for allowing us to use his testing server.
  • Yugi for helping me setup Slimjar.
  • And also developers of the most important libraries I use, including: