All Mods Resource Packs Data Packs Shaders Modpacks Plugins
AutoUpdatePlugins

AutoUpdatePlugins

by ApliNi • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

AutoUpdatePlugins

[中文文档] -- [English document]

Download: https://modrinth.com/plugin/AutoUpdatePlugins


Functions and commands

  • /aup Show plugin information

    • /aup reload Reload configuration
    • /aup update Run update manually
    • /aup log View full logs
    • /aup stop Stop the current update
  • [x] Using the update directory for plugin updates

  • [x] Automatically find download links based on plugin release page

    • GitHub, Jenkins, Spigot, Modrinth, Bukkit, Ghost Chop Build Station v2, MineBBS, CurseForge.
      • Support downloading pre-releases from GitHub.
      • Supports downloading files in GitHub Actions, enabling login-free downloading through https://nightly.link/
      • Support for specifying platforms in Modrinth
      • Support specifying the version in Modrinth
  • [x] Support matching different files under the same release

    • GitHub, Jenkins, Modrinth.
  • [x] Support for file integrity checking

  • [x] Cache last update, no duplicate downloads.

  • [x] No duplicate installation of updates

  • [x] Error retry mechanism

  • [x] Each update task can be configured individually.

  • [x] Configurable certificate validation

  • [x] Customizable output log level

  • [x] Multi-language support!

  • [ ] Support for running system commands while updating

[Usage statistics]

运行日志

