Chore: Rename Eluna to ALE (#344)

This commit is contained in:
iThorgrim
2025-11-09 15:34:33 +01:00
committed by GitHub
parent 47699ffc35
commit 2cedf6ffd7
29 changed files with 48 additions and 56 deletions

View File

@@ -45,7 +45,7 @@ ALE settings are located in the AzerothCore server configuration file.
Reload scripts during development with: Reload scripts during development with:
``` ```
.reload eluna .reload ale
``` ```
> [!CAUTION] > [!CAUTION]
@@ -160,7 +160,7 @@ end
#### Safe to Store #### Safe to Store
These userdata objects are Lua-managed and safe to store: These userdata objects are Lua-managed and safe to store:
- Query results (`ElunaQuery`) - Query results (`ALEQuery`)
- World packets (`WorldPacket`) - World packets (`WorldPacket`)
- 64-bit numbers (`uint64`, `int64`) - 64-bit numbers (`uint64`, `int64`)
@@ -384,7 +384,7 @@ Check these locations for errors:
Enable traceback in the server config for detailed error information: Enable traceback in the server config for detailed error information:
``` ```
Eluna.TraceBack = 1 ALE.TraceBack = 1
``` ```
This adds call stack information to errors. This adds call stack information to errors.
@@ -394,7 +394,7 @@ This adds call stack information to errors.
1. **Start Small**: Test basic functionality first 1. **Start Small**: Test basic functionality first
2. **Add Gradually**: Implement features one at a time 2. **Add Gradually**: Implement features one at a time
3. **Test Each Step**: Verify each addition works before moving on 3. **Test Each Step**: Verify each addition works before moving on
4. **Use Reload**: Use `.reload eluna` for quick iteration (dev only) 4. **Use Reload**: Use `.reload ale` for quick iteration (dev only)
5. **Full Restart**: Always do final testing with a server restart 5. **Full Restart**: Always do final testing with a server restart
### Common Issues ### Common Issues

View File

@@ -127,23 +127,23 @@ cmake --build . --config Release
The compilation process generates updated config files with ALE settings. Without these, ALE may not function correctly (no error messages, logging issues, etc.). The compilation process generates updated config files with ALE settings. Without these, ALE may not function correctly (no error messages, logging issues, etc.).
**Location of config files:** **Location of config files:**
- Usually in your server's `etc/` or `configs/` directory - Usually in your server's `etc/modules` or `configs/modules` directory
- Look for files like `worldserver.conf` - Look for files like `mod-ale.conf`
Copy the new `.conf.dist` files: Copy the new `.conf.dist` files:
```bash ```bash
# Example - adjust paths as needed # Example - adjust paths as needed
cp worldserver.conf.dist worldserver.conf cp mod-ale.conf.dist mod-ale.conf
``` ```
Then edit `worldserver.conf` and configure ALE settings (see [Configuration](#-configuration) below). Then edit `worldserver.conf` and configure ALE settings (see [Configuration](#-configuration) below).
## ⚙️ Configuration ## ⚙️ Configuration
### ALE Settings in worldserver.conf ### ALE Settings in mod-ale.conf
After installation, configure ALE by editing your `worldserver.conf` file: After installation, configure ALE by editing your `mod-ale.conf` file:
```ini ```ini
################################################################################################### ###################################################################################################
@@ -152,24 +152,16 @@ After installation, configure ALE by editing your `worldserver.conf` file:
# Enable or disable ALE # Enable or disable ALE
# Default: 1 (enabled) # Default: 1 (enabled)
Eluna.Enabled = 1 ALE.Enabled = 1
# Enable traceback for detailed error information # Enable traceback for detailed error information
# Useful for debugging but has performance overhead # Useful for debugging but has performance overhead
# Default: 1 (enabled) # Default: 1 (enabled)
Eluna.TraceBack = 1 ALE.TraceBack = 1
# Script folder location (relative to server binary) # Script folder location (relative to server binary)
# Default: "lua_scripts" # Default: "lua_scripts"
Eluna.ScriptPath = "lua_scripts" ALE.ScriptPath = "lua_scripts"
# Logging level
# 0 = Disabled
# 1 = Errors only
# 2 = Errors and warnings
# 3 = All messages (debug)
# Default: 2
Eluna.LogLevel = 2
``` ```
### Creating the Scripts Folder ### Creating the Scripts Folder
@@ -234,7 +226,7 @@ cmake --build . --config Release
**Check these things:** **Check these things:**
1. **Config file**: Ensure you're using the new `worldserver.conf` generated after compilation 1. **Config file**: Ensure you're using the new `worldserver.conf` generated after compilation
2. **Enabled setting**: Verify `Eluna.Enabled = 1` in config 2. **Enabled setting**: Verify `ALE.Enabled = 1` in config
3. **Script path**: Ensure `lua_scripts` folder exists in the correct location 3. **Script path**: Ensure `lua_scripts` folder exists in the correct location
4. **Logs**: Check server logs for error messages 4. **Logs**: Check server logs for error messages

View File

@@ -236,11 +236,11 @@ end
For quick testing during development, you can reload scripts without restarting: For quick testing during development, you can reload scripts without restarting:
``` ```
.reload eluna .reload ale
``` ```
> [!WARNING] > [!WARNING]
> **Development Only:** Use `.reload eluna` only for development. For production or if experiencing issues, always restart the server. > **Development Only:** Use `.reload ale` only for development. For production or if experiencing issues, always restart the server.
**Important Limitations:** **Important Limitations:**
- Reloading doesn't trigger events like login for already-connected players - Reloading doesn't trigger events like login for already-connected players

View File

@@ -3,7 +3,7 @@ import shutil
import typing import typing
from jinja2 import Environment, FileSystemLoader from jinja2 import Environment, FileSystemLoader
from typedecorator import params, returns from typedecorator import params, returns
from ElunaDoc.parser import ClassParser, MethodDoc from ALEDoc.parser import ClassParser, MethodDoc
import glob import glob
import time import time
@@ -11,10 +11,10 @@ import time
@returns([(str, typing.IO)]) @returns([(str, typing.IO)])
@params(search_path=str) @params(search_path=str)
def find_class_files(search_path): def find_class_files(search_path):
"""Find and open all files containing Eluna class methods in `search_path`. """Find and open all files containing ALE class methods in `search_path`.
:param search_path: the path to search for Eluna methods in :param search_path: the path to search for ALE methods in
:return: a list of all files containing Eluna methods, and the name of their respective classes :return: a list of all files containing ALE methods, and the name of their respective classes
""" """
# Search for all files ending in "Methods.h". # Search for all files ending in "Methods.h".
method_file_names = glob.glob(os.path.join(search_path, '**', '*Methods.h')) method_file_names = glob.glob(os.path.join(search_path, '**', '*Methods.h'))
@@ -55,10 +55,10 @@ if __name__ == '__main__':
if os.path.exists('build'): if os.path.exists('build'):
shutil.rmtree('build') shutil.rmtree('build')
os.mkdir('build') os.mkdir('build')
shutil.copytree('ElunaDoc/static', 'build/static') shutil.copytree('ALEDoc/static', 'build/static')
# Load up all files with methods we need to parse. # Load up all files with methods we need to parse.
print('Finding Eluna method files...') print('Finding ALE method files...')
class_files = find_class_files('../') class_files = find_class_files('../')
# Parse all the method files. # Parse all the method files.
@@ -131,7 +131,7 @@ if __name__ == '__main__':
# Case for enums to direct to a search on github # Case for enums to direct to a search on github
enum_name = content[1:-1] enum_name = content[1:-1]
url = 'https://github.com/ElunaLuaEngine/ElunaTrinityWotlk/search?l=cpp&q=%22enum+{}%22&type=Code&utf8=%E2%9C%93'.format(enum_name) url = 'https://github.com/azerothcore/azerothcore-wotlk/search?l=cpp&q=%22enum+{}%22&type=Code&utf8=%E2%9C%93'.format(enum_name)
return '<strong><a href="{}">{}</a></strong>'.format(url, enum_name) return '<strong><a href="{}">{}</a></strong>'.format(url, enum_name)
# By default we just return the name without the [] around it # By default we just return the name without the [] around it
@@ -140,7 +140,7 @@ if __name__ == '__main__':
return link_parser, data_type_parser return link_parser, data_type_parser
# Create the render function with the template path and parser maker. # Create the render function with the template path and parser maker.
render = make_renderer('ElunaDoc/templates', make_parsers) render = make_renderer('ALEDoc/templates', make_parsers)
# Render the index. # Render the index.
render('index.html', 'index.html', level=0, classes=classes) render('index.html', 'index.html', level=0, classes=classes)

View File

@@ -6,7 +6,7 @@ from typedecorator import params, returns, Nullable
class ParameterDoc(object): class ParameterDoc(object):
"""The documentation data of a parameter or return value for an Eluna method.""" """The documentation data of a parameter or return value for an ALE method."""
# The integer ranges that each C++ type is valid for. None means valid for all numbers. # The integer ranges that each C++ type is valid for. None means valid for all numbers.
valid_ranges = { valid_ranges = {
@@ -64,7 +64,7 @@ class ParameterDoc(object):
class MethodDoc(object): class MethodDoc(object):
"""The documentation data of an Eluna method.""" """The documentation data of an ALE method."""
@params(self=object, name=str, description=str, prototypes=[str], parameters=[ParameterDoc], returned=[ParameterDoc]) @params(self=object, name=str, description=str, prototypes=[str], parameters=[ParameterDoc], returned=[ParameterDoc])
def __init__(self, name, description, prototypes, parameters, returned): def __init__(self, name, description, prototypes, parameters, returned):
self.name = name self.name = name

View File

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -497,7 +497,7 @@
'</span></td></tr>'; '</span></td></tr>';
}); });
} else { } else {
output += 'No results - Request function at <a href="https://github.com/ElunaLuaEngine/Eluna/issues">Eluna issue tracker</a>'; output += 'No results - Request function at <a href="https://github.com/azerothcore/mod-ale/issues">ALE issue tracker</a>';
} }
output += "</p>"; output += "</p>";

