pap

command module
v0.16.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 27, 2023 License: MIT Imports: 9 Imported by: 0

README ¶

pap

codebeat badge Go Report Card AUR version License Go version

A swiss army knife for minecraft servers.

pap is close to 1.0 🎉

pap is now feature complete (for now) and just needs testing & code reviewing.

If you want, try installing pap and messing around with it.

If you actually manage to break it, open an issue.

Or, make a PR.

Table of contents

Examples

Demo

Click on the gif for a higher resolution version.

Demo of pap

Download the latest papermc jarfile
pap download paper
Sign the EULA
pap sign
Generate a script to run the jarfile
pap script --jar server.jar
Turn off pvp
pap properties set pvp false
Install worldedit
pap plugin install worldedit
Install a plugin from bukkit, spigot, or modrinth
pap plugin install bukkit:holographic-displays
pap plugin install spigot:death_signs
pap plugin install modrinth:chunky

Why though?

pap has a few purposes:

  • To simplify some of the common tasks you need to do when creating or managing a server (such as when you download/update the server jar.)
  • To easily and automatically verify the jars you download to avoid bad issues down the line.
  • To provide an easy CLI to do common tasks like changing server.properties and signing EULA, for usage in scripts.
  • To quickly install plugins directly from their sources.

Install

Build Dependencies

If you are obtaining pap from source, you will need these dependencies:

Arch linux

Info The AUR build might not have the latest version of pap, but it may be more stable.

If you wish, pap can be installed from the AUR:

yay -S pap
Ubuntu

Info Pacstall might not have the latest version of pap, but it may be more stable.

Thank you so much to Henryws for keeping pap up to date on pacstall.

If you have pacstall, you can run:

pacstall -I pap
Unix
Unix - From Releases

You can go to the latest release and download the fitting binary for your system from there.

pap is available on most architectures and operating systems, so you will rarely need to compile it from source.

Unix - System wide from releases
sudo install -Dm755 pap* /usr/bin/pap
Unix - Local from releases

Warning You may see an error that pap wasn't found, if you see this you may not have ~/.local/bin/ in your PATH. See common issues on how to add it.

install -Dm755 pap* ~/.local/bin/pap
Unix - From Source

Warning pap update downloads and installs a binary, it does not compile it from source. If you need to compile pap from source, don't use pap update.

First, clone pap:

git clone https://github.com/talwat/pap
cd pap

Switch to the latest tag (optional):

git tag # get all tags
git checkout <tag>

And then build:

make

Finally, move it into your binary directory:

Unix - System wide from source
sudo make install PREFIX=/usr
Unix - Local from source

Warning You may see an error that pap wasn't found, if you see this you may not have ~/.local/bin/ in your PATH. See common issues on how to add it.

make install
Windows

pap does work on windows, but windows has a bad different way to CLI apps.

If you want to download from releases, download the fitting windows exe and put it into path.

Windows - From Source

First, clone pap:

git clone https://github.com/talwat/pap
cd pap

Switch to the latest tag (optional):

git tag # get all tags
git checkout <tag>

And then build:

# Use `make` if you have it, otherwise:

mkdir -vp build
go build -o build

Finally, put it into path.

Common issues
Local installation not found

Usually this is because ~/.local/bin is not in PATH.

You can add ~/.local/bin to PATH through your shell:

Bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
Zsh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
Fish

Look at the fish docs for more detailed instructions.

fish_add_path $HOME/.local/bin

Updating pap

Note This will only work if you are running version 0.11.0 or higher. If not, just reinstall using the install guide.

If you used a release and followed the install guide, you should be able to simply run:

sudo pap update

or if you did a local install:

pap update

Uninstalling pap

Simply delete the binary file you installed. pap does not create any files that you do not explicitly tell it to.

So, if you did a system wide install do:

sudo rm /usr/bin/pap

or if you did a local install:

rm ~/.local/bin/pap

Contributing

Anyone is welcome to contribute, and if someone can port pap to various package managers, it would be greatly appreciated.

If you want more info about how to contribute, take a look at CONTRIBUTING.md.

If you would like to add a plugin to the repository, take a look at PLUGINS.md.

If you like pap, feel free to star it on github, or vote for it on the AUR.

Dependencies

Packaging

If you would like to package & submit pap to a repository, open an issue.

Packaging status

Documentation ¶

Overview ¶

pap :)

Directories ¶

Path Synopsis
internal
cmd
Package containing all CLI commands.
Package containing all CLI commands.
cmd/downloadcmds
These commands just get the url, download the jarfile, and checksum it.
These commands just get the url, download the jarfile, and checksum it.
cmd/plugincmds
The commands for the plugin manager.
The commands for the plugin manager.
cmd/plugincmds/generatecmds
pap plugin generate definitions.
pap plugin generate definitions.
cmd/propcmds
All the commands for the properties command.
All the commands for the properties command.
fs
Filesystem Management.
Filesystem Management.
global
Global variables, mainly values set by command line flags which are needed by the whole application.
Global variables, mainly values set by command line flags which are needed by the whole application.
jarfiles
Useful methods for downloading jarfiles
Useful methods for downloading jarfiles
jarfiles/official
Interact with official mojang downloads api and verification of downloaded files.
Interact with official mojang downloads api and verification of downloaded files.
jarfiles/paper
Interact with papermc downloads api and verification of downloaded files.
Interact with papermc downloads api and verification of downloaded files.
log
Logging and user input.
Logging and user input.
log/color
Just a bunch of constants for colors.
Just a bunch of constants for colors.
net
Networking
Networking
plugins/sources
Utilities for various external sources of plugins (modrinth, spigotmc, and bukkit)
Utilities for various external sources of plugins (modrinth, spigotmc, and bukkit)
plugins/sources/paplug
The pap plugin manager format
The pap plugin manager format
properties
Management of the server.properties file
Management of the server.properties file
time
Time related utilities.
Time related utilities.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL