TailsLib: Create your own items, blocks, effects
Overview
TailsLib is a robust library tailored for Bukkit plugin developers, enabling the creation of custom items, blocks, and effects without requiring mods. With TailsLib, you can achieve complex mechanics and functionalities using just plugins on your Minecraft server.
Whether you're a beginner or an experienced developer, TailsLib provides an intuitive framework to expand your server’s capabilities effortlessly.
Future Plans
For users who aren’t comfortable with coding, a configuration-based system is in development to allow for simpler usage.
Features
Custom Items
- Create unique items with customized behaviors and properties.
- Add crafting recipes with minimal effort.
- Features include:
- UUID for cooldowns and etc.
- Support for Custom Item Properties, which will help you make item states or disable/enable certain actions for them.
Custom Blocks
- Persistent blocks that save data across server restarts.
- Fully customizable interactions for placing, breaking, and clicking.
- Easy-to-use saving and loading mechanisms.
Custom Effects (WIP)
- Design new effects with extended functionality beyond the vanilla API.
- Save system for effects is currently WIP.
PAPi Support (WIP)
- PlaceholderAPI support (In development). Currently only PAPi for effects are available.
Other utilities
- Other utilities that will help you work on your plugin. For example, RayTrace helper which makes it completely easy for you to work with RayTrace from Bukkit API.
- Debugging features that help you identify bugs during creation.
How It Works
Using TailsLib is simple:
- Implement the relevant TailsLib interface (e.g., CustomItem, CustomBlock, or CustomEffect).
- Define your logic and behavior in your class.
- Register your creations using the provided manager classes.
For example, creating a custom item might look like this:
Code (Java):
public
class MyItem
implements CustomItem
{
@Override
public CustomItemData getItemData
(
)
{
return
new CustomItemData
(
"item_id",
"Item name",
new SimpleDescBuilder
(
).
addDesc
(
"My awesome description!"
),
Material.
IRON_INGOT
)
.
withUUID
(
)
.
asUniqueMaterial
(
)
.
addProperty
(
new NoPvPCustomItemProperty
(
)
)
;
}
@Override
public
void rightClick
(PlayerInteractEvent event, UUID uuid
)
{
event.
getPlayer
(
).
sendMessage
(
"Right click!"
)
;
}
}
Compatibility
- API Changes: Some versions may introduce breaking changes, such as renamed methods or removed systems.
- Backward compatibility will be attempted, but it may not always be perfect.
Use it in your project
Code (Text):
pom.xml
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/repository/releases/</url>
</repository>
<dependency>
<groupId>ru.thisistails.tailslib</groupId>
<artifactId>tailslib</artifactId>
<version>1.6-alpha</version>
</dependency>
Known Issues
- Limited PlaceholderAPI support (WIP).
- The asUniqueMaterial flag may not always function correctly.
- Commit history is not for the faint-hearted—review at your own risk!
Why Choose TailsLib?
TailsLib bridges the gap between the limitations of the vanilla Bukkit API and the creative possibilities of your server. From powerful custom items to persistent blocks and