View File

@@ -3,10 +3,10 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="{% block description %}API documentation for the Eluna engine.{% endblock %}"> <meta name="description" content="{% block description %}API documentation for the ALE engine.{% endblock %}">
<meta name="keywords" content="eluna, lua, lua engine, azerothcore, script, scripting, doc, docs, documentation"> <meta name="keywords" content="ALE, lua, lua engine, azerothcore, script, scripting, doc, docs, documentation">
<title>{% block title %}Eluna API{% endblock %}</title> <title>{% block title %}ALE API{% endblock %}</title>
<link rel="stylesheet" type="text/css" href="{{ static('main.css') }}"> <link rel="stylesheet" type="text/css" href="{{ static('main.css') }}">
<link rel="stylesheet" type="text/css" href="{{ static('dark.css') }}"> <link rel="stylesheet" type="text/css" href="{{ static('dark.css') }}">
@@ -23,7 +23,7 @@
<![endif]--> <![endif]-->
<section class="sidebar"> <section class="sidebar">
<a href='{{ root('index.html') }}'><img src='{{ static('eluna-logo.png') }}' alt='Eluna Logo' width='100'></a> <a href='{{ root('index.html') }}'><img src='{{ static('eluna-logo.png') }}' alt='ALE Logo' width='100'></a>
<div class="block"> <div class="block">
{% block sidebar %} {% block sidebar %}
<h2>All Classes</h2> <h2>All Classes</h2>
@@ -101,6 +101,6 @@
<script src="{{ static('main.js') }}"></script> <script src="{{ static('main.js') }}"></script>
<script async src="{{ root('search-index.js') }}"></script> <script async src="{{ root('search-index.js') }}"></script>
<center>Generated on <script src="{{ root('date.js') }}"></script></center> <center>Generated on <script src="{{ root('date.js') }}"></script></center>
<center>&copy;2016 - Eluna Lua Engine</center> <center>&copy;2026 - ALE Lua Engine</center>
</body> </body>
</html> </html>

