mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-07 08:39:17 +00:00
Add DocFX site generator skeleton
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
###############
|
||||||
|
# folder #
|
||||||
|
###############
|
||||||
|
/**/DROP/
|
||||||
|
/**/TEMP/
|
||||||
|
/**/packages/
|
||||||
|
/**/bin/
|
||||||
|
/**/obj/
|
||||||
|
_site
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
FROM mono:latest
|
||||||
|
|
||||||
|
RUN apt-get update -y && apt-get install -y unzip
|
||||||
|
|
||||||
|
RUN mkdir -p /docfx
|
||||||
|
WORKDIR /docfx
|
||||||
|
RUN curl -L https://github.com/dotnet/docfx/releases/download/v2.43.3/docfx.zip -O \
|
||||||
|
&& unzip docfx.zip \
|
||||||
|
&& chmod +r /docfx
|
||||||
|
|
||||||
|
RUN echo "#!/bin/bash" >> /usr/local/bin/docfx \
|
||||||
|
&& echo "mono /docfx/docfx.exe \"\$@\"" >> /usr/local/bin/docfx \
|
||||||
|
&& chmod +x /usr/local/bin/docfx
|
||||||
|
|
||||||
|
RUN mkdir -p /srv/project \
|
||||||
|
&& useradd -u 1000 docfx \
|
||||||
|
&& chown docfx:docfx /srv/project
|
||||||
|
|
||||||
|
USER docfx
|
||||||
|
WORKDIR /srv/project
|
||||||
|
|
||||||
|
ENTRYPOINT ["docfx"]
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
###############
|
||||||
|
# temp file #
|
||||||
|
###############
|
||||||
|
*.yml
|
||||||
|
.manifest
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# PLACEHOLD
|
||||||
|
TODO: Add .NET projects to the *src* folder and run `docfx` to generate **REAL** *API Documentation*!
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
{
|
||||||
|
"metadata": [
|
||||||
|
{
|
||||||
|
"src": [
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dest": "api",
|
||||||
|
"disableGitFeatures": false,
|
||||||
|
"disableDefaultFilter": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"build": {
|
||||||
|
"content": [
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"api/**.yml",
|
||||||
|
"api/index.md"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"guide/**.md",
|
||||||
|
"guide/**/toc.yml",
|
||||||
|
"toc.yml",
|
||||||
|
"*.md"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"resource": [
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"images/**"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"overwrite": [
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"apidoc/**.md"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"obj/**",
|
||||||
|
"_site/**"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dest": "_site",
|
||||||
|
"globalMetadataFiles": [],
|
||||||
|
"fileMetadataFiles": [],
|
||||||
|
"template": [
|
||||||
|
"default"
|
||||||
|
],
|
||||||
|
"postProcessors": [],
|
||||||
|
"markdownEngineName": "markdig",
|
||||||
|
"noLangKeyword": false,
|
||||||
|
"keepFileLink": false,
|
||||||
|
"cleanupCacheHistory": false,
|
||||||
|
"disableGitFeatures": false
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
# Setting up a development environment
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- **RuneScape game data**: The cache files containing the game data for release 377 of RuneScape.
|
||||||
|
|
||||||
|
- **JDK 8+**: An installation of the JDK is needed to run Gradle build tasks and run the server.
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
This is a short guide to getting a copy of Apollo from our VCS and
|
||||||
|
running a server able to accept connections from a game client. It
|
||||||
|
assumes you’re starting fresh and have no local copy of Apollo.
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
============
|
||||||
|
|
||||||
|
You should be familiar with running programs on the UNIX shell or
|
||||||
|
Windows command prompt. There is also a short list of prerequisites
|
||||||
|
below needed to complete this guide.
|
||||||
|
|
||||||
|
- Git
|
||||||
|
- Gradle
|
||||||
|
- Java 8
|
||||||
|
- RuneScape r377 game data files [1]
|
||||||
|
|
||||||
|
Getting Apollo
|
||||||
|
==============
|
||||||
|
|
||||||
|
> **Note**
|
||||||
|
>
|
||||||
|
> Apollo is still in a development phase and has no current stable
|
||||||
|
> release, so to run the server we need to build it from sources first.
|
||||||
|
|
||||||
|
The URL for the Apollo git repository is
|
||||||
|
<https://github.com/apollo-rsps/apollo.git>. You can clone this using
|
||||||
|
the `git` command-line client or by using the [GitHub desktop
|
||||||
|
client](https://help.github.com/desktop/guides/contributing-to-projects/cloning-a-repository-from-github-desktop/).
|
||||||
|
|
||||||
|
```
|
||||||
|
> $ git clone <https://github.com/apollo-rsps/apollo.git>
|
||||||
|
```
|
||||||
|
|
||||||
|
If using the command line client, the repository will now be under a
|
||||||
|
folder named *apollo* and is ready to build. When complete open a shell
|
||||||
|
or Windows command prompt in that directory and move to the next step.
|
||||||
|
|
||||||
|
Building Apollo
|
||||||
|
===============
|
||||||
|
|
||||||
|
Apollo uses Gradle build scripts as it’s build system. To build it,
|
||||||
|
create a command prompt or shell in the Apollo repository folder and
|
||||||
|
run:
|
||||||
|
|
||||||
|
```
|
||||||
|
> $ ./gradlew assemble genRsa
|
||||||
|
```
|
||||||
|
|
||||||
|
This will build the core server with the content plugins and run their
|
||||||
|
respective tests. This process takes around a minute to complete and
|
||||||
|
when done will generate and output a set of RSA key parameters used by
|
||||||
|
connecting clients to encrypt their credentials. Save these for later.
|
||||||
|
|
||||||
|
Starting Apollo
|
||||||
|
===============
|
||||||
|
|
||||||
|
The last dependency is putting the game data in a location where the
|
||||||
|
server can find it. By default Apollo looks under `data/fs` in the root
|
||||||
|
directory for a folder matching the release number. Apollo supports
|
||||||
|
release 377, so in our case we want the directory structure to look like
|
||||||
|
this:
|
||||||
|
|
||||||
|
```
|
||||||
|
data/fs
|
||||||
|
└── 377
|
||||||
|
├── jingle1.mid
|
||||||
|
├── main_file_cache.dat
|
||||||
|
├── main_file_cache.idx0
|
||||||
|
├── main_file_cache.idx1
|
||||||
|
├── main_file_cache.idx2
|
||||||
|
├── main_file_cache.idxN
|
||||||
|
```
|
||||||
|
|
||||||
|
Now that everything is in place we can use the Gradle task to boot the
|
||||||
|
server.
|
||||||
|
|
||||||
|
```
|
||||||
|
> $ gradle server:run
|
||||||
|
```
|
||||||
|
|
||||||
|
After booting Apollo will have loaded the game data and be ready to accept connections.
|
||||||
|
|
||||||
|
[1] We are unable to provide user-end assets like the game data or
|
||||||
|
client due to copyright restrictions.
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# What is Apollo?
|
||||||
|
|
||||||
|
Apollo is a high-performance, modular RuneScape emulator with a
|
||||||
|
collection of utilities for managing data files and plugins. Apollo
|
||||||
|
targets revision 377 of the RuneScape client from late 2006. It aims to
|
||||||
|
achieve parity with the game server of that time and preserve the
|
||||||
|
history of the game in doing so.
|
||||||
|
|
||||||
|
## Is Apollo free?
|
||||||
|
|
||||||
|
Apollo is open source and made available under the ISC license. The git
|
||||||
|
repository for the project is hosted under the [Apollo RSPS
|
||||||
|
organization](https://github.com/apollo-rsps) on GitHub.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# What is a plugin?
|
||||||
+10
-15
@@ -1,7 +1,6 @@
|
|||||||
[[getting-started-with-plugins]]
|
# Creating a plugin
|
||||||
= Creating a plugin
|
|
||||||
|
|
||||||
Apollo's plugins are written in http://kotlinlang.org[Kotlin] and are
|
Apollo's plugins are written in [Kotlin](http://kotlinlang.org) and are
|
||||||
primarily for content, not core code (if you aren't sure where your code
|
primarily for content, not core code (if you aren't sure where your code
|
||||||
should go, ask in irc). Note that this tutorial assumes some familiarity
|
should go, ask in irc). Note that this tutorial assumes some familiarity
|
||||||
with Kotlin, although good Java knowledge will probably be enough.
|
with Kotlin, although good Java knowledge will probably be enough.
|
||||||
@@ -9,11 +8,10 @@ with Kotlin, although good Java knowledge will probably be enough.
|
|||||||
Note: This tutorial is for developing Plugins for the kotlin-experiments
|
Note: This tutorial is for developing Plugins for the kotlin-experiments
|
||||||
branch prior to the release of the Kotlin plugin system for Apollo.
|
branch prior to the release of the Kotlin plugin system for Apollo.
|
||||||
|
|
||||||
[[create-the-working-environment]]
|
## Create a working environment
|
||||||
== Create a working environment
|
|
||||||
|
|
||||||
The project maintainers strongly recommend
|
The project maintainers strongly recommend
|
||||||
https://www.jetbrains.com/idea/[IntelliJ IDEA].
|
[IntelliJ IDEA](https://www.jetbrains.com/idea/).
|
||||||
|
|
||||||
After starting IDEA, select *checkout project* with the URL:
|
After starting IDEA, select *checkout project* with the URL:
|
||||||
https://github.com/apollo-rsps/apollo.git and continue. Make sure to
|
https://github.com/apollo-rsps/apollo.git and continue. Make sure to
|
||||||
@@ -24,8 +22,7 @@ use the navigation bar at the top and 'VCS > Git > Branches >
|
|||||||
origin/kotlin-experiments > Checkout as new branch'. Name the new branch
|
origin/kotlin-experiments > Checkout as new branch'. Name the new branch
|
||||||
something like kotlin-experiments-my-plugin.
|
something like kotlin-experiments-my-plugin.
|
||||||
|
|
||||||
[[create-the-plugin-metadata]]
|
## Create the plugin metadata
|
||||||
== Create the plugin metadata
|
|
||||||
|
|
||||||
Apollo's plugins are stored in */game/plugin*, and each plugin has its
|
Apollo's plugins are stored in */game/plugin*, and each plugin has its
|
||||||
own directory. Create one for your plugin - something like 'myplugin'.
|
own directory. Create one for your plugin - something like 'myplugin'.
|
||||||
@@ -35,12 +32,12 @@ Inside that, create a directory called 'src', then right click it and
|
|||||||
Inside your plugin's directory (*not* in src) you'll want a
|
Inside your plugin's directory (*not* in src) you'll want a
|
||||||
*build.gradle* file, containing something like:
|
*build.gradle* file, containing something like:
|
||||||
|
|
||||||
....
|
```groovy
|
||||||
plugin {
|
plugin {
|
||||||
name = "myplugin"
|
name = "myplugin"
|
||||||
authors = [ "your name" ]
|
authors = [ "your name" ]
|
||||||
}
|
}
|
||||||
....
|
```
|
||||||
|
|
||||||
|
|
||||||
Sometimes you need to use code from another plugin, which can be done
|
Sometimes you need to use code from another plugin, which can be done
|
||||||
@@ -48,8 +45,7 @@ like so: `dependencies = [ "util:lookup" ]`
|
|||||||
|
|
||||||
This imports the `lookup` plugin from `util`.
|
This imports the `lookup` plugin from `util`.
|
||||||
|
|
||||||
[[write-the-plugin]]
|
## Write the plugin
|
||||||
== Write the plugin
|
|
||||||
|
|
||||||
Plugins are written in kotlin script (_.kts_), which is then transpiled
|
Plugins are written in kotlin script (_.kts_), which is then transpiled
|
||||||
into Java (bytecode) at compile time. Kotlin script is designed to be
|
into Java (bytecode) at compile time. Kotlin script is designed to be
|
||||||
@@ -62,8 +58,7 @@ Apollo uses the _.plugin.kts_ extension to mark files as plugin scripts.
|
|||||||
Add a file named 'myplugin.plugin.kts' inside `src` and add the
|
Add a file named 'myplugin.plugin.kts' inside `src` and add the
|
||||||
following code:
|
following code:
|
||||||
|
|
||||||
[source,kotlin]
|
```kotlin
|
||||||
----
|
|
||||||
import org.apollo.game.action.Action
|
import org.apollo.game.action.Action
|
||||||
import org.apollo.game.message.impl.InventoryItemMessage
|
import org.apollo.game.message.impl.InventoryItemMessage
|
||||||
import org.apollo.game.model.Item
|
import org.apollo.game.model.Item
|
||||||
@@ -103,7 +98,7 @@ on { InventoryItemMessage::class }
|
|||||||
player.startAction(DropItemAction(player, slot))
|
player.startAction(DropItemAction(player, slot))
|
||||||
terminate()
|
terminate()
|
||||||
}
|
}
|
||||||
----
|
```
|
||||||
|
|
||||||
Here we have an *action*, and a *listener*, the two core features of
|
Here we have an *action*, and a *listener*, the two core features of
|
||||||
plugins.
|
plugins.
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
- name: Introduction
|
||||||
|
items:
|
||||||
|
- name: What is Apollo?
|
||||||
|
href: introduction/01-what-is-apollo.md
|
||||||
|
- name: Getting Started
|
||||||
|
items:
|
||||||
|
- name: Setting up a development environment
|
||||||
|
href: getting-started/01-setting-up-environment.md
|
||||||
|
|
||||||
|
- name: Running the server
|
||||||
|
href: getting-started/02-running-apollo.md
|
||||||
|
- name: Plugins
|
||||||
|
items:
|
||||||
|
- name: What is a plugin?
|
||||||
|
href: plugins/01-what-is-a-plugin.md
|
||||||
|
|
||||||
|
- name: Creating a plugin
|
||||||
|
href: plugins/02-creating-a-plugin.md
|
||||||
|
|
||||||
|
- name: Testing plugins
|
||||||
|
href: plugins/03-testing-a-plugin.md
|
||||||
|
|
||||||
|
- name: Sharing code with other plugins
|
||||||
|
href: plugins/04-sharing-plugin-code.md
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# This is the **HOMEPAGE**.
|
||||||
|
Refer to [Markdown](http://daringfireball.net/projects/markdown/) for how to write markdown files.
|
||||||
|
## Quick Start Notes:
|
||||||
|
1. Add images to the *images* folder if the file is referencing an image.
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
= What is Apollo?
|
|
||||||
|
|
||||||
Apollo is a high-performance, modular RuneScape emulator with a collection of utilities for managing data files and plugins.
|
|
||||||
Apollo targets revision 377 of the RuneScape client from late 2006.
|
|
||||||
It aims to achieve parity with the game server of that time and preserve the history of the game in doing so.
|
|
||||||
|
|
||||||
== Is Apollo free?
|
|
||||||
|
|
||||||
Apollo is open source and made available under the ISC license.
|
|
||||||
The git repository for the project is hosted under the https://github.com/apollo-rsps[Apollo RSPS organization] on GitHub.
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
= Running Apollo
|
|
||||||
|
|
||||||
This is a short guide to getting a copy of Apollo from our VCS and running a server able to accept connections from a game client.
|
|
||||||
It assumes you're starting fresh and have no local copy of Apollo.
|
|
||||||
|
|
||||||
== Requirements
|
|
||||||
|
|
||||||
You should be familiar with running programs on the UNIX shell or Windows command prompt.
|
|
||||||
There is also a short list of prerequisites below needed to complete this guide.
|
|
||||||
|
|
||||||
* Git
|
|
||||||
* Gradle
|
|
||||||
* Java 8
|
|
||||||
* RuneScape r377 game data files footnote:[We are unable to provide user-end assets like the game data or client due to copyright restrictions.]
|
|
||||||
|
|
||||||
== Getting Apollo
|
|
||||||
|
|
||||||
NOTE: Apollo is still in a development phase and has no current stable release,
|
|
||||||
so to run the server we need to build it from sources first.
|
|
||||||
|
|
||||||
The URL for the Apollo git repository is https://github.com/apollo-rsps/apollo.git. You can clone this using the `git` command-line client
|
|
||||||
or by using the https://help.github.com/desktop/guides/contributing-to-projects/cloning-a-repository-from-github-desktop/[GitHub desktop client].
|
|
||||||
|
|
||||||
```
|
|
||||||
> $ git clone https://github.com/apollo-rsps/apollo.git
|
|
||||||
```
|
|
||||||
|
|
||||||
If using the command line client, the repository will now be under a folder named _apollo_ and is ready to build.
|
|
||||||
When complete open a shell or Windows command prompt in that directory and move to the next step.
|
|
||||||
|
|
||||||
== Building Apollo
|
|
||||||
|
|
||||||
Apollo uses Gradle build scripts as it's build system. To build it, create a command prompt or shell in the Apollo repository folder and run:
|
|
||||||
```
|
|
||||||
> $ gradle build genRsa
|
|
||||||
```
|
|
||||||
|
|
||||||
This will build the core server with the content plugins and run their respective tests.
|
|
||||||
This process takes around a minute to complete and when done will generate and output a set of RSA key parameters used by connecting clients to encrypt their credentials.
|
|
||||||
Save these for later.
|
|
||||||
|
|
||||||
== Starting Apollo
|
|
||||||
|
|
||||||
The last dependency is putting the game data in a location where the server can find it.
|
|
||||||
By default Apollo looks under `data/fs` in the root directory for a folder matching the release number.
|
|
||||||
Apollo supports release 377, so in our case we want the directory structure to look like this:
|
|
||||||
|
|
||||||
```
|
|
||||||
data/fs
|
|
||||||
└── 377
|
|
||||||
├── jingle1.mid
|
|
||||||
├── main_file_cache.dat
|
|
||||||
├── main_file_cache.idx0
|
|
||||||
├── main_file_cache.idx1
|
|
||||||
├── main_file_cache.idx2
|
|
||||||
├── main_file_cache.idxN
|
|
||||||
```
|
|
||||||
|
|
||||||
Now that everything is in place we can use the Gradle task to boot the server
|
|
||||||
```
|
|
||||||
> $ gradle server:run
|
|
||||||
```
|
|
||||||
After booting Apollo will have loaded the game data and be ready to accept connections.
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
= Apollo Documentation
|
|
||||||
ifdef::env-github,env-browser[:outfilesuffix: .adoc]
|
|
||||||
|
|
||||||
This is the home of Apollo's documentation.
|
|
||||||
Below you will find links to tutorial guides on running and using Apollo.
|
|
||||||
|
|
||||||
== The Basics
|
|
||||||
|
|
||||||
* <<basics/what-is-apollo#,What is Apollo?>>
|
|
||||||
|
|
||||||
== Getting Started
|
|
||||||
|
|
||||||
* <<getting-started/running-apollo#,Getting and running Apollo>>
|
|
||||||
* <<getting-started/development-environment#,Setting up a development environment>>
|
|
||||||
|
|
||||||
== Authoring plugins for Apollo
|
|
||||||
|
|
||||||
* <<plugins/creating-a-plugin#,Creating a plugin>>
|
|
||||||
* <<plugins/client-messages#,Reacting to server events>>
|
|
||||||
* <<plugins/shared-code#,Writing a plugin that exports shared code>>
|
|
||||||
* <<plugins/testing#,Adding automated tests to your plugin>>
|
|
||||||
|
|
||||||
== References and Developer Resources
|
|
||||||
|
|
||||||
* Apollo API Documentation[TODO]
|
|
||||||
* Plugin API Documentation[TODO]
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
- name: Guide
|
||||||
|
href: guide/
|
||||||
|
|
||||||
|
- name: Api Documentation
|
||||||
|
href: api/
|
||||||
|
homepage: api/index.md
|
||||||
Reference in New Issue
Block a user