[INFO]: [AUP] The update check will run after 64 seconds and repeat every 14400 seconds.
[INFO]: [AUP] [## Start running automatic updates ##]
[INFO]: [AUP] [EssentialsX.jar] Updating...
[INFO]: [AUP] [EssentialsX.jar] [Github] Version found: https://github.com/EssentialsX/Essentials/releases/download/2.20.1/EssentialsX-2.20.1. jar
[INFO]: [AUP] [EssentialsX.jar] Update complete [1.17MB] -> [2.92MB]
[INFO]: [AUP] [EssentialsXChat.jar] Updating...
[INFO]: [AUP] [EssentialsXChat.jar] [Github] Version found: https://github.com/EssentialsX/Essentials/releases/download/2.20.1/EssentialsXChat- 2.20.1.jar
[INFO]: [AUP] [EssentialsXChat.jar] Update complete [0.01MB] -> [0.01MB]
[INFO]: [AUP] [CoreProtect.jar] Updating...
[INFO]: [AUP] [CoreProtect.jar] [Modrinth] Version found: https://cdn.modrinth.com/data/Lu3KuzdV/versions/w3P6ufP1/CoreProtect-22.2.jar
[INFO]: [AUP] [CoreProtect.jar] file is up to date!
...
[INFO]: [AUP] [## Update all done ##]
[INFO]: [AUP] - Time consumed: 268 seconds
[INFO]: [AUP] - Failed: 2, Updated: 22, Completed: 24
[INFO]: [AUP] - Network requests: 48, Downloaded files: 40.10MB

配置


# How long to wait for the first update to run after the server has finished booting (seconds)
startupDelay: 64

# After the first run is complete, repeat the update at this frequency (seconds, reboot required after modification).
startupCycle: 14400 # 4h

# Plugin update directory, set as in bukkit.yml
# Note that the path must end with "/"
updatePath: './plugins/update/'

# Download the cache directory without modification
# New .jar files will be downloaded to the cache directory first, then moved to the plugin update directory after validation is complete
tempPath: './plugins/AutoUpdatePlugins/temp/'

# Directory of plugins or files the server is running, for hash checking
filePath: './plugins/'

# Enable the last update record and check for updates with this information (temp.yml)
enablePreviousUpdate: true

# File integrity check, only works on .jar / .zip files. Try to open it as a zip file, if it fails, it is incomplete.
zipFileCheck: true
# If the file configuration matches this regex, zip integrity checking is enabled, otherwise it is not enabled
zipFileCheckList: '\.(?:jar|zip)$'

# Do not move to the update directory if the hash of the downloaded file matches the hash of the file to be updated in the update directory (or the file running on the server) (MD5)
ignoreDuplicates: true

# Whether to enable SSL authentication, usually do not turn it off
sslVerify: true

# Failed network request retry count
fetchErrRetry: 4
# Initial retry delay, +2 seconds per retry
fetchErrRetryDelay: 5

# Setting up a web proxy
proxy:
  type: DIRECT # DIRECT | HTTP | SOCKS
  host: '127.0.0.1'
  port: 7890
  # Control proxy usage for different requests
  reqApi: true
  reqDownload: true

# Edit request headers in HTTP requests
setRequestProperty:
  - name: 'User-Agent'
    value: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36'

# 启用哪些日志等级
logLevel:
  - 'DEBUG'   # for debugging, can be commented out after testing is complete
  - 'MARK'    # Same as DEBUG, green color, used to mark task completion.
  - 'INFO'    # Output logs
  - 'WARN'    # Output warnings
  - 'NET_WARN'  # Warnings from the web request module


# Plugin List
# The URL supports automatic download of plugins from `GitHub, Jenkins, SpigotMC, Modrinth, Bukkit, 鬼斩构建站 v2, MineBBS, CurseForge` pages, while other links will download them directly.
# One of the `GitHub, Jenkins, Modrinth` pages can use the get parameter to download a specific file.
# GitHub links can be configured with `getPreRelease: true` to download the latest pre-release version.
list:

  - file: 'AutoUpdatePlugins自动更新.jar'
    url: https://modrinth.com/plugin/autoupdateplugins

### Example configurations ### Note Yaml formatting during testing

#  - file: 'EssentialsX.jar' # Github
#    url: https://github.com/EssentialsX/Essentials
#    get: 'EssentialsX-.*\.jar'  # If there is more than one file in the GitHub/Jenkins distribution, you need to match one of them, otherwise download the first one (using the regular expression

#  - file: 'EssentialsXChat.jar' # Match different files in the same release
#    url: https://github.com/EssentialsX/Essentials
#    get: 'EssentialsXChat-.*\.jar'

#  - file: 'TrPlugins.jar'  # Download the file from GitHub Actions
#    url: https://github.com/TrPlugins/TrChat/actions
#    get: 'TrChat Artifacts'  # Match the names of Artifacts Produced during runtime
#    zipGet: 'TrChat-[\.\d]+\.jar'  # Decompression: Match files in compressed packages

#  - file: 'Chat2QQ.jar'
#    url: https://github.com/ApliNi/Chat2QQ/actions
#    get: 'Chat2QQ\.jar'
#    zipGet: 'Chat2QQ\.jar'

#   - file: 'test.jar'
#     url: https://www.spigotmc.org/resources/invsee.82342/
#     zipGet: 'InvSee\+\+\.jar' # Unzip the file

#  - file: 'Geyser-Spigot.jar' # URL
#    url: https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot

#  - file: 'ViaVersion-DEV.jar' # Jenkins
#    url: https://ci.viaversion.com/job/ViaVersion-DEV/

#  - file: 'ViaBackwards-DEV.jar'
#    url: https://ci.viaversion.com/view/ViaBackwards/job/ViaBackwards-DEV/

#  - file: 'CoreProtect.jar' # Modrinth
#    url: https://modrinth.com/plugin/coreprotect/

#  - file: 'simple-voice-chat.jar'
#    url: https://modrinth.com/plugin/simple-voice-chat
#    loader: paper # Specify platform
#    version: ServerVersion # Specify version, '1.21.10' / ServerVersion

#  - file: 'UseTranslatedNames.jar'
#    url: https://modrinth.com/plugin/usetranslatednames

#  - file: 'HttpRequests.jar' # SpigotMC
#    url: https://www.spigotmc.org/resources/http-requests.101253/

#  - file: 'Chunky.jar' # MineBBS
#    url: https://www.minebbs.com/resources/chunky-tps.7318/

#  - file: 'SF4_Slimefun4.jar' # 鬼斩构建站 v2
#    url: https://builds.guizhanss.com/StarWishsama/Slimefun4/master

#  - file: 'SF4_FluffyMachines.jar'
#    url: https://builds.guizhanss.com/SlimefunGuguProject/FluffyMachines/master

#  - file: 'Dynmap.jar'
#    url: https://legacy.curseforge.com/minecraft/bukkit-plugins/dynmap

#  # Configuration can be added to each file like this
#  # If the file configuration contains a path, the path parameter is automatically set.
#  - file: './serverConfig.yml'
#    url: 'http://[::]:5212/serverConfig.yml'


### All available configurations in list ###
# Unless you know what you're doing, don't use it willy-nilly.
# String file;              // File name
# String url;               // Download link
# String tempPath;          // download cache path, use global configuration by default
# String updatePath;        // update path, used globally by default
# String filePath;          // The final installation path, used globally by default.
# String path;              // Overriding both updatePath and filePath configurations
# String get;               // Regular expression to select the specified file, first one is selected by default. GitHub, Jenkins, Modrinth only.
# String zipGet;            // If you need to unzip files, use this parameter to specify the regular expression.
# String loader;            // Match platform tags, Modrinth only
# String version;           // Match plugin version, Modrinth only, Fill in "ServerVersion" to automatically select the server version
# String c_version_type;    // Version type (Release channel), For example beta, release, Modrinth only
# boolean getPreRelease;    // Allow downloading of pre-releases, false by default. GitHub only.
# boolean zipFileCheck;     // Enable zip file integrity checking
# boolean ignoreDuplicates; // Turn off hash checking


# Edit the messages the plugin may display here
message:
  updateCheckIntervalTooLow: '#### Update check interval too low will cause performance problems! ###'
  timer: 'The update check will run after %1 seconds and repeat at %2 second intervals'
  commandReloadOnUpdating: 'Currently running update, configuration reload will be postponed'
  commandReloadOK: 'Reload completed'
  commandRepeatedRunUpdate: 'There is already an unfinished update running'
  commandUpdateStart: 'Update is running!'
  commandFullLog: 'Full log:'
  commandStopUpdateIng: 'Current updates are being stopped...'
  stopUpdate: 'Too many requests'
  repeatedRunUpdate: '### The update program started repeatedly or with errors? ###'
  updateStart: '[### Start running automatic updates ##]'
  configErrList: 'Error configuring update list? '
  configErrUpdate: 'Update list configuration error? Item is empty.'
  configErrMissing: 'Error updating list configuration? Missing basic configuration'
  updateChecking: 'Checking for updates...'
  updateErrParsingDUrl: 'Error parsing direct file links, will skip this update'
  updateTempAlreadyLatest: '[Cached] file is already latest'
  updateErrDownload: 'Error downloading file, will skip this update'
  updateZipFileCheck: '[Zip integrity check] File is incomplete, will skip this update'
  updateFileAlreadyLatest: 'File is already latest'
  updateFulSizeDifference: 'Update completed [%1MB] -> [%2MB]'
  updateFul: '[## Update All Complete ##]'
  updateFulTime: 'Time taken: %1 seconds'
  updateFulFail: 'Failed: %1,'
  updateFulUpdate: 'Update: %1,'
  updateFulOK: 'Success: %1'
  updateFulNetRequest: 'Network Request: %1, '
  updateFulDownloadFile: 'Downloading file: %1MB'
  logReloadOK: 'Reload completed'
  debugGetVersion: 'Found version: %1'
  debugNoFileMatching: 'No file matching: %1'
  debugNoRepositoryPath: 'Repository path not found: %1'
  debugErrUrlResolveNoID: 'URL resolving error, plugin ID not included?'
  debugErrUrlResolveNoName: 'URL resolution error, project name not found: %1'
  debugErrNoID: 'Project ID not found: %1'
  urlInvalid: 'URL is invalid or irregular: %1'
  networkErrorRetry: 'Network error, please wait %1 seconds...'
  zipDecompressionFailed: 'ZIP decompression failed'

Some of the features and code references are from project NewAmazingPVP/AutoUpdatePlugins.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.1.x 1.21.x 1.20.x +4
Folia Paper Purpur Spigot
22h ago 1
1.21.x 1.20.x 1.19.x +3
Folia Paper Purpur Spigot
22h ago 1
1.21.x 1.20.x 1.19.x +3
Paper Purpur Spigot
22h ago 1
1.21.x 1.20.x 1.19.x +4
Paper Purpur Spigot
22h ago 1
1.21 1.20.x 1.19.x +6
Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.x +1
Folia Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x 1.18.x +1
Folia Paper Purpur Spigot
22h ago 1
1.20.x 1.19.x
Folia Paper Purpur Spigot
22h ago 1
1.20.x
Paper Purpur Spigot
22h ago 1
1.20.x
Paper Purpur Spigot
22h ago 1
1.20.x
Paper Purpur Spigot
22h ago 1
1.20.x
Paper Purpur Spigot
22h ago 1
1.20.x
Paper Purpur Spigot
22h ago 1
1.20.x
Paper Purpur Spigot
22h ago 1
1.20.x
Paper Purpur Spigot
22h ago 1
1.20.x
Paper Purpur Spigot
22h ago 1
1.20.x
Paper Purpur Spigot
22h ago 1


  • 更新内容**
  • 匹配 Modtinth 中的版本类型

  • 本次更新增加了新的配置项**
``yaml
# String c_version_type; // 版本类型 (发布频道), 如 beta, release, 仅限 Modrinth
`


  • Updates**
  • Match version type in Modtinth

  • New configuration items have been added in this update**
`yaml
# String c_version_type; // Version type (Release channel), For example beta, release, Modrinth only
``


  • 更新内容**
  • 匹配 Modtinth 中的版本号

  • 本次更新增加了新的配置项**
``yaml
list:
# 更新了示例配置

# - file: 'simple-voice-chat.jar'
# url: https://modrinth.com/plugin/simple-voice-chat
# loader: paper # 指定平台
# version: ServerVersion # 指定版本, '1.21.10' / ServerVersion
`


  • Updates**
  • Match the version number in Modtinth

  • New configuration items have been added in this update**
`yaml
list:
# Updated example configuration

# - file: 'simple-voice-chat.jar'
# url: https://modrinth.com/plugin/simple-voice-chat
# loader: paper # Specify platform
# version: ServerVersion # Specify version, '1.21.10' / ServerVersion
``


  • 更新内容**
  • 从 Github Actions 下载
  • 自动解压文件
  • 对不同请求开关代理

  • 本次更新增加了新的配置项**
``yaml
proxy:
reqApi: true
reqDownload: true

list:
# 添加了示例配置

# - file: 'TrPlugins.jar' # 下载 GitHub Actions 中的文件
# url: https://github.com/TrPlugins/TrChat/actions
# get: 'TrChat Artifacts' # 匹配 Artifacts Produced during runtime 中的名称
# zipGet: 'TrChat-[\.\d]+\.jar' # 解压: 匹配压缩包中的文件

# - file: 'Chat2QQ.jar'
# url: https://github.com/ApliNi/Chat2QQ/actions
# get: 'Chat2QQ\.jar'
# zipGet: 'Chat2QQ\.jar'

# - file: 'test.jar'
# url: https://www.spigotmc.org/resources/invsee.82342/
# zipGet: 'InvSee\+\+\.jar' # 解压文件
`


  • Updates**
  • From Github Actions to download
  • Automatically decompress files
  • Switch proxy on and off for different requests

  • New configuration items have been added in this update**
`yaml
proxy:
reqApi: true
reqDownload: true

list:
# Added example configuration

# - file: 'TrPlugins.jar' # Download the file from GitHub Actions
# url: https://github.com/TrPlugins/TrChat/actions
# get: 'TrChat Artifacts' # Match the names of Artifacts Produced during runtime
# zipGet: 'TrChat-[\.\d]+\.jar' # Decompression: Match files in compressed packages

# - file: 'Chat2QQ.jar'
# url: https://github.com/ApliNi/Chat2QQ/actions
# get: 'Chat2QQ\.jar'
# zipGet: 'Chat2QQ\.jar'

# - file: 'test.jar'
# url: https://www.spigotmc.org/resources/invsee.82342/
# zipGet: 'InvSee\+\+\.jar' # Unzip the file
``


  • 更新内容**
  • 支持出错时自动重试网络请求
  • 支持 Modrinth 指定平台下载
  • 支持将消息设置为空时不打印内容

  • 本次更新增加了新的配置项**
``yaml
# 网络请求失败重试次数
fetchErrRetry: 4
# 初始重试延迟, 每次重试 + 2s
fetchErrRetryDelay: 5

list:
# 修改了自动更新插件的下载地址
  • file: 'AutoUpdatePlugins自动更新.jar'
url: https://modrinth.com/plugin/autoupdateplugins
`


  • Updates**
  • Supports automatic retry of network requests when an error occurs
  • Support Modrinth designated platform downloads
  • Support not printing content when message is set to empty

  • New configuration items have been added in this update**
`yaml
# Failed network request retry count
fetchErrRetry: 4
# Initial retry delay, +2 seconds per retry
fetchErrRetryDelay: 5

list:
# Modified the download address of the automatic update plug-in
  • file: 'AutoUpdatePlugins.jar'
url: https://modrinth.com/plugin/autoupdateplugins
``
## What's Changed

## New Contributors


  • 更新内容**
  • 更新鬼斩构建站 API
  • 优化 Modrinth 版本查找方法
  • 支持更低的 MC 版本, 目前调整到 1.16
  • 支持禁用 SSL 验证, 用于解决一些网络问题, 但不推荐使用
  • 优化消息

  • 本次更新增加了新的配置项**
``yaml
# 是否启用 SSL 验证, 通常情况请勿关闭
sslVerify: false
`


  • Updates**
  • Support lower MC version, currently adjusted to 1.16.
  • Support disable SSL authentication, used to solve some network problems, but not recommended.
  • Optimized messages

  • New configuration items have been added in this update**
`yaml
# Whether to enable SSL authentication, usually do not turn it off
sslVerify: true
``

修复设置 HTTP 请求头的功能


  • 本次更新没有配置改动**

  • 此版本在发布后经过更新**
  • 更新配置文件



  • There are no configuration changes in this update**

  • This version has been updated since publication**
  • Update configuration file

  • 更新内容**
  • 使用更稳定的网络请求库优化稳定性
  • 支持添加网络代理
  • 支持运行在 Folia 服务器上

  • 配置改动**
  • 移除 disableCertificateVerification 配置, 添加 proxy 配置
``yaml
# 设置网络代理
proxy:
type: DIRECT # DIRECT | HTTP | SOCKS
host: '127.0.0.1'
port: 7890
``


``yaml
# 如果 file 配置与此正则匹配, 则启用 zip 完整性检查, 否则不会启用
zipFileCheckList: '\.(?:jar|zip)$'
`

  • 其他更新**
  • 优化信息显示



`yaml
# If the file configuration matches this regex, zip integrity checking is enabled, otherwise it is not enabled
zipFileCheckList: '\.(?:jar|zip)$'
``

  • Other updates**
  • Optimize message display


  • 此更新中存在配置中的功能更新**
``
### list 中的所有可用配置 ###
# 除非你知道这是在做什么, 否则不要随意随意使用
# String file; // 文件名称
# String url; // 下载链接
# String tempPath; // 下载缓存路径, 默认使用全局配置
# String updatePath; // 更新存放路径, 默认使用全局配置
# String filePath; // 最终安装路径, 默认使用全局配置
# String path; // 同时覆盖 updatePath 和 filePath 配置
# String get; // 选择指定文件的正则表达式, 默认选择第一个. 仅限 GitHub, Jenkins, Modrinth
# boolean getPreRelease; // 允许下载预发布版本, 默认 false. 仅限 GitHub
# boolean zipFileCheck; // 启用 zip 文件完整性检查, 默认 true
# boolean ignoreDuplicates; // 关闭哈希检查
`

  • 此更新中存在语言配置更新**
  • 省略...*

  • 更新内容**
  • 添加 /aup stop 指令, 用于停止一个正在进行的更新
  • 优化信息显示
  • 修复无法关闭哈希检查


  • There are feature updates in the configuration in this update**
`
### All available configurations in list ###
# Unless you know what you're doing, don't use it willy-nilly.
# String file; // File name
# String url; // Download link
# String tempPath; // download cache path, use global configuration by default
# String updatePath; // update path, used globally by default
# String filePath; // The final installation path, used globally by default.
# String path; // Overriding both updatePath and filePath configurations
# String get; // Regular expression to select the specified file, first one is selected by default. GitHub, Jenkins, Modrinth only.
# boolean getPreRelease; // Allow downloading of pre-releases, false by default. GitHub only.
# boolean zipFileCheck; // Enable zip file integrity checking, true by default.
# boolean ignoreDuplicates; // Turn off hash checking
`

  • Language configuration update exists in this update**
  • Omitted... *

  • Updates**
  • Added /aup stop` command to stop an update in progress.
  • Optimize message display
  • Fixed inability to turn off hash checking



  • 更新内容**
  • 修复有时候不会释放锁, 你将看到 ### 更新程序重复启动或出现错误? 尝试提高更新检查间隔? ### 而没有进行更新


  • Updates**
  • Fixed that sometimes the lock is not released, you will see ### Update program start repeatedly or error? Trying to increase the update check interval? ### and no update is performed

  • 此版本存在配置更新**
  • 添加了多语言配置和 message 配置项

  • 更新内容**
  • 添加英文配置和语言
  • 添加英文文档
  • 允许自定义插件消息
  • 一些细节修复


  • Configuration updates exist for this version**
  • Added multi-language configuration and message configuration items

  • update content**
  • Added English configuration and language
  • Added English documentation
  • Allow custom plugin messages
  • Some detail fixes

  • 本次更新存在配置改动**
``yaml
# 显示最详细的更新日志, 可在测试完成后关闭, 关闭后依然显示错误/警告/开始和完成信息
debugLog: true

#--- 删除以上部分, 添加以下部分 ---#

# 启用哪些日志等级
logLevel:
  • "DEBUG" # 用于调试, 可在测试完成后注释掉
  • "MARK" # 与 DEBUG 相同, 显示绿色, 用于标记任务完成
  • "INFO" # 输出日志
  • "WARN" # 输出警告
  • "NET_WARN" # 网络请求模块的警告
`

  • 本次更新添加了新的指令**
  • /aup log` - 显示一份完整的更新日志

  • 更新内容**


  • 更新发布后进行过修改**
  • 修复 MARK 日志中缺失的插件标志 - 2024年1月17日 21点11分

  • 本次更新存在配置更新**
``yaml
# 启用上一个更新记录并通过这些信息检查更新 (temp.yml)
enablePreviousUpdate: true
``


  • 本次更新添加新的配置项目**

  • 重构插件
  • 更完整的重载功能
  • 支持添加 HTTP 请求头
  • 优化日志显示
  • 实验性支持 CurseForge 页面链接


  • 本次发布中有配置文件更新**

  • Github 链接可添加配置 getPreRelease: true 来下载最新的预发布版本
  • debugLog: true 显示完整的更新日志, 可在测试完成后关闭, 关闭后依然会显示错误/警告/开始和完成信息


初始提交
AutoUpdatePlugins Icon
Download AutoUpdatePlugins
Select game version
Select platform