View File

@@ -7,7 +7,7 @@
{% block description -%} {% block description -%}
API documentation for the {{ current_class.name }} class in the Eluna engine. API documentation for the {{ current_class.name }} class in the ALE engine.
{%- endblock %} {%- endblock %}

View File

@@ -2,39 +2,39 @@
{% block document_title -%} {% block document_title -%}
Eluna API Documentation ALE API Documentation
{%- endblock %} {%- endblock %}
{% block content %} {% block content %}
<div class='docblock'> <div class='docblock'>
<h1 id="the-eluna-engine-api" class='section-header'> <h1 id="the-ale-engine-api" class='section-header'>
<a href="#the-eluna-engine-api">The Eluna Lua Engine&copy; API</a> <a href="#the-ale-engine-api">The ALE Lua Engine&copy; API</a>
</h1> </h1>
<p> <p>
The Eluna Lua Engine&copy; API allows you to add your own Lua code to be executed when certain events (called "hooks") occur. The ALE Lua Engine&copy; API allows you to add your own Lua code to be executed when certain events (called "hooks") occur.
</p> </p>
<p> <p>
Add a new in-game command, give life to creatures with new AI, or even light players who try to duel on fire! Add a new in-game command, give life to creatures with new AI, or even light players who try to duel on fire!
If the hook exists, you can script it. If the hook exists, you can script it.
</p> </p>
<h2 id="about-eluna" class='section-header'> <h2 id="about-ale" class='section-header'>
<a href="#about-eluna">About Eluna</a> <a href="#about-ale">About ALE</a>
</h2> </h2>
<p> <p>
Eluna is a <a href="http://www.lua.org/">Lua</a> engine for World of Warcraft emulators. ALE is a <a href="http://www.lua.org/">Lua</a> engine for World of Warcraft emulators.
These pages are for <a href="https://www.azerothcore.org/">AzerothCore</a>'s version, but Eluna also supports These pages are for <a href="https://www.azerothcore.org/">AzerothCore</a>'s version, but ALE also supports
<a href="https://cmangos.net/">CMaNGOS</a>/<a href="https://www.getmangos.eu/">MaNGOS</a> and <a href="https://www.trinitycore.org/">TrinityCore</a>. <a href="https://cmangos.net/">CMaNGOS</a>/<a href="https://www.getmangos.eu/">MaNGOS</a> and <a href="https://www.trinitycore.org/">TrinityCore</a>.
</p> </p>
<p> <p>
If you come from the TypeScript / JavaScript world, or would prefer to use a typed language instead of Lua, check out <a href="https://github.com/azerothcore/eluna-ts">eluna-ts</a>! If you come from the TypeScript / JavaScript world, or would prefer to use a typed language instead of Lua, check out <a href="https://github.com/azerothcore/eluna-ts">ale-ts</a>!
</p> </p>
<p> <p>
You can get support in the <code>#eluna-ac</code> channel of <a href="https://discord.com/invite/V3Dkwxvh">AzerothCore's Discord server</a>. You can get support in the <code>#ale-ac</code> channel of <a href="https://discord.com/invite/V3Dkwxvh">AzerothCore's Discord server</a>.
</p> </p>
<p> <p>
You can also join the <a href="https://discord.com/invite/bjkCVWqqfX">official Eluna Discord server</a>, where you'll be able to find resources, releases and support provided by the Eluna community. You can also join the <a href="https://discord.com/invite/bjkCVWqqfX">official ALE Discord server</a>, where you'll be able to find resources, releases and support provided by the ALE community.
</p> </p>
<h2 id="installation" class='section-header'> <h2 id="installation" class='section-header'>
@@ -43,7 +43,7 @@
<p> <p>
<ol> <ol>
<li>If you haven't already, clone AzerothCore from <a href="https://github.com/azerothcore/azerothcore-wotlk">our GitHub repository</a></li> <li>If you haven't already, clone AzerothCore from <a href="https://github.com/azerothcore/azerothcore-wotlk">our GitHub repository</a></li>
<li>Go to the modules directory and run the following command: <pre>git clone https://github.com/azerothcore/mod-eluna.git mod-eluna</pre></li> <li>Go to the modules directory and run the following command: <pre>git clone https://github.com/azerothcore/mod-ale.git mod-ale</pre></li>
<li>Run CMake</li> <li>Run CMake</li>
<li>Build AzerothCore</li> <li>Build AzerothCore</li>
</ol> </ol>
@@ -63,7 +63,7 @@
The layout, CSS, and Javascript code for this documentation was borrowed from <a href="http://doc.rust-lang.org/">doc.rust-lang.org</a>. The layout, CSS, and Javascript code for this documentation was borrowed from <a href="http://doc.rust-lang.org/">doc.rust-lang.org</a>.
</p> </p>
<p> <p>
The documentation generator was originally written by <a href="https://github.com/Patman64">Patman64</a> and is maintained by the Eluna team. The documentation generator was originally written by <a href="https://github.com/Patman64">Patman64</a> and is maintained by the ALE team.
</p> </p>
</div> </div>

