diff --git a/src/main/java/io/papermc/hangar/db/model/ProjectVersionVisibilityChangesTable.java b/src/main/java/io/papermc/hangar/db/model/ProjectVersionVisibilityChangesTable.java index 71d11c21c..af6d44bbb 100644 --- a/src/main/java/io/papermc/hangar/db/model/ProjectVersionVisibilityChangesTable.java +++ b/src/main/java/io/papermc/hangar/db/model/ProjectVersionVisibilityChangesTable.java @@ -14,7 +14,7 @@ public class ProjectVersionVisibilityChangesTable { private long versionId; private String comment; private OffsetDateTime resolvedAt; - private long resolvedBy; + private Long resolvedBy; private Visibility visibility; public ProjectVersionVisibilityChangesTable(long createdBy, long versionId, String comment, Visibility visibility) { @@ -80,11 +80,11 @@ public class ProjectVersionVisibilityChangesTable { } - public long getResolvedBy() { + public Long getResolvedBy() { return resolvedBy; } - public void setResolvedBy(long resolvedBy) { + public void setResolvedBy(Long resolvedBy) { this.resolvedBy = resolvedBy; } diff --git a/src/main/java/io/papermc/hangar/service/project/ProjectFactory.java b/src/main/java/io/papermc/hangar/service/project/ProjectFactory.java index 82af10259..f4af0e05a 100644 --- a/src/main/java/io/papermc/hangar/service/project/ProjectFactory.java +++ b/src/main/java/io/papermc/hangar/service/project/ProjectFactory.java @@ -230,7 +230,9 @@ public class ProjectFactory { if (projectVersions.stream().filter(p -> p.getVisibility() == Visibility.PUBLIC).count() <= 1) { throw new HangarException("error.version.onlyOnePublic"); } - if (versionData.getV().getId() == versionData.getP().getRecommendedVersion().getId()) { // pick new recommended + + ProjectVersionsTable recommended = versionData.getP().getRecommendedVersion(); + if (recommended != null && versionData.getV().getId() == recommended.getId()) { // pick new recommended Optional tableOptional = projectVersions.stream().filter(v -> v.getId() != versionData.getV().getId() && v.getVisibility() != Visibility.SOFTDELETE).findFirst(); tableOptional.ifPresent(projectVersionsTable -> { versionData.getP().getProject().setRecommendedVersionId(projectVersionsTable.getId()); diff --git a/src/main/resources/templates/projects/versions/view.ftlh b/src/main/resources/templates/projects/versions/view.ftlh index 459b03302..e226a1356 100644 --- a/src/main/resources/templates/projects/versions/view.ftlh +++ b/src/main/resources/templates/projects/versions/view.ftlh @@ -143,7 +143,7 @@ <#if v.v.visibility == Visibility.SOFTDELETE>
  • Undo delete
  • - <#if headerData.globalPerm(Permission.HardDeleteVersion) && !v.recommended && (v.p.publicVersions gt 1 || v.v.visibility == Visibility.SoftDelete)> + <#if headerData.globalPerm(Permission.HardDeleteVersion) && !v.recommended && (v.p.publicVersions gt 1 || v.v.visibility == Visibility.SOFTDELETE)>
  • Hard delete