pluGET/README.md

280 lines
9.4 KiB
Markdown
Raw Normal View History

2022-07-04 12:29:59 +00:00
2023-09-25 03:26:28 +00:00
# About this Fork
This fork adds support for multiple servers with a server switching system
```
server [servername]
```
As well as a new config file `config.yaml`
```yaml
Servers:
Srv1:
Connection: local
ServerRootPath: C:/Users/USER/Desktop/server
PluginFolderPath: C:/Users/USER/Desktop/server/plugins
SeperateDownloadPath: false
Srv2:
Connection: sftp
ServerRootPath: /
PluginFolderPath: /plugins
SeperateDownloadPath: /plugins/updated
Server: mc.example.com
Username: joe
Password: pass
Port: 22
Srv3:
Connection: ftp
ServerRootPath: /
PluginFolderPath: /plugins
SeperateDownloadPath: false
Server: mc.example.com
Username: joe
Password: pass
Port: 21
AnotherServerName:
Connection: local
ServerRootPath: /srv/mc
PluginFolderPath: /srv/mc/plugins
SeperateDownloadPath: /srv/mc/plugins/downloaded
# more can be added
```
### Features I plan to add in the future
- Improved CLI with support for one word commands
- Modular plugin and serverjar system / more repos
- Batch actions across multiple servers
<br />
---
<br />
<br />
2021-03-04 21:59:19 +00:00
<p align="center">
2022-07-19 09:30:10 +00:00
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./assets/branding/pluget-logo-white.png">
<source media="(prefers-color-scheme: light)" srcset="./assets/branding/pluget-logo-black.png">
<img src="./assets/branding/pluget-logo-black.png" alt="pluGET" border="0">
</picture>
2021-03-04 21:59:19 +00:00
</p>
2021-03-09 19:53:07 +00:00
<p align="center">
2021-07-09 18:36:17 +00:00
<a href="https://www.python.org/"> <img src="https://img.shields.io/badge/made%20with-python%20%F0%9F%90%8D-brightgreen" alt="madewithpython" border="0"></a>
2021-03-09 19:53:07 +00:00
</p>
<p align="center">
2021-03-14 18:15:06 +00:00
<a href="https://github.com/Neocky/pluGET/blob/main/LICENSE"> <img src="https://img.shields.io/github/license/Neocky/pluGET" alt="Apache-2.0" border="0"></a>
2021-03-14 18:12:56 +00:00
<a href="https://github.com/Neocky/pluGET/releases"> <img src="https://img.shields.io/github/v/release/Neocky/pluGET?include_prereleases" alt"latestrelease"></a>
<a href="https://github.com/Neocky/pluGET/releases"> <img src="https://img.shields.io/github/downloads/Neocky/pluGET/total" alt="downloads" border="0"></a>
2021-03-19 18:16:02 +00:00
<a href="https://hits.seeyoufarm.com"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FNeocky%2FpluGET&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false"/></a>
2021-03-14 17:51:43 +00:00
</p>
2021-03-14 17:02:09 +00:00
2021-03-09 19:53:07 +00:00
2022-07-04 12:29:59 +00:00
# pluGET
A powerful package manager which updates [Plugins](https://www.spigotmc.org/resources/) and Server Software for minecraft servers.
2021-03-19 18:02:38 +00:00
2022-07-02 17:52:40 +00:00
<img src="https://user-images.githubusercontent.com/13088544/177011216-1360d444-278a-475e-9863-966c48c60ba7.gif" alt="pluGET.gif" border="0" />
2021-03-23 17:45:14 +00:00
2021-03-21 17:58:02 +00:00
<details>
2022-07-02 17:52:40 +00:00
<summary>Old Screenshots</summary>
2021-03-21 17:58:02 +00:00
`check all` to check installed plugins for updates:
![screenshot1](https://i.ibb.co/QM7xh7w/pluget-checkall-small.png)
`check all` with more plugins:
![screenshot2](https://i.ibb.co/VmSNh6K/pluget-checkall.png)
`help command` list all available commands:
![screenshot3](https://i.ibb.co/9VZCjD6/pluget-help2.png)
</details>
2021-03-19 18:02:38 +00:00
2022-07-04 12:29:59 +00:00
# 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.
2021-03-10 14:00:24 +00:00
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.
<img src="https://i.ibb.co/82dnyrK/image.png" alt="meme" border="0" height="350" width="350"></a>
# 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
2022-07-04 12:17:23 +00:00
- Checks for updates and downloads the latest version of your server software
- [PaperMc](https://papermc.io/)
2022-07-04 14:08:15 +00:00
- [Purpur](https://purpurmc.org/)
- [Waterfall](https://papermc.io/downloads#Waterfall)
- [Velocity](https://papermc.io/downloads#Velocity)
2021-03-11 13:02:15 +00:00
2022-07-04 12:29:59 +00:00
There are more features in the work. Check [Projects](https://github.com/Neocky/pluGET/projects) for a complete list.
2021-03-11 13:02:15 +00:00
2021-03-11 13:22:21 +00:00
**So why do it manually when you can use pluGET to automate it?** 🚀
2022-07-04 12:29:59 +00:00
[Get the latest release here.](https://github.com/Neocky/pluGET/releases)
2021-03-10 14:00:24 +00:00
2022-07-04 12:17:23 +00:00
2022-07-04 12:29:59 +00:00
# Donations ☕
If you feel like showing your love and/or appreciation for this project then how about buying me a coffee? ☕🤎
2022-05-08 17:21:10 +00:00
[<img src="https://ko-fi.com/img/githubbutton_sm.svg" alt="ko-fi" width="300"/>](https://ko-fi.com/Y8Y1CKZ43)
2022-04-18 14:27:04 +00:00
2021-03-10 14:00:24 +00:00
2022-07-04 12:29:59 +00:00
# Need help?
2022-07-04 12:17:23 +00:00
[<img src="https://i.ibb.co/PQv3KtJ/Discord-Logo-Wordmark-Color.png" alt="Discord" width="300"/>](https://discord.gg/475Uf4NBPF)
2022-07-04 12:17:23 +00:00
2022-07-04 12:29:59 +00:00
# Installation
## 1. Python 3.10.4
2022-07-04 12:29:59 +00:00
Python needs to be installed on your machine. Get it [here](https://www.python.org/downloads/).
2021-03-08 02:13:31 +00:00
## 2. Dependencies
In order to install dependencies run the `install_requirements_WINDOWS/LINUX` file, of course depending on your system.
2021-03-10 14:00:24 +00:00
## 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.
2021-03-10 14:00:24 +00:00
Edit the config to your needs and relaunch pluGET.
2022-07-04 12:29:59 +00:00
**Now you are good to go!**
2021-03-08 21:26:44 +00:00
## 4. Running the program
2022-07-02 17:43:02 +00:00
Execute the `pluget.py` file with python in the `\pluGET` folder.
2022-07-04 12:29:59 +00:00
This will launch pluGET correctly.
2022-07-02 17:43:02 +00:00
```python
# Windows:
py pluget.py
# Linux
python3 pluget.py
```
2022-07-04 12:29:59 +00:00
# Usage
> As always, if you update plugins, shut down your server!
## Commands:
### • Show the information about all commands.
<!-- <details>
2022-07-04 12:29:59 +00:00
<summary>Output</summary>
![Example output](https://i.ibb.co/9VZCjD6/pluget-help2.png)
2022-07-04 12:29:59 +00:00
</details> -->
2021-03-08 02:13:31 +00:00
```
help command [all/command]
2021-03-08 02:13:31 +00:00
```
### • Exit program:
2021-03-08 02:13:31 +00:00
```
exit .
```
### • Get link to this page:
```
help .
```
2022-07-04 12:29:59 +00:00
## Manage Plugins
### • Download the latest update of a specific package:
2021-03-08 02:13:31 +00:00
```
get [pluginID/pluginName]
2022-07-04 12:29:59 +00:00
```
2022-07-04 12:29:59 +00:00
### • Check all plugins/one specific plugin for updates with optional changelog output:
<!-- <details>
2022-07-04 12:29:59 +00:00
<summary>Output</summary>
![Output](https://i.ibb.co/VmSNh6K/pluget-checkall.png)
2022-07-04 12:29:59 +00:00
</details> -->
2021-03-08 02:13:31 +00:00
```
check [all/pluginName] [changelog]
2021-03-12 00:44:39 +00:00
```
2022-07-04 12:29:59 +00:00
### • Update all plugins/one specific plugin:
2021-03-12 00:44:39 +00:00
```
update [all/pluginName]
2022-07-04 12:29:59 +00:00
```
2022-07-04 12:29:59 +00:00
### • Remove a plugin with the ID/Name:
2021-03-13 22:05:46 +00:00
```
remove [pluginID/pluginName]
2021-03-08 21:26:44 +00:00
```
2022-07-04 12:29:59 +00:00
### • Search for a plugin:
2021-03-08 21:26:44 +00:00
```
search [pluginName]
2021-03-08 21:26:44 +00:00
```
## Manage Server Software
### • Check installed server software for updates:
```
check serverjar
```
### • Update installed server software to latest/specific version:
```
update serverjar [Version]
```
### • Download specific paper version:
```
get-paper [paperBuild] [minecraftVersion]
```
### • Download specific waterfall version:
2022-07-02 17:43:02 +00:00
```
get-waterfall [waterfallBuild] [minecraftVersion]
2022-07-02 17:43:02 +00:00
```
### • Download specific velocity version:
```
get-velocity [velocityBuild] [minecraftVersion]
```
2022-07-04 14:08:15 +00:00
### • Download specific purpur version:
```
get-purpur [purpurBuild] [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`.
2022-07-04 12:29:59 +00:00
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
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)
2022-07-04 12:29:59 +00:00
EssentialsX is now detected from pluGET and can update automatically when a new version comes out.
### 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/).
2022-07-04 14:08:15 +00:00
In this example this is a bukkit plugin.