50 lines
1.7 KiB
PowerShell
50 lines
1.7 KiB
PowerShell
#!/usr/bin/env pwsh
|
|
|
|
# Set strict mode for better error handling
|
|
Set-StrictMode -Version Latest
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
# Check required environment variable
|
|
if (-not $env:MINECRAFT_SERVER_PATH) {
|
|
Write-Error "Error: MINECRAFT_SERVER_PATH environment variable is not set."
|
|
exit 1
|
|
}
|
|
|
|
# Find project root (two directories above this script)
|
|
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
$ProjectRoot = Split-Path -Parent (Split-Path -Parent $ScriptDir)
|
|
|
|
# Find the most recent plugin jar file
|
|
$LibsPath = Join-Path $ProjectRoot "build\libs"
|
|
$PluginJar = Get-ChildItem -Path "$LibsPath\*.jar" -ErrorAction SilentlyContinue |
|
|
Sort-Object LastWriteTime -Descending |
|
|
Select-Object -First 1
|
|
|
|
if (-not $PluginJar) {
|
|
Write-Error "Error: No plugin jar found in $LibsPath. Build the plugin first."
|
|
exit 1
|
|
}
|
|
|
|
# Optional: Warn if jar is older than any source file
|
|
$SourcePaths = @(
|
|
(Join-Path $ProjectRoot "src\main\java"),
|
|
(Join-Path $ProjectRoot "src\main\resources")
|
|
)
|
|
|
|
$NewerSourceFiles = Get-ChildItem -Path $SourcePaths -Recurse -File -ErrorAction SilentlyContinue |
|
|
Where-Object { $_.LastWriteTime -gt $PluginJar.LastWriteTime }
|
|
|
|
if ($NewerSourceFiles) {
|
|
Write-Host "Warning: The built plugin jar is older than some source files. Consider rebuilding." -ForegroundColor Yellow
|
|
}
|
|
|
|
# Create plugins directory if it doesn't exist
|
|
$PluginsPath = Join-Path $env:MINECRAFT_SERVER_PATH "plugins"
|
|
if (-not (Test-Path $PluginsPath)) {
|
|
New-Item -ItemType Directory -Path $PluginsPath -Force | Out-Null
|
|
}
|
|
|
|
# Copy the plugin jar to the plugins directory
|
|
Copy-Item -Path $PluginJar.FullName -Destination $PluginsPath -Force
|
|
Write-Host "Deployed $($PluginJar.Name) to $PluginsPath\"
|