Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: CI

on:
pull_request:
branches: [master]
workflow_dispatch:

jobs:
test:
name: test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
cache: maven

- name: Run tests
run: mvn -B test
60 changes: 60 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Release

on:
push:
tags: ["v*"]

permissions:
contents: write

jobs:
release:
name: release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Verify tag is on master
run: |
git fetch origin master
if ! git merge-base --is-ancestor "$GITHUB_SHA" origin/master; then
echo "Tagged commit $GITHUB_SHA is not on origin/master"
exit 1
fi

- name: Derive version from tag
id: version
run: |
TAG="${GITHUB_REF_NAME}"
VERSION="${TAG#v}"
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
echo "Using Maven version: ${VERSION}"

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
cache: maven

- name: Run tests
run: mvn -B test

- name: Set project version from tag
run: mvn -B versions:set -DnewVersion="${{ steps.version.outputs.version }}" -DgenerateBackupPoms=false

- name: Build plugin jar
run: mvn -B package -DskipTests

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
name: ${{ github.ref_name }}
generate_release_notes: true
files: target/DamageDisplay-${{ steps.version.outputs.version }}.jar
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
40 changes: 34 additions & 6 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@

<description>A simple and efficient plugin for displaying damage events</description>
<properties>
<java.version>1.8</java.version>
<java.version>21</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>5.11.4</junit.version>
<mockito.version>5.20.0</mockito.version>
</properties>
<url>https://danlegt.com</url>

Expand All @@ -23,16 +25,16 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<version>3.13.0</version>
<configuration>
<source>16</source>
<target>16</target>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.3.0</version>
<version>3.6.0</version>
<executions>
<execution>
<phase>package</phase>
Expand All @@ -51,6 +53,14 @@
</relocations>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.2</version>
<configuration>
<argLine>-Dnet.bytebuddy.experimental=true</argLine>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
Expand All @@ -75,7 +85,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.21.11-R0.1-SNAPSHOT</version>
<version>26.2-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand All @@ -84,5 +94,23 @@
<version>3.0.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public boolean handleCommand(CommandSender sender, Command command, String label
}

DamageDisplay.me.reloadConfig();
DamageDisplay.me.getSettings().reload();
ToggleCommand.loadToggleCache();

sender.sendMessage(ChatColor.GREEN + "Configuration reloaded.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@

import java.io.*;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.logging.Level;

public class ToggleCommand implements DDCommand {

public static List<UUID> disabledPlayers = new ArrayList<>();
public static Set<UUID> disabledPlayers = new HashSet<>();
// The file that we store all the player toggle command statuses to
private static final String CACHE_FILE = "cache.dat";

Expand Down Expand Up @@ -74,7 +76,7 @@ public static void loadToggleCache() {
File file = new File(DamageDisplay.me.getDataFolder(), CACHE_FILE);
if (file.exists()) {
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) {
disabledPlayers = new ArrayList<>((List<UUID>) ois.readObject());
disabledPlayers = new HashSet<>((List<UUID>) ois.readObject());
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
DamageDisplay.me.getLogger().log(Level.WARNING, "Could not load player toggle command cache: " + e.getMessage());
Expand Down
16 changes: 15 additions & 1 deletion src/main/java/com/danlegt/damagedisplay/DamageDisplay.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import com.danlegt.damagedisplay.Commands.CommandManager;
import com.danlegt.damagedisplay.Commands.ToggleCommand;
import com.danlegt.damagedisplay.Event.EventManager;
import com.danlegt.damagedisplay.Services.DisplayTracker;
import com.danlegt.damagedisplay.Services.PluginSettings;
import org.bstats.bukkit.Metrics;
import org.bukkit.plugin.java.JavaPlugin;

Expand All @@ -11,6 +13,9 @@ public final class DamageDisplay extends JavaPlugin {
public static DamageDisplay me;
public static final int bStatsID = 20685;

private final PluginSettings settings = new PluginSettings();
private final DisplayTracker displayTracker = new DisplayTracker();

@Override
public void onEnable() {
// Singleton for Services
Expand All @@ -24,6 +29,7 @@ public void onEnable() {

// Save the default settings if they are not saved
this.saveDefaultConfig();
this.settings.reload();
this.getCommand("dd").setExecutor(new CommandManager());

// Load the toggle command cache
Expand All @@ -32,7 +38,15 @@ public void onEnable() {

@Override
public void onDisable() {
// Plugin shutdown logic
displayTracker.removeAll();
}

public PluginSettings getSettings() {
return settings;
}

public DisplayTracker getDisplayTracker() {
return displayTracker;
}

private void RegisterMetrics() {
Expand Down
Loading
Loading