View File

@@ -2,12 +2,12 @@
{% block title -%} {% block title -%}
{{ current_class.name }}:{{ current_method.name }} - Eluna {{ current_class.name }}:{{ current_method.name }} - ALE
{%- endblock %} {%- endblock %}
{% block description -%} {% block description -%}
API documentation for the {{ current_class.name }}:{{ current_method.name }} method in the Eluna engine. API documentation for the {{ current_class.name }}:{{ current_method.name }} method in the ALE engine.
{%- endblock %} {%- endblock %}
@@ -44,7 +44,7 @@
{{ current_method.description|parse_links }} {{ current_method.description|parse_links }}
{%- else %} {%- else %}
<p>This method is <em>undocumented</em>. <strong>Use at your own risk.</strong></p> <p>This method is <em>undocumented</em>. <strong>Use at your own risk.</strong></p>
<p>For temporary documentation, please check the <a href="https://github.com/ElunaLuaEngine/Eluna/blob/master/LuaFunctions.cpp">LuaFunctions</a> source file.</p> <p>For temporary documentation, please check the <a href="https://github.com/azerothcore/mod-ale/blob/master/src/LuaEngine/LuaFunctions.cpp">LuaFunctions</a> source file.</p>
{%- endif %} {%- endif %}
<h2 id="synopsis" class='section-header'> <h2 id="synopsis" class='section-header'>