Skip to content

Repository files navigation

SkyblockCore

Archived project. This repository is preserved for historical reference and is not actively maintained.

A custom Spigot plugin developed for the Craftable Skyblock server. SkyblockCore provided server-specific commands, gameplay systems, staff tools, and utility features tailored to the Craftable Skyblock experience.


Project Background

This repository preserves the custom SkyblockCore plugin developed for the Craftable Skyblock server.

The plugin was created to support server-specific functionality for the Craftable Skyblock experience, including community point features, player utilities, staff communication tools, social commands, and mcMMO-related credit functionality.

This project is part of the broader Craftable server archive and represents one of the custom plugins used to extend the behavior of a Craftable Minecraft server beyond standard plugin configuration.

This repository is intended as an archive and preservation project, not as an actively maintained production plugin.


Archive Status

This plugin is archived. It was written for Spigot 1.16.3 and has not been updated since development concluded. It is published here for preservation and reference purposes only.

Known issues discovered during code review are documented in the Known Limitations section below.


Features

Community Points

A server-side community point economy. Points are stored per player (by UUID) in credits.yml. Staff can award points using a dedicated admin command, and players can check their balance at any time.

Player Commendation

Players can commend one another using /commend. Commendations are rate-limited to prevent abuse, and PlaceholderAPI is used to detect shared IP addresses to prevent self-commendation.

mcMMO Credit System

A parallel credit economy for mcMMO skill progression. Credits are stored in mcmmo.yml. Staff can issue credits, players can check their balance, and a /redeem workflow allows players to convert credits into mcMMO skill levels via a chat-based confirmation flow integrated with DeluxeMenus.

Staff Tools

  • /helpop — sends a message to all online staff with the staff.notify permission, with a 60-second cooldown
  • /report — reports a player to online staff, with duplicate-report prevention

Player Utilities

  • /smelt — instantly smelts items held in hand or across the entire inventory; supports ores, raw food, logs, and several building materials
  • /nightvision — toggles the Night Vision potion effect for eligible players

Social Media Commands

Seven static-link commands that display the Craftable Network's social media URLs in chat: /discord, /facebook, /instagram, /reddit, /tiktok, /twitter, /youtube.

Event-Based Features

  • Killstreak announcements — broadcasts a server-wide message at milestones (every 5 kills, up to 200)
  • Kill sound effect — plays a firework sound for the killer on each PvP kill
  • Custom fishing rod — distributes a custom unbreakable fishing rod from a specific button in the world lobby
  • Custom villager drops — replaces the default villager loot table with emerald drop rates that scale with the Looting enchantment
  • Blaze drowning drops — gives a chance for blazes to drop a blaze rod when killed by drowning

PlaceholderAPI Integration

Registers a craftable PlaceholderAPI expansion providing two placeholders:

  • %craftable_balance% — the player's Essentials economy balance
  • %craftable_points% — the player's community point balance

Commands

Command Arguments Permission Description
/points Check your community point balance
/cpgive <player> <amount> points.give Award community points to a player
/commend <player> Commend another player (daily rate limit applies)
/helpop <message> Send a support message to online staff (60s cooldown)
/report <player> <reason> Report a player to online staff
/credits Check your mcMMO credit balance
/mcreditsgive <player> <amount> credits.give Award mcMMO credits to a player
/redeem [skill] Redeem mcMMO credits for skill levels
/smelt [hand|all] smelt.use Instantly smelt items (hand = held item, all = full inventory)
/nightvision nightvision.use Toggle Night Vision effect
/discord Display the Discord server link
/facebook Display the Facebook page link
/instagram Display the Instagram profile link
/reddit Display the subreddit link
/tiktok Display the TikTok profile link
/twitter Display the Twitter profile link
/youtube Display the YouTube channel link

Aliases:

  • /pointscp, communitypoints, cpoints
  • /nightvisionnv
  • /creditsmbal
  • /mcreditsgivecreditsgive

Permissions

Permission Description Default
points.give Allows use of /cpgive to award community points op
staff.notify Receive /helpop alerts and other staff notifications op
reports.notify Receive /report alerts op
smelt.use Allows use of the /smelt command op
credits.give Allows use of /mcreditsgive to award mcMMO credits op
nightvision.use Allows use of the /nightvision command op

Note: staff.notify and reports.notify are two distinct permission nodes used for HelpOP and Report notifications respectively, though plugin.yml only formally declares staff.notify. Servers should grant both nodes to staff ranks.


Dependencies

Required

Dependency Version Purpose
Spigot / Paper 1.16.3 Server API
mcMMO Any compatible Runtime requirement; the plugin will refuse to load if absent

Soft Dependencies

The plugin will load without these, but features that depend on them will not function correctly.

Dependency Purpose
PlaceholderAPI Required for %craftable_*% placeholders and the /commend IP check
Essentials Required for the %craftable_balance% placeholder (economy API)
DeluxeMenus Required for the /redeem GUI menu (dm open redeem_menu)

Build Dependencies (via Maven)

Dependency Version Scope
Spigot API 1.16.3-R0.1-SNAPSHOT provided
PlaceholderAPI 2.10.9 provided
Apache Commons Collections 4.4 compile

Configuration

SkyblockCore does not ship a config.yml. All configuration is handled through the two data files it generates on first run.

plugins/SkyblockCore/credits.yml

Stores community point balances keyed by player UUID.

# Example
550e8400-e29b-41d4-a716-446655440000: 50

plugins/SkyblockCore/mcmmo.yml

Stores mcMMO credit balances keyed by player UUID.

# Example
550e8400-e29b-41d4-a716-446655440000: 100

Both files are read and written live by the plugin; there is no reload command.

Note: Several values that would ideally be configurable — including the fishing rod dispenser block coordinates (171, 98, 228) in world world and all social media URLs — are hardcoded in the source and would require recompilation to change.


Project Structure

src/net/craftable/skyblockcore/
├── Main.java                      # Plugin entry point; registers all commands, listeners, and data files
├── CommunityPoints/
│   ├── CPCommand.java             # /points — view balance
│   ├── CPGive.java                # /cpgive — award points
│   └── CommendCommand.java        # /commend — commend a player
├── Staff/
│   ├── HelpOPCommand.java         # /helpop — message staff
│   └── ReportCommand.java         # /report — report a player
├── General/
│   ├── FishingRod.java            # Listener — dispenses custom fishing rod from button
│   ├── RodListener.java           # Listener — prevents moving the custom rod into containers
│   ├── Smelt.java                 # /smelt — instant item smelting
│   ├── KillSoundEffect.java       # Listener — plays sound on PvP kill
│   ├── NightVision.java           # /nightvision — toggle night vision
│   ├── VillagerDrops.java         # Listener — custom villager emerald loot table
│   └── BlazeDrops.java            # Listener — blaze rod drop on drowning
├── McMMO/
│   ├── mBal.java                  # /credits — view mcMMO credit balance
│   ├── mCreditsGive.java          # /mcreditsgive — award mcMMO credits
│   ├── Redeem.java                # /redeem — initiate skill level redemption
│   ├── RedeemListener.java        # Listener — processes chat input during redemption
│   └── RedeemMuteChat.java        # Listener — restricts commands/chat during redemption
├── Messages/
│   └── KillStreak.java            # Listener — broadcasts killstreak milestones
├── SocialMedia/
│   ├── Discord.java
│   ├── Facebook.java
│   ├── Instagram.java
│   ├── Reddit.java
│   ├── TikTok.java
│   ├── Twitter.java
│   └── Youtube.java
├── PlaceholderAPI/
│   └── Placeholders.java          # %craftable_balance% and %craftable_points% expansion
└── TabCompleters/
    ├── SmeltTabCompleter.java      # Tab completion for /smelt (hand, all)
    └── RedeemTabCompleter.java     # Tab completion for /redeem (skill names)

Build Instructions

The project uses Apache Maven with the Maven Shade plugin to produce a shaded JAR.

Prerequisites

  • JDK 8 or later
  • Maven 3.x
  • A local Maven repository containing the Spigot 1.16.3 API (typically installed via BuildTools)

Building

mvn clean package

The compiled plugin JAR will be placed in target/SkyblockCore-0.0.1-SNAPSHOT.jar.

The build uses maven-shade-plugin to bundle Apache Commons Collections into the output JAR.


Installation / Usage Notes

This section is provided for historical reference. This plugin is archived and not recommended for production use.

  1. Build the plugin JAR as described above, or obtain a pre-built JAR.
  2. Place the JAR in your server's plugins/ directory.
  3. Ensure mcMMO is installed — this is a hard requirement.
  4. Optionally install PlaceholderAPI, Essentials, and DeluxeMenus for full feature support.
  5. Start the server. The plugin will create credits.yml and mcmmo.yml in plugins/SkyblockCore/ on first run.
  6. Grant staff.notify and reports.notify to staff ranks in your permissions plugin.

Server Compatibility

Field Value
API version (plugin.yml) 1.16
Target Spigot version (pom.xml) 1.16.3-R0.1-SNAPSHOT
Minimum Java 8

The plugin was written for Spigot 1.16.3. Compatibility with other server software versions or newer API releases has not been tested.


Known Limitations

The following issues were identified during code review of the archived source. They are documented here for completeness and were not resolved before the project was archived.

Issue Location Description
NullPointerException on /commend CommendCommand.java main.commendcooldown is referenced but never initialized in Main.java. Executing /commend will throw a NullPointerException.
Permission node mismatch ReportCommand.java vs plugin.yml ReportCommand broadcasts to players holding reports.notify, but plugin.yml only formally declares staff.notify. Both nodes should be granted to staff.
Tab completer skill mismatch RedeemTabCompleter.java Suggests 15 skills (including Repair, Salvage, and Smelting) but Redeem.java only handles 12. Selecting the extra three produces no action.
Hardcoded world location FishingRod.java The fishing rod dispenser button is fixed at coordinates (171, 98, 228) in world world and cannot be changed without recompilation.
Hardcoded social URLs SocialMedia/*.java All social media links are hardcoded strings and cannot be reconfigured without recompilation.
Undeclared DeluxeMenus dependency Redeem.java The /redeem GUI is opened via a hardcoded console command (dm open redeem_menu), which assumes DeluxeMenus is installed with a menu named redeem_menu. This dependency is not declared in plugin.yml.

License

No license file is present in this repository. All rights remain with the original authors. This code is published for archival and reference purposes only.

About

Preserved Craftable Skyblock core plugin, built to support custom server-specific features including community points, player utilities, staff notifications, and mcMMO credit systems.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages