JP Plugins
All plugins

JPEssentials

Everyday commands, jails, AFK, nicknames and sitting for Paper servers.

Core plugin, version 1.0.0

Downloads open soon.

Features

  • Around 85 everyday commands: fly, heal, gamemode, nick, AFK, seen, whois, give, time, weather and more
  • Each command can be on, off or left to other plugins (commands.yml)
  • Jails, AFK detection, nicknames and join commands
  • Custom commands and text pages (custom-commands.yml, texts.yml)
  • Announcer and sitting
  • /jpess commands shows which plugin handles each command

Requirements

  • Paper 26.1 or newer (Java 25)
  • Optional:
    • PlaceholderAPI: placeholders in texts, and this plugin's own placeholders
    • Vault: money (any Vault economy) and ranks
    • LuckPerms: ranks, prefixes and suffixes

Installation

  1. Put JPEssentials-<version>.jar in your server's plugins folder.
  2. Restart the server. plugins/JPEssentials/ is created with the config and messages.
  3. Change what you want in the files, then reload or restart.

Type /jp as an operator to see every JP plugin you have installed, its version and which optional plugins it found.

Commands

Each command can be switched on or off in commands.yml. Commands marked (*) are for every player; the rest need jpessentials.<command>.

Player

CommandDescriptionAliasesEveryone
/flyTurn flying on or off.
/speedChange how fast you fly or walk./flyspeed /walkspeed
/godTake no damage./godmode
/healFill health and hunger, remove bad effects.
/feedFill hunger./eat
/gamemodeChange game mode./gm
/gmcCreative mode.
/gmsSurvival mode.
/gmaAdventure mode.
/gmspSpectator mode.
/afkMark yourself as away./awayyes
/nickChange the name shown in chat and the tab list./nickname
/realnameFind who uses a nickname.yes
/suicideKill yourself.yes
/pingShow connection delay.yes
/playtimeShow time played on the server.yes
/seenWhen a player was last online.yes
/whoisEverything about a player.
/nearPlayers close to you./nearby
/listPlayers online, by rank./online /who /playerlistyes
/getposShow coordinates./coords /whereami /posyes
/compassWhich way you are facing./directionyes

Moving around

CommandDescriptionAliasesEveryone
/topGo to the highest block above you.
/jumpGo to the block you are looking at./j /jumpto
/descendGo down to the next open floor./down

Workstations

