Skip to content

Commit

Permalink
Merge pull request #228 from gabber235/develop
Browse files Browse the repository at this point in the history
Manifesting Stories Update
  • Loading branch information
gabber235 authored Aug 10, 2024
2 parents f619ebd + ca80a33 commit 0a79250
Show file tree
Hide file tree
Showing 1,895 changed files with 71,033 additions and 33,699 deletions.
8 changes: 4 additions & 4 deletions .github/actions/build-adapter/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ runs:
- name: Test Adapter
uses: gradle/gradle-build-action@v2
with:
arguments: test --scan
build-root-directory: ./adapters/${{ inputs.adapter }}
arguments: :${{ inputs.adapter }}:test --scan
build-root-directory: ./adapters
- name: Build Adapter
uses: gradle/gradle-build-action@v2
with:
arguments: buildRelease --scan
build-root-directory: ./adapters/${{ inputs.adapter }}
arguments: :${{ inputs.adapter }}:buildRelease --scan
build-root-directory: ./adapters

4 changes: 4 additions & 0 deletions .github/actions/build-plugin/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ runs:
run: flutter pub get
shell: bash
working-directory: ./app
- name: Run Lint
run: flutter analyze
shell: bash
working-directory: ./app
- name: Run tests
run: flutter test
shell: bash
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-adapter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
java-version: 21
- name: Build Adapter
uses: ./.github/actions/build-adapter
with:
Expand Down
42 changes: 26 additions & 16 deletions .github/workflows/build-development-jars-and-publish.yml
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
name: Build Development Jars and Publish
name: Build Beta Jars and Publish

on:
workflow_dispatch:

jobs:
build-publish-development:
runs-on: self-hosted
runs-on: ubuntu-latest
concurrency:
group: build-publish-development
group: build-publish-beta
cancel-in-progress: true
steps:
- uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
java-version: 21
- name: Get version
id: vars
run: |
version=$(cat version.txt)
run_number=${{ github.run_number }}
full_version="${version}-dev-${run_number}"
full_version="${version}-beta-${run_number}"
echo $full_version > version.txt
echo "version=$full_version" >> $GITHUB_OUTPUT
- name: Build Plugin
Expand All @@ -42,6 +42,10 @@ jobs:
uses: ./.github/actions/build-adapter
with:
adapter: MythicMobsAdapter
- name: Build EntityAdapter
uses: ./.github/actions/build-adapter
with:
adapter: EntityAdapter
- name: Build RPGRegions Adapter
uses: ./.github/actions/build-adapter
with:
Expand All @@ -58,15 +62,7 @@ jobs:
uses: ./.github/actions/build-adapter
with:
adapter: WorldGuardAdapter
- name: Build ZNPCsPlus Adapter
uses: ./.github/actions/build-adapter
with:
adapter: ZNPCsPlusAdapter
- name: Build FancyNpcs Adapter
uses: ./.github/actions/build-adapter
with:
adapter: FancyNpcsAdapter
- name: Publish Development Jars
- name: Publish Modrinth
uses: Kir-Antipov/[email protected]
id: publish
with:
Expand All @@ -83,10 +79,24 @@ jobs:
paper
purpur
game-versions: |
1.19.4
[1.20, 1.20.4]
[1.20.3, 1.20.6]
dependencies: |
packetevents
- name: Publish Hangar
uses: gradle/gradle-build-action@v2
continue-on-error: true
env:
HANGAR_API_TOKEN: ${{ secrets.HANGAR_API_TOKEN }}
with:
arguments: publishPluginPublicationToHangar --scan
build-root-directory: ./plugin
- name: Add Tag
uses: laputansoft/[email protected]
with:
github_token: ${{ env.github-token }}
default_bump: false
tag: "v${{ steps.vars.outputs.version }}"
- name: Notify Discord
uses: sarisia/actions-status-discord@v1
with:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/build-documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ jobs:
- name: Build website
run: npm run build
working-directory: ./documentation
env:
POSTHOG_API_KEY: ${{ secrets.POSTHOG_API_KEY }}
- name: Add CNAME
run: echo "docs.typewritermc.com" > ./documentation/build/CNAME

- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
Expand Down
10 changes: 10 additions & 0 deletions .github/workflows/build-jars-on-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ jobs:
- adapters/CitizensAdapter/**
combat_log_x_adapter:
- adapters/CombatLogXAdapter/**
entity_adapter:
- adapters/EntityAdapter/**
mythic_mobs_adapter:
- adapters/MythicMobsAdapter/**
rpg_regions_adapter:
Expand Down Expand Up @@ -71,6 +73,14 @@ jobs:
with:
adapter: CombatLogXAdapter

build-adapter-entity:
name: Build EntityAdapter
needs: changes
if: needs.changes.outputs.entity_adapter == 'true'
uses: ./.github/workflows/build-adapter.yml
with:
adapter: EntityAdapter

build-adapter-mythic-mobs:
name: Build MythicMobs Adapter
needs: changes
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/build-jars-on-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ jobs:
with:
adapter: CombatLogXAdapter

build-adapter-entity:
name: Build EntityAdapter
uses: ./.github/workflows/build-adapter.yml
with:
adapter: EntityAdapter

build-adapter-mythic-mobs:
name: Build MythicMobs Adapter
uses: ./.github/workflows/build-adapter.yml
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ on: [workflow_call]

jobs:
build:
runs-on: self-hosted
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
java-version: 21
- name: Build Plugin
uses: ./.github/actions/build-plugin
- name: Upload Plugin
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sponsors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,6 @@ jobs:
- name: Deploy to GitHub Pages 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: main
branch: develop
# As we're deploying changes to our markdown files, this needs to be . to push the root directory back to the repository.
folder: '.'
20 changes: 20 additions & 0 deletions .github/workflows/sync-readme.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Sync README

on:
workflow_dispatch:
push:
branches:
- develop
paths:
- .github/workflows/sync-readme.yml
- README.md

jobs:
modrinth-desc:
runs-on: 'ubuntu-latest'
steps:
- uses: actions/checkout@v3
- uses: funnyboy-roks/[email protected]
with:
auth-token: ${{ secrets.MODRINTH_TOKEN }}
slug: 'typewriter'
8 changes: 6 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -117,12 +117,16 @@ run/
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

server
/plugin/server
.DS_Store

# Rust
target/
adapters/TeraCoreAdapter/

# Flutter web resource
/plugin/src/main/resources/web/
/plugin/src/main/resources/web/
plugin/qodana.yaml
code_generator/EntityEyeHeightProperty.kt
code_generator/EntityHeightProperty.kt
code_generator/EntityWidthProperty.kt
48 changes: 25 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,69 +3,71 @@
###### The next generation of questing in minecraft.

[![Discord](https://img.shields.io/discord/1054708062520360960?label=discord&logo=discord&logoColor=white)](https://discord.gg/HtbKyuDDBw)
[![Release](https://img.shields.io/github/v/release/gabber235/Typewriter?include_prereleases&logo=github)](https://github.com/gabber235/TypeWriter/releases)

Typewriter is a plugin for **Paper** Minecraft servers that allows for custom player interactions such as Quests,
NPC chat, Create branching story with ease, Creating Cinematic with camera paths, and more. It is easily configurable using the web panel specifically
designed for this plugin.
NPC chat, Create branching story with ease, Creating Cinematic with camera paths, creating NPC's with intelligent behaviour, and more.
It is easily configurable using the web panel specifically designed for this plugin.

The plugin can also be extended using adapters, which are [pre-made](https://gabber235.github.io/TypeWriter/docs/pre-made-adapters) or can be custom-made by developers.
The power of Typewriter comes from the fact that it is extensible using adapters.
Adapters are self-contained modular components that allow you to create custom content for Typewriter.
Some adapters are already made by the developers of Typewriter, but anyone can create their own custom adapters.

To get started with Typewriter, see the [Getting Started](#getting-started) section.

### Sponsors

Thanks to the following sponsors for supporting this project:
Thanks to the following sponsors for supporting this project.
Without their support, this project would not be possible.
If you are using Typewriter for your server, and are making money from it, please consider [sponsoring](https://github.com/sponsors/gabber235) the project.

<!-- sponsors --><a href="https://github.com/PixellPioneer"><img src="https://github.com/PixellPioneer.png" width="60px" alt="PixelPioneer" /></a><!-- sponsors -->

### Examples

![cinematic](readme/cinematic.gif)
[![cinematic](https://raw.githubusercontent.com/gabber235/TypeWriter/develop/readme/cinematic.gif)](https://youtu.be/1pGBtJleEuQ)

A cinematic fully in vanilla minecraft using Typewriter. View a demo [here](https://youtu.be/1pGBtJleEuQ).
A cinematic fully in vanilla Minecraft using Typewriter. View a demo [here](https://youtu.be/1pGBtJleEuQ).

![dialogue sequence](readme/chat-messages.gif)
![dialogue sequence](https://raw.githubusercontent.com/gabber235/TypeWriter/develop/readme/chat-messages.gif)

A dialogue sequence with Typewriter where the player is asked to choose between multiple options.

![web panel](readme/typewrite-interface-demo.png)
![web panel](https://raw.githubusercontent.com/gabber235/TypeWriter/develop/readme/typewrite-interface-demo.png)

The web panel for Typewriter, where you can create quests, NPCs, and more.

### Features

- Create custom player interactions, including quests and NPC chat, branching story, and more...
- Create cinematic sequences with camera movements, dialogue, animated NPCs, and more...
- Create NPC's with intelligent behaviour, that can walk around your world, change their appearance and visibility, and more...
- Configure interactions using a custom written visual interface
- Extend the plugin using adapters
- [Pre-made adapters](https://gabber235.github.io/TypeWriter/docs/pre-made-adapters) available for popular plugins
- Custom adapters can be made by developers
- Extend the plugin using adapters to integrate Typewriter with your custom plugins

## Getting started

To get started with Typewriter, simply download the [plugin](https://github.com/gabber235/TypeWriter/releases) and configure it accordingly.
See [Installation Guide](https://gabber235.github.io/TypeWriter/docs/installation-guide) for more information.
To get started with Typewriter, simply download the [plugin](https://modrinth.com/plugin/typewriter/versions) and configure it accordingly.
See [Installation Guide](https://docs.typewritermc.com/docs/installation-guide) for more information.

Also be sure to download ProtocolLib from [here](https://ci.dmulloy2.net/job/ProtocolLib/lastSuccessfulBuild/) (Click on `ProtocolLib.jar`).
Also be sure to download PacketEvents from [here](https://modrinth.com/plugin/packetevents/versions?l=paper).

Then, use the app to configure your custom interactions as desired.

You can also utilize the [pre-made adapters](https://gabber235.github.io/TypeWriter/docs/pre-made-adapters) or create your own custom adapters to extend the
capabilities of the plugin. See [First Interaction](https://gabber235.github.io/TypeWriter/docs/first-interaction) for more information.
You can also utilize the pre-made adapters or create your own custom adapters to extend the capabilities of the plugin.
See [First Interaction](https://docs.typewritermc.com/docs/first-interaction) for more information.

## For administrators

As an administrator, you can easily configure Typewriter using the custom web panel.
Simply input your desired interactions and let the plugin handle the rest.
You can also take advantage of the [pre-made adapters](https://gabber235.github.io/TypeWriter/docs/pre-made-adapters) or create your own custom
adapters to further customize the plugin for your server.
You can also take advantage of the pre-made adapters or create your own custom adapters to further customize the plugin for your server.

## For developers

Are you a developer looking to contribute to Typewriter? We welcome any custom adapters you may create! Simply make a
pull request to add your adapter to our repository. If you create an adapter for an open source plugin, we would be
happy to include it in our list of ready adapters. Help us make Typewriter the best it can be!

Typewriter can be extended using adapters.
Adapters are self-contained modular components that allow you to create custom content for Typewriter.
Allowing you to create custom building blocks that can be used inside the web panel to interact with your custom plugins.
To learn more about creating adapters, or any other development related questions, visit the [Development Documentation](https://docs.typewritermc.com/develop).

## License
Typewriter is licensed under its own [LICENSE](LICENSE).
Expand Down
Loading

0 comments on commit 0a79250

Please sign in to comment.