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
35 changes: 35 additions & 0 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

name: Java CI with Maven

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Build with Maven
run: mvn -B package --file pom.xml

# Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
- name: Update dependency graph
uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
32 changes: 28 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
## **KillQuest - A Nukkit Quest System**
**KillQuest** is a **feature-rich quest system** for **Nukkit** servers, allowing players to complete **kill and gather quests** for rewards. It includes **multilingual support**, **scoreboard tracking**, and **EconomyAPI integration**.
## **KillQuest - A Nukkit Quest System** v1.0.1
**KillQuest** is a **feature-rich quest system** for **Nukkit** servers, allowing players to complete **kill and gather quests** for rewards, and challenge themselves with procedurally generated jumping puzzles. It includes **multilingual support**, **scoreboard tracking**, and **EconomyAPI integration**.

---

## Changes to 1.0.1

- Added Handling of onPlayerFish event so fishing quests can be created
- Added complete new loging of generating jumping puzzles

---

Expand All @@ -25,7 +32,11 @@
✔ **Auto-Saving:** Quest progress is saved to files per player.
✔ **EconomyAPI Integration:** Players earn credits upon completion.
✔ **Multilingual Support:** Uses Minecraft’s translations for entity/item names.

✔ **Jumping Puzzles**: Procedurally generate jumping puzzles with varying heights and difficulties.
✔ **Puzzle Persistence**: Puzzles are saved and can be reloaded after server restarts.
✔ **Player Movement Tracking**: Detect when players start and complete puzzles.
✔ **Block Restrictions**: Prevent players from modifying puzzle areas.
✔ **Puzzle Management Commands**: Create, list, and remove puzzles dynamically.
---

## **🎮 How to Use**
Expand All @@ -47,12 +58,22 @@
- **Quest progress resets**
- **Scoreboard updates**

### How the Jump Puzzle Works
1. A player generates a puzzle using `/jumpgen`.
2. The puzzle is enclosed with walls and a light-emitting base.
3. Players must jump across blocks that are generated to be challenging but solvable.
4. A tracking system monitors when a player starts and completes the puzzle.
5. Upon completion, the player receives 100 credits via EconomyAPI.

---

## **📝 Configuration**
### **`quests.yml`**
Quests are defined in `plugins/KillQuestPlugin/quests.yml`:

### `puzzles.yml`
Stores all active puzzles, including blocks, start, and end positions, ensuring persistence after restarts.

```yaml
quests:
- name: "Zombie Slayer"
Expand Down Expand Up @@ -95,6 +116,9 @@ translations:
|---------|------------|
| `/quests` | Opens the quest selection UI |
| `/killquest reload` | Reloads quests and translations |
| `/jumpgen <name> <length> <width> <height>` | Generates a jumping puzzle with a unique name. |
| `/clearpuzzle <name>` | Clears a specific puzzle. |
| `/listpuzzles` | Lists all active puzzles. |

---

Expand Down Expand Up @@ -123,7 +147,7 @@ translations:
---

## **💡 Future Improvements**
- ✅ **More Quest Types:** Fishing, Crafting, Mining
- ✅ **More Quest Types:** Crafting
- ✅ **Permissions Support**
- ✅ **More Customization Options**
- ✅ **SQL Database support**
Expand Down
19 changes: 17 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,36 @@

<groupId>com.digitalwm.killquestplugin</groupId>
<artifactId>KillQuestPlugin</artifactId>
<version>1.0</version>
<version>1.0.1</version>

<build>
<defaultGoal>install</defaultGoal>
<defaultGoal>package</defaultGoal>
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
<plugins>
<!-- Maven Compiler Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version> <!-- Add the version element here -->
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArgs>
<arg>-Xlint:unchecked</arg>
<arg>-Xlint:deprecation</arg>
</compilerArgs>
</configuration>
</plugin>
<!-- Maven Resources Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version> <!-- Ensure a modern version -->
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<!-- Include plugin.yml from src/main/resources -->
<resources>
Expand Down
Loading
Loading