CommandDescriptionAliasesEveryone
/enderchestOpen your ender chest (or another player's)./ec /echest
/trashA menu that deletes what you put in./disposal /bin
/craftA crafting table anywhere./workbench /wb /crafting
/anvilAn anvil anywhere.
/grindstoneA grindstone anywhere.
/smithingA smithing table anywhere./smithingtable
/stonecutterA stonecutter anywhere.
/loomA loom anywhere.
/cartographyA cartography table anywhere./cartographytable

Items

CommandDescriptionAliasesEveryone
/hatWear the item you hold.
/repairRepair items./fix
/moreFill the stack in your hand.
/giveGive an item.
/itemGet an item./i
/headA player's head./skull
/renameRename the item you hold (no name = reset)./itemname
/loreEdit the item's description lines.
/enchantEnchant the item you hold (level 0 removes).
/unbreakableMake the item you hold unbreakable (or not).
/condenseTurn ingots, gems and more into blocks./compact /blocks
/fireworkGet a random firework rocket./fw
/powertoolRun a command by clicking with the held item./pt
/bookEdit a written book.

Time and weather

CommandDescriptionAliasesEveryone
/timeShow or change the time.
/sunClear weather./sunny
/rainRain.
/thunderThunderstorm./storm
/weatherChange the weather.
/ptimeYour own time of day (only you see it)./playertime
/pweatherYour own weather (only you see it)./playerweather
/daySet the time to day.
/noonSet the time to noon.
/nightSet the time to night.
/midnightSet the time to midnight.

Staff tools

CommandDescriptionAliasesEveryone
/invseeLook into a player's inventory.
/clearinventoryEmpty an inventory./ci /clearinv
/sudoMake a player run a command or chat.
/killKill a player.
/smiteStrike lightning./lightning /thor
/burnSet a player on fire.
/extinguishPut out fire./ext
/spawnmobSpawn mobs./mob /spawnentity
/butcherRemove mobs around you (named and tamed mobs are kept)./killall /killmobs
/removeentitiesRemove dropped items and other entities./remove /rem
/expShow or change experience (add L for levels).
/broadcastworldAnnounce to one world./bcw
/gcServer speed, memory and loaded worlds./lag /memory /mem /uptime

Jail

CommandDescriptionAliasesEveryone
/jailLock a player in a jail (time like 10m, 2h, 1d; none = until)./unjail /tjail
/unjailLet a player out of jail.
/setjailMake a jail where you stand./createjail
/deljailRemove a jail./removejail
/jailsAll jails and who is in them.

Sitting

CommandDescriptionAliasesEveryone
/sitSit down where you stand (sneak to stand up)./chairyes
/layLie down (sneak to get up)./lie /laydownyes
/crawlCrawl (sneak or again to stop)./crawlyes
/sittoggleTurn sitting on stairs, or others sitting on you, on or off./togglesityes

Server info

CommandDescriptionAliasesEveryone
/rulesThe server rules.yes
/motdThe message of the day.yes
/helpHelp pages. /?yes
/jpessentialsJPEssentials admin./jpess /ess /essentials

/jpess is the admin command (/jpess commands, /jpess reload).

Permissions

PermissionDefaultDescription
jpessentials.adminoperators/jpessentials reload and commands.
jpessentials.othersoperatorsUse JPEssentials commands on other players.
jpessentials.afk.exemptnobodyNever marked AFK automatically.
jpessentials.afk.kickexemptoperatorsNever kicked for being AFK.
jpessentials.nick.coloroperatorsUse colour codes in nicknames.
jpessentials.nick.realnameoperatorsUse another player's real name as a nickname.
jpessentials.repair.alloperators/repair all
jpessentials.enchant.unsafeoperatorsEnchant above the normal level or on items that cannot normally get it.
jpessentials.rename.coloroperatorsColour codes in /rename.
jpessentials.lore.coloroperatorsColour codes in /lore.
jpessentials.book.editoperatorsChange a written book's author and title.
jpessentials.book.othersoperatorsUnsign books written by others.
jpessentials.powertooloperatorsUse powertools.
jpessentials.invsee.modifyoperatorsMove items in /invsee.
jpessentials.invsee.exemptnobodyYour inventory cannot be changed with /invsee.
jpessentials.enderchest.modifyoperatorsMove items in another player's ender chest.
jpessentials.sudo.exemptnobodyCannot be targeted by /sudo.
jpessentials.kill.exemptnobodyCannot be killed with /kill.
jpessentials.jail.exemptnobodyCannot be jailed.
jpessentials.seen.ipoperatorsSee IP addresses in /seen and /whois.
jpessentials.seen.locationoperatorsSee where a player logged out in /seen.
jpessentials.keepinventorynobodyKeep your items when you die.
jpessentials.keepxpnobodyKeep your levels when you die.
jpessentials.color.signoperatorsColour codes on signs.
jpessentials.color.anviloperatorsColour codes when renaming in an anvil.
jpessentials.color.bookoperatorsColour codes in books.
jpessentials.sit.chairseveryoneSit on stairs, slabs and carpets by right-clicking them.
jpessentials.sit.playereveryoneSit on other players by right-clicking them.

Placeholders

Needs PlaceholderAPI.

PlaceholderShows
%jpessentials_afk%true / false
%jpessentials_afk_tag%the AFK tag from messages.yml, or nothing
%jpessentials_nick%nickname (or the real name when none)
%jpessentials_has_nick%true / false
%jpessentials_god%true / false
%jpessentials_fly%true / false
%jpessentials_jailed%true / false
%jpessentials_jail_time%time left in jail
%jpessentials_playtime%e.g. 2d 5h
%jpessentials_playtime_hours%whole hours played
%jpessentials_pose%sit / lay / crawl / none

Configuration

All files are in plugins/JPEssentials/. Files: commands.yml, config.yml, custom-commands.yml, messages.yml, texts.yml.

When you update the plugin, new options are added to your config.yml by themselves, with their comments. Your own settings stay as they are, and the old file is kept as config.old-v<number>.yml.

Languages: English, Spanish, Portuguese, French and German. Set language: in config.yml (en, es, pt, fr or de).

Default config.yml
# Used to add new options to this file after an update. Don't change it.
config-version: 1

# ╔══════════════════════════════════════════════════════════════════╗
# ║                  JPEssentials  ·  config.yml                     ║
# ╚══════════════════════════════════════════════════════════════════╝
# Everyday commands (fly, heal, gamemode, repair, invsee...), jails, AFK, nicknames
# and sitting. Apply changes with /jpess reload.
#
# The other files:
#   commands.yml         turn single commands on/off, and what happens when another
#                        plugin already has the same command  (restart to apply)
#   messages.yml         every text players see
#   texts.yml            MOTD, /rules and /help pages
#   custom-commands.yml  your own info commands like /discord, /website, /vote
#
# Overlaps with your other plugins are handled for you:
#   - A command another plugin already has (e.g. /vanish in JPStaff, /home in JPTeleport)
#     is left to that plugin. "/jpess commands" shows who handles what.
#   - "auto" features below are only done by JPEssentials while JPChat does not do them.
#
# Permissions: every command is jpessentials.<command> (e.g. jpessentials.fly), and
# jpessentials.<command>.others to use it on someone else. Players get /afk, /sit, /lay,
# /crawl, /list, /ping, /seen, /playtime, /rules, /motd, /help, /suicide, /getpos,
# /compass and /realname by default; everything else is for ops until you give it out,
# e.g.  /lp group vip permission set jpessentials.fly true

# Language of the messages: en (messages.yml), es, pt, fr or de (lang/<code>.yml).
# Your own language: copy a file in the lang folder to lang/<code>.yml, translate it
# and set its code here (for example it for lang/it.yml).
language: en

# Replace messages.yml with the new design when the plugin is updated.
# Your old file is kept as messages.old-vX.yml. false = never touch it.
auto-update-style: true

# ----------------------------------------------------------
# Features: true = on, false = off.
# "auto" = on, unless JPChat is installed and already does it.
# ----------------------------------------------------------
features:
  # Join and leave messages ([+] Player / [-] Player).
  join-quit-messages: auto
  # The welcome message for a player's very first join.
  first-join-message: auto
  # The MOTD (texts.yml) shown to players when they join.
  motd: auto
  # Automatic announcements (see "announcer" below).
  announcer: auto
  # Commands run when players join (see "join-commands" below).
  join-commands: true
  # /afk and automatic AFK. JPTab's [AFK] tag follows it when both are installed.
  afk: true
  # /nick. Nicknames show in JPChat and in the JPTab player list.
  nicknames: true
  # /jail and friends.
  jail: true
  # Keep items/levels on death with jpessentials.keepinventory / jpessentials.keepxp.
  keep-on-death: true
  # & colour codes on signs, anvils and books (needs jpessentials.color.sign/anvil/book).
  colour-codes: true
  # /sit, /lay, /crawl, sitting on stairs and on other players (settings below).
  # auto = off while the standalone JPSit plugin is installed (it does the same).
  sitting: auto
  # /powertool (bind a command to an item).
  powertools: true

hooks:
  # Fill %placeholders% in MOTD, rules, help, custom commands and announcements.
  placeholderapi: true
  # Ranks for /list and balances for /whois.
  vault: true

# How dates are written in /seen and /whois.
date-format: 'dd MMM yyyy HH:mm'

# ----------------------------------------------------------
# AFK
# ----------------------------------------------------------
afk:
  # Seconds without moving before a player is AFK. 0 = only with /afk.
  after-seconds: 300
  # Kick players who are AFK this long (seconds). 0 = never.
  # jpessentials.afk.kickexempt is never kicked.
  kick-after-seconds: 0
  # Tell everyone when someone goes AFK or comes back. false = only tell the player.
  announce: true
  # AFK players cannot be hurt.
  invulnerable: false

fly:
  # Players who were flying when they left are still allowed to fly when they come back.
  keep-on-join: true

god:
  # Players in god mode do not get hungry.
  no-hunger: true

# ----------------------------------------------------------
# Nicknames (/nick)
# ----------------------------------------------------------
nick:
  # Put in front of every nickname, e.g. '~' -> ~Steve. Empty = nothing.
  prefix: ''
  min-length: 3
  max-length: 16
  # Characters allowed in nicknames (a Java regex for ONE character).
  allowed-characters: '[A-Za-z0-9_]'

# ----------------------------------------------------------
# Limits for commands
# ----------------------------------------------------------
near:
  # /near without a number uses this radius; nobody can go above max-radius.
  default-radius: 200
  max-radius: 1000
jump:
  # How far /jump (and /smite) can reach.
  max-distance: 120
give:
  # Most items /give and /item hand out at once.
  max-amount: 2304
spawnmob:
  # Most mobs /spawnmob makes at once.
  max-amount: 50
butcher:
  # Radius of /butcher and /removeentities when no number is given.
  default-radius: 64

# ----------------------------------------------------------
# Jail
# ----------------------------------------------------------
# /setjail <name> where you stand, then /jail <player> [jail] [time] [reason].
# Times look like 30s, 10m, 2h, 1d, 1h30m. No time = until /unjail.
jail:
  # How far jailed players may walk from the jail point. 0 = no limit.
  radius: 25
  # The sentence keeps running while the player is offline.
  count-offline-time: true
  allow-building: false
  allow-interacting: false
  allow-fighting: false
  # Commands jailed players can still use (without the /).
  allowed-commands: [rules, msg, tell, r, reply, helpop, jails, login, l, register]

# ----------------------------------------------------------
# Commands run when players join
# ----------------------------------------------------------
# "console: ..." runs as the console, "player: ..." as the player. {player} = their name.
join-commands:
  first-join: []
  #  - 'console: give {player} bread 16'
  #  - 'player: spawn'
  every-join: []

# ----------------------------------------------------------
# Announcer (only while JPChat's announcer is off, see features.announcer)
# ----------------------------------------------------------
announcer:
  interval-seconds: 300
  # Skip announcements while fewer players are online.
  min-players: 1
  # false = in order, true = random.
  random: false
  sound: BLOCK_NOTE_BLOCK_CHIME
  # Each entry is one announcement, which can have several lines.
  messages:
    vote:
      - ''
      - '  <gradient:#F7971E:#FFD200><bold>ᴛɪᴘ</bold></gradient> &8» &7Vote for the server with &f/vote &7for rewards!'
      - ''
    discord:
      - ''
      - '  <gradient:#5865F2:#8EA1FF><bold>ᴅɪꜱᴄᴏʀᴅ</bold></gradient> &8» &7Join our Discord: &f/discord'
      - ''

# ----------------------------------------------------------
# Sitting, lying and crawling
# ----------------------------------------------------------
sitting:
  # Raise (+) or lower (-) where players sit, in blocks, if it looks off with your
  # resource pack. 0.0 = normal.
  height-adjust: 0.0
  # Right-click a stair, slab or carpet with an empty hand to sit on it.
  chairs:
    enabled: true
    # Only with an empty hand (so you can still place blocks on stairs).
    empty-hand: true
    # How close you must be, in blocks.
    max-distance: 3.0
    # Blocks that work as seats. *_STAIRS = every stair. Only the lower half of
    # stairs and slabs counts.
    blocks: ['*_STAIRS', '*_SLAB', '*_CARPET']
  # Right-click another player with an empty hand to sit on their head.
  # Players can turn this off for themselves with /sittoggle player.
  player-sit:
    enabled: true
    # The player below can sneak to throw the rider off.
    eject-on-sneak: true
  lay:
    enabled: true
  crawl:
    enabled: true

Support

Questions, bugs or ideas? Join the JP Plugins Discord.

License

JPEssentials is free to use on any server, including servers that make money, but it is not open source. Don't reupload, sell or share modified copies of it. The full terms are in LICENSE.txt, which is also inside the jar.