Додайте підтримку нової гри

Вимоги

  • Доступ до терміналу, щоб виконувати команди на кшталт php -v і бути трохи знайомим з програмуванням

Якщо у вас встановлено Azuriom, ви можете перейти до кроку Налаштування.

Якщо ви ніколи не встановлювали Azuriom, вам необхідно його встановити. Під час інсталяції вам буде запропоновано вибрати гру.

Ви перейдете за адресою /install/game/custom. Маючи це на увазі, тепер ви можете слідувати інструкціям по встановленню.

Після встановлення Azuriom ви можете виконати наступну команду в терміналі, щоб створити користувача адміністратора:

php artisan user:create --admin

Налаштування

Ви можете запустити наступну команду, щоб згенерувати макет проекту для вашої гри, вказавши MyNewGame назву вашої гри:

php artisan game:create MyNewGame

Підключення Azuriom до гри

Використання власної бази даних

перейдіть до файлу plugins/mynewgame/src/Providers/MyNewGameServiceProvider.php та відредагуйте його

У розділі use Azuriom\Extensions\Plugin\BasePluginServiceProvider; вставте use Illuminate\Support\Facades\DB;.

Тепер знайдіть метод boot і в розділі $this->registerUserNavigation(); додайте $this->setupDatabaseConnection();

Тепер ви можете вставити функцію, наведену нижче, безпосередньо під } методу завантаження:

protected function setupDatabaseConnection()
{
    $driver = 'mysql'; // Can also be pgsql, sqlsrv
    $config = config('database.connections.'.$driver);

    /**
     * To use credentials in the .env file, you can use your plugin's config file.
     * in plugins/mynewgame/config/azuriom_mynewgame.php, you will see by default only one 'custom_config' key,
     * but you can add more like: 'CUSTOM_DB_ADDRESS' => env('CUSTOM_DB_ADDRESS', '127.0.0.1')
     * 
     * To access it: config('azuriom_mynewgame.CUSTOM_DB_ADDRESS');
     * 
     */ 
    $config['host'] = config('azuriom_mynewgame.CUSTOM_DB_ADDRESS');
    $config['port'] = config('azuriom_mynewgame.CUSTOM_DB_PORT');
    $config['username'] = config('azuriom_mynewgame.CUSTOM_DB_USER');
    $config['password'] = config('azuriom_mynewgame.CUSTOM_DB_PASSWORD');
    $config['database'] = config('azuriom_mynewgame.CUSTOM_DB_DATABASE');

    config(['database.connections.my-custom-connection' => $config]);
    DB::purge();
}

Тепер ви можете створити свою першу модель, використовуючи підключення до бази даних гри. Перейдіть в plugins/mynewgame/src/Models, створіть новий файл Character.php і додайте наступний код:

<?php

namespace Azuriom\Plugin\MyNewGame\Models;

use Illuminate\Database\Eloquent\Model;

class Character extends Model
{
    protected $connection = 'my-custom-connection';
}

Тепер відредагуйте plugins/mynewgame/src/Controllers/Admin/AdminController.php і в розділі use Azuriom\Http\Controllers\Controller;, додайте use Azuriom\Plugin\MyNewGame\Models\Character;.

Потім замінити функцію index на:

public function index()
{
    $characters = Character::paginate();
    return view('mynewgame::admin.index', ['characters' => $characters]);
}

Тепер для відображення символів в меню адміністратора відредагуйте plugins/mynewgame/resources/views/admin/index.blade.php і замініть <p>This is the admin page of your plugin</p> на:

@foreach($characters as $character)
    <p>{{$character->name}}</p> {{-- "name" can be any properties from you database --}}
@endforeach

{{ $characters->links() }}

Використання Rcon/API та/або для виконання команд

Перейдіть за адресою plugins/mynewgame/src/Games/MyNewGameServerBridge.php та ознайомтеся з вмістом.

Для прикладу з реального світу ви можете подивитися на :

У методі endCommands() ви повинні обробляти, чи підключений гравець до гри чи ні, і виконувати відповідні дії як тут у грі flyff.