diff --git a/README.md b/README.md index 5087716..d0b2da6 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ # pluGET -#### A powerful package manager which updates [Plugins](https://www.spigotmc.org/resources/) and Server Software for minecraft servers. +A powerful package manager which updates [Plugins](https://www.spigotmc.org/resources/) and Server Software for minecraft servers. pluGET.gif @@ -35,46 +35,23 @@ +# About +pluGET is a standalone package manager written in python for minecraft [Spigot](https://www.spigotmc.org/) servers and its forks (e.g. [PaperMC](https://papermc.io/)). The program works with a locally installed servers or with a remote host through SFTP/FTP, when configured in the config. It uses the [Spiget](https://spiget.org/) API to download and compare plugin versions and download the latest version of plugins from the [Spigot](https://www.spigotmc.org/) site. It can also compare and download the latest update of specific server software (e.g. [PaperMC](https://papermc.io/)). + +Plugin management is the hard part of managing a minecraft server. The time it takes to manually check the [Spigot resources](https://www.spigotmc.org/resources/) page for updates and manually downloading all plugins is too long and daunting. So I built pluGET to automate and ease the plugin handling of a minecraft server and to turn the most time consuming part of managing a minecraft server to an easy one. + +This program is suited for minecraft server owners who want to save time and stay on top of their plugin versions. The program input and the associated config file are pretty simple so every server owner and not only the most tech savy ones can use pluGET to ease their plugin handling. + meme - -## Issues? Found a bug? -[Create an issue.](https://github.com/Neocky/pluGET/issues/new/choose) - - -## About -This is a package manager for minecraft [Spigot](https://www.spigotmc.org/) servers and its forks (e.g. [PaperMC](https://papermc.io/)). -This is a standalone program written in python. -The program works with a locally installed server or with a remote host through SFTP/FTP, when configured in the config. -It uses the [Spiget](https://spiget.org/) API to download and compare plugin versions and can download the latest version of plugins from the [Spigot](https://www.spigotmc.org/) site. -It can also compare and download the latest update of specific server software (e.g. [PaperMC](https://papermc.io/)). - -Plugin management was the hard part of managing a minecraft server. The time it took to check the [Spigot resource](https://www.spigotmc.org/resources/) page for updates for the installed plugins and updating all plugins manually which have available updates was too long and daunting. -So I built pluGET to automate and ease the plugin handling of a minecraft server and to turn the most time consuming part of managing a minecraft server to an easy one. - -This program is suited for minecraft server owners who want to save time and stay on top of their plugin versions. -The program input and the associated config file are pretty simple so every server owner and not only the most tech savy ones can use pluGET to ease their plugin handling. - -Follow the [Installation](https://github.com/Neocky/pluGET#installation) guide below for an easy and hassle free setup of pluGET. -Read [Usage](https://github.com/Neocky/pluGET#usage) below to get some example inputs when using pluGET. -If you still have questions [here](https://github.com/Neocky/pluGET#need-help) is the best place to ask for support. - -So what can it do exactly? -pluGET can: -- work locally or through SFTP/FTP -- run directly from the console with command line arguments -- manage plugins: - - download the latest version of a plugin - - update every installed/one specific plugin - - check for an update of every installed/one specific plugin -- manage server software: - - download a specific server software version - - check installed server software for update - - update installed server software to a specific version - - supported server software: - - [PaperMc](https://papermc.io/) - - [Waterfall](https://papermc.io/downloads#Waterfall) - - [Velocity](https://papermc.io/downloads#Velocity) +# Features +- Works locally or through SFTP/FTP +- Runs directly from the console with command line arguments +- Checks for updates and downloads the latest version of all/specific plugins +- Checks for updates and downloads the latest version of your server software. + - [PaperMc](https://papermc.io/) + - [Waterfall](https://papermc.io/downloads#Waterfall) + - [Velocity](https://papermc.io/downloads#Velocity) There are more features in the work. Check [Projects](https://github.com/Neocky/pluGET/projects) for a complete list. @@ -82,42 +59,30 @@ There are more features in the work. Check [Projects](https://github.com/Neocky/ [Get the latest release here.](https://github.com/Neocky/pluGET/releases) -## Donations :coffee: -If you feel like showing your love and/or appreciation for this project then how about buying me a coffee? :coffe::brown_heart: +# Donations ☕ +If you feel like showing your love and/or appreciation for this project then how about buying me a coffee? ☕🤎 -[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/Y8Y1CKZ43) +[ko-fi](https://ko-fi.com/Y8Y1CKZ43) -## Need help? -[Discord](https://discord.gg/475Uf4NBPF) +# Need help? +[Discord](https://discord.gg/475Uf4NBPF) -## Installation -### 1. Python 3.10.4 -Python needs to be installed on your machine. -Get it [here](https://www.python.org/downloads/). -### 2. Dependencies -Install the needed packages for this project. -#### Automatically (Windows only) -Execute the `install_requirements.py` file to automaticcally install the needed packages for this project. +# Installation +## 1. Python 3.10.4 +Python needs to be installed on your machine. Get it [here](https://www.python.org/downloads/). -#### Manually -Execute this command in the `\plugGET` folder: -```python -# Windows: -py -m pip install -r requirements.txt -# Linux -pip install -r requirements.txt -``` +## 2. Dependencies +In order to install dependencies run the `install_requirements_WINDOWS/LINUX` file, of course depending on your system. - -### 3. Edit the Config -When run the first time, the `pluGET_config.yaml` file will be created in the main folder and the program will close. +## 3. Edit the config +When run pluGET for the first time, the `pluGET_config.yaml` file will be created in the main folder and the program will close. Edit the config to your needs and relaunch pluGET. **Now you are good to go!** -## Start pluGET +## 4. Running the program Execute the `pluget.py` file with python in the `\pluGET` folder. This will launch pluGET correctly. ```python @@ -127,143 +92,122 @@ py pluget.py python3 pluget.py ``` -### Command line arguments -pluGET supports all commands directly through direct calling from the command line. -Get all available command line arguments with the `-h` argument. -Example direct command line call: -```shell -py pluget.py check all # runs the update checking for all plugins from pluget -``` - -## Usage +# Usage > As always, if you update plugins, shut down your server! -The following are examples of input for the general usage: -(Hint: [thingsInBrackets] are optional & 'all' can always be exchanged through the plugin name or the plugin id and reverse) +## Commands: -### General -#### Command help: -`help command [all/command]` -``` -help command -``` -
+### • Show the information about all commands. + -### Manage Plugins -#### Download the latest update of a specific package: -`get [pluginID/pluginName]` ``` -get 'pluginID' -``` -or: +help command [all/command] ``` -get 'pluginName' -``` -#### Check all plugins/one specific plugin for updates with optional changelog output: -`check [all/pluginName] [changelog]` + +### • Exit program: ``` -check all -``` -or: +exit . ``` -check 'pluginName' changelog + +### • Get link to this page: +``` +help . +``` + +## Manage Plugins +### • Download the latest update of a specific package: +``` +get [pluginID/pluginName] ``` -
+### • Check all plugins/one specific plugin for updates with optional changelog output: + +``` +check [all/pluginName] [changelog] +``` -#### Update all plugins/one specific plugin: -`update [all/pluginName]` +### • Update all plugins/one specific plugin: ``` -update all +update [all/pluginName] ``` -or: + +### • Remove a plugin with the ID/Name: ``` -update 'pluginName' -``` -#### Remove a plugin with the ID/Name: -`remove [pluginID/pluginName]` +remove [pluginID/pluginName] ``` -remove 'pluginID' -``` -or: + +### • Search for a plugin: ``` -remove 'pluginName' -``` -#### Search for a plugin: -`search [pluginName]` +search [pluginName] ``` -search 'pluginName' -``` -#### Exit program: -`exit [anything]` -``` -exit . -``` -#### Get link to here: -`help [anything]` -``` -help . -``` -### Manage Server Software -#### Check installed server software for updates: -`check serverjar` + +## Manage Server Software + +### • Check installed server software for updates: ``` check serverjar ``` -### Update installed server software to latest/specific version: -`update serverjar [Version]` + +### • Update installed server software to latest/specific version: ``` -update serverjar 'PaperMCVersion' -``` -### Download specific paper version: -`get-paper [paperBuild] [minecraftVersion]` -``` -get-paper 550 1.16.5 -``` -### Download specific waterfall version: -`get-waterfall [waterfallBuild] [minecraftVersion]` -``` -get-waterfall 496 1.19 -``` -### Download specific waterfall version: -`get-velocity [velocityBuild] [minecraftVersion]` -``` -get-velocity 158 3.1.2-SNAPSHOT +update serverjar [Version] ``` -## Known problems +### • Download specific paper version: +``` +get-paper [paperBuild] [minecraftVersion] +``` -### Can't get latest version/Update available +### • Download specific waterfall version: +``` +get-waterfall [waterfallBuild] [minecraftVersion] +``` -#### Inconsistent Names and Versions -For example: +### • Download specific waterfall version: +``` +get-velocity [velocityBuild] [minecraftVersion] +``` + +# Command line arguments +pluGET supports all commands directly through the command line. Get the list of all available command line arguments with the `-h` argument. + +Example direct command line call: +```shell +py pluget.py check all +``` + +# Known problems + +## Can't get latest version/Update available + +### Inconsistent Names and Versions +Example: ![EssentialsX](https://i.ibb.co/fDyCYQ8/essentialsx.png) EssentialsX is a prominent example of inconsisten version naming. The installed version is `2.18.2.0` but on [Spigot](https://www.spigotmc.org/resources/essentialsx.9089/update?update=371379) the version is only described as `2.18.2`. That's the reason pluGET can't detect it automatically. > There are of course many more plugins which have some sort of inconsistency which makes it sadly impossible for pluGET to detect them all. EssentialsX is used only as an example. -#### Solution +### Solution Download the plugins with the `get [pluginName]` command to make them detectable for pluGET. After downloading EssentialsX with `get EssentialsX` and using `check all`: ![EssentialsX](https://i.ibb.co/ws5wHTj/essentialsx-2.png) EssentialsX is now detected from pluGET and can update automatically when a new version comes out. -#### Bukkit plugins -For example: +### Bukkit plugins +Example: ![worldguard](https://i.ibb.co/7NJ9HRG/pluget-checkallonlyone.png) As you can see the installed version was found but not the latest version for this plugin. This is because this is a plugin which is not available on [Spigot](https://www.spigotmc.org/resources/). pluGET supports currently only plugins from [Spigot](https://www.spigotmc.org/resources/). -In this example this is a bukkit plugin. - +In this example this is a bukkit plugin. \ No newline at end of file diff --git a/install_requirements.py b/install_requirements.py deleted file mode 100644 index 49c362c..0000000 --- a/install_requirements.py +++ /dev/null @@ -1,13 +0,0 @@ -""" - Install the needed python packages through this script -""" - -import os - -try: - print("Installing Python packages and dependencies from requirements.txt...\n") - os.system('py -m pip install -r requirements.txt' if os.name=='nt' else 'pip install -r requirements.txt') - print("\nStart pluGET by launching the 'pluGET.py' file!") -except: - print("Requirements couldn't be installed. Check if file 'requirements.txt' is in the same folder and that Python3\ - and pip is installed!") diff --git a/install_requirements_LINUX.sh b/install_requirements_LINUX.sh new file mode 100644 index 0000000..04f0b4e --- /dev/null +++ b/install_requirements_LINUX.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +echo "Installing Python packages and dependencies from requirements.txt... Please wait." +pip install -r requirements.txt \ No newline at end of file diff --git a/install_requirements_WINDOWS.bat b/install_requirements_WINDOWS.bat new file mode 100644 index 0000000..24266b8 --- /dev/null +++ b/install_requirements_WINDOWS.bat @@ -0,0 +1,4 @@ +@echo off +title Installing requirements... +echo Installing Python packages and dependencies from requirements.txt... Please wait. +py -m pip install -r requirements.txt \ No newline at end of file