cleanup
This commit is contained in:
parent
a49371c3dd
commit
251af10faf
1190 changed files with 12636 additions and 12476 deletions
12
.github/agent.md
vendored
12
.github/agent.md
vendored
|
|
@ -4,7 +4,7 @@
|
||||||
**Prime directive:** Read this document first. Keep `.github/agent.md` identical to this file—any edit here must be mirrored there in the same commit.
|
**Prime directive:** Read this document first. Keep `.github/agent.md` identical to this file—any edit here must be mirrored there in the same commit.
|
||||||
|
|
||||||
## Workspace deliverables (WDS 2025 refresh)
|
## Workspace deliverables (WDS 2025 refresh)
|
||||||
- Use the GSP/WDS/GSW branding across UI, docs, and comments; when heritage context matters add: “GSP is a heavily customized fork of OGP maintained by WDS.”
|
- Use the GSP/WDS/GSW branding across UI, docs, and comments; when heritage context matters add: “GSP is a heavily customized fork of GSP maintained by WDS.”
|
||||||
- Keep `bootstrap/` current: Ubuntu 24.04 panel + agent installers, Windows Server 2019 (Cygwin) agent installer + service wrapper, and the optional `docker/compose.yml` dev stack. All scripts must be idempotent, echo next steps, and document verify/rollback procedures in their README files.
|
- Keep `bootstrap/` current: Ubuntu 24.04 panel + agent installers, Windows Server 2019 (Cygwin) agent installer + service wrapper, and the optional `docker/compose.yml` dev stack. All scripts must be idempotent, echo next steps, and document verify/rollback procedures in their README files.
|
||||||
- Author and maintain admin-only docs in `WDS_Website/content/projects/gsp.md` and `content/docs/gsp/*` (front-matter + the **Admin Documentation** banner). Cross-link these guides from panel features that need deep dives.
|
- Author and maintain admin-only docs in `WDS_Website/content/projects/gsp.md` and `content/docs/gsp/*` (front-matter + the **Admin Documentation** banner). Cross-link these guides from panel features that need deep dives.
|
||||||
- Refresh user-facing help in `Panel/modules/faq/` (RSS + UI) so the seven core topics—panel basics, file browser, Adminer/MySQL, FTP/SFTP, task scheduler, sub-users, and support—link to the latest WDS admin docs.
|
- Refresh user-facing help in `Panel/modules/faq/` (RSS + UI) so the seven core topics—panel basics, file browser, Adminer/MySQL, FTP/SFTP, task scheduler, sub-users, and support—link to the latest WDS admin docs.
|
||||||
|
|
@ -48,7 +48,7 @@ header('Location: /modules/billing/cart.php');
|
||||||
- `Website/` – storefront runtime, payment handlers, provisioning bridge.
|
- `Website/` – storefront runtime, payment handlers, provisioning bridge.
|
||||||
- `Panel/modules/config_games/server_configs/` – authoritative XML metadata for every supported game.
|
- `Panel/modules/config_games/server_configs/` – authoritative XML metadata for every supported game.
|
||||||
- `Panel/modules/` – control-panel modules.
|
- `Panel/modules/` – control-panel modules.
|
||||||
- `Panel/includes/` & `Panel/ogp_api.php` – database layer, shared helpers, remote agent operations.
|
- `Panel/includes/` & `Panel/gsp_api.php` – database layer, shared helpers, remote agent operations.
|
||||||
|
|
||||||
## 2) Planning mode (default)
|
## 2) Planning mode (default)
|
||||||
While scoping multi-file work, do **not** emit PHP/SQL/XML or run shell commands unless a maintainer explicitly says “Generate code now.” Plans should cover:
|
While scoping multi-file work, do **not** emit PHP/SQL/XML or run shell commands unless a maintainer explicitly says “Generate code now.” Plans should cover:
|
||||||
|
|
@ -57,14 +57,14 @@ While scoping multi-file work, do **not** emit PHP/SQL/XML or run shell commands
|
||||||
- Risks, rollback notes, validation/tests.
|
- Risks, rollback notes, validation/tests.
|
||||||
|
|
||||||
## 3) Scope & principles
|
## 3) Scope & principles
|
||||||
- **Single session across panel + storefront.** Every billing page must call `session_name('opengamepanel_web')` before `session_start()`. Always keep `$_SESSION['user_id']`, `$_SESSION['users_login']`, `$_SESSION['users_group']`, and `$_SESSION['website_user_id']` in sync so that logging into either surface signs the visitor into both.
|
- **Single session across panel + storefront.** Every billing page must call `session_name('gameserverpanel_web')` before `session_start()`. Always keep `$_SESSION['user_id']`, `$_SESSION['users_login']`, `$_SESSION['users_group']`, and `$_SESSION['website_user_id']` in sync so that logging into either surface signs the visitor into both.
|
||||||
- **Auth reuse.** Preferred order when verifying credentials: `users_pass_hash` (modern hash) → legacy `users_passwd` (MD5). Upgrading to a modern hash is allowed so long as panel logins keep working.
|
- **Auth reuse.** Preferred order when verifying credentials: `users_pass_hash` (modern hash) → legacy `users_passwd` (MD5). Upgrading to a modern hash is allowed so long as panel logins keep working.
|
||||||
- **Bridge for panel helpers.** Use `Website/includes/panel_bridge.php` to load panel classes (`OGPDatabase`, `OGPRemoteLibrary`, XML parsers) when the storefront needs to provision servers or read panel-only metadata. Do not reinvent ad-hoc copies of panel logic.
|
- **Bridge for panel helpers.** Use `Website/includes/panel_bridge.php` to load panel classes (`GSPDatabase`, `GSPRemoteLibrary`, XML parsers) when the storefront needs to provision servers or read panel-only metadata. Do not reinvent ad-hoc copies of panel logic.
|
||||||
- **Storefront runtime.** Public pages continue to use mysqli with credentials from `Website/includes/config.inc.php`. Provisioning steps may request an `OGPDatabase` handle from the bridge.
|
- **Storefront runtime.** Public pages continue to use mysqli with credentials from `Website/includes/config.inc.php`. Provisioning steps may request an `GSPDatabase` handle from the bridge.
|
||||||
- **Provisioning pipeline.** Always funnel server creation or renewals through the shared provisioner (`Website/includes/provisioner.php`). This helper wraps the old `create_servers.php` logic and ensures PayPal captures, cron jobs, and panel clicks all follow the same code path.
|
- **Provisioning pipeline.** Always funnel server creation or renewals through the shared provisioner (`Website/includes/provisioner.php`). This helper wraps the old `create_servers.php` logic and ensures PayPal captures, cron jobs, and panel clicks all follow the same code path.
|
||||||
- **Catalog = XML.** Never hardcode game metadata. Parse `Panel/modules/config_games/server_configs/*.xml` at runtime; new XMLs must show up automatically.
|
- **Catalog = XML.** Never hardcode game metadata. Parse `Panel/modules/config_games/server_configs/*.xml` at runtime; new XMLs must show up automatically.
|
||||||
- **Regions/Nodes = live DB.** Pull nodes/locations from the panel DB (`gsp_remote_servers`, etc.). Respect admin enable/disable flags and never mirror node lists into flat files.
|
- **Regions/Nodes = live DB.** Pull nodes/locations from the panel DB (`gsp_remote_servers`, etc.). Respect admin enable/disable flags and never mirror node lists into flat files.
|
||||||
- **Game XML wiki parity.** We ship a PHP-rendered version of https://github.com/OpenGamePanel/OGP-Website/wiki/XML-Notes inside `Website/` (linked from the storefront admin area). Keep it updated so maintainers can edit XMLs without leaving the repo.
|
- **Game XML wiki parity.** We ship a PHP-rendered version of https://github.com/GameServerPanel/GSP-Panel/wiki/XML-Notes inside `Website/` (linked from the storefront admin area). Keep it updated so maintainers can edit XMLs without leaving the repo.
|
||||||
|
|
||||||
## 4) Functional requirements
|
## 4) Functional requirements
|
||||||
### 4.1 Catalog (from XML)
|
### 4.1 Catalog (from XML)
|
||||||
|
|
|
||||||
12
.github/copilot-instructions.md
vendored
12
.github/copilot-instructions.md
vendored
|
|
@ -4,7 +4,7 @@
|
||||||
**Prime directive:** Read this document first. Keep `.github/agent.md` identical to this file—any edit here must be mirrored there in the same commit.
|
**Prime directive:** Read this document first. Keep `.github/agent.md` identical to this file—any edit here must be mirrored there in the same commit.
|
||||||
|
|
||||||
## Workspace deliverables (WDS 2025 refresh)
|
## Workspace deliverables (WDS 2025 refresh)
|
||||||
- Use the GSP/WDS/GSW branding across UI, docs, and comments; when heritage context matters add: “GSP is a heavily customized fork of OGP maintained by WDS.”
|
- Use the GSP/WDS/GSW branding across UI, docs, and comments; when heritage context matters add: “GSP is a heavily customized fork of GSP maintained by WDS.”
|
||||||
- Keep `bootstrap/` current: Ubuntu 24.04 panel + agent installers, Windows Server 2019 (Cygwin) agent installer + service wrapper, and the optional `docker/compose.yml` dev stack. All scripts must be idempotent, echo next steps, and document verify/rollback procedures in their README files.
|
- Keep `bootstrap/` current: Ubuntu 24.04 panel + agent installers, Windows Server 2019 (Cygwin) agent installer + service wrapper, and the optional `docker/compose.yml` dev stack. All scripts must be idempotent, echo next steps, and document verify/rollback procedures in their README files.
|
||||||
- Author and maintain admin-only docs in `WDS_Website/content/projects/gsp.md` and `content/docs/gsp/*` (front-matter + the **Admin Documentation** banner). Cross-link these guides from panel features that need deep dives.
|
- Author and maintain admin-only docs in `WDS_Website/content/projects/gsp.md` and `content/docs/gsp/*` (front-matter + the **Admin Documentation** banner). Cross-link these guides from panel features that need deep dives.
|
||||||
- Refresh user-facing help in `Panel/modules/faq/` (RSS + UI) so the seven core topics—panel basics, file browser, Adminer/MySQL, FTP/SFTP, task scheduler, sub-users, and support—link to the latest WDS admin docs.
|
- Refresh user-facing help in `Panel/modules/faq/` (RSS + UI) so the seven core topics—panel basics, file browser, Adminer/MySQL, FTP/SFTP, task scheduler, sub-users, and support—link to the latest WDS admin docs.
|
||||||
|
|
@ -48,7 +48,7 @@ header('Location: /modules/billing/cart.php');
|
||||||
- `Website/` – storefront runtime, payment handlers, provisioning bridge.
|
- `Website/` – storefront runtime, payment handlers, provisioning bridge.
|
||||||
- `Panel/modules/config_games/server_configs/` – authoritative XML metadata for every supported game.
|
- `Panel/modules/config_games/server_configs/` – authoritative XML metadata for every supported game.
|
||||||
- `Panel/modules/` – control-panel modules.
|
- `Panel/modules/` – control-panel modules.
|
||||||
- `Panel/includes/` & `Panel/ogp_api.php` – database layer, shared helpers, remote agent operations.
|
- `Panel/includes/` & `Panel/gsp_api.php` – database layer, shared helpers, remote agent operations.
|
||||||
|
|
||||||
## 2) Planning mode (default)
|
## 2) Planning mode (default)
|
||||||
While scoping multi-file work, do **not** emit PHP/SQL/XML or run shell commands unless a maintainer explicitly says “Generate code now.” Plans should cover:
|
While scoping multi-file work, do **not** emit PHP/SQL/XML or run shell commands unless a maintainer explicitly says “Generate code now.” Plans should cover:
|
||||||
|
|
@ -57,14 +57,14 @@ While scoping multi-file work, do **not** emit PHP/SQL/XML or run shell commands
|
||||||
- Risks, rollback notes, validation/tests.
|
- Risks, rollback notes, validation/tests.
|
||||||
|
|
||||||
## 3) Scope & principles
|
## 3) Scope & principles
|
||||||
- **Single session across panel + storefront.** Every billing page must call `session_name('opengamepanel_web')` before `session_start()`. Always keep `$_SESSION['user_id']`, `$_SESSION['users_login']`, `$_SESSION['users_group']`, and `$_SESSION['website_user_id']` in sync so that logging into either surface signs the visitor into both.
|
- **Single session across panel + storefront.** Every billing page must call `session_name('gameserverpanel_web')` before `session_start()`. Always keep `$_SESSION['user_id']`, `$_SESSION['users_login']`, `$_SESSION['users_group']`, and `$_SESSION['website_user_id']` in sync so that logging into either surface signs the visitor into both.
|
||||||
- **Auth reuse.** Preferred order when verifying credentials: `users_pass_hash` (modern hash) → legacy `users_passwd` (MD5). Upgrading to a modern hash is allowed so long as panel logins keep working.
|
- **Auth reuse.** Preferred order when verifying credentials: `users_pass_hash` (modern hash) → legacy `users_passwd` (MD5). Upgrading to a modern hash is allowed so long as panel logins keep working.
|
||||||
- **Bridge for panel helpers.** Use `Website/includes/panel_bridge.php` to load panel classes (`OGPDatabase`, `OGPRemoteLibrary`, XML parsers) when the storefront needs to provision servers or read panel-only metadata. Do not reinvent ad-hoc copies of panel logic.
|
- **Bridge for panel helpers.** Use `Website/includes/panel_bridge.php` to load panel classes (`GSPDatabase`, `GSPRemoteLibrary`, XML parsers) when the storefront needs to provision servers or read panel-only metadata. Do not reinvent ad-hoc copies of panel logic.
|
||||||
- **Storefront runtime.** Public pages continue to use mysqli with credentials from `Website/includes/config.inc.php`. Provisioning steps may request an `OGPDatabase` handle from the bridge.
|
- **Storefront runtime.** Public pages continue to use mysqli with credentials from `Website/includes/config.inc.php`. Provisioning steps may request an `GSPDatabase` handle from the bridge.
|
||||||
- **Provisioning pipeline.** Always funnel server creation or renewals through the shared provisioner (`Website/includes/provisioner.php`). This helper wraps the old `create_servers.php` logic and ensures PayPal captures, cron jobs, and panel clicks all follow the same code path.
|
- **Provisioning pipeline.** Always funnel server creation or renewals through the shared provisioner (`Website/includes/provisioner.php`). This helper wraps the old `create_servers.php` logic and ensures PayPal captures, cron jobs, and panel clicks all follow the same code path.
|
||||||
- **Catalog = XML.** Never hardcode game metadata. Parse `Panel/modules/config_games/server_configs/*.xml` at runtime; new XMLs must show up automatically.
|
- **Catalog = XML.** Never hardcode game metadata. Parse `Panel/modules/config_games/server_configs/*.xml` at runtime; new XMLs must show up automatically.
|
||||||
- **Regions/Nodes = live DB.** Pull nodes/locations from the panel DB (`gsp_remote_servers`, etc.). Respect admin enable/disable flags and never mirror node lists into flat files.
|
- **Regions/Nodes = live DB.** Pull nodes/locations from the panel DB (`gsp_remote_servers`, etc.). Respect admin enable/disable flags and never mirror node lists into flat files.
|
||||||
- **Game XML wiki parity.** We ship a PHP-rendered version of https://github.com/OpenGamePanel/OGP-Website/wiki/XML-Notes inside `Website/` (linked from the storefront admin area). Keep it updated so maintainers can edit XMLs without leaving the repo.
|
- **Game XML wiki parity.** We ship a PHP-rendered version of https://github.com/GameServerPanel/GSP-Panel/wiki/XML-Notes inside `Website/` (linked from the storefront admin area). Keep it updated so maintainers can edit XMLs without leaving the repo.
|
||||||
|
|
||||||
## 4) Functional requirements
|
## 4) Functional requirements
|
||||||
### 4.1 Catalog (from XML)
|
### 4.1 Catalog (from XML)
|
||||||
|
|
|
||||||
16
.github/module-map.md
vendored
16
.github/module-map.md
vendored
|
|
@ -6,16 +6,16 @@ This file captures how the control panel, storefront, agents, and helper scripts
|
||||||
|
|
||||||
| Area | Key files | Responsibilities | Downstream callers |
|
| Area | Key files | Responsibilities | Downstream callers |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| Database bootstrap | `Panel/includes/functions.php`, `Panel/includes/database_mysqli.php` | Creates the `OGPDatabase` instance and exposes helpers such as `resultQuery()`, `addGameHome()`, and logging. | Every panel page, `Website/Website/includes/panel_bridge.php`, cron jobs. |
|
| Database bootstrap | `Panel/includes/functions.php`, `Panel/includes/database_mysqli.php` | Creates the `GSPDatabase` instance and exposes helpers such as `resultQuery()`, `addGameHome()`, and logging. | Every panel page, `Website/Website/includes/panel_bridge.php`, cron jobs. |
|
||||||
| Session helpers | `includes/helpers.php` (`startSession()`) | Sets `session_name('opengamepanel_web')`, sanitizes request vars, loads locales. | `index.php`, `home.php`, provisioning pages, storefront session bridge. |
|
| Session helpers | `includes/helpers.php` (`startSession()`) | Sets `session_name('gameserverpanel_web')`, sanitizes request vars, loads locales. | `index.php`, `home.php`, provisioning pages, storefront session bridge. |
|
||||||
| Remote control | `Panel/includes/lib_remote.php` | Wraps agent RPC (install/update, FTP user management, rsync, SteamCMD). | `Panel/modules/gamemanager/*`, `Website/create_servers.php`, cron jobs. |
|
| Remote control | `Panel/includes/lib_remote.php` | Wraps agent RPC (install/update, FTP user management, rsync, SteamCMD). | `Panel/modules/gamemanager/*`, `Website/create_servers.php`, cron jobs. |
|
||||||
| XML parser | `Panel/modules/config_games/server_config_parser.php` | Converts `Panel/modules/config_games/server_configs/*.xml` into PHP arrays used for provisioning and pricing metadata. | `Panel/modules/gamemanager`, `Website/` (catalog + provisioner), cron installers. |
|
| XML parser | `Panel/modules/config_games/server_config_parser.php` | Converts `Panel/modules/config_games/server_configs/*.xml` into PHP arrays used for provisioning and pricing metadata. | `Panel/modules/gamemanager`, `Website/` (catalog + provisioner), cron installers. |
|
||||||
| API surface | `ogp_api.php`, `includes/api_functions.php` | HTTP API for third-party tooling. Exposes operations such as starting/stopping homes, querying stats. | Mobile apps, automated provisioning, selected billing workflows. |
|
| API surface | `gsp_api.php`, `includes/api_functions.php` | HTTP API for third-party tooling. Exposes operations such as starting/stopping homes, querying stats. | Mobile apps, automated provisioning, selected billing workflows. |
|
||||||
| Cron/automation | `scripts/` (`cron-shop.php`, `status/*`, etc.) | Suspends/unsuspends services, refreshes status caches, runs backups. | Triggered via system cron or panel scheduler. |
|
| Cron/automation | `scripts/` (`cron-shop.php`, `status/*`, etc.) | Suspends/unsuspends services, refreshes status caches, runs backups. | Triggered via system cron or panel scheduler. |
|
||||||
|
|
||||||
## High-level flows
|
## High-level flows
|
||||||
|
|
||||||
1. **Auth/session** – Driven by `index.php` (panel) and `Website/login.php` (storefront). Both set `$_SESSION['user_id']`, `users_login`, `users_group`, and `website_user_id`. The shared session cookie `opengamepanel_web` means logging into either surface immediately authenticates the other.
|
1. **Auth/session** – Driven by `index.php` (panel) and `Website/login.php` (storefront). Both set `$_SESSION['user_id']`, `users_login`, `users_group`, and `website_user_id`. The shared session cookie `gameserverpanel_web` means logging into either surface immediately authenticates the other.
|
||||||
2. **Catalog** – `modules/config_games` hosts XML definitions. Panel modules (`gamemanager`, `config_games`) and storefront pages (`serverlist.php`, `order.php`, documentation pages, and the XML-notes mirror) parse these files for display and provisioning metadata.
|
2. **Catalog** – `modules/config_games` hosts XML definitions. Panel modules (`gamemanager`, `config_games`) and storefront pages (`serverlist.php`, `order.php`, documentation pages, and the XML-notes mirror) parse these files for display and provisioning metadata.
|
||||||
3. **Provisioning** – Orders land in `gsp_billing_orders`. `Website/create_servers.php` allocates homes, assigns nodes/IPs, configures mods, kicks off SteamCMD/rsync/manual installers, and then syncs the resulting `home_id` back into `billing_orders`, `billing_invoices`, and `billing_transactions` so paid services never stay orphaned. The same provisioner is invoked by:
|
3. **Provisioning** – Orders land in `gsp_billing_orders`. `Website/create_servers.php` allocates homes, assigns nodes/IPs, configures mods, kicks off SteamCMD/rsync/manual installers, and then syncs the resulting `home_id` back into `billing_orders`, `billing_invoices`, and `billing_transactions` so paid services never stay orphaned. The same provisioner is invoked by:
|
||||||
- PayPal capture endpoint (`Website/api/capture_order.php`).
|
- PayPal capture endpoint (`Website/api/capture_order.php`).
|
||||||
|
|
@ -40,14 +40,14 @@ This file captures how the control panel, storefront, agents, and helper scripts
|
||||||
| `extras`, `addonsmanager` | Workshop/add-on management. Server Content workshop installs now share validation/runtime helpers across admin, user, and API flows, and sync bundled workshop scripts into each home’s `gsp_server_content/scripts/workshop/` directory before execution. | Hooks into game homes after provisioning and uses agent-side SteamCMD copy/install workflows. |
|
| `extras`, `addonsmanager` | Workshop/add-on management. Server Content workshop installs now share validation/runtime helpers across admin, user, and API flows, and sync bundled workshop scripts into each home’s `gsp_server_content/scripts/workshop/` directory before execution. | Hooks into game homes after provisioning and uses agent-side SteamCMD copy/install workflows. |
|
||||||
| `litefm`, `ftp`, `TS3Admin` | File managers and TeamSpeak controllers. | Depend on homes and remote server credentials set during provisioning. |
|
| `litefm`, `ftp`, `TS3Admin` | File managers and TeamSpeak controllers. | Depend on homes and remote server credentials set during provisioning. |
|
||||||
| `news`, `circular`, `faq` | Content modules for panel UI. | Use standard MVC wrappers, share session/auth. |
|
| `news`, `circular`, `faq` | Content modules for panel UI. | Use standard MVC wrappers, share session/auth. |
|
||||||
| `cron` | Scheduler UI feeding `scripts/` commands. | Maintains job metadata that OS cron reads, including scheduler-triggered Server Content actions via `ogp_api.php?server_content/run_scheduled_action` and `modules/addonsmanager/server_content_actions.php`. |
|
| `cron` | Scheduler UI feeding `scripts/` commands. | Maintains job metadata that OS cron reads, including scheduler-triggered Server Content actions via `gsp_api.php?server_content/run_scheduled_action` and `modules/addonsmanager/server_content_actions.php`. |
|
||||||
|
|
||||||
## Storefront (`Panel/modules/billing` runtime + `Website/` compatibility wrappers)
|
## Storefront (`Panel/modules/billing` runtime + `Website/` compatibility wrappers)
|
||||||
|
|
||||||
| Area | Key files | Notes |
|
| Area | Key files | Notes |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| Public pages | `Panel/modules/billing/index.php`, `serverlist.php`, `order.php`, `cart.php`, `payment_success.php`, `docs.php` | Runtime now lives under `Panel/modules/billing`. `Website/*.php` wrappers proxy legacy paths to these files. |
|
| Public pages | `Panel/modules/billing/index.php`, `serverlist.php`, `order.php`, `cart.php`, `payment_success.php`, `docs.php` | Runtime now lives under `Panel/modules/billing`. `Website/*.php` wrappers proxy legacy paths to these files. |
|
||||||
| Auth | `Panel/modules/billing/login.php`, `register.php`, `reset_password.php`, `forgot_password.php`, `includes/login_required.php`, `includes/admin_auth.php` | Share `opengamepanel_web` session, call into panel DB to validate roles. |
|
| Auth | `Panel/modules/billing/login.php`, `register.php`, `reset_password.php`, `forgot_password.php`, `includes/login_required.php`, `includes/admin_auth.php` | Share `gameserverpanel_web` session, call into panel DB to validate roles. |
|
||||||
| Admin | `Panel/modules/billing/admin.php`, `adminserverlist.php`, `admin_orders.php`, `admin_coupons.php`, `admin_config.php`, `my_orders_panel.php` | Manage services, coupons, prices, and provisioning. `adminserverlist.php` controls service availability per node. |
|
| Admin | `Panel/modules/billing/admin.php`, `adminserverlist.php`, `admin_orders.php`, `admin_coupons.php`, `admin_config.php`, `my_orders_panel.php` | Manage services, coupons, prices, and provisioning. `adminserverlist.php` controls service availability per node. |
|
||||||
| PayPal API | `Panel/modules/billing/api/create_order.php`, `api/capture_order.php`, `paypal/webhook.php`, `logs/payment_capture.log` | Implements REST checkout. Legacy `Website/api/*` and `Website/paypal/webhook.php` wrappers proxy to module runtime. |
|
| PayPal API | `Panel/modules/billing/api/create_order.php`, `api/capture_order.php`, `paypal/webhook.php`, `logs/payment_capture.log` | Implements REST checkout. Legacy `Website/api/*` and `Website/paypal/webhook.php` wrappers proxy to module runtime. |
|
||||||
| Provisioning bridge | `Panel/modules/billing/create_servers.php`, `includes/provisioner.php`, `includes/panel_bridge.php` | Shared between panel module and storefront backend. Encapsulates whole server creation/renewal pipeline. |
|
| Provisioning bridge | `Panel/modules/billing/create_servers.php`, `includes/provisioner.php`, `includes/panel_bridge.php` | Shared between panel module and storefront backend. Encapsulates whole server creation/renewal pipeline. |
|
||||||
|
|
@ -67,11 +67,11 @@ This file captures how the control panel, storefront, agents, and helper scripts
|
||||||
- **Users** – `gsp_users` table is shared. Registration uses `Website/register.php`, admin pages use `Panel/modules/user_admin`. Password upgrades must not break panel logins.
|
- **Users** – `gsp_users` table is shared. Registration uses `Website/register.php`, admin pages use `Panel/modules/user_admin`. Password upgrades must not break panel logins.
|
||||||
- **Billing tables** – `gsp_billing_services`, `gsp_billing_orders`, `gsp_billing_invoices`, `gsp_billing_coupons`. Admin edits (pricing, enable/disable, locations) are done via `adminserverlist.php`; automation uses `cron-shop.php`.
|
- **Billing tables** – `gsp_billing_services`, `gsp_billing_orders`, `gsp_billing_invoices`, `gsp_billing_coupons`. Admin edits (pricing, enable/disable, locations) are done via `adminserverlist.php`; automation uses `cron-shop.php`.
|
||||||
- **Homes/Mods/IPs** – Stored in `gsp_game_homes`, `gsp_game_mods`, `gsp_remote_server_ips`. Provisioner writes to these tables; `gamemanager`, `litefm`, `ftp`, and `user_games` read them.
|
- **Homes/Mods/IPs** – Stored in `gsp_game_homes`, `gsp_game_mods`, `gsp_remote_server_ips`. Provisioner writes to these tables; `gamemanager`, `litefm`, `ftp`, and `user_games` read them.
|
||||||
- **Logging** – `$db->logger()` writes to `ogp_logs`. Storefront-specific logs live in `Website/logs/` for quick inspection (payment capture, provisioning outcomes, coupon usage).
|
- **Logging** – `$db->logger()` writes to `gsp_logs`. Storefront-specific logs live in `Website/logs/` for quick inspection (payment capture, provisioning outcomes, coupon usage).
|
||||||
|
|
||||||
## Usage tips
|
## Usage tips
|
||||||
|
|
||||||
1. **Need a DB object inside `Website/`?** Include `Website/includes/panel_bridge.php` and call `billing_get_panel_db()`. It sets up constants, loads helpers, and caches the `OGPDatabase` instance so multi-call flows (e.g., capture → provision → email) reuse it.
|
1. **Need a DB object inside `Website/`?** Include `Website/includes/panel_bridge.php` and call `billing_get_panel_db()`. It sets up constants, loads helpers, and caches the `GSPDatabase` instance so multi-call flows (e.g., capture → provision → email) reuse it.
|
||||||
2. **Want to change provisioning?** Update `Website/includes/provisioner.php` once. `create_servers.php`, PayPal webhooks, cron jobs, and admin repair flows all use it.
|
2. **Want to change provisioning?** Update `Website/includes/provisioner.php` once. `create_servers.php`, PayPal webhooks, cron jobs, and admin repair flows all use it.
|
||||||
3. **Working on XML or documentation?** Update the XML file under `Panel/modules/config_games/server_configs/`, regenerate docs if needed, and keep the PHP XML-notes mirror (`Website/docs/xml_notes.php`) accurate so the admin link stays trustworthy.
|
3. **Working on XML or documentation?** Update the XML file under `Panel/modules/config_games/server_configs/`, regenerate docs if needed, and keep the PHP XML-notes mirror (`Website/docs/xml_notes.php`) accurate so the admin link stays trustworthy.
|
||||||
4. **Need to know who uses a table?** Search `.github/module-map.md` first; the table above lists the canonical readers/writers for each major schema.
|
4. **Need to know who uses a table?** Search `.github/module-map.md` first; the table above lists the canonical readers/writers for each major schema.
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ Updated files:
|
||||||
- Panel/modules/addonsmanager/server_content_categories.php
|
- Panel/modules/addonsmanager/server_content_categories.php
|
||||||
- Panel/modules/addonsmanager/server_content_helpers.php
|
- Panel/modules/addonsmanager/server_content_helpers.php
|
||||||
- Panel/modules/addonsmanager/workshop_action.php
|
- Panel/modules/addonsmanager/workshop_action.php
|
||||||
- Panel/ogp_api.php
|
- Panel/gsp_api.php
|
||||||
- Panel/CHANGELOG.md
|
- Panel/CHANGELOG.md
|
||||||
- Panel/docs/COPILOT_TODO.md
|
- Panel/docs/COPILOT_TODO.md
|
||||||
- .github/module-map.md
|
- .github/module-map.md
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ This directory contains Apache virtual host configuration files for deploying th
|
||||||
## Configuration Files
|
## Configuration Files
|
||||||
|
|
||||||
### 1. panel.conf
|
### 1. panel.conf
|
||||||
Configuration for the main Open Game Panel dashboard.
|
Configuration for the main GameServer Panel dashboard.
|
||||||
- **Domain**: panel.yourdomain.com
|
- **Domain**: panel.yourdomain.com
|
||||||
- **Document Root**: /var/www/GSP
|
- **Document Root**: /var/www/GSP
|
||||||
- **Purpose**: Main panel interface for server management
|
- **Purpose**: Main panel interface for server management
|
||||||
|
|
@ -190,7 +190,7 @@ sudo tail -f /var/log/apache2/error.log # Ubuntu/Debian
|
||||||
sudo tail -f /var/log/httpd/error_log # CentOS/RHEL
|
sudo tail -f /var/log/httpd/error_log # CentOS/RHEL
|
||||||
|
|
||||||
# Site-specific logs
|
# Site-specific logs
|
||||||
sudo tail -f /var/log/apache2/ogp-panel-error.log
|
sudo tail -f /var/log/apache2/gsp-panel-error.log
|
||||||
sudo tail -f /var/log/apache2/gameservers-website-error.log
|
sudo tail -f /var/log/apache2/gameservers-website-error.log
|
||||||
sudo tail -f /var/log/apache2/fileserver-error.log
|
sudo tail -f /var/log/apache2/fileserver-error.log
|
||||||
```
|
```
|
||||||
|
|
@ -227,4 +227,4 @@ For issues specific to:
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
These configuration files are part of the Open Game Panel project and follow the same license as the main project.
|
These configuration files are part of the GameServer Panel project and follow the same license as the main project.
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
- **Auto-install trigger + monthly-only billing pricing:** Refactored Game Monitor update/install into a shared callable (`modules/gamemanager/update_actions.php`) reused by billing provisioning so new paid/free/admin-created homes auto-trigger the same install/update path used by `m=gamemanager&p=update&update=refresh` without manual clicks. Billing now treats monthly pricing (`price_monthly`) as canonical across admin service config, add-to-cart, free checkout, PayPal capture, and provisioning end-date math (31-day months), while preserving legacy daily/yearly columns for backward compatibility.
|
- **Auto-install trigger + monthly-only billing pricing:** Refactored Game Monitor update/install into a shared callable (`modules/gamemanager/update_actions.php`) reused by billing provisioning so new paid/free/admin-created homes auto-trigger the same install/update path used by `m=gamemanager&p=update&update=refresh` without manual clicks. Billing now treats monthly pricing (`price_monthly`) as canonical across admin service config, add-to-cart, free checkout, PayPal capture, and provisioning end-date math (31-day months), while preserving legacy daily/yearly columns for backward compatibility.
|
||||||
- **LiteFM PHP 8.3 compatibility and install-pending UX:** Removed deprecated `${var}` interpolation usage, guarded missing `fm_cwd_*` session keys and `dirname()` null paths, and replaced directory-not-found warning output with a clear message when server files are not installed yet.
|
- **LiteFM PHP 8.3 compatibility and install-pending UX:** Removed deprecated `${var}` interpolation usage, guarded missing `fm_cwd_*` session keys and `dirname()` null paths, and replaced directory-not-found warning output with a clear message when server files are not installed yet.
|
||||||
- **Provisioning + billing admin UX reliability pass:** Hardened automatic server provisioning to reserve ports from `arrange_ports` (exact `home_cfg_id`, then `home_cfg_id=0` fallback), prevent duplicate `home_ip_ports` assignment, keep order/invoice/home linkage intact even when install is pending, and apply safe default mod resolution so base installs are not blocked by missing explicit mod choices. Refreshed billing admin service management with row-level save actions, sortable columns (including Game Name enabled-first toggle), clearer save feedback, cleaner unstable-update caution styling, login theme polish, and updated storefront timestamp footer metadata.
|
- **Provisioning + billing admin UX reliability pass:** Hardened automatic server provisioning to reserve ports from `arrange_ports` (exact `home_cfg_id`, then `home_cfg_id=0` fallback), prevent duplicate `home_ip_ports` assignment, keep order/invoice/home linkage intact even when install is pending, and apply safe default mod resolution so base installs are not blocked by missing explicit mod choices. Refreshed billing admin service management with row-level save actions, sortable columns (including Game Name enabled-first toggle), clearer save feedback, cleaner unstable-update caution styling, login theme polish, and updated storefront timestamp footer metadata.
|
||||||
- **Steam Workshop reliability + UI simplification:** Removed customer CLI/update scripting instructions from Workshop user flow, reduced per-server behavior options to supported modes only, switched remaining Steam Workshop SQL references to prefix helpers (no `OGP_DB_PREFIX` strings), hardened queued-update agent processing (`queued → updating → installed/failed`) with clearer error persistence, and refreshed monitor/support documentation links to open game-specific docs (fallback to docs index) in a new tab.
|
- **Steam Workshop reliability + UI simplification:** Removed customer CLI/update scripting instructions from Workshop user flow, reduced per-server behavior options to supported modes only, switched remaining Steam Workshop SQL references to prefix helpers (no `GSP_DB_PREFIX` strings), hardened queued-update agent processing (`queued → updating → installed/failed`) with clearer error persistence, and refreshed monitor/support documentation links to open game-specific docs (fallback to docs index) in a new tab.
|
||||||
- **Billing docs routing refresh:** Updated docs browser links/icons to root-relative storefront paths (`/docs.php`, `/docs/...`) and removed stale hardcoded panel host guidance from getting-started documentation.
|
- **Billing docs routing refresh:** Updated docs browser links/icons to root-relative storefront paths (`/docs.php`, `/docs/...`) and removed stale hardcoded panel host guidance from getting-started documentation.
|
||||||
|
|
||||||
## 2026-05-07
|
## 2026-05-07
|
||||||
|
|
@ -57,11 +57,11 @@
|
||||||
- **Billing checkout — SQL migration:** Added `sql/002_billing_checkout_fixes.sql` — idempotent migration that adds `coupon_id`, `discount_amount`, `payment_status`, `subtotal`, and `total_due` columns to `gsp_billing_invoices`, and `coupon_id`/`discount_amount` to `gsp_billing_orders` for older installations missing these columns.
|
- **Billing checkout — SQL migration:** Added `sql/002_billing_checkout_fixes.sql` — idempotent migration that adds `coupon_id`, `discount_amount`, `payment_status`, `subtotal`, and `total_due` columns to `gsp_billing_invoices`, and `coupon_id`/`discount_amount` to `gsp_billing_orders` for older installations missing these columns.
|
||||||
- **Billing order status standardization:** Canonical `billing_orders.status` values are now `Active`, `Invoiced`, and `Expired` only. All old writes of `installed`, `paid` (as order status), and `suspended` have been replaced. A SQL migration script `modules/billing/sql/normalize_billing_order_status.sql` converts any existing legacy rows. Backward-compatibility read paths (e.g. renewable-status checks in `my_account.php`) are preserved until the migration runs.
|
- **Billing order status standardization:** Canonical `billing_orders.status` values are now `Active`, `Invoiced`, and `Expired` only. All old writes of `installed`, `paid` (as order status), and `suspended` have been replaced. A SQL migration script `modules/billing/sql/normalize_billing_order_status.sql` converts any existing legacy rows. Backward-compatibility read paths (e.g. renewable-status checks in `my_account.php`) are preserved until the migration runs.
|
||||||
- **Expiration display date-only:** The billing expiration shown on the game server monitor (`server_monitor.php`) now displays as `YYYY-MM-DD` only instead of `YYYY-MM-DD HH:MM`.
|
- **Expiration display date-only:** The billing expiration shown on the game server monitor (`server_monitor.php`) now displays as `YYYY-MM-DD` only instead of `YYYY-MM-DD HH:MM`.
|
||||||
- **Full-day expiration grace rule:** A server whose `end_date` falls on today is treated as active for the entire calendar day. Expiration is only processed starting the next calendar day. This rule is applied consistently in: billing cron (`cron-shop.php` Steps B and C), the server monitor expiration helper (`home_handling_functions.php::get_server_billing_expiration_html`), and the OGP user/group assignment expiration processor (`user_games/check_expire.php`). All comparisons now use `DATE(end_date) < CURDATE()` (SQL) or `< strtotime(date('Y-m-d'))` (PHP) — never `<= NOW()` or `<= time()`.
|
- **Full-day expiration grace rule:** A server whose `end_date` falls on today is treated as active for the entire calendar day. Expiration is only processed starting the next calendar day. This rule is applied consistently in: billing cron (`cron-shop.php` Steps B and C), the server monitor expiration helper (`home_handling_functions.php::get_server_billing_expiration_html`), and the GSP user/group assignment expiration processor (`user_games/check_expire.php`). All comparisons now use `DATE(end_date) < CURDATE()` (SQL) or `< strtotime(date('Y-m-d'))` (PHP) — never `<= NOW()` or `<= time()`.
|
||||||
|
|
||||||
|
|
||||||
- **GSP 1.0 baseline:** Reset all bundled/core module versions to `1.0`. DB schema versions (`$db_version`) are unchanged.
|
- **GSP 1.0 baseline:** Reset all bundled/core module versions to `1.0`. DB schema versions (`$db_version`) are unchanged.
|
||||||
- **FAQ module refresh:** Restored online RSS update code from upstream (opengamepanel.org), fixed `$local = false` initialization bug, switched local cache to `ogpfaq.rss`, added PHP 8.3-compatible `(array)` casts, restored upstream credits footer, and opened `navigation.xml` access to `user,admin,subuser`.
|
- **FAQ module refresh:** Restored online RSS update code from upstream (gameserverpanel.org), fixed `$local = false` initialization bug, switched local cache to `gspfaq.rss`, added PHP 8.3-compatible `(array)` casts, restored upstream credits footer, and opened `navigation.xml` access to `user,admin,subuser`.
|
||||||
- **Config XML editor improvements:** Added schema validation before save (both structured editor and raw XML path); invalid XML is rejected with line-level error messages instead of being written to disk. Added auto-restore from backup on validation failure. Fields are now displayed in schema-defined order with required/optional badges. Added a raw XML editing panel with validation warning. Unknown/custom XML fields are preserved when only specific nodes are modified.
|
- **Config XML editor improvements:** Added schema validation before save (both structured editor and raw XML path); invalid XML is rejected with line-level error messages instead of being written to disk. Added auto-restore from backup on validation failure. Fields are now displayed in schema-defined order with required/optional badges. Added a raw XML editing panel with validation warning. Unknown/custom XML fields are preserved when only specific nodes are modified.
|
||||||
- **Obsidian theme:** Added `themes/Obsidian/` from `hmrserver/Obsidian`. The theme is immediately selectable in the panel theme settings.
|
- **Obsidian theme:** Added `themes/Obsidian/` from `hmrserver/Obsidian`. The theme is immediately selectable in the panel theme settings.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -93,13 +93,13 @@ Implemented full-featured discount coupon system:
|
||||||
|
|
||||||
### Database Changes
|
### Database Changes
|
||||||
|
|
||||||
**New Table**: `ogp_billing_coupons`
|
**New Table**: `gsp_billing_coupons`
|
||||||
- 14 columns including coupon_id, code, discount_percent, usage_type, game_filter_list, etc.
|
- 14 columns including coupon_id, code, discount_percent, usage_type, game_filter_list, etc.
|
||||||
- Indexes on code (unique), active status, expiration
|
- Indexes on code (unique), active status, expiration
|
||||||
|
|
||||||
**Modified Tables**:
|
**Modified Tables**:
|
||||||
- `ogp_billing_invoices`: Added `coupon_id`, `discount_amount`
|
- `gsp_billing_invoices`: Added `coupon_id`, `discount_amount`
|
||||||
- `ogp_billing_orders`: Added `coupon_id`, `discount_amount`
|
- `gsp_billing_orders`: Added `coupon_id`, `discount_amount`
|
||||||
|
|
||||||
## Quality Assurance
|
## Quality Assurance
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,11 +65,11 @@ This implementation adds password reset functionality, user server management, i
|
||||||
|
|
||||||
## Database Tables Created
|
## Database Tables Created
|
||||||
|
|
||||||
### ogp_password_reset_tokens
|
### gsp_password_reset_tokens
|
||||||
Stores password reset tokens with expiration and usage tracking.
|
Stores password reset tokens with expiration and usage tracking.
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
CREATE TABLE ogp_password_reset_tokens (
|
CREATE TABLE gsp_password_reset_tokens (
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
user_id INT NOT NULL,
|
user_id INT NOT NULL,
|
||||||
token VARCHAR(64) NOT NULL,
|
token VARCHAR(64) NOT NULL,
|
||||||
|
|
@ -81,11 +81,11 @@ CREATE TABLE ogp_password_reset_tokens (
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
### ogp_server_status
|
### gsp_server_status
|
||||||
Stores server infrastructure status and metrics.
|
Stores server infrastructure status and metrics.
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
CREATE TABLE ogp_server_status (
|
CREATE TABLE gsp_server_status (
|
||||||
status_id INT AUTO_INCREMENT PRIMARY KEY,
|
status_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
remote_server_id INT NOT NULL,
|
remote_server_id INT NOT NULL,
|
||||||
server_name VARCHAR(255) NOT NULL,
|
server_name VARCHAR(255) NOT NULL,
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,12 @@ This PR successfully addresses all three main issues from the problem statement:
|
||||||
## 1. Login White Screen Fix
|
## 1. Login White Screen Fix
|
||||||
|
|
||||||
### Issue
|
### Issue
|
||||||
Users were experiencing a white screen after login due to hardcoded table name `ogp_users` in the menu.php file.
|
Users were experiencing a white screen after login due to hardcoded table name `gsp_users` in the menu.php file.
|
||||||
|
|
||||||
### Solution
|
### Solution
|
||||||
- Changed `modules/billing/includes/menu.php` line 46 from:
|
- Changed `modules/billing/includes/menu.php` line 46 from:
|
||||||
```php
|
```php
|
||||||
$res = mysqli_query($menu_db, "SELECT users_role FROM ogp_users WHERE user_id = $uid LIMIT 1");
|
$res = mysqli_query($menu_db, "SELECT users_role FROM gsp_users WHERE user_id = $uid LIMIT 1");
|
||||||
```
|
```
|
||||||
To:
|
To:
|
||||||
```php
|
```php
|
||||||
|
|
|
||||||
|
|
@ -82,24 +82,24 @@ cls
|
||||||
REM ===== Fetch agent files (curl instead of wget) =====
|
REM ===== Fetch agent files (curl instead of wget) =====
|
||||||
REM (Old SVN example left as comment)
|
REM (Old SVN example left as comment)
|
||||||
REM curl -L "http://master.dl.sourceforge.net/project/ogpextras/Installer-Snapshot/latest_win_agent_files.zip" -o "agent_files.zip"
|
REM curl -L "http://master.dl.sourceforge.net/project/ogpextras/Installer-Snapshot/latest_win_agent_files.zip" -o "agent_files.zip"
|
||||||
curl -L "https://github.com/OpenGamePanel/OGP-Agent-Windows/archive/master.zip" -o "agent_files.zip"
|
curl -L "https://github.com/GameServerPanel/GSP-Agent-Windows/archive/master.zip" -o "agent_files.zip"
|
||||||
|
|
||||||
unzip -q agent_files_old.zip
|
unzip -q agent_files_old.zip
|
||||||
unzip -q -o agent_files.zip
|
unzip -q -o agent_files.zip
|
||||||
IF NOT EXIST "OGP-Agent-Windows-master" unzip -q agent_files_local_copy.zip
|
IF NOT EXIST "GSP-Agent-Windows-master" unzip -q agent_files_local_copy.zip
|
||||||
cd "OGP-Agent-Windows-master"
|
cd "GSP-Agent-Windows-master"
|
||||||
IF EXIST OGP/COPYING xcopy /Y /E * ..\
|
IF EXIST GSP/COPYING xcopy /Y /E * ..\
|
||||||
IF EXIST OGP/COPYING cd ..
|
IF EXIST GSP/COPYING cd ..
|
||||||
rm -rf "OGP-Agent-Windows-master"
|
rm -rf "GSP-Agent-Windows-master"
|
||||||
rm -f agent_files.zip
|
rm -f agent_files.zip
|
||||||
rm -f agent_files_old.zip
|
rm -f agent_files_old.zip
|
||||||
rm -f agent_files_local_copy.zip
|
rm -f agent_files_local_copy.zip
|
||||||
chmod +x /OGP/agent_conf.sh
|
chmod +x /GSP/agent_conf.sh
|
||||||
chmod +x /bin/ogp_agent
|
chmod +x /bin/gsp_agent
|
||||||
|
|
||||||
REM ===== Configure agent (pass password safely) =====
|
REM ===== Configure agent (pass password safely) =====
|
||||||
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
|
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
|
||||||
"Start-Process -FilePath bash -NoNewWindow -Wait -ArgumentList @('/OGP/agent_conf.sh','-p',$env:PASS)"
|
"Start-Process -FilePath bash -NoNewWindow -Wait -ArgumentList @('/GSP/agent_conf.sh','-p',$env:PASS)"
|
||||||
|
|
||||||
REM ===== Create scheduled task (password via PowerShell to avoid metachar issues) =====
|
REM ===== Create scheduled task (password via PowerShell to avoid metachar issues) =====
|
||||||
tools\fart.exe "%WD%\service_settings.xml" "{COMMAND}" "%WD%\agent_start.bat"
|
tools\fart.exe "%WD%\service_settings.xml" "{COMMAND}" "%WD%\agent_start.bat"
|
||||||
|
|
@ -107,12 +107,12 @@ tools\fart.exe "%WD%\service_settings.xml" "{COMMAND_WORK_DIR}" "%WD%"
|
||||||
|
|
||||||
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
|
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
|
||||||
"$xml = Join-Path $env:WD 'service_settings.xml'; " ^
|
"$xml = Join-Path $env:WD 'service_settings.xml'; " ^
|
||||||
"Start-Process -FilePath schtasks -NoNewWindow -Wait -ArgumentList @('/create','/tn','OGP agent start on boot','/XML',$xml,'/ru','gameserver','/rp',$env:PASS)"
|
"Start-Process -FilePath schtasks -NoNewWindow -Wait -ArgumentList @('/create','/tn','GSP agent start on boot','/XML',$xml,'/ru','gameserver','/rp',$env:PASS)"
|
||||||
|
|
||||||
REM ===== Rebase & start agent =====
|
REM ===== Rebase & start agent =====
|
||||||
call "%WD%\rebase_post_ins.bat"
|
call "%WD%\rebase_post_ins.bat"
|
||||||
echo.
|
echo.
|
||||||
schtasks /Run /tn "OGP agent start on boot"
|
schtasks /Run /tn "GSP agent start on boot"
|
||||||
|
|
||||||
REM ===== Grant logon as a service =====
|
REM ===== Grant logon as a service =====
|
||||||
tools\ntrights.exe +r SeServiceLogonRight -u gameserver -m \\%COMPUTERNAME%
|
tools\ntrights.exe +r SeServiceLogonRight -u gameserver -m \\%COMPUTERNAME%
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# GSP / WDS Panel — Installer Guide
|
# GSP / WDS Panel — Installer Guide
|
||||||
|
|
||||||
> **GSP is a heavily customized fork of OGP maintained by WDS.**
|
> **GSP is a heavily customized fork of GSP maintained by WDS.**
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -147,15 +147,15 @@ After installation completes:
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 7. Table Prefix Migration (ogp_ → gsp_)
|
## 7. Table Prefix Migration (gsp_ → gsp_)
|
||||||
|
|
||||||
If you are migrating from an older OGP installation:
|
If you are migrating from an older GSP installation:
|
||||||
|
|
||||||
- The installer automatically renames `ogp_*` tables to `gsp_*` (or your chosen prefix) when they don't already exist.
|
- The installer automatically renames `gsp_*` tables to `gsp_*` (or your chosen prefix) when they don't already exist.
|
||||||
- Tables that already exist under the new prefix are skipped safely.
|
- Tables that already exist under the new prefix are skipped safely.
|
||||||
- You can choose a custom prefix (e.g. `mypanel_`) in the installer form.
|
- You can choose a custom prefix (e.g. `mypanel_`) in the installer form.
|
||||||
|
|
||||||
**Module SQL files** containing `ogp_` references are dynamically converted to the chosen prefix at import time.
|
**Module SQL files** containing `gsp_` references are dynamically converted to the chosen prefix at import time.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,12 +14,12 @@ crontab -e
|
||||||
|
|
||||||
and copy this line at the end of the file and save it (WARNING:modify it with the correct path):
|
and copy this line at the end of the file and save it (WARNING:modify it with the correct path):
|
||||||
|
|
||||||
*/1 * * * * php /var/www/html/ogp/modules/billing/cron-shop.php
|
*/1 * * * * php /var/www/html/gsp/modules/billing/cron-shop.php
|
||||||
|
|
||||||
Now this script searches for expired game homes every minute, and wil stop and remove them if they are expired.
|
Now this script searches for expired game homes every minute, and wil stop and remove them if they are expired.
|
||||||
If you would like to do this at midnight every day instead of every minute you should use
|
If you would like to do this at midnight every day instead of every minute you should use
|
||||||
|
|
||||||
0 0 * * * php /var/www/html/ogp/modules/billing/cron-shop.php
|
0 0 * * * php /var/www/html/gsp/modules/billing/cron-shop.php
|
||||||
|
|
||||||
TIP: Searching in google, for example, "cron every month" you will find the correct code to search expired homes and remove them every month.
|
TIP: Searching in google, for example, "cron every month" you will find the correct code to search expired homes and remove them every month.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||||
}
|
}
|
||||||
|
|
||||||
$db = createDatabaseConnection($db_type, $db_host, $db_user, $db_pass, $db_name, $table_prefix, isset($db_port) ? $db_port : NULL);
|
$db = createDatabaseConnection($db_type, $db_host, $db_user, $db_pass, $db_name, $table_prefix, isset($db_port) ? $db_port : NULL);
|
||||||
if (!$db instanceof OGPDatabase) {
|
if (!$db instanceof GSPDatabase) {
|
||||||
gsp_agent_event_fail(503, 'database_unavailable', 'Could not connect to database.');
|
gsp_agent_event_fail(503, 'database_unavailable', 'Could not connect to database.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,12 @@ ARMA 3,LinuxGSM
|
||||||
Abiotic Factor,Nitrado
|
Abiotic Factor,Nitrado
|
||||||
Action Half-Life,LinuxGSM
|
Action Half-Life,LinuxGSM
|
||||||
Action: Source,LinuxGSM
|
Action: Source,LinuxGSM
|
||||||
Aliens vs Predator,OGP
|
Aliens vs Predator,GSP
|
||||||
Aloft,"G-Portal, Nitrado"
|
Aloft,"G-Portal, Nitrado"
|
||||||
American Truck Simulator,"LinuxGSM, Nitrado"
|
American Truck Simulator,"LinuxGSM, Nitrado"
|
||||||
Arma 2,OGP
|
Arma 2,GSP
|
||||||
Arma 2 Combined Operations,OGP
|
Arma 2 Combined Operations,GSP
|
||||||
Arma 2 Operation Arrowhead,OGP
|
Arma 2 Operation Arrowhead,GSP
|
||||||
Arma 3,G-Portal
|
Arma 3,G-Portal
|
||||||
Arma Reforger,"G-Portal, LinuxGSM"
|
Arma Reforger,"G-Portal, LinuxGSM"
|
||||||
Assetto Corsa,LinuxGSM
|
Assetto Corsa,LinuxGSM
|
||||||
|
|
@ -54,7 +54,7 @@ Day of Defeat: Source,LinuxGSM
|
||||||
Day of Dragons,"G-Portal, LinuxGSM"
|
Day of Dragons,"G-Portal, LinuxGSM"
|
||||||
Day of Infamy,LinuxGSM
|
Day of Infamy,LinuxGSM
|
||||||
DayZ,LinuxGSM
|
DayZ,LinuxGSM
|
||||||
DayZ Mod for Arma2CO ,OGP
|
DayZ Mod for Arma2CO ,GSP
|
||||||
Dead Matter,G-Portal
|
Dead Matter,G-Portal
|
||||||
Deadside,G-Portal
|
Deadside,G-Portal
|
||||||
Deadside (Console),G-Portal
|
Deadside (Console),G-Portal
|
||||||
|
|
@ -191,14 +191,14 @@ Unreal Tournament 2004,LinuxGSM
|
||||||
Unreal Tournament 3,LinuxGSM
|
Unreal Tournament 3,LinuxGSM
|
||||||
Unreal Tournament 99,LinuxGSM
|
Unreal Tournament 99,LinuxGSM
|
||||||
Unturned,"G-Portal, LinuxGSM, Nitrado"
|
Unturned,"G-Portal, LinuxGSM, Nitrado"
|
||||||
Urban Terror 4,OGP
|
Urban Terror 4,GSP
|
||||||
V Rising,G-Portal
|
V Rising,G-Portal
|
||||||
Valheim,"G-Portal, GameServers.com, LinuxGSM"
|
Valheim,"G-Portal, GameServers.com, LinuxGSM"
|
||||||
Vampire Slayer,LinuxGSM
|
Vampire Slayer,LinuxGSM
|
||||||
Velocity Proxy,LinuxGSM
|
Velocity Proxy,LinuxGSM
|
||||||
Vintage Story,"G-Portal, LinuxGSM"
|
Vintage Story,"G-Portal, LinuxGSM"
|
||||||
Warfork,LinuxGSM
|
Warfork,LinuxGSM
|
||||||
Warsow,OGP
|
Warsow,GSP
|
||||||
WaterfallMC,LinuxGSM
|
WaterfallMC,LinuxGSM
|
||||||
Wolfenstein: Enemy Territory,LinuxGSM
|
Wolfenstein: Enemy Territory,LinuxGSM
|
||||||
World Titans War,G-Portal
|
World Titans War,G-Portal
|
||||||
|
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* GSP - Game Server Panel (WDS)
|
* GSP - Game Server Panel (WDS)
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
* GSP customizations (C) WDS / GameServerPanel
|
* GSP customizations (C) WDS / GameServerPanel
|
||||||
*
|
*
|
||||||
* GSP is a heavily customized fork of OGP maintained by WDS.
|
* GSP is a heavily customized fork of GSP maintained by WDS.
|
||||||
* https://github.com/GameServerPanel/GSP
|
* https://github.com/GameServerPanel/GSP
|
||||||
*
|
*
|
||||||
* Dependency Check Page — check.php
|
* Dependency Check Page — check.php
|
||||||
|
|
@ -127,7 +127,7 @@ $rows[] = [
|
||||||
'status' => $pear_path !== false ? 'ok' : 'warning',
|
'status' => $pear_path !== false ? 'ok' : 'warning',
|
||||||
'current' => $pear_path !== false ? $pear_path : 'Not found',
|
'current' => $pear_path !== false ? $pear_path : 'Not found',
|
||||||
'fix' => $pear_path !== false ? '' : 'sudo apt install php-pear -y',
|
'fix' => $pear_path !== false ? '' : 'sudo apt install php-pear -y',
|
||||||
'notes' => 'Used by some legacy OGP/GSP modules.',
|
'notes' => 'Used by some legacy GSP/GSP modules.',
|
||||||
];
|
];
|
||||||
|
|
||||||
// ── Writable / readable paths ────────────────────────────────────────────────
|
// ── Writable / readable paths ────────────────────────────────────────────────
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ span.versionInfo{
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.OGPVersionArea{
|
div.GSPVersionArea{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
# GSP Installer – Differences from Original OGP `install.php`
|
# GSP Installer – Differences from Original GSP `install.php`
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
`install.php` in this repository is a customized installer for the
|
`install.php` in this repository is a customized installer for the
|
||||||
**GSP (Game Server Panel)** maintained by WDS. It is based on the original
|
**GSP (Game Server Panel)** maintained by WDS. It is based on the original
|
||||||
OGP installer at
|
GSP installer at
|
||||||
<https://github.com/OpenGamePanel/OGP-Website/blob/master/install.php>
|
<https://github.com/GameServerPanel/GSP-Website/blob/master/install.php>
|
||||||
but has been adapted for the GSP/WDS environment.
|
but has been adapted for the GSP/WDS environment.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -14,7 +14,7 @@ but has been adapted for the GSP/WDS environment.
|
||||||
|
|
||||||
### 1. Default table prefix: `gsp_`
|
### 1. Default table prefix: `gsp_`
|
||||||
|
|
||||||
The original OGP installer defaults to `ogp_`. Our installer defaults to
|
The original GSP installer defaults to `gsp_`. Our installer defaults to
|
||||||
`gsp_` (the `$table_prefix` form field pre-fills with `gsp_`). You may
|
`gsp_` (the `$table_prefix` form field pre-fills with `gsp_`). You may
|
||||||
change this during installation.
|
change this during installation.
|
||||||
|
|
||||||
|
|
@ -38,7 +38,7 @@ port 3306).
|
||||||
|
|
||||||
### 3. MySQLi connection uses the port
|
### 3. MySQLi connection uses the port
|
||||||
|
|
||||||
`includes/database_mysqli.php` – `OGPDatabaseMySQL::connect()` – now
|
`includes/database_mysqli.php` – `GSPDatabaseMySQL::connect()` – now
|
||||||
accepts an optional `$db_port` argument and passes it to `mysqli_connect()`:
|
accepts an optional `$db_port` argument and passes it to `mysqli_connect()`:
|
||||||
|
|
||||||
```php
|
```php
|
||||||
|
|
@ -48,7 +48,7 @@ $this->link = mysqli_connect($db_host, $db_user, $db_pass, $db_name, $port);
|
||||||
`includes/helpers.php` – `createDatabaseConnection()` – likewise accepts
|
`includes/helpers.php` – `createDatabaseConnection()` – likewise accepts
|
||||||
and forwards `$db_port`.
|
and forwards `$db_port`.
|
||||||
|
|
||||||
All panel entry points (`home.php`, `index.php`, `ogp_api.php`,
|
All panel entry points (`home.php`, `index.php`, `gsp_api.php`,
|
||||||
`server_status.php`, `modules/billing/cron-shop.php`,
|
`server_status.php`, `modules/billing/cron-shop.php`,
|
||||||
`modules/billing/includes/panel_bridge.php`) pass
|
`modules/billing/includes/panel_bridge.php`) pass
|
||||||
`isset($db_port) ? $db_port : NULL` when calling
|
`isset($db_port) ? $db_port : NULL` when calling
|
||||||
|
|
@ -57,7 +57,7 @@ All panel entry points (`home.php`, `index.php`, `ogp_api.php`,
|
||||||
### 4. Default admin account created automatically
|
### 4. Default admin account created automatically
|
||||||
|
|
||||||
After modules are installed, the installer automatically creates an `admin`
|
After modules are installed, the installer automatically creates an `admin`
|
||||||
account with password `admin` using the existing `OGPDatabaseMySQL::addUser()`
|
account with password `admin` using the existing `GSPDatabaseMySQL::addUser()`
|
||||||
method (which stores passwords as `MD5`). If an admin user already exists it
|
method (which stores passwords as `MD5`). If an admin user already exists it
|
||||||
is **not** duplicated.
|
is **not** duplicated.
|
||||||
|
|
||||||
|
|
@ -65,7 +65,7 @@ is **not** duplicated.
|
||||||
|
|
||||||
### 5. No prerequisite checks
|
### 5. No prerequisite checks
|
||||||
|
|
||||||
Step 0 shows a welcome screen and language selector only. The original OGP
|
Step 0 shows a welcome screen and language selector only. The original GSP
|
||||||
installer checks for required PHP extensions, Pear, etc. GSP skips those
|
installer checks for required PHP extensions, Pear, etc. GSP skips those
|
||||||
checks because the deployment environment is pre-validated by our bootstrap
|
checks because the deployment environment is pre-validated by our bootstrap
|
||||||
scripts.
|
scripts.
|
||||||
|
|
@ -77,21 +77,21 @@ Every directory found under `modules/` is installed via
|
||||||
as warnings (not hard failures) so that the overall installation succeeds
|
as warnings (not hard failures) so that the overall installation succeeds
|
||||||
even if optional dependencies are missing.
|
even if optional dependencies are missing.
|
||||||
|
|
||||||
### 7. `ogp_` → `gsp_` table migration (optional, safe)
|
### 7. `gsp_` → `gsp_` table migration (optional, safe)
|
||||||
|
|
||||||
If the database already contains tables prefixed with `ogp_`:
|
If the database already contains tables prefixed with `gsp_`:
|
||||||
|
|
||||||
* For each `ogp_X` table, if the corresponding `gsp_X` table does **not**
|
* For each `gsp_X` table, if the corresponding `gsp_X` table does **not**
|
||||||
exist, it is renamed to `gsp_X`.
|
exist, it is renamed to `gsp_X`.
|
||||||
* If `gsp_X` already exists, the rename is skipped silently.
|
* If `gsp_X` already exists, the rename is skipped silently.
|
||||||
* The installer never aborts due to pre-existing tables.
|
* The installer never aborts due to pre-existing tables.
|
||||||
|
|
||||||
This allows upgrading an existing OGP installation to GSP without losing data.
|
This allows upgrading an existing GSP installation to GSP without losing data.
|
||||||
|
|
||||||
### 8. MD5 password hashing (legacy)
|
### 8. MD5 password hashing (legacy)
|
||||||
|
|
||||||
The `OGPDatabaseMySQL::addUser()` method stores passwords using `MD5()`.
|
The `GSPDatabaseMySQL::addUser()` method stores passwords using `MD5()`.
|
||||||
This is legacy behaviour inherited from OGP and matches the existing panel
|
This is legacy behaviour inherited from GSP and matches the existing panel
|
||||||
login system. MD5 is cryptographically broken for new systems; however,
|
login system. MD5 is cryptographically broken for new systems; however,
|
||||||
changing the hashing scheme requires coordinated changes to the login code
|
changing the hashing scheme requires coordinated changes to the login code
|
||||||
(`index.php`, `modules/register/`, etc.) and is outside the scope of the
|
(`index.php`, `modules/register/`, etc.) and is outside the scope of the
|
||||||
|
|
@ -101,7 +101,7 @@ scheme in a follow-up change.
|
||||||
### 9. Branding
|
### 9. Branding
|
||||||
|
|
||||||
The installer title and default site settings reference **GSP – Game Server
|
The installer title and default site settings reference **GSP – Game Server
|
||||||
Panel** and **WDS** instead of "Open Game Panel".
|
Panel** and **WDS** instead of "GameServer Panel".
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -124,5 +124,5 @@ Panel** and **WDS** instead of "Open Game Panel".
|
||||||
* To re-run the installer, simply navigate to `install.php` again.
|
* To re-run the installer, simply navigate to `install.php` again.
|
||||||
* If the wrong prefix was chosen, edit `includes/config.inc.php` manually or
|
* If the wrong prefix was chosen, edit `includes/config.inc.php` manually or
|
||||||
re-run `install.php`.
|
re-run `install.php`.
|
||||||
* Renamed (`ogp_` → `gsp_`) tables can be manually renamed back with
|
* Renamed (`gsp_` → `gsp_`) tables can be manually renamed back with
|
||||||
`RENAME TABLE gsp_X TO ogp_X` in MySQL.
|
`RENAME TABLE gsp_X TO gsp_X` in MySQL.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# GameServer Panel Admin Guide
|
# GameServer Panel Admin Guide
|
||||||
|
|
||||||
This document mirrors the internal WDS wiki entry so it can be viewed directly from the repository, packaged with releases, or imported into another wiki. It explains how we deploy, operate, and extend the GameServer Panel (GSP) fork of Open Game Panel.
|
This document mirrors the internal WDS wiki entry so it can be viewed directly from the repository, packaged with releases, or imported into another wiki. It explains how we deploy, operate, and extend the GameServer Panel (GSP) fork of GameServer Panel.
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
|
|
@ -28,10 +28,10 @@ Key behaviors:
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
GSP is still built around the classic OGP topology:
|
GSP is still built around the classic GSP topology:
|
||||||
|
|
||||||
1. **Web Panel** – PHP application with billing, coupons, invoicing, and customer UI enhancements.
|
1. **Web Panel** – PHP application with billing, coupons, invoicing, and customer UI enhancements.
|
||||||
2. **Agents** – Lightweight Perl daemons (`ogp_agent.pl`) installed on every game host. Default port 12679/TCP.
|
2. **Agents** – Lightweight Perl daemons (`gsp_agent.pl`) installed on every game host. Default port 12679/TCP.
|
||||||
3. **Game Servers** – Processes defined in `modules/config_games/server_configs/*.xml`. Agents launch them inside detached GNU screen sessions, capture PIDs, and stream console logs back to the panel.
|
3. **Game Servers** – Processes defined in `modules/config_games/server_configs/*.xml`. Agents launch them inside detached GNU screen sessions, capture PIDs, and stream console logs back to the panel.
|
||||||
|
|
||||||
All provisioning logic flows through XML definition files, so keep IDs, attributes, and order compliant with `modules/config_games/schema_server_config.xml`.
|
All provisioning logic flows through XML definition files, so keep IDs, attributes, and order compliant with `modules/config_games/schema_server_config.xml`.
|
||||||
|
|
@ -46,10 +46,10 @@ All provisioning logic flows through XML definition files, so keep IDs, attribut
|
||||||
sudo git clone https://github.com/GameServerPanel/GSP-Agent-Linux.git /opt/gsp-agent
|
sudo git clone https://github.com/GameServerPanel/GSP-Agent-Linux.git /opt/gsp-agent
|
||||||
cd /opt/gsp-agent
|
cd /opt/gsp-agent
|
||||||
sudo bash install.sh
|
sudo bash install.sh
|
||||||
sudo bash agent_conf.sh -s "yourRootPassword" -u ogp_agent
|
sudo bash agent_conf.sh -s "yourRootPassword" -u gsp_agent
|
||||||
```
|
```
|
||||||
3. Edit `/home/ogp_agent/Cfg/Config.pm` to match the panel entry (listen ip/port, `key`, `web_api_url`).
|
3. Edit `/home/gsp_agent/Cfg/Config.pm` to match the panel entry (listen ip/port, `key`, `web_api_url`).
|
||||||
4. Enable the service: `sudo systemctl enable --now ogp_agent` (installs from `systemd/ogp_agent.service`).
|
4. Enable the service: `sudo systemctl enable --now gsp_agent` (installs from `systemd/gsp_agent.service`).
|
||||||
5. Confirm heartbeats from the panel → Administration → Game Servers.
|
5. Confirm heartbeats from the panel → Administration → Game Servers.
|
||||||
|
|
||||||
### Windows Agent (Cygwin bundle)
|
### Windows Agent (Cygwin bundle)
|
||||||
|
|
@ -58,11 +58,11 @@ All provisioning logic flows through XML definition files, so keep IDs, attribut
|
||||||
2. Run `Install\onceinstall_agent.bat` as Administrator to install Cygwin, create the `gameserver` service user, and copy files.
|
2. Run `Install\onceinstall_agent.bat` as Administrator to install Cygwin, create the `gameserver` service user, and copy files.
|
||||||
3. Launch the bundled Cygwin terminal and execute:
|
3. Launch the bundled Cygwin terminal and execute:
|
||||||
```bash
|
```bash
|
||||||
cd /OGP
|
cd /GSP
|
||||||
bash agent_conf.sh -p "gameserverPassword"
|
bash agent_conf.sh -p "gameserverPassword"
|
||||||
```
|
```
|
||||||
4. Update `C:\\OGP\\Cfg\\Config.pm` (same structure as Linux) with the panel’s key, API URL, and listen port.
|
4. Update `C:\\GSP\\Cfg\\Config.pm` (same structure as Linux) with the panel’s key, API URL, and listen port.
|
||||||
5. Ensure the “OGP Agent” Windows service is set to Automatic (Delayed Start) and the firewall allows the agent port plus expected game ports.
|
5. Ensure the “GSP Agent” Windows service is set to Automatic (Delayed Start) and the firewall allows the agent port plus expected game ports.
|
||||||
|
|
||||||
## XML Deep Dive
|
## XML Deep Dive
|
||||||
|
|
||||||
|
|
@ -111,7 +111,7 @@ Game definitions live under `modules/config_games/server_configs`. They must res
|
||||||
</command>
|
</command>
|
||||||
</commands>
|
</commands>
|
||||||
<environment_variables>
|
<environment_variables>
|
||||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:{OGP_HOME_DIR}/RustDedicated_Data/Plugins/x86_64
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:{GSP_HOME_DIR}/RustDedicated_Data/Plugins/x86_64
|
||||||
</environment_variables>
|
</environment_variables>
|
||||||
</game_config>
|
</game_config>
|
||||||
```
|
```
|
||||||
|
|
@ -138,13 +138,13 @@ The full human-readable version is provided in [`documentation/xml-notes.md`](./
|
||||||
2. **Copy a template** – Duplicate a similar XML file from `server_configs/` and modify it in-place.
|
2. **Copy a template** – Duplicate a similar XML file from `server_configs/` and modify it in-place.
|
||||||
3. **Wire up parameters** – Use `server_params` for every knob you want exposed, and map those IDs inside `cli_params`.
|
3. **Wire up parameters** – Use `server_params` for every knob you want exposed, and map those IDs inside `cli_params`.
|
||||||
4. **Validate** – Run `xmllint --schema modules/config_games/schema_server_config.xml mygame.xml --noout`.
|
4. **Validate** – Run `xmllint --schema modules/config_games/schema_server_config.xml mygame.xml --noout`.
|
||||||
5. **Test** – Upload through the panel, click “Update Games List,” provision a server, and watch `ogp_agent.log` for errors.
|
5. **Test** – Upload through the panel, click “Update Games List,” provision a server, and watch `gsp_agent.log` for errors.
|
||||||
6. **Document** – Update this guide or the wiki with any quirks, Steam app IDs, or non-standard install notes.
|
6. **Document** – Update this guide or the wiki with any quirks, Steam app IDs, or non-standard install notes.
|
||||||
|
|
||||||
## Operational Notes
|
## Operational Notes
|
||||||
|
|
||||||
- **No panelStart wrapper** – The agent handles PID tracking, console logs, and restart logic. Keep commands clean.
|
- **No panelStart wrapper** – The agent handles PID tracking, console logs, and restart logic. Keep commands clean.
|
||||||
- **Logging** – Agents write `ogp_agent.log`, `ogp_agent.pid`, `ogp_agent_run.pid`, and individual `console.log` files.
|
- **Logging** – Agents write `gsp_agent.log`, `gsp_agent.pid`, `gsp_agent_run.pid`, and individual `console.log` files.
|
||||||
- **Stats database** – Optional MySQL credentials in `Cfg/Config.pm` feed resource monitoring cron jobs.
|
- **Stats database** – Optional MySQL credentials in `Cfg/Config.pm` feed resource monitoring cron jobs.
|
||||||
- **Password rotation** – Update credentials in `content/staff-passwords.txt` on the WDS website and regenerate secrets in the panel/agents at the same time.
|
- **Password rotation** – Update credentials in `content/staff-passwords.txt` on the WDS website and regenerate secrets in the panel/agents at the same time.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Packaged copy of the instructions we keep in the staff wiki so you can view them
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|
||||||
The Linux agent (`ogp_agent.pl`) exposes the RPC endpoint that allows the GameServer Panel to install, start, stop, and monitor game servers on Linux hosts. Every host that runs customer games must run this service.
|
The Linux agent (`gsp_agent.pl`) exposes the RPC endpoint that allows the GameServer Panel to install, start, stop, and monitor game servers on Linux hosts. Every host that runs customer games must run this service.
|
||||||
|
|
||||||
## Supported platforms
|
## Supported platforms
|
||||||
|
|
||||||
|
|
@ -21,48 +21,48 @@ sudo apt install -y git curl rsync screen perl libxml-parser-perl libpath-class-
|
||||||
sudo git clone https://github.com/GameServerPanel/GSP-Agent-Linux.git /opt/gsp-agent
|
sudo git clone https://github.com/GameServerPanel/GSP-Agent-Linux.git /opt/gsp-agent
|
||||||
cd /opt/gsp-agent
|
cd /opt/gsp-agent
|
||||||
sudo bash install.sh
|
sudo bash install.sh
|
||||||
sudo bash agent_conf.sh -s "root-password" -u ogp_agent
|
sudo bash agent_conf.sh -s "root-password" -u gsp_agent
|
||||||
```
|
```
|
||||||
|
|
||||||
`agent_conf.sh` writes `/home/ogp_agent/Cfg/Config.pm`. Set:
|
`agent_conf.sh` writes `/home/gsp_agent/Cfg/Config.pm`. Set:
|
||||||
|
|
||||||
| Key | Description |
|
| Key | Description |
|
||||||
| --- | ----------- |
|
| --- | ----------- |
|
||||||
| `listen_ip` | Interface to bind (use `0.0.0.0` unless you want to restrict access). |
|
| `listen_ip` | Interface to bind (use `0.0.0.0` unless you want to restrict access). |
|
||||||
| `listen_port` | TCP port exposed to the panel. Default is `12679`. |
|
| `listen_port` | TCP port exposed to the panel. Default is `12679`. |
|
||||||
| `key` | Shared secret copied from the panel → Administration → Game Servers. |
|
| `key` | Shared secret copied from the panel → Administration → Game Servers. |
|
||||||
| `web_api_url` | HTTPS URL to `ogp_api.php` on the panel. |
|
| `web_api_url` | HTTPS URL to `gsp_api.php` on the panel. |
|
||||||
| `stats_db_*` | Optional MySQL credentials for the resource stats cron. |
|
| `stats_db_*` | Optional MySQL credentials for the resource stats cron. |
|
||||||
|
|
||||||
## Service management
|
## Service management
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo cp systemd/ogp_agent.service /etc/systemd/system/
|
sudo cp systemd/gsp_agent.service /etc/systemd/system/
|
||||||
sudo sed -i "s#{OGP_AGENT_PATH}#/opt/gsp-agent#g" /etc/systemd/system/ogp_agent.service
|
sudo sed -i "s#{GSP_AGENT_PATH}#/opt/gsp-agent#g" /etc/systemd/system/gsp_agent.service
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
sudo systemctl enable --now ogp_agent
|
sudo systemctl enable --now gsp_agent
|
||||||
```
|
```
|
||||||
|
|
||||||
Logs live next to the binaries (`/opt/gsp-agent/ogp_agent.log`). Individual game servers stream to their own `console.log` files inside each home folder.
|
Logs live next to the binaries (`/opt/gsp-agent/gsp_agent.log`). Individual game servers stream to their own `console.log` files inside each home folder.
|
||||||
|
|
||||||
## Firewall checklist
|
## Firewall checklist
|
||||||
|
|
||||||
1. Allow inbound TCP on the agent port.
|
1. Allow inbound TCP on the agent port.
|
||||||
2. Allow inbound/outbound UDP/TCP for the games you host.
|
2. Allow inbound/outbound UDP/TCP for the games you host.
|
||||||
3. Allow outbound HTTPS to the panel so the agent can talk to `ogp_api.php`.
|
3. Allow outbound HTTPS to the panel so the agent can talk to `gsp_api.php`.
|
||||||
|
|
||||||
## Upgrades
|
## Upgrades
|
||||||
|
|
||||||
1. `cd /opt/gsp-agent && git pull`
|
1. `cd /opt/gsp-agent && git pull`
|
||||||
2. Stop the service (`sudo systemctl stop ogp_agent`).
|
2. Stop the service (`sudo systemctl stop gsp_agent`).
|
||||||
3. Re-run `bash install.sh` if new files were added.
|
3. Re-run `bash install.sh` if new files were added.
|
||||||
4. Start the service (`sudo systemctl start ogp_agent`).
|
4. Start the service (`sudo systemctl start gsp_agent`).
|
||||||
5. Verify the panel shows the agent as “online”.
|
5. Verify the panel shows the agent as “online”.
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
- `tail -f ogp_agent.log` – handshake failures usually mean the encryption key or port mismatches the panel entry.
|
- `tail -f gsp_agent.log` – handshake failures usually mean the encryption key or port mismatches the panel entry.
|
||||||
- `journalctl -u ogp_agent` – capture Perl stack traces and missing dependency errors.
|
- `journalctl -u gsp_agent` – capture Perl stack traces and missing dependency errors.
|
||||||
- `screen -ls` – confirm customer servers are running in screen sessions.
|
- `screen -ls` – confirm customer servers are running in screen sessions.
|
||||||
- `nc -vz panel.example.com 12679` from the panel host – ensures the agent port is reachable.
|
- `nc -vz panel.example.com 12679` from the panel host – ensures the agent port is reachable.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
## GameServer Panel XML Notes / still W.I.P.
|
## GameServer Panel XML Notes / still W.I.P.
|
||||||
|
|
||||||
_The order of each XML element matters, and this guide presents them in their order of appearance for the GSP (OGP fork)!_
|
_The order of each XML element matters, and this guide presents them in their order of appearance for the GSP (GSP fork)!_
|
||||||
___
|
___
|
||||||
### Linux and Windows:
|
### Linux and Windows:
|
||||||
|
|
||||||
|
|
@ -23,7 +23,7 @@ Comes after `<game_config>` element (actually within `<game_config>` element as
|
||||||
```
|
```
|
||||||
<game_key>space_engineers_win64</game_key>
|
<game_key>space_engineers_win64</game_key>
|
||||||
```
|
```
|
||||||
This is a unique key used to identify this specific game server in OGP. You should not use spaces, nor any special character in it, only alpha-numeric value and underscores. It should contain a suffix related to the compatible OS. Available suffixes are `_win32`, `_win64`, `_linux32`, `_linux64`, using one of these suffixes in the game_key will let OGP know which OS it is available on, making it visible or not when you install a new game server, depending on your OS architecture. `_win` and `_linux` work too, but we highly recommend to now use the previously listed suffixes.
|
This is a unique key used to identify this specific game server in GSP. You should not use spaces, nor any special character in it, only alpha-numeric value and underscores. It should contain a suffix related to the compatible OS. Available suffixes are `_win32`, `_win64`, `_linux32`, `_linux64`, using one of these suffixes in the game_key will let GSP know which OS it is available on, making it visible or not when you install a new game server, depending on your OS architecture. `_win` and `_linux` work too, but we highly recommend to now use the previously listed suffixes.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -34,7 +34,7 @@ Comes after `<game_key>` element. There can only be one `<protocol>` element.
|
||||||
```
|
```
|
||||||
<protocol>lgsl</protocol>
|
<protocol>lgsl</protocol>
|
||||||
```
|
```
|
||||||
It defines the query protocol used by OGP. Available protocols are `lgsl`, `gameq`, `rcon` (`rcon2`? `lcon`?)
|
It defines the query protocol used by GSP. Available protocols are `lgsl`, `gameq`, `rcon` (`rcon2`? `lcon`?)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -115,7 +115,7 @@ Comes after `<server_exec_name>` element. There can only be one `<cli_template>
|
||||||
<cli_template>%MAP%%GAMEMODE%%DIFFICULTY%%GAMELENGTH%%PLAYERS%%MUTATOR% %PORT% %IP% %WEB_ADMIN_PORT% %QUERY_PORT%</cli_template>
|
<cli_template>%MAP%%GAMEMODE%%DIFFICULTY%%GAMELENGTH%%PLAYERS%%MUTATOR% %PORT% %IP% %WEB_ADMIN_PORT% %QUERY_PORT%</cli_template>
|
||||||
```
|
```
|
||||||
This is the template that will generate the start command line placed after the server executable name.
|
This is the template that will generate the start command line placed after the server executable name.
|
||||||
You can use these variables which are known to OGP:
|
You can use these variables which are known to GSP:
|
||||||
```
|
```
|
||||||
GAME_TYPE
|
GAME_TYPE
|
||||||
HOSTNAME
|
HOSTNAME
|
||||||
|
|
@ -166,7 +166,7 @@ Comes after `<cli_template>` or `<cli_params>` element. There can only be one `
|
||||||
<port type="add" id="MY_CUSTOM_PORT">666</port>
|
<port type="add" id="MY_CUSTOM_PORT">666</port>
|
||||||
</reserve_ports>
|
</reserve_ports>
|
||||||
```
|
```
|
||||||
You can add reserved ports here to use in the generated start command line. These ports will also be managed by OGP if OGP is used to manage the Agent machine firewall. Type can be `add` or `subtract` which is self explanatory. In this example when using the %WEB_ADMIN_PORT% variable in the `<cli_template>` it will generate `-WebAdminPort=XXX`, XXX being 5 subtracted to the Port set for this game server, when using the %STEAM_PORT% variable in the `<cli_template>` it will generate `-SteamPort=XXX` where XXX will be 19238 added to the Port set for this game server. As you can see, the variable %MY_CUSTOM_PORT% have no `cli_string`, this can be used this way to simply open this port (which here would be 666 added to the game server port) in the Agent machine firewall, when OGP is set to control the machine firewall (note: the firewall management may actually not open anything else than the game server port, to be verified).
|
You can add reserved ports here to use in the generated start command line. These ports will also be managed by GSP if GSP is used to manage the Agent machine firewall. Type can be `add` or `subtract` which is self explanatory. In this example when using the %WEB_ADMIN_PORT% variable in the `<cli_template>` it will generate `-WebAdminPort=XXX`, XXX being 5 subtracted to the Port set for this game server, when using the %STEAM_PORT% variable in the `<cli_template>` it will generate `-SteamPort=XXX` where XXX will be 19238 added to the Port set for this game server. As you can see, the variable %MY_CUSTOM_PORT% have no `cli_string`, this can be used this way to simply open this port (which here would be 666 added to the game server port) in the Agent machine firewall, when GSP is set to control the machine firewall (note: the firewall management may actually not open anything else than the game server port, to be verified).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -533,7 +533,7 @@ Used for setting environment variables which may be needed by some servers. Thi
|
||||||
|
|
||||||
Special entries:
|
Special entries:
|
||||||
|
|
||||||
`{OGP_HOME_DIR}` will be replaced by the home directory for the game server.
|
`{GSP_HOME_DIR}` will be replaced by the home directory for the game server.
|
||||||
___
|
___
|
||||||
### Linux:
|
### Linux:
|
||||||
|
|
||||||
|
|
@ -569,13 +569,13 @@ Example:
|
||||||
|
|
||||||
```
|
```
|
||||||
<environment_variables>
|
<environment_variables>
|
||||||
export LD_LIBRARY_PATH="{OGP_HOME_DIR}/RustDedicated_Data/Plugins/x86_64"
|
export LD_LIBRARY_PATH="{GSP_HOME_DIR}/RustDedicated_Data/Plugins/x86_64"
|
||||||
</environment_variables>
|
</environment_variables>
|
||||||
```
|
```
|
||||||
|
|
||||||
Special entries:
|
Special entries:
|
||||||
|
|
||||||
`{OGP_HOME_DIR}` will be replaced by the home directory for the game server.
|
`{GSP_HOME_DIR}` will be replaced by the home directory for the game server.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -603,7 +603,7 @@ The above example adds chattr +i to the bin/AvorionServer executable. This prev
|
||||||
|
|
||||||
Special entries:
|
Special entries:
|
||||||
|
|
||||||
`{OGP_HOME_DIR}` will be replaced by the home directory for the game server. However, if you're using this variable, you should just use a local path.
|
`{GSP_HOME_DIR}` will be replaced by the home directory for the game server. However, if you're using this variable, you should just use a local path.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Game Titles Reference File
|
# Game Titles Reference File
|
||||||
# This file contains the complete list of games to generate comprehensive server admin guides for
|
# This file contains the complete list of games to generate comprehensive server admin guides for
|
||||||
# Format: Game Title | Engine | AppID | Workshop Support | LinuxGSM Support | OGP Module Support
|
# Format: Game Title | Engine | AppID | Workshop Support | LinuxGSM Support | GSP Module Support
|
||||||
|
|
||||||
# Existing games from data/games/ (verified)
|
# Existing games from data/games/ (verified)
|
||||||
7 Days to Die | Unity | 294420 | No | Yes | Yes
|
7 Days to Die | Unity | 294420 | No | Yes | Yes
|
||||||
|
|
@ -18,7 +18,7 @@ Terraria | XNA/MonoGame | 105600 | Yes | Yes | Yes
|
||||||
Unturned | Unity | 304930 | Yes | Yes | Yes
|
Unturned | Unity | 304930 | Yes | Yes | Yes
|
||||||
Valheim | Unity | 892970 | Yes | Yes | Yes
|
Valheim | Unity | 892970 | Yes | Yes | Yes
|
||||||
|
|
||||||
# Additional popular games from OGP, LinuxGSM, and top providers
|
# Additional popular games from GSP, LinuxGSM, and top providers
|
||||||
Conan Exiles | Unreal Engine 4 | 440900 | Yes | Yes | Yes
|
Conan Exiles | Unreal Engine 4 | 440900 | Yes | Yes | Yes
|
||||||
Space Engineers | VRAGE 2.0 | 244850 | Yes | Yes | Yes
|
Space Engineers | VRAGE 2.0 | 244850 | Yes | Yes | Yes
|
||||||
Killing Floor 2 | Unreal Engine 3 | 232090 | Yes | Yes | Yes
|
Killing Floor 2 | Unreal Engine 3 | 232090 | Yes | Yes | Yes
|
||||||
|
|
|
||||||
|
|
@ -1,62 +1,62 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
______________ Token Management
|
______________ Token Management
|
||||||
ogp_api.php?token/create/{panel_user}/{panel_password}
|
gsp_api.php?token/create/{panel_user}/{panel_password}
|
||||||
ogp_api.php?token/test/{token}
|
gsp_api.php?token/test/{token}
|
||||||
|
|
||||||
______________ Remote Servers
|
______________ Remote Servers
|
||||||
ogp_api.php?server/list (POST/GET {token})
|
gsp_api.php?server/list (POST/GET {token})
|
||||||
ogp_api.php?server/status (POST/GET {token}{remote_server_id})
|
gsp_api.php?server/status (POST/GET {token}{remote_server_id})
|
||||||
ogp_api.php?server/restart (POST/GET {token}{remote_server_id})
|
gsp_api.php?server/restart (POST/GET {token}{remote_server_id})
|
||||||
ogp_api.php?server/create (POST/GET {token}{agent_name}{agent_ip}{agent_port}{agent_user}{encryption_key}{ftp_ip}{ftp_port}{timeout}{use_nat}{display_public_ip})
|
gsp_api.php?server/create (POST/GET {token}{agent_name}{agent_ip}{agent_port}{agent_user}{encryption_key}{ftp_ip}{ftp_port}{timeout}{use_nat}{display_public_ip})
|
||||||
ogp_api.php?server/remove (POST/GET {token}{remote_server_id})
|
gsp_api.php?server/remove (POST/GET {token}{remote_server_id})
|
||||||
ogp_api.php?server/add_ip (POST/GET {token}{remote_server_id}{ip})
|
gsp_api.php?server/add_ip (POST/GET {token}{remote_server_id}{ip})
|
||||||
ogp_api.php?server/remove_ip (POST/GET {token}{remote_server_id}{ip})
|
gsp_api.php?server/remove_ip (POST/GET {token}{remote_server_id}{ip})
|
||||||
ogp_api.php?server/list_ips (POST/GET {token}{remote_server_id})
|
gsp_api.php?server/list_ips (POST/GET {token}{remote_server_id})
|
||||||
ogp_api.php?server/edit_ip (POST/GET {token}{remote_server_id}{old_ip}{new_ip})
|
gsp_api.php?server/edit_ip (POST/GET {token}{remote_server_id}{old_ip}{new_ip})
|
||||||
|
|
||||||
______________ Game Servers
|
______________ Game Servers
|
||||||
ogp_api.php?user_games/list_games (POST/GET {token}{system(windows|linux)}{architecture(32|64)})
|
gsp_api.php?user_games/list_games (POST/GET {token}{system(windows|linux)}{architecture(32|64)})
|
||||||
ogp_api.php?user_games/list_servers (POST/GET {token})
|
gsp_api.php?user_games/list_servers (POST/GET {token})
|
||||||
ogp_api.php?user_games/create (POST/GET {token}{remote_server_id}{server_name}{home_cfg_id}{mod_cfg_id}{ip}{port}{control_password}{enable_ftp}{ftp_password}{slots}{affinity}{nice}{assign_to_username}{custom_user_login_homepath}) // {custom_user_login_homepath} is only used when a default_game_server_home_path_prefix setting is defined and used
|
gsp_api.php?user_games/create (POST/GET {token}{remote_server_id}{server_name}{home_cfg_id}{mod_cfg_id}{ip}{port}{control_password}{enable_ftp}{ftp_password}{slots}{affinity}{nice}{assign_to_username}{custom_user_login_homepath}) // {custom_user_login_homepath} is only used when a default_game_server_home_path_prefix setting is defined and used
|
||||||
ogp_api.php?user_games/clone (POST/GET {token}{origin_home_id}{new_server_name}{new_ip}{new_port}{control_password}{enable_ftp}{ftp_password}{slots}{affinity}{nice}{assign_to_username}{custom_user_login_homepath}) // {custom_user_login_homepath} is only used when a default_game_server_home_path_prefix setting is defined and used
|
gsp_api.php?user_games/clone (POST/GET {token}{origin_home_id}{new_server_name}{new_ip}{new_port}{control_password}{enable_ftp}{ftp_password}{slots}{affinity}{nice}{assign_to_username}{custom_user_login_homepath}) // {custom_user_login_homepath} is only used when a default_game_server_home_path_prefix setting is defined and used
|
||||||
ogp_api.php?user_games/set_expiration (POST/GET {token}{home_id}{timestamp})
|
gsp_api.php?user_games/set_expiration (POST/GET {token}{home_id}{timestamp})
|
||||||
|
|
||||||
______________ Users
|
______________ Users
|
||||||
ogp_api.php?user_admin/list (POST/GET {token})
|
gsp_api.php?user_admin/list (POST/GET {token})
|
||||||
ogp_api.php?user_admin/get (POST/GET {token}{email})
|
gsp_api.php?user_admin/get (POST/GET {token}{email})
|
||||||
ogp_api.php?user_admin/create (POST/GET {token}{email}{name}{password})
|
gsp_api.php?user_admin/create (POST/GET {token}{email}{name}{password})
|
||||||
ogp_api.php?user_admin/remove (POST/GET {token}{email})
|
gsp_api.php?user_admin/remove (POST/GET {token}{email})
|
||||||
ogp_api.php?user_admin/set_expiration (POST/GET {token}{email}{timestamp})
|
gsp_api.php?user_admin/set_expiration (POST/GET {token}{email}{timestamp})
|
||||||
ogp_api.php?user_admin/list_assigned (POST/GET {token}{email})
|
gsp_api.php?user_admin/list_assigned (POST/GET {token}{email})
|
||||||
ogp_api.php?user_admin/assign (POST/GET {token}{email}{home_id}{timestamp})
|
gsp_api.php?user_admin/assign (POST/GET {token}{email}{home_id}{timestamp})
|
||||||
ogp_api.php?user_admin/remove_assign (POST/GET {token}{email}{home_id})
|
gsp_api.php?user_admin/remove_assign (POST/GET {token}{email}{home_id})
|
||||||
|
|
||||||
______________ Game Manager
|
______________ Game Manager
|
||||||
ogp_api.php?gamemanager/start (POST/GET {token}{ip}{port}{mod_key})
|
gsp_api.php?gamemanager/start (POST/GET {token}{ip}{port}{mod_key})
|
||||||
ogp_api.php?gamemanager/stop (POST/GET {token}{ip}{port}{mod_key})
|
gsp_api.php?gamemanager/stop (POST/GET {token}{ip}{port}{mod_key})
|
||||||
ogp_api.php?gamemanager/restart (POST/GET {token}{ip}{port}{mod_key})
|
gsp_api.php?gamemanager/restart (POST/GET {token}{ip}{port}{mod_key})
|
||||||
ogp_api.php?gamemanager/rcon (POST/GET {token}{ip}{port}{mod_key}{command})
|
gsp_api.php?gamemanager/rcon (POST/GET {token}{ip}{port}{mod_key}{command})
|
||||||
ogp_api.php?gamemanager/update (POST/GET {token}{ip}{port}{mod_key}{type}{manual_url})
|
gsp_api.php?gamemanager/update (POST/GET {token}{ip}{port}{mod_key}{type}{manual_url})
|
||||||
|
|
||||||
______________ Lite File Manager
|
______________ Lite File Manager
|
||||||
ogp_api.php?litefm/list (POST/GET {token}{ip}{port}{relative_path})
|
gsp_api.php?litefm/list (POST/GET {token}{ip}{port}{relative_path})
|
||||||
ogp_api.php?litefm/get (POST/GET {token}{ip}{port}{relative_path})
|
gsp_api.php?litefm/get (POST/GET {token}{ip}{port}{relative_path})
|
||||||
ogp_api.php?litefm/save (POST/GET {token}{ip}{port}{relative_path}{contents})
|
gsp_api.php?litefm/save (POST/GET {token}{ip}{port}{relative_path}{contents})
|
||||||
ogp_api.php?litefm/remove (POST/GET {token}{ip}{port}{relative_path})
|
gsp_api.php?litefm/remove (POST/GET {token}{ip}{port}{relative_path})
|
||||||
|
|
||||||
______________ Addons Manager
|
______________ Addons Manager
|
||||||
ogp_api.php?addonsmanager/list (POST/GET {token})
|
gsp_api.php?addonsmanager/list (POST/GET {token})
|
||||||
ogp_api.php?addonsmanager/install (POST/GET {token}{ip}{port}{mod_key}{addon_id})
|
gsp_api.php?addonsmanager/install (POST/GET {token}{ip}{port}{mod_key}{addon_id})
|
||||||
|
|
||||||
______________ Steam Workshop
|
______________ Steam Workshop
|
||||||
ogp_api.php?steam_workshop/install (POST/GET {token}{ip}{port}{mods_list})
|
gsp_api.php?steam_workshop/install (POST/GET {token}{ip}{port}{mods_list})
|
||||||
|
|
||||||
______________ Server Content
|
______________ Server Content
|
||||||
ogp_api.php?server_content/run_scheduled_action (POST/GET {token}{home_id}{action}{options})
|
gsp_api.php?server_content/run_scheduled_action (POST/GET {token}{home_id}{action}{options})
|
||||||
*
|
*
|
||||||
______________ Panel Setting
|
______________ Panel Setting
|
||||||
ogp_api.php?setting/get (POST/GET {token}{setting_name})
|
gsp_api.php?setting/get (POST/GET {token}{setting_name})
|
||||||
|
|
||||||
*/
|
*/
|
||||||
$main_request = key($_GET);
|
$main_request = key($_GET);
|
||||||
|
|
@ -284,7 +284,7 @@ function api_server()
|
||||||
{
|
{
|
||||||
$remote_server_id = $_POST['remote_server_id'];
|
$remote_server_id = $_POST['remote_server_id'];
|
||||||
$remote_server = $db->getRemoteServer($remote_server_id);
|
$remote_server = $db->getRemoteServer($remote_server_id);
|
||||||
$remote = new OGPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']);
|
$remote = new GSPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']);
|
||||||
$status = "200";
|
$status = "200";
|
||||||
$message = $remote->status_chk() == 1?'online':'offline';
|
$message = $remote->status_chk() == 1?'online':'offline';
|
||||||
}
|
}
|
||||||
|
|
@ -293,7 +293,7 @@ function api_server()
|
||||||
{
|
{
|
||||||
$remote_server_id = $_POST['remote_server_id'];
|
$remote_server_id = $_POST['remote_server_id'];
|
||||||
$remote_server = $db->getRemoteServer($remote_server_id);
|
$remote_server = $db->getRemoteServer($remote_server_id);
|
||||||
$remote = new OGPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']);
|
$remote = new GSPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']);
|
||||||
$remote->agent_restart();
|
$remote->agent_restart();
|
||||||
$status = "200";
|
$status = "200";
|
||||||
$message = "success";
|
$message = "success";
|
||||||
|
|
@ -483,7 +483,7 @@ function api_user_games()
|
||||||
if($mod_key === FALSE)
|
if($mod_key === FALSE)
|
||||||
return array("status" => '307', "message" => "The mod_cfg_id #" . $mod_cfg_id . " does not belong to the game configuration for home_cfg_id #" . $home_cfg_id . ".");
|
return array("status" => '307', "message" => "The mod_cfg_id #" . $mod_cfg_id . " does not belong to the game configuration for home_cfg_id #" . $home_cfg_id . ".");
|
||||||
|
|
||||||
$ip_info = $db->resultQuery( "SELECT ip,ip_id FROM OGP_DB_PREFIXremote_server_ips WHERE ip='".$db->real_escape_string($ip)."' AND remote_server_id=".$db->real_escape_string($remote_server_id));
|
$ip_info = $db->resultQuery( "SELECT ip,ip_id FROM GSP_DB_PREFIXremote_server_ips WHERE ip='".$db->real_escape_string($ip)."' AND remote_server_id=".$db->real_escape_string($remote_server_id));
|
||||||
if($ip_info === FALSE)
|
if($ip_info === FALSE)
|
||||||
return array("status" => '308', "message" => "The given IP address does not belongs to the given remote server.");
|
return array("status" => '308', "message" => "The given IP address does not belongs to the given remote server.");
|
||||||
|
|
||||||
|
|
@ -491,7 +491,7 @@ function api_user_games()
|
||||||
if(!isPortValid($port))
|
if(!isPortValid($port))
|
||||||
return array("status" => '309', "message" => "The given port is not a valid port.");
|
return array("status" => '309', "message" => "The given port is not a valid port.");
|
||||||
|
|
||||||
$remote = new OGPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']);
|
$remote = new GSPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']);
|
||||||
$host_stat = $remote->status_chk();
|
$host_stat = $remote->status_chk();
|
||||||
if($host_stat !== 1)
|
if($host_stat !== 1)
|
||||||
return array("status" => '310', "message" => "The remote server is offline.");
|
return array("status" => '310', "message" => "The remote server is offline.");
|
||||||
|
|
@ -513,7 +513,7 @@ function api_user_games()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$game_path = "/home/".$remote_server['ogp_user']."/OGP_User_Files/"; // Default
|
$game_path = "/home/".$remote_server['gsp_user']."/GSP_User_Files/"; // Default
|
||||||
|
|
||||||
$game_path = clean_path($game_path); // Clean it
|
$game_path = clean_path($game_path); // Clean it
|
||||||
|
|
||||||
|
|
@ -584,12 +584,12 @@ function api_user_games()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$remote = new OGPRemoteLibrary($game_home['agent_ip'],$game_home['agent_port'],$game_home['encryption_key'],$game_home['timeout']);
|
$remote = new GSPRemoteLibrary($game_home['agent_ip'],$game_home['agent_port'],$game_home['encryption_key'],$game_home['timeout']);
|
||||||
$host_stat = $remote->status_chk();
|
$host_stat = $remote->status_chk();
|
||||||
if($host_stat !== 1)
|
if($host_stat !== 1)
|
||||||
return array("status" => '310', "message" => "The remote server is offline.");
|
return array("status" => '310', "message" => "The remote server is offline.");
|
||||||
|
|
||||||
$ip_info = $db->resultQuery("SELECT ip,ip_id FROM OGP_DB_PREFIXremote_server_ips WHERE ip='".$db->real_escape_string($ip)."' AND remote_server_id=".$db->real_escape_string($game_home['remote_server_id']));
|
$ip_info = $db->resultQuery("SELECT ip,ip_id FROM GSP_DB_PREFIXremote_server_ips WHERE ip='".$db->real_escape_string($ip)."' AND remote_server_id=".$db->real_escape_string($game_home['remote_server_id']));
|
||||||
if($ip_info === FALSE)
|
if($ip_info === FALSE)
|
||||||
return array("status" => '308', "message" => "The given IP address does not belongs to the given remote server.");
|
return array("status" => '308', "message" => "The given IP address does not belongs to the given remote server.");
|
||||||
|
|
||||||
|
|
@ -614,7 +614,7 @@ function api_user_games()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$game_path = "/home/".$game_home['ogp_user']."/OGP_User_Files/"; // Default
|
$game_path = "/home/".$game_home['gsp_user']."/GSP_User_Files/"; // Default
|
||||||
|
|
||||||
$game_path = clean_path($game_path); // Clean it
|
$game_path = clean_path($game_path); // Clean it
|
||||||
|
|
||||||
|
|
@ -644,7 +644,7 @@ function api_user_games()
|
||||||
$db->changeFtpStatus('enabled', $clone_home_id);
|
$db->changeFtpStatus('enabled', $clone_home_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
$user_group = get_user_uid_gid_from_passwd(explode("\n", $remote->sudo_exec('cat /etc/passwd')), $game_home['ogp_user']);
|
$user_group = get_user_uid_gid_from_passwd(explode("\n", $remote->sudo_exec('cat /etc/passwd')), $game_home['gsp_user']);
|
||||||
|
|
||||||
$status = "200";
|
$status = "200";
|
||||||
$message = array("clone_home_id" => $clone_home_id, "cloning_status" => $remote->clone_home($game_home['home_path'], $game_path, $user_group));
|
$message = array("clone_home_id" => $clone_home_id, "cloning_status" => $remote->clone_home($game_home['home_path'], $game_path, $user_group));
|
||||||
|
|
@ -960,7 +960,7 @@ function api_gamemanager()
|
||||||
if($server_xml === FALSE)
|
if($server_xml === FALSE)
|
||||||
return array("status" => '305', "message" => "No game configuration found for home_cfg_id #" . $home_cfg_id . ".");
|
return array("status" => '305', "message" => "No game configuration found for home_cfg_id #" . $home_cfg_id . ".");
|
||||||
|
|
||||||
$remote = new OGPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key'],$home_info['timeout']);
|
$remote = new GSPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key'],$home_info['timeout']);
|
||||||
$host_stat = $remote->status_chk();
|
$host_stat = $remote->status_chk();
|
||||||
if($host_stat !== 1)
|
if($host_stat !== 1)
|
||||||
return array("status" => '310', "message" => "The remote server is offline.");
|
return array("status" => '310', "message" => "The remote server is offline.");
|
||||||
|
|
@ -1226,7 +1226,7 @@ function api_gamemanager()
|
||||||
$postInstallCMD = "";
|
$postInstallCMD = "";
|
||||||
if(isset($server_xml->post_install))
|
if(isset($server_xml->post_install))
|
||||||
$postInstallCMD .= $server_xml->post_install;
|
$postInstallCMD .= $server_xml->post_install;
|
||||||
$postInstallCMD .= "\n{OGP_LOCK_FILE} " . $home_info['home_path'] . "/" . ($server_xml->exe_location ? $server_xml->exe_location . "/" : "") . $server_xml->server_exec_name;
|
$postInstallCMD .= "\n{GSP_LOCK_FILE} " . $home_info['home_path'] . "/" . ($server_xml->exe_location ? $server_xml->exe_location . "/" : "") . $server_xml->server_exec_name;
|
||||||
|
|
||||||
$remote->steam_cmd($home_info['home_id'],$home_info['home_path'],$installer_name,$modname,
|
$remote->steam_cmd($home_info['home_id'],$home_info['home_path'],$installer_name,$modname,
|
||||||
$betaname,$betapwd,$login,$pass,$settings['steam_guard'],
|
$betaname,$betapwd,$login,$pass,$settings['steam_guard'],
|
||||||
|
|
@ -1257,7 +1257,7 @@ function api_gamemanager()
|
||||||
$postInstallCMD = "";
|
$postInstallCMD = "";
|
||||||
if(isset($server_xml->post_install))
|
if(isset($server_xml->post_install))
|
||||||
$postInstallCMD .= $server_xml->post_install;
|
$postInstallCMD .= $server_xml->post_install;
|
||||||
$postInstallCMD .= "\n{OGP_LOCK_FILE} " . $home_info['home_path'] . "/" . ($server_xml->exe_location ? $server_xml->exe_location . "/" : "") . $server_xml->server_exec_name;
|
$postInstallCMD .= "\n{GSP_LOCK_FILE} " . $home_info['home_path'] . "/" . ($server_xml->exe_location ? $server_xml->exe_location . "/" : "") . $server_xml->server_exec_name;
|
||||||
|
|
||||||
$remote->masterServerUpdate($home_id,$home_info['home_path'],$ms_home_id,$ms_info['home_path'],$exec_folder_path,$exec_path,$preInstallCMD,$postInstallCMD);
|
$remote->masterServerUpdate($home_id,$home_info['home_path'],$ms_home_id,$ms_info['home_path'],$exec_folder_path,$exec_path,$preInstallCMD,$postInstallCMD);
|
||||||
$status = "200";
|
$status = "200";
|
||||||
|
|
@ -1307,7 +1307,7 @@ function api_litefm()
|
||||||
if($server_xml === FALSE)
|
if($server_xml === FALSE)
|
||||||
return array("status" => '305', "message" => "No game configuration found for home_cfg_id #" . $home_cfg_id . ".");
|
return array("status" => '305', "message" => "No game configuration found for home_cfg_id #" . $home_cfg_id . ".");
|
||||||
|
|
||||||
$remote = new OGPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key'],$home_info['timeout']);
|
$remote = new GSPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key'],$home_info['timeout']);
|
||||||
$host_stat = $remote->status_chk();
|
$host_stat = $remote->status_chk();
|
||||||
if($host_stat !== 1)
|
if($host_stat !== 1)
|
||||||
return array("status" => '310', "message" => "The remote server is offline.");
|
return array("status" => '310', "message" => "The remote server is offline.");
|
||||||
|
|
@ -1378,7 +1378,7 @@ function api_addonsmanager()
|
||||||
|
|
||||||
if($request[0] == "list")
|
if($request[0] == "list")
|
||||||
{
|
{
|
||||||
$addons_rows = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXaddons");
|
$addons_rows = $db->resultQuery("SELECT * FROM GSP_DB_PREFIXaddons");
|
||||||
$status = "200";
|
$status = "200";
|
||||||
$message = $addons_rows;
|
$message = $addons_rows;
|
||||||
}
|
}
|
||||||
|
|
@ -1404,7 +1404,7 @@ function api_addonsmanager()
|
||||||
if($server_xml === FALSE)
|
if($server_xml === FALSE)
|
||||||
return array("status" => '305', "message" => "No game configuration found for home_cfg_id #" . $home_cfg_id . ".");
|
return array("status" => '305', "message" => "No game configuration found for home_cfg_id #" . $home_cfg_id . ".");
|
||||||
|
|
||||||
$remote = new OGPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key'],$home_info['timeout']);
|
$remote = new GSPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key'],$home_info['timeout']);
|
||||||
$host_stat = $remote->status_chk();
|
$host_stat = $remote->status_chk();
|
||||||
if($host_stat !== 1)
|
if($host_stat !== 1)
|
||||||
return array("status" => '310', "message" => "The remote server is offline.");
|
return array("status" => '310', "message" => "The remote server is offline.");
|
||||||
|
|
@ -1435,7 +1435,7 @@ function api_addonsmanager()
|
||||||
$query_groups .= "group_id=0 OR group_id IS NULL)";
|
$query_groups .= "group_id=0 OR group_id IS NULL)";
|
||||||
}
|
}
|
||||||
|
|
||||||
$addons_rows = $db->resultQuery("SELECT * FROM OGP_DB_PREFIXaddons WHERE home_cfg_id=".$home_info['home_cfg_id']." AND addon_id=".$addon_id.$query_groups);
|
$addons_rows = $db->resultQuery("SELECT * FROM GSP_DB_PREFIXaddons WHERE home_cfg_id=".$home_info['home_cfg_id']." AND addon_id=".$addon_id.$query_groups);
|
||||||
|
|
||||||
if($addons_rows === FALSE)
|
if($addons_rows === FALSE)
|
||||||
return array("status" => '341', "message" => "Invalid addon id #" . $addon_id . ".");
|
return array("status" => '341', "message" => "Invalid addon id #" . $addon_id . ".");
|
||||||
|
|
@ -1614,7 +1614,7 @@ function api_steam_workshop()
|
||||||
if($server_xml === FALSE)
|
if($server_xml === FALSE)
|
||||||
return array("status" => '305', "message" => "No game configuration found for home_cfg_id #" . $home_cfg_id . ".");
|
return array("status" => '305', "message" => "No game configuration found for home_cfg_id #" . $home_cfg_id . ".");
|
||||||
|
|
||||||
$remote = new OGPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key'],$home_info['timeout']);
|
$remote = new GSPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key'],$home_info['timeout']);
|
||||||
$host_stat = $remote->status_chk();
|
$host_stat = $remote->status_chk();
|
||||||
if($host_stat !== 1)
|
if($host_stat !== 1)
|
||||||
return array("status" => '310', "message" => "The remote server is offline.");
|
return array("status" => '310', "message" => "The remote server is offline.");
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -45,8 +45,8 @@ $db = createDatabaseConnection($db_type, $db_host, $db_user, $db_pass, $db_name,
|
||||||
// Load languages.
|
// Load languages.
|
||||||
include_once("includes/lang.php");
|
include_once("includes/lang.php");
|
||||||
|
|
||||||
if (!$db instanceof OGPDatabase) {
|
if (!$db instanceof GSPDatabase) {
|
||||||
ogpLang();
|
gspLang();
|
||||||
die(get_lang('no_db_connection'));
|
die(get_lang('no_db_connection'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -57,7 +57,7 @@ if(hasValue($_SESSION['user_id'])){
|
||||||
|
|
||||||
$settings = $db->getSettings();
|
$settings = $db->getSettings();
|
||||||
@$GLOBALS['panel_language'] = $settings['panel_language'];
|
@$GLOBALS['panel_language'] = $settings['panel_language'];
|
||||||
ogpLang();
|
gspLang();
|
||||||
|
|
||||||
// Apply debug level from panel settings (overrides the DEBUG_LEVEL constant)
|
// Apply debug level from panel settings (overrides the DEBUG_LEVEL constant)
|
||||||
if (defined('DEBUG_MODE') && DEBUG_MODE && function_exists('gsp_apply_debug_level')) {
|
if (defined('DEBUG_MODE') && DEBUG_MODE && function_exists('gsp_apply_debug_level')) {
|
||||||
|
|
@ -65,7 +65,7 @@ if (defined('DEBUG_MODE') && DEBUG_MODE && function_exists('gsp_apply_debug_leve
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once("includes/view.php");
|
require_once("includes/view.php");
|
||||||
$view = new OGPView();
|
$view = new GSPView();
|
||||||
$view->setCharset(get_lang('lang_charset'));
|
$view->setCharset(get_lang('lang_charset'));
|
||||||
$view->setTimeZone($settings['time_zone']);
|
$view->setTimeZone($settings['time_zone']);
|
||||||
if(isset($_GET['type']) && $_GET['type'] == 'cleared')
|
if(isset($_GET['type']) && $_GET['type'] == 'cleared')
|
||||||
|
|
@ -80,7 +80,7 @@ if(isset($_GET['type']) && $_GET['type'] == 'cleared')
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ogpHome();
|
gspHome();
|
||||||
$view->printView();
|
$view->printView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -135,7 +135,7 @@ function heading()
|
||||||
{
|
{
|
||||||
echo "<h2>".$settings['maintenance_title']."</h2>";
|
echo "<h2>".$settings['maintenance_title']."</h2>";
|
||||||
echo "<p>".$settings['maintenance_message']."</p>";
|
echo "<p>".$settings['maintenance_message']."</p>";
|
||||||
$view->setTitle("OGP: Maintenance.");
|
$view->setTitle("GSP: Maintenance.");
|
||||||
echo "<p class='failure'>".get_lang('logging_out_10')."...</p>";
|
echo "<p class='failure'>".get_lang('logging_out_10')."...</p>";
|
||||||
$view->refresh("index.php", 10);
|
$view->refresh("index.php", 10);
|
||||||
session_destroy();
|
session_destroy();
|
||||||
|
|
@ -154,7 +154,7 @@ function heading()
|
||||||
if(isset($maintenance))echo $maintenance;
|
if(isset($maintenance))echo $maintenance;
|
||||||
}
|
}
|
||||||
|
|
||||||
function ogpHome()
|
function gspHome()
|
||||||
{
|
{
|
||||||
global $db,$view,$settings;
|
global $db,$view,$settings;
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,7 @@ function get_start_cmd($user_info,$remote,$server_xml,$home_info,$mod_id,$ip,$po
|
||||||
$cli_param_data['IP'] = $ip;
|
$cli_param_data['IP'] = $ip;
|
||||||
$cli_param_data['PORT'] = $port;
|
$cli_param_data['PORT'] = $port;
|
||||||
$cli_param_data['HOSTNAME'] = $home_info['home_name'];
|
$cli_param_data['HOSTNAME'] = $home_info['home_name'];
|
||||||
$cli_param_data['PID_FILE'] = "ogp_game_startup.pid";
|
$cli_param_data['PID_FILE'] = "gsp_game_startup.pid";
|
||||||
|
|
||||||
// Linux
|
// Linux
|
||||||
if( preg_match("/Linux/", $os) )
|
if( preg_match("/Linux/", $os) )
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -22,9 +22,9 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
define("OGP_DB_PREFIX", "OGP_DB_PREFIX");
|
define("GSP_DB_PREFIX", "GSP_DB_PREFIX");
|
||||||
|
|
||||||
abstract class OGPDatabase {
|
abstract class GSPDatabase {
|
||||||
|
|
||||||
protected $queries_ = 0;
|
protected $queries_ = 0;
|
||||||
|
|
||||||
|
|
@ -153,7 +153,7 @@ abstract class OGPDatabase {
|
||||||
|
|
||||||
abstract public function getCurrentHomeConfigMods($clear_all);
|
abstract public function getCurrentHomeConfigMods($clear_all);
|
||||||
|
|
||||||
abstract public function updateOGPGameModsWithNewIDs($oldModStructure);
|
abstract public function updateGSPGameModsWithNewIDs($oldModStructure);
|
||||||
|
|
||||||
abstract public function clearGameCfgs($clear_all);
|
abstract public function clearGameCfgs($clear_all);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -31,7 +31,7 @@ function real_escape_string_recursive(&$item, $key, $link){
|
||||||
$item = $this->realEscapeSingle($item);
|
$item = $this->realEscapeSingle($item);
|
||||||
}
|
}
|
||||||
|
|
||||||
class OGPDatabaseMySQL extends OGPDatabase
|
class GSPDatabaseMySQL extends GSPDatabase
|
||||||
{
|
{
|
||||||
protected $link;
|
protected $link;
|
||||||
|
|
||||||
|
|
@ -89,7 +89,7 @@ class OGPDatabaseMySQL extends OGPDatabase
|
||||||
try {
|
try {
|
||||||
$result = mysqli_query($this->link,$query);
|
$result = mysqli_query($this->link,$query);
|
||||||
} catch ( \Throwable $e ) {
|
} catch ( \Throwable $e ) {
|
||||||
error_log("OGPDatabaseMySQL::listQuery exception: " . $e->getMessage());
|
error_log("GSPDatabaseMySQL::listQuery exception: " . $e->getMessage());
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -432,7 +432,7 @@ class OGPDatabaseMySQL extends OGPDatabase
|
||||||
$user_id = mysqli_insert_id($this->link);
|
$user_id = mysqli_insert_id($this->link);
|
||||||
if( !$user_id )
|
if( !$user_id )
|
||||||
{
|
{
|
||||||
error_log("OGP addUser failed: " . mysqli_errno($this->link) . ": " . mysqli_error($this->link));
|
error_log("GSP addUser failed: " . mysqli_errno($this->link) . ": " . mysqli_error($this->link));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -970,7 +970,7 @@ class OGPDatabaseMySQL extends OGPDatabase
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateOGPGameModsWithNewIDs($oldModStructure){
|
public function updateGSPGameModsWithNewIDs($oldModStructure){
|
||||||
$currentStructure = $this->getCurrentHomeConfigMods(false);
|
$currentStructure = $this->getCurrentHomeConfigMods(false);
|
||||||
|
|
||||||
if(isset($oldModStructure) && is_array($oldModStructure) && isset($currentStructure) && is_array($currentStructure)){
|
if(isset($oldModStructure) && is_array($oldModStructure) && isset($currentStructure) && is_array($currentStructure)){
|
||||||
|
|
@ -1176,13 +1176,13 @@ class OGPDatabaseMySQL extends OGPDatabase
|
||||||
{
|
{
|
||||||
if ( !$this->link ) return FALSE;
|
if ( !$this->link ) return FALSE;
|
||||||
|
|
||||||
$query = str_replace( "OGP_DB_PREFIX", $this->table_prefix, $query );
|
$query = str_replace( "GSP_DB_PREFIX", $this->table_prefix, $query );
|
||||||
|
|
||||||
++$this->queries_;
|
++$this->queries_;
|
||||||
try {
|
try {
|
||||||
mysqli_query($this->link,$query);
|
mysqli_query($this->link,$query);
|
||||||
} catch ( \Throwable $e ) {
|
} catch ( \Throwable $e ) {
|
||||||
error_log("OGPDatabaseMySQL::query exception: " . $e->getMessage());
|
error_log("GSPDatabaseMySQL::query exception: " . $e->getMessage());
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1196,7 +1196,7 @@ class OGPDatabaseMySQL extends OGPDatabase
|
||||||
|
|
||||||
/// \brief This query return array of values or false on failure.
|
/// \brief This query return array of values or false on failure.
|
||||||
public function resultQuery( $query ) {
|
public function resultQuery( $query ) {
|
||||||
$query = str_replace( "OGP_DB_PREFIX", $this->table_prefix, $query );
|
$query = str_replace( "GSP_DB_PREFIX", $this->table_prefix, $query );
|
||||||
return $this->listQuery($query);
|
return $this->listQuery($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1254,7 +1254,7 @@ class OGPDatabaseMySQL extends OGPDatabase
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$rhost_name = trim($rhost_name);
|
$rhost_name = trim($rhost_name);
|
||||||
$query = sprintf("INSERT INTO `%sremote_servers` (`agent_ip`,remote_server_name,ogp_user,agent_port,ftp_ip,ftp_port,`encryption_key`,timeout,use_nat,display_public_ip)
|
$query = sprintf("INSERT INTO `%sremote_servers` (`agent_ip`,remote_server_name,gsp_user,agent_port,ftp_ip,ftp_port,`encryption_key`,timeout,use_nat,display_public_ip)
|
||||||
VALUES('%s','%s','%s','%d','%s','%s','%s','%s','%s','%s');",
|
VALUES('%s','%s','%s','%d','%s','%s','%s','%s','%s','%s');",
|
||||||
$this->table_prefix,
|
$this->table_prefix,
|
||||||
$this->realEscapeSingle($rhost_ip),
|
$this->realEscapeSingle($rhost_ip),
|
||||||
|
|
@ -1416,7 +1416,7 @@ class OGPDatabaseMySQL extends OGPDatabase
|
||||||
$query = sprintf("UPDATE %sremote_servers SET agent_ip='%s',
|
$query = sprintf("UPDATE %sremote_servers SET agent_ip='%s',
|
||||||
agent_port='%s', encryption_key='%s',
|
agent_port='%s', encryption_key='%s',
|
||||||
remote_server_name='%s',
|
remote_server_name='%s',
|
||||||
ogp_user='%s',
|
gsp_user='%s',
|
||||||
ftp_ip='%s',
|
ftp_ip='%s',
|
||||||
ftp_port='%s',
|
ftp_port='%s',
|
||||||
timeout='%s',
|
timeout='%s',
|
||||||
|
|
@ -3916,7 +3916,7 @@ class OGPDatabaseMySQL extends OGPDatabase
|
||||||
case 'server':
|
case 'server':
|
||||||
require_once('includes/lib_remote.php');
|
require_once('includes/lib_remote.php');
|
||||||
$home_info = $this->getGameHomeWithoutMods($home_id);
|
$home_info = $this->getGameHomeWithoutMods($home_id);
|
||||||
$remote = new OGPRemoteLibrary($home_info['agent_ip'], $home_info['agent_port'], $home_info['encryption_key'], $home_info['timeout']);
|
$remote = new GSPRemoteLibrary($home_info['agent_ip'], $home_info['agent_port'], $home_info['encryption_key'], $home_info['timeout']);
|
||||||
$agent_online = $remote->status_chk() === 1;
|
$agent_online = $remote->status_chk() === 1;
|
||||||
if( $agent_online )
|
if( $agent_online )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -146,7 +146,7 @@ function get_map_path($query_name,$mod,$map) {
|
||||||
return get_first_existing_file($map_paths, 'http://gametracker.com', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0');
|
return get_first_existing_file($map_paths, 'http://gametracker.com', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Thanks adjo (http://opengamepanel.org/forum/viewthread.php?thread_id=5209#post_25073)
|
// Thanks adjo (forum/viewthread.php?thread_id=5209#post_25073)
|
||||||
function curlCacheImage($cachePath, $resource){
|
function curlCacheImage($cachePath, $resource){
|
||||||
if(preg_match('/^(https?:\/\/)/', $resource)){
|
if(preg_match('/^(https?:\/\/)/', $resource)){
|
||||||
$map = explode('/', $resource);
|
$map = explode('/', $resource);
|
||||||
|
|
@ -310,7 +310,7 @@ function create_home_selector_game_type($module, $subpage, $server_homes) {
|
||||||
function mymail($email_address, $subject, $message, $panel_settings, $user_to_panel = FALSE){
|
function mymail($email_address, $subject, $message, $panel_settings, $user_to_panel = FALSE){
|
||||||
global $view;
|
global $view;
|
||||||
if( empty( $panel_settings['panel_name'] ) )
|
if( empty( $panel_settings['panel_name'] ) )
|
||||||
$panel_name = "Open Game Panel";
|
$panel_name = "GameServer Panel";
|
||||||
else
|
else
|
||||||
$panel_name = $panel_settings['panel_name'];
|
$panel_name = $panel_settings['panel_name'];
|
||||||
|
|
||||||
|
|
@ -361,7 +361,7 @@ function mymail($email_address, $subject, $message, $panel_settings, $user_to_pa
|
||||||
}
|
}
|
||||||
|
|
||||||
if(empty($panel_settings['panel_email_address'])){
|
if(empty($panel_settings['panel_email_address'])){
|
||||||
$panel_email = "noreply@opengamepanel.org";
|
$panel_email = "noreply@gameserverpanel.org";
|
||||||
}else{
|
}else{
|
||||||
$panel_email = $panel_settings['panel_email_address'];
|
$panel_email = $panel_settings['panel_email_address'];
|
||||||
}
|
}
|
||||||
|
|
@ -623,7 +623,7 @@ function getClientIPAddress(){
|
||||||
return $_SERVER['REMOTE_ADDR'];
|
return $_SERVER['REMOTE_ADDR'];
|
||||||
}
|
}
|
||||||
|
|
||||||
function getOGPSiteURL(){
|
function getGSPSiteURL(){
|
||||||
$url = '';
|
$url = '';
|
||||||
$scheme = ( isset($_SERVER['HTTPS']) and get_true_boolean($_SERVER['HTTPS']) ) ? "https://" : "http://";
|
$scheme = ( isset($_SERVER['HTTPS']) and get_true_boolean($_SERVER['HTTPS']) ) ? "https://" : "http://";
|
||||||
$url .= $scheme;
|
$url .= $scheme;
|
||||||
|
|
@ -1055,7 +1055,7 @@ function deleteMysqlAddonDatabasesForGameServerHome($home_id){
|
||||||
if($mysql_db['remote_server_id'] != "0")
|
if($mysql_db['remote_server_id'] != "0")
|
||||||
{
|
{
|
||||||
$remote_server = $db->getRemoteServer($mysql_db['remote_server_id']);
|
$remote_server = $db->getRemoteServer($mysql_db['remote_server_id']);
|
||||||
$remote = new OGPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']);
|
$remote = new GSPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']);
|
||||||
$host_stat = $remote->status_chk();
|
$host_stat = $remote->status_chk();
|
||||||
if($host_stat === 1 )
|
if($host_stat === 1 )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Globals
|
// Globals
|
||||||
$OGPLangPre = "LANG_";
|
$GSPLangPre = "LANG_";
|
||||||
|
|
||||||
// Ignore any request with unwanted values at 'm' or 'p'
|
// Ignore any request with unwanted values at 'm' or 'p'
|
||||||
if( isset($_REQUEST['m']) and !preg_match("/^([a-z]|[0-9]|_|-)+$/i", $_REQUEST['m']) )
|
if( isset($_REQUEST['m']) and !preg_match("/^([a-z]|[0-9]|_|-)+$/i", $_REQUEST['m']) )
|
||||||
|
|
@ -52,8 +52,8 @@ function createDatabaseConnection($db_type,$db_host,$db_user,$db_pass,$db_name,$
|
||||||
if ( function_exists('mysqli_connect') )
|
if ( function_exists('mysqli_connect') )
|
||||||
require_once("includes/database_mysqli.php");
|
require_once("includes/database_mysqli.php");
|
||||||
else
|
else
|
||||||
die("<p class='failure'>OGP requires the <a href='http://php.net/manual/en/book.mysqli.php' target='_blank'>mysqli PHP extension</a>. Please install it, and then try again.</p>");
|
die("<p class='failure'>GSP requires the <a href='http://php.net/manual/en/book.mysqli.php' target='_blank'>mysqli PHP extension</a>. Please install it, and then try again.</p>");
|
||||||
$database = new OGPDatabaseMysql();
|
$database = new GSPDatabaseMySQL();
|
||||||
$connect_value = $database->connect($db_host,$db_user,$db_pass,$db_name,$table_prefix,$db_port);
|
$connect_value = $database->connect($db_host,$db_user,$db_pass,$db_name,$table_prefix,$db_port);
|
||||||
|
|
||||||
if ($connect_value === TRUE)
|
if ($connect_value === TRUE)
|
||||||
|
|
@ -70,7 +70,7 @@ function createDatabaseConnection($db_type,$db_host,$db_user,$db_pass,$db_name,$
|
||||||
|
|
||||||
function get_db_error_text ($db_retval, &$error_text)
|
function get_db_error_text ($db_retval, &$error_text)
|
||||||
{
|
{
|
||||||
if (is_a($db_retval,"OGPDatabase"))
|
if (is_a($db_retval,"GSPDatabase"))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
switch ($db_retval) {
|
switch ($db_retval) {
|
||||||
|
|
@ -248,7 +248,7 @@ function sanitizeInputStr($strToProcess, $removeHTML = true, $trim = true, $remo
|
||||||
|
|
||||||
function startSession(){
|
function startSession(){
|
||||||
if(!isset($_SESSION)){
|
if(!isset($_SESSION)){
|
||||||
session_name("opengamepanel_web");
|
session_name("gameserverpanel_web");
|
||||||
session_start();
|
session_start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -429,9 +429,9 @@ function runPostUpdateOperations(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getOGPGitHubURL($gitHubUsername, $repo){
|
function getGSPGitHubURL($gitHubUsername, $repo){
|
||||||
$OGPGitHub = "https://github.com/OpenGamePanel/";
|
$GSPGitHub = "https://github.com/GameServerPanel/";
|
||||||
$gitHubURL = $OGPGitHub;
|
$gitHubURL = $GSPGitHub;
|
||||||
if(isset($gitHubUsername) && !empty($gitHubUsername)){
|
if(isset($gitHubUsername) && !empty($gitHubUsername)){
|
||||||
$gitHubURL = "https://github.com/" . $gitHubUsername . "/";
|
$gitHubURL = "https://github.com/" . $gitHubUsername . "/";
|
||||||
}
|
}
|
||||||
|
|
@ -442,12 +442,12 @@ function getOGPGitHubURL($gitHubUsername, $repo){
|
||||||
return $gitHubURL;
|
return $gitHubURL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $OGPGitHub;
|
return $GSPGitHub;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getOGPGitHubURLUnstrict($gitHubUsername){
|
function getGSPGitHubURLUnstrict($gitHubUsername){
|
||||||
$OGPGitHub = "https://github.com/OpenGamePanel/";
|
$GSPGitHub = "https://github.com/GameServerPanel/";
|
||||||
$gitHubURL = $OGPGitHub;
|
$gitHubURL = $GSPGitHub;
|
||||||
if(isset($gitHubUsername) && !empty($gitHubUsername)){
|
if(isset($gitHubUsername) && !empty($gitHubUsername)){
|
||||||
$gitHubURL = "https://github.com/" . $gitHubUsername . "/";
|
$gitHubURL = "https://github.com/" . $gitHubUsername . "/";
|
||||||
}
|
}
|
||||||
|
|
@ -459,11 +459,11 @@ function getOGPGitHubURLUnstrict($gitHubUsername){
|
||||||
return $gitHubURL;
|
return $gitHubURL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $OGPGitHub;
|
return $GSPGitHub;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getGitHubOrganization($gitHubURL){
|
function getGitHubOrganization($gitHubURL){
|
||||||
$gitHubOrg = "OpenGamePanel";
|
$gitHubOrg = "GameServerPanel";
|
||||||
$githubCom = "github.com";
|
$githubCom = "github.com";
|
||||||
if(substr($gitHubURL, -1) == "/" && stripos($gitHubURL, $githubCom) !== false){
|
if(substr($gitHubURL, -1) == "/" && stripos($gitHubURL, $githubCom) !== false){
|
||||||
// Get the immediate folder after github.com
|
// Get the immediate folder after github.com
|
||||||
|
|
@ -475,13 +475,13 @@ function getGitHubOrganization($gitHubURL){
|
||||||
return $gitHubOrg;
|
return $gitHubOrg;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getOGPLangConstantsJSON(){
|
function getGSPLangConstantsJSON(){
|
||||||
global $OGPLangPre;
|
global $GSPLangPre;
|
||||||
$finalConsts = array();
|
$finalConsts = array();
|
||||||
|
|
||||||
$consts = get_defined_constants(true);
|
$consts = get_defined_constants(true);
|
||||||
foreach ((array)$consts["user"] as $key => $value){
|
foreach ((array)$consts["user"] as $key => $value){
|
||||||
if(startsWith($key, $OGPLangPre)){
|
if(startsWith($key, $GSPLangPre)){
|
||||||
$finalConsts[$key] = $value;
|
$finalConsts[$key] = $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -36,11 +36,11 @@ function add_lang_module($lang_module)
|
||||||
{
|
{
|
||||||
global $lang_modules;
|
global $lang_modules;
|
||||||
array_push($lang_modules,$lang_module);
|
array_push($lang_modules,$lang_module);
|
||||||
// Need to reload langs if module is added after the first ogpLang call.
|
// Need to reload langs if module is added after the first gspLang call.
|
||||||
ogpLang();
|
gspLang();
|
||||||
}
|
}
|
||||||
|
|
||||||
function ogpLang()
|
function gspLang()
|
||||||
{
|
{
|
||||||
global $lang_modules;
|
global $lang_modules;
|
||||||
$locale_files = makefilelist("lang/", ".|..|.svn", true, "folders");
|
$locale_files = makefilelist("lang/", ".|..|.svn", true, "folders");
|
||||||
|
|
@ -85,7 +85,7 @@ function ogpLang()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ogp_load_english_fallbacks()
|
function gsp_load_english_fallbacks()
|
||||||
{
|
{
|
||||||
static $coreLoaded = false;
|
static $coreLoaded = false;
|
||||||
static $loadedModules = array();
|
static $loadedModules = array();
|
||||||
|
|
@ -100,7 +100,7 @@ function ogp_load_english_fallbacks()
|
||||||
$coreFiles = glob($englishDir . "/*.php");
|
$coreFiles = glob($englishDir . "/*.php");
|
||||||
if (is_array($coreFiles)) {
|
if (is_array($coreFiles)) {
|
||||||
foreach ($coreFiles as $coreFile) {
|
foreach ($coreFiles as $coreFile) {
|
||||||
ogp_include_lang_file_safely($coreFile);
|
gsp_include_lang_file_safely($coreFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$coreLoaded = true;
|
$coreLoaded = true;
|
||||||
|
|
@ -123,13 +123,13 @@ function ogp_load_english_fallbacks()
|
||||||
}
|
}
|
||||||
$moduleFile = $englishDir . "/modules/" . $moduleName . ".php";
|
$moduleFile = $englishDir . "/modules/" . $moduleName . ".php";
|
||||||
if (is_file($moduleFile)) {
|
if (is_file($moduleFile)) {
|
||||||
ogp_include_lang_file_safely($moduleFile);
|
gsp_include_lang_file_safely($moduleFile);
|
||||||
}
|
}
|
||||||
$loadedModules[$moduleName] = true;
|
$loadedModules[$moduleName] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ogp_include_lang_file_safely($filePath)
|
function gsp_include_lang_file_safely($filePath)
|
||||||
{
|
{
|
||||||
set_error_handler(function ($severity, $message) {
|
set_error_handler(function ($severity, $message) {
|
||||||
$isConstantRedefinition = (bool)preg_match('/^Constant\\s+.+\\s+already\\s+defined$/i', trim((string)$message));
|
$isConstantRedefinition = (bool)preg_match('/^Constant\\s+.+\\s+already\\s+defined$/i', trim((string)$message));
|
||||||
|
|
@ -144,20 +144,20 @@ function ogp_include_lang_file_safely($filePath)
|
||||||
|
|
||||||
function get_lang($lang_index)
|
function get_lang($lang_index)
|
||||||
{
|
{
|
||||||
global $OGPLangPre;
|
global $GSPLangPre;
|
||||||
|
|
||||||
if (defined($lang_index))
|
if (defined($lang_index))
|
||||||
{
|
{
|
||||||
return constant($lang_index);
|
return constant($lang_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!startsWith($lang_index, $OGPLangPre)){
|
if(!startsWith($lang_index, $GSPLangPre)){
|
||||||
$newLangIndex = $OGPLangPre . $lang_index;
|
$newLangIndex = $GSPLangPre . $lang_index;
|
||||||
if (defined($newLangIndex))
|
if (defined($newLangIndex))
|
||||||
{
|
{
|
||||||
return constant($newLangIndex);
|
return constant($newLangIndex);
|
||||||
}
|
}
|
||||||
ogp_load_english_fallbacks();
|
gsp_load_english_fallbacks();
|
||||||
if (defined($newLangIndex))
|
if (defined($newLangIndex))
|
||||||
{
|
{
|
||||||
return constant($newLangIndex);
|
return constant($newLangIndex);
|
||||||
|
|
@ -165,7 +165,7 @@ function get_lang($lang_index)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ogp_load_english_fallbacks();
|
gsp_load_english_fallbacks();
|
||||||
if (defined($lang_index))
|
if (defined($lang_index))
|
||||||
{
|
{
|
||||||
return constant($lang_index);
|
return constant($lang_index);
|
||||||
|
|
@ -178,7 +178,7 @@ function get_lang($lang_index)
|
||||||
|
|
||||||
function get_lang_f()
|
function get_lang_f()
|
||||||
{
|
{
|
||||||
global $OGPLangPre;
|
global $GSPLangPre;
|
||||||
$args = func_get_args();
|
$args = func_get_args();
|
||||||
$lang_index = array_shift($args);
|
$lang_index = array_shift($args);
|
||||||
|
|
||||||
|
|
@ -187,13 +187,13 @@ function get_lang_f()
|
||||||
return vsprintf(constant($lang_index),$args);
|
return vsprintf(constant($lang_index),$args);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!startsWith($lang_index, $OGPLangPre)){
|
if(!startsWith($lang_index, $GSPLangPre)){
|
||||||
$newLangIndex = $OGPLangPre . $lang_index;
|
$newLangIndex = $GSPLangPre . $lang_index;
|
||||||
if (defined($newLangIndex))
|
if (defined($newLangIndex))
|
||||||
{
|
{
|
||||||
return vsprintf(constant($newLangIndex),$args);
|
return vsprintf(constant($newLangIndex),$args);
|
||||||
}
|
}
|
||||||
ogp_load_english_fallbacks();
|
gsp_load_english_fallbacks();
|
||||||
if (defined($newLangIndex))
|
if (defined($newLangIndex))
|
||||||
{
|
{
|
||||||
return vsprintf(constant($newLangIndex),$args);
|
return vsprintf(constant($newLangIndex),$args);
|
||||||
|
|
@ -201,7 +201,7 @@ function get_lang_f()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ogp_load_english_fallbacks();
|
gsp_load_english_fallbacks();
|
||||||
if (defined($lang_index))
|
if (defined($lang_index))
|
||||||
{
|
{
|
||||||
return vsprintf(constant($lang_index),$args);
|
return vsprintf(constant($lang_index),$args);
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -43,12 +43,12 @@ if (!defined('GSP_XMLRPC_READY')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Screen type for servers
|
// Screen type for servers
|
||||||
define("OGP_SCREEN_TYPE_HOME","HOME");
|
define("GSP_SCREEN_TYPE_HOME","HOME");
|
||||||
define("OGP_SCREEN_TYPE_UPDATE","UPDATE");
|
define("GSP_SCREEN_TYPE_UPDATE","UPDATE");
|
||||||
|
|
||||||
define("AGENT_ERROR_NOT_EXECUTABLE",-13);
|
define("AGENT_ERROR_NOT_EXECUTABLE",-13);
|
||||||
|
|
||||||
class OGPRemoteLibrary
|
class GSPRemoteLibrary
|
||||||
{
|
{
|
||||||
private $port;
|
private $port;
|
||||||
private $host;
|
private $host;
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -97,13 +97,13 @@ function navigation() {
|
||||||
|
|
||||||
include_once( $include_file );
|
include_once( $include_file );
|
||||||
|
|
||||||
if ( !function_exists( 'exec_ogp_module' ) )
|
if ( !function_exists( 'exec_gsp_module' ) )
|
||||||
{
|
{
|
||||||
print_failure("Missing module execute function.");
|
print_failure("Missing module execute function.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
exec_ogp_module();
|
exec_gsp_module();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
print_failure("Invalid subpage given.");
|
print_failure("Invalid subpage given.");
|
||||||
|
|
@ -113,12 +113,12 @@ function navigation() {
|
||||||
else if ( is_file( MODULES.$_REQUEST['m'].'/'.$_REQUEST['m'].'.php') )
|
else if ( is_file( MODULES.$_REQUEST['m'].'/'.$_REQUEST['m'].'.php') )
|
||||||
{
|
{
|
||||||
include( MODULES.$_REQUEST['m'].'/'.$_REQUEST['m'].'.php');
|
include( MODULES.$_REQUEST['m'].'/'.$_REQUEST['m'].'.php');
|
||||||
if ( !function_exists( 'exec_ogp_module' ) )
|
if ( !function_exists( 'exec_gsp_module' ) )
|
||||||
{
|
{
|
||||||
print_failure("Missing module execute function.");
|
print_failure("Missing module execute function.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
exec_ogp_module();
|
exec_gsp_module();
|
||||||
}
|
}
|
||||||
// If files above are not found then we print an error.
|
// If files above are not found then we print an error.
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
# Open Game Panel refreshed Class
|
# GameServer Panel refreshed Class
|
||||||
# Wrote by: Nirock
|
# Wrote by: Nirock
|
||||||
# Sample Setup:
|
# Sample Setup:
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -24,10 +24,10 @@
|
||||||
|
|
||||||
define("DEFAULT_REFRESH_TIME","2");
|
define("DEFAULT_REFRESH_TIME","2");
|
||||||
|
|
||||||
class OGPView {
|
class GSPView {
|
||||||
|
|
||||||
private string $meta = '';
|
private string $meta = '';
|
||||||
private string $title = 'Open Game Panel';
|
private string $title = 'GameServer Panel';
|
||||||
private string $header_code = '';
|
private string $header_code = '';
|
||||||
|
|
||||||
private $refreshTime;
|
private $refreshTime;
|
||||||
|
|
@ -50,9 +50,9 @@ class OGPView {
|
||||||
function menu(){}
|
function menu(){}
|
||||||
|
|
||||||
function printView($cleared = false, $dataType = "html") {
|
function printView($cleared = false, $dataType = "html") {
|
||||||
global $db, $OGPLangPre;
|
global $db, $GSPLangPre;
|
||||||
|
|
||||||
if ( is_object($db) && array_key_exists( "OGPDatabase", class_parents($db) ) ) {
|
if ( is_object($db) && array_key_exists( "GSPDatabase", class_parents($db) ) ) {
|
||||||
$panel_settings = $db->getSettings();
|
$panel_settings = $db->getSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -101,9 +101,9 @@ class OGPView {
|
||||||
$this->title = $title == "" ? $this->title : $this->title . " [$title]";
|
$this->title = $title == "" ? $this->title : $this->title . " [$title]";
|
||||||
|
|
||||||
// Dump defined constants to json (for language javascript)
|
// Dump defined constants to json (for language javascript)
|
||||||
$jsonStrConsts = getOGPLangConstantsJSON();
|
$jsonStrConsts = getGSPLangConstantsJSON();
|
||||||
if($jsonStrConsts !== false){
|
if($jsonStrConsts !== false){
|
||||||
$this->header_code .= '<script type="text/javascript">var langConsts = ' . $jsonStrConsts . ';' . "\n" . 'var langConstPrefix = "' . $OGPLangPre . '";</script>' . "\n";
|
$this->header_code .= '<script type="text/javascript">var langConsts = ' . $jsonStrConsts . ';' . "\n" . 'var langConstPrefix = "' . $GSPLangPre . '";</script>' . "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Include jQuery, jQuery UI, and our global CSS file in the header code
|
// Include jQuery, jQuery UI, and our global CSS file in the header code
|
||||||
|
|
@ -131,7 +131,7 @@ class OGPView {
|
||||||
$javascript .= '</script>' . "\n";
|
$javascript .= '</script>' . "\n";
|
||||||
|
|
||||||
// Include global JS for modules
|
// Include global JS for modules
|
||||||
if(is_object($db) && array_key_exists("OGPDatabase", class_parents($db))){
|
if(is_object($db) && array_key_exists("GSPDatabase", class_parents($db))){
|
||||||
foreach($db->getInstalledModules() as $m)
|
foreach($db->getInstalledModules() as $m)
|
||||||
{
|
{
|
||||||
$global_js_file = 'js/' . MODULES . "{$m['folder']}_global.js";
|
$global_js_file = 'js/' . MODULES . "{$m['folder']}_global.js";
|
||||||
|
|
@ -215,14 +215,14 @@ class OGPView {
|
||||||
|
|
||||||
$footer = "";
|
$footer = "";
|
||||||
|
|
||||||
if ( is_object($db) && array_key_exists( "OGPDatabase", class_parents($db) ) ) {
|
if ( is_object($db) && array_key_exists( "GSPDatabase", class_parents($db) ) ) {
|
||||||
$footer .= "<div class=\"footer center\">";
|
$footer .= "<div class=\"footer center\">";
|
||||||
$footer .= get_lang_f('cur_theme', !empty($_SESSION['users_theme']) ? $_SESSION['users_theme'] : @$panel_settings['theme']) . " - " . $db->getNbOfQueries()." ".get_lang('queries_executed');
|
$footer .= get_lang_f('cur_theme', !empty($_SESSION['users_theme']) ? $_SESSION['users_theme'] : @$panel_settings['theme']) . " - " . $db->getNbOfQueries()." ".get_lang('queries_executed');
|
||||||
$footer .= "<br />".get_lang('copyright')." © <a href=\"http://www.opengamepanel.org\">Open Game Panel</a> " . date("Y") . " - ".get_lang('all_rights_reserved')." - <span class='versionInfo'>".get_lang('show_version')."</span><br /><div class='inline-block OGPVersionArea'><span class='version hide'>" . get_lang('version') . ":</span> <span class='hide versionNumber'>".@$panel_settings['ogp_version']."</span> <span class='copyVersionResult' lang='" . get_lang('copied') . "'></span></div></div>";
|
$footer .= "<br />".get_lang('copyright')." © <a href=\"\">GameServer Panel</a> " . date("Y") . " - ".get_lang('all_rights_reserved')." - <span class='versionInfo'>".get_lang('show_version')."</span><br /><div class='inline-block GSPVersionArea'><span class='version hide'>" . get_lang('version') . ":</span> <span class='hide versionNumber'>".@$panel_settings['gsp_version']."</span> <span class='copyVersionResult' lang='" . get_lang('copied') . "'></span></div></div>";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$footer .= "<div class='footer center'>".get_lang('copyright')." © <a href=\"http://www.opengamepanel.org\">Open Game Panel</a> " . date("Y") . " - ".get_lang('all_rights_reserved').".</div>";
|
$footer .= "<div class='footer center'>".get_lang('copyright')." © <a href=\"\">GameServer Panel</a> " . date("Y") . " - ".get_lang('all_rights_reserved').".</div>";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add our magnific popup holder to the page (hidden element):
|
// Add our magnific popup holder to the page (hidden element):
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -36,7 +36,7 @@ require_once("includes/functions.php");
|
||||||
require_once("includes/helpers.php");
|
require_once("includes/helpers.php");
|
||||||
require_once("includes/html_functions.php");
|
require_once("includes/html_functions.php");
|
||||||
|
|
||||||
// Start the session valid for opengamepanel_web only
|
// Start the session valid for gameserverpanel_web only
|
||||||
startSession();
|
startSession();
|
||||||
|
|
||||||
// Useful for debugging :)
|
// Useful for debugging :)
|
||||||
|
|
@ -61,8 +61,8 @@ $db = createDatabaseConnection($db_type, $db_host, $db_user, $db_pass, $db_name,
|
||||||
// Load languages.
|
// Load languages.
|
||||||
include_once("includes/lang.php");
|
include_once("includes/lang.php");
|
||||||
|
|
||||||
if (!$db instanceof OGPDatabase) {
|
if (!$db instanceof GSPDatabase) {
|
||||||
ogpLang();
|
gspLang();
|
||||||
die(get_lang('no_db_connection'));
|
die(get_lang('no_db_connection'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -73,10 +73,10 @@ if(hasValue($_SESSION['user_id'])){
|
||||||
|
|
||||||
$settings = $db->getSettings();
|
$settings = $db->getSettings();
|
||||||
@$GLOBALS['panel_language'] = $settings['panel_language'];
|
@$GLOBALS['panel_language'] = $settings['panel_language'];
|
||||||
ogpLang();
|
gspLang();
|
||||||
|
|
||||||
require_once("includes/view.php");
|
require_once("includes/view.php");
|
||||||
$view = new OGPView();
|
$view = new GSPView();
|
||||||
$view->setCharset( get_lang('lang_charset') );
|
$view->setCharset( get_lang('lang_charset') );
|
||||||
if(isset($_GET['type']) && $_GET['type'] == 'cleared')
|
if(isset($_GET['type']) && $_GET['type'] == 'cleared')
|
||||||
{
|
{
|
||||||
|
|
@ -85,7 +85,7 @@ if(isset($_GET['type']) && $_GET['type'] == 'cleared')
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ogpHome();
|
gspHome();
|
||||||
$view->printView();
|
$view->printView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -111,7 +111,7 @@ function heading()
|
||||||
{
|
{
|
||||||
echo "<h2>".$settings['maintenance_title']."</h2>";
|
echo "<h2>".$settings['maintenance_title']."</h2>";
|
||||||
echo "<p>".$settings['maintenance_message']."</p>";
|
echo "<p>".$settings['maintenance_message']."</p>";
|
||||||
$view->setTitle("OGP: Maintenance.");
|
$view->setTitle("GSP: Maintenance.");
|
||||||
echo "<p class='failure'>". get_lang("logging_out_10") ."...</p>";
|
echo "<p class='failure'>". get_lang("logging_out_10") ."...</p>";
|
||||||
$view->refresh("index.php", 10);
|
$view->refresh("index.php", 10);
|
||||||
session_destroy();
|
session_destroy();
|
||||||
|
|
@ -122,7 +122,7 @@ function heading()
|
||||||
if(isset($maintenance))echo $maintenance;
|
if(isset($maintenance))echo $maintenance;
|
||||||
}
|
}
|
||||||
|
|
||||||
function ogpHome()
|
function gspHome()
|
||||||
{
|
{
|
||||||
global $db,$view,$settings;
|
global $db,$view,$settings;
|
||||||
|
|
||||||
|
|
@ -222,10 +222,10 @@ function ogpHome()
|
||||||
{
|
{
|
||||||
$client_ip = getClientIPAddress();
|
$client_ip = getClientIPAddress();
|
||||||
|
|
||||||
$ban_list = $db->resultQuery("SHOW TABLES LIKE 'OGP_DB_PREFIXban_list';");
|
$ban_list = $db->resultQuery("SHOW TABLES LIKE 'GSP_DB_PREFIXban_list';");
|
||||||
if ( empty( $ban_list ) )
|
if ( empty( $ban_list ) )
|
||||||
{
|
{
|
||||||
$db->query("CREATE TABLE IF NOT EXISTS `OGP_DB_PREFIXban_list` (
|
$db->query("CREATE TABLE IF NOT EXISTS `GSP_DB_PREFIXban_list` (
|
||||||
`client_ip` varchar(255) NOT NULL,
|
`client_ip` varchar(255) NOT NULL,
|
||||||
`logging_attempts` int(11) NOT NULL DEFAULT '0',
|
`logging_attempts` int(11) NOT NULL DEFAULT '0',
|
||||||
`banned_until` varchar(16) NOT NULL DEFAULT '0',
|
`banned_until` varchar(16) NOT NULL DEFAULT '0',
|
||||||
|
|
@ -233,12 +233,12 @@ function ogpHome()
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
|
||||||
}
|
}
|
||||||
|
|
||||||
$banlist_info = $db->resultQuery("SELECT logging_attempts, banned_until FROM `OGP_DB_PREFIXban_list` WHERE client_ip='".$client_ip."';");
|
$banlist_info = $db->resultQuery("SELECT logging_attempts, banned_until FROM `GSP_DB_PREFIXban_list` WHERE client_ip='".$client_ip."';");
|
||||||
$login_attempts = !$banlist_info ? 0 : $banlist_info['0']['logging_attempts'];
|
$login_attempts = !$banlist_info ? 0 : $banlist_info['0']['logging_attempts'];
|
||||||
|
|
||||||
if( $banlist_info AND $banlist_info['0']['banned_until'] > 0 AND $banlist_info['0']['banned_until'] <= time() )
|
if( $banlist_info AND $banlist_info['0']['banned_until'] > 0 AND $banlist_info['0']['banned_until'] <= time() )
|
||||||
{
|
{
|
||||||
$db->query("DELETE FROM `OGP_DB_PREFIXban_list` WHERE client_ip='$client_ip';");
|
$db->query("DELETE FROM `GSP_DB_PREFIXban_list` WHERE client_ip='$client_ip';");
|
||||||
$login_attempts = 0;
|
$login_attempts = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -283,7 +283,7 @@ function ogpHome()
|
||||||
$_SESSION['users_api_key'] = $db->getApiToken($userInfo['user_id']);
|
$_SESSION['users_api_key'] = $db->getApiToken($userInfo['user_id']);
|
||||||
print_success( get_lang("logging_in") ."...");
|
print_success( get_lang("logging_in") ."...");
|
||||||
$db->logger( get_lang("logging_in") ."...");
|
$db->logger( get_lang("logging_in") ."...");
|
||||||
$db->query("DELETE FROM `OGP_DB_PREFIXban_list` WHERE client_ip='$client_ip';");
|
$db->query("DELETE FROM `GSP_DB_PREFIXban_list` WHERE client_ip='$client_ip';");
|
||||||
$view->refresh("home.php?$default_page",2);
|
$view->refresh("home.php?$default_page",2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -295,19 +295,19 @@ function ogpHome()
|
||||||
$banned_until = time() + (array_key_exists("login_ban_time", (array)$settings) && !empty($settings["login_ban_time"]) && is_numeric($settings["login_ban_time"]) ? $settings["login_ban_time"] : 300); // Five minutes or user defined setting.
|
$banned_until = time() + (array_key_exists("login_ban_time", (array)$settings) && !empty($settings["login_ban_time"]) && is_numeric($settings["login_ban_time"]) ? $settings["login_ban_time"] : 300); // Five minutes or user defined setting.
|
||||||
|
|
||||||
if( !$banlist_info )
|
if( !$banlist_info )
|
||||||
$db->query("INSERT INTO `OGP_DB_PREFIXban_list` (`client_ip`) VALUES('$client_ip');");
|
$db->query("INSERT INTO `GSP_DB_PREFIXban_list` (`client_ip`) VALUES('$client_ip');");
|
||||||
|
|
||||||
$db->logger( get_lang("bad_login") . " ( Banned until " . date("r", is_numeric($banned_until) ? (int)$banned_until : strtotime($banned_until)) . " ) [ " . get_lang("login") . ": " . sanitizeInputStr($_POST["ulogin"]) . ", " . get_lang("password") . ": ******** ]" );
|
$db->logger( get_lang("bad_login") . " ( Banned until " . date("r", is_numeric($banned_until) ? (int)$banned_until : strtotime($banned_until)) . " ) [ " . get_lang("login") . ": " . sanitizeInputStr($_POST["ulogin"]) . ", " . get_lang("password") . ": ******** ]" );
|
||||||
$db->query("UPDATE `OGP_DB_PREFIXban_list` SET logging_attempts='$login_attempts', banned_until='$banned_until' WHERE client_ip='$client_ip';");
|
$db->query("UPDATE `GSP_DB_PREFIXban_list` SET logging_attempts='$login_attempts', banned_until='$banned_until' WHERE client_ip='$client_ip';");
|
||||||
print_failure("Banned until " . date("r", is_numeric($banned_until) ? (int)$banned_until : strtotime($banned_until)));
|
print_failure("Banned until " . date("r", is_numeric($banned_until) ? (int)$banned_until : strtotime($banned_until)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( !$banlist_info )
|
if( !$banlist_info )
|
||||||
$db->query("INSERT INTO `OGP_DB_PREFIXban_list` (`client_ip`) VALUES('$client_ip');");
|
$db->query("INSERT INTO `GSP_DB_PREFIXban_list` (`client_ip`) VALUES('$client_ip');");
|
||||||
|
|
||||||
$db->logger( get_lang("bad_login") . " ( $login_attempts ) [ " . get_lang("login") . ": " . sanitizeInputStr($_POST["ulogin"]) . ", " . get_lang("password") . ": ******** ]" );
|
$db->logger( get_lang("bad_login") . " ( $login_attempts ) [ " . get_lang("login") . ": " . sanitizeInputStr($_POST["ulogin"]) . ", " . get_lang("password") . ": ******** ]" );
|
||||||
$db->query("UPDATE `OGP_DB_PREFIXban_list` SET logging_attempts='$login_attempts' WHERE client_ip='$client_ip';");
|
$db->query("UPDATE `GSP_DB_PREFIXban_list` SET logging_attempts='$login_attempts' WHERE client_ip='$client_ip';");
|
||||||
$view->refresh("index.php",2);
|
$view->refresh("index.php",2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -37,7 +37,7 @@ require_once("includes/functions.php");
|
||||||
require_once("includes/helpers.php");
|
require_once("includes/helpers.php");
|
||||||
require_once("includes/html_functions.php");
|
require_once("includes/html_functions.php");
|
||||||
|
|
||||||
// Start the session valid for opengamepanel_web only
|
// Start the session valid for gameserverpanel_web only
|
||||||
startSession();
|
startSession();
|
||||||
|
|
||||||
// Useful for debugging :)
|
// Useful for debugging :)
|
||||||
|
|
@ -62,8 +62,8 @@ $db = createDatabaseConnection($db_type, $db_host, $db_user, $db_pass, $db_name,
|
||||||
// Load languages.
|
// Load languages.
|
||||||
include_once("includes/lang.php");
|
include_once("includes/lang.php");
|
||||||
|
|
||||||
if (!$db instanceof OGPDatabase) {
|
if (!$db instanceof GSPDatabase) {
|
||||||
ogpLang();
|
gspLang();
|
||||||
die(get_lang('no_db_connection'));
|
die(get_lang('no_db_connection'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -76,7 +76,7 @@ if(hasValue($sessionUserId)){
|
||||||
|
|
||||||
$settings = $db->getSettings();
|
$settings = $db->getSettings();
|
||||||
@$GLOBALS['panel_language'] = $settings['panel_language'];
|
@$GLOBALS['panel_language'] = $settings['panel_language'];
|
||||||
ogpLang();
|
gspLang();
|
||||||
|
|
||||||
// Apply debug level from panel settings (overrides the DEBUG_LEVEL constant)
|
// Apply debug level from panel settings (overrides the DEBUG_LEVEL constant)
|
||||||
if (defined('DEBUG_MODE') && DEBUG_MODE && function_exists('gsp_apply_debug_level')) {
|
if (defined('DEBUG_MODE') && DEBUG_MODE && function_exists('gsp_apply_debug_level')) {
|
||||||
|
|
@ -84,7 +84,7 @@ if (defined('DEBUG_MODE') && DEBUG_MODE && function_exists('gsp_apply_debug_leve
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once("includes/view.php");
|
require_once("includes/view.php");
|
||||||
$view = new OGPView();
|
$view = new GSPView();
|
||||||
$view->setCharset( get_lang('lang_charset') );
|
$view->setCharset( get_lang('lang_charset') );
|
||||||
if(isset($_GET['type']) && $_GET['type'] == 'cleared')
|
if(isset($_GET['type']) && $_GET['type'] == 'cleared')
|
||||||
{
|
{
|
||||||
|
|
@ -93,7 +93,7 @@ if(isset($_GET['type']) && $_GET['type'] == 'cleared')
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ogpHome();
|
gspHome();
|
||||||
$view->printView();
|
$view->printView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -119,7 +119,7 @@ function heading()
|
||||||
{
|
{
|
||||||
echo "<h2>".$settings['maintenance_title']."</h2>";
|
echo "<h2>".$settings['maintenance_title']."</h2>";
|
||||||
echo "<p>".$settings['maintenance_message']."</p>";
|
echo "<p>".$settings['maintenance_message']."</p>";
|
||||||
$view->setTitle("OGP: Maintenance.");
|
$view->setTitle("GSP: Maintenance.");
|
||||||
echo "<p class='failure'>". get_lang("logging_out_10") ."...</p>";
|
echo "<p class='failure'>". get_lang("logging_out_10") ."...</p>";
|
||||||
$view->refresh("index.php", 10);
|
$view->refresh("index.php", 10);
|
||||||
session_destroy();
|
session_destroy();
|
||||||
|
|
@ -130,7 +130,7 @@ function heading()
|
||||||
if(isset($maintenance))echo $maintenance;
|
if(isset($maintenance))echo $maintenance;
|
||||||
}
|
}
|
||||||
|
|
||||||
function ogpHome()
|
function gspHome()
|
||||||
{
|
{
|
||||||
global $db,$view,$settings;
|
global $db,$view,$settings;
|
||||||
|
|
||||||
|
|
@ -241,10 +241,10 @@ function ogpHome()
|
||||||
{
|
{
|
||||||
$client_ip = getClientIPAddress();
|
$client_ip = getClientIPAddress();
|
||||||
|
|
||||||
$ban_list = $db->resultQuery("SHOW TABLES LIKE 'OGP_DB_PREFIXban_list';");
|
$ban_list = $db->resultQuery("SHOW TABLES LIKE 'GSP_DB_PREFIXban_list';");
|
||||||
if ( empty( $ban_list ) )
|
if ( empty( $ban_list ) )
|
||||||
{
|
{
|
||||||
$db->query("CREATE TABLE IF NOT EXISTS `OGP_DB_PREFIXban_list` (
|
$db->query("CREATE TABLE IF NOT EXISTS `GSP_DB_PREFIXban_list` (
|
||||||
`client_ip` varchar(255) NOT NULL,
|
`client_ip` varchar(255) NOT NULL,
|
||||||
`logging_attempts` int(11) NOT NULL DEFAULT '0',
|
`logging_attempts` int(11) NOT NULL DEFAULT '0',
|
||||||
`banned_until` varchar(16) NOT NULL DEFAULT '0',
|
`banned_until` varchar(16) NOT NULL DEFAULT '0',
|
||||||
|
|
@ -252,12 +252,12 @@ function ogpHome()
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
|
||||||
}
|
}
|
||||||
|
|
||||||
$banlist_info = $db->resultQuery("SELECT logging_attempts, banned_until FROM `OGP_DB_PREFIXban_list` WHERE client_ip='".$client_ip."';");
|
$banlist_info = $db->resultQuery("SELECT logging_attempts, banned_until FROM `GSP_DB_PREFIXban_list` WHERE client_ip='".$client_ip."';");
|
||||||
$login_attempts = !$banlist_info ? 0 : $banlist_info['0']['logging_attempts'];
|
$login_attempts = !$banlist_info ? 0 : $banlist_info['0']['logging_attempts'];
|
||||||
|
|
||||||
if( $banlist_info AND $banlist_info['0']['banned_until'] > 0 AND $banlist_info['0']['banned_until'] <= time() )
|
if( $banlist_info AND $banlist_info['0']['banned_until'] > 0 AND $banlist_info['0']['banned_until'] <= time() )
|
||||||
{
|
{
|
||||||
$db->query("DELETE FROM `OGP_DB_PREFIXban_list` WHERE client_ip='$client_ip';");
|
$db->query("DELETE FROM `GSP_DB_PREFIXban_list` WHERE client_ip='$client_ip';");
|
||||||
$login_attempts = 0;
|
$login_attempts = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -320,7 +320,7 @@ function ogpHome()
|
||||||
register_log_event('login_succeeded', array('username' => $userInfo['users_login'], 'user_id' => $userInfo['user_id']));
|
register_log_event('login_succeeded', array('username' => $userInfo['users_login'], 'user_id' => $userInfo['user_id']));
|
||||||
print_success( get_lang("logging_in") ."...");
|
print_success( get_lang("logging_in") ."...");
|
||||||
$db->logger( get_lang("logging_in") ."...");
|
$db->logger( get_lang("logging_in") ."...");
|
||||||
$db->query("DELETE FROM `OGP_DB_PREFIXban_list` WHERE client_ip='$client_ip';");
|
$db->query("DELETE FROM `GSP_DB_PREFIXban_list` WHERE client_ip='$client_ip';");
|
||||||
$view->refresh("home.php?$default_page",2);
|
$view->refresh("home.php?$default_page",2);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -336,26 +336,26 @@ function ogpHome()
|
||||||
$banned_until = time() + (array_key_exists("login_ban_time", (array)$settings) && !empty($settings["login_ban_time"]) && is_numeric($settings["login_ban_time"]) ? $settings["login_ban_time"] : 300); // Five minutes or user defined setting.
|
$banned_until = time() + (array_key_exists("login_ban_time", (array)$settings) && !empty($settings["login_ban_time"]) && is_numeric($settings["login_ban_time"]) ? $settings["login_ban_time"] : 300); // Five minutes or user defined setting.
|
||||||
|
|
||||||
if( !$banlist_info )
|
if( !$banlist_info )
|
||||||
$db->query("INSERT INTO `OGP_DB_PREFIXban_list` (`client_ip`) VALUES('$client_ip');");
|
$db->query("INSERT INTO `GSP_DB_PREFIXban_list` (`client_ip`) VALUES('$client_ip');");
|
||||||
|
|
||||||
$db->logger( get_lang("bad_login") . " ( Banned until " . date("r", is_numeric($banned_until) ? (int)$banned_until : strtotime($banned_until)) . " ) [ login: $_POST[ulogin], password: ******** ]" );
|
$db->logger( get_lang("bad_login") . " ( Banned until " . date("r", is_numeric($banned_until) ? (int)$banned_until : strtotime($banned_until)) . " ) [ login: $_POST[ulogin], password: ******** ]" );
|
||||||
$db->query("UPDATE `OGP_DB_PREFIXban_list` SET logging_attempts='$login_attempts', banned_until='$banned_until' WHERE client_ip='$client_ip';");
|
$db->query("UPDATE `GSP_DB_PREFIXban_list` SET logging_attempts='$login_attempts', banned_until='$banned_until' WHERE client_ip='$client_ip';");
|
||||||
print_failure("Banned until " . date("r", is_numeric($banned_until) ? (int)$banned_until : strtotime($banned_until)));
|
print_failure("Banned until " . date("r", is_numeric($banned_until) ? (int)$banned_until : strtotime($banned_until)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( !$banlist_info )
|
if( !$banlist_info )
|
||||||
$db->query("INSERT INTO `OGP_DB_PREFIXban_list` (`client_ip`) VALUES('$client_ip');");
|
$db->query("INSERT INTO `GSP_DB_PREFIXban_list` (`client_ip`) VALUES('$client_ip');");
|
||||||
|
|
||||||
$db->logger( get_lang("bad_login") . " ( $login_attempts ) [ login: $_POST[ulogin], password: ******** ]" );
|
$db->logger( get_lang("bad_login") . " ( $login_attempts ) [ login: $_POST[ulogin], password: ******** ]" );
|
||||||
$db->query("UPDATE `OGP_DB_PREFIXban_list` SET logging_attempts='$login_attempts' WHERE client_ip='$client_ip';");
|
$db->query("UPDATE `GSP_DB_PREFIXban_list` SET logging_attempts='$login_attempts' WHERE client_ip='$client_ip';");
|
||||||
$view->refresh("index.php",2);
|
$view->refresh("index.php",2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//ADD USERS IN BANNED GROUP TO BAN TABLE
|
//ADD USERS IN BANNED GROUP TO BAN TABLE
|
||||||
if($userInfo['users_role'] == "banned")
|
if($userInfo['users_role'] == "banned")
|
||||||
{
|
{
|
||||||
$db->query("INSERT INTO `OGP_DB_PREFIXban_list` (`client_ip`,`logging_attempts`) VALUES('$client_ip','-1');");
|
$db->query("INSERT INTO `GSP_DB_PREFIXban_list` (`client_ip`,`logging_attempts`) VALUES('$client_ip','-1');");
|
||||||
$db->logger("BANNED: Added IP ".$client_ip." to ban table of banned user " . $_POST[ulogin]);
|
$db->logger("BANNED: Added IP ".$client_ip." to ban table of banned user " . $_POST[ulogin]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* GSP - Game Server Panel (WDS)
|
* GSP - Game Server Panel (WDS)
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
* GSP customizations (C) WDS / GameServerPanel
|
* GSP customizations (C) WDS / GameServerPanel
|
||||||
*
|
*
|
||||||
* GSP is a heavily customized fork of OGP maintained by WDS.
|
* GSP is a heavily customized fork of GSP maintained by WDS.
|
||||||
* https://github.com/GameServerPanel/GSP
|
* https://github.com/GameServerPanel/GSP
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -45,9 +45,9 @@ require_once("includes/view.php");
|
||||||
require_once("includes/lang.php");
|
require_once("includes/lang.php");
|
||||||
require_once("includes/html_functions.php");
|
require_once("includes/html_functions.php");
|
||||||
require_once("includes/functions.php");
|
require_once("includes/functions.php");
|
||||||
ogpLang();
|
gspLang();
|
||||||
|
|
||||||
$view = new OGPView();
|
$view = new GSPView();
|
||||||
$view->setCharset(get_lang('lang_charset'));
|
$view->setCharset(get_lang('lang_charset'));
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
@ -123,11 +123,11 @@ function install() {
|
||||||
echo "<div id=\"install-title\">GSP / WDS Panel Installer</div>";
|
echo "<div id=\"install-title\">GSP / WDS Panel Installer</div>";
|
||||||
echo "<p>Welcome to the <strong>GSP (Game Server Panel)</strong> installer, maintained by WDS.</p>";
|
echo "<p>Welcome to the <strong>GSP (Game Server Panel)</strong> installer, maintained by WDS.</p>";
|
||||||
echo "<p style='margin:8px 0;'><a href='check.php' style='background:#1565c0;color:#fff;padding:6px 14px;border-radius:5px;text-decoration:none;font-weight:bold;'>🔍 Run Dependency Check</a></p>";
|
echo "<p style='margin:8px 0;'><a href='check.php' style='background:#1565c0;color:#fff;padding:6px 14px;border-radius:5px;text-decoration:none;font-weight:bold;'>🔍 Run Dependency Check</a></p>";
|
||||||
echo "<p>GSP is a heavily customized fork of OGP. This installer will:</p>";
|
echo "<p>GSP is a heavily customized fork of GSP. This installer will:</p>";
|
||||||
echo "<ul>
|
echo "<ul>
|
||||||
<li>Write <code>includes/config.inc.php</code> with your database credentials.</li>
|
<li>Write <code>includes/config.inc.php</code> with your database credentials.</li>
|
||||||
<li>Back up any existing database before reinstalling.</li>
|
<li>Back up any existing database before reinstalling.</li>
|
||||||
<li>Optionally migrate any existing <code>ogp_</code> tables to your chosen prefix.</li>
|
<li>Optionally migrate any existing <code>gsp_</code> tables to your chosen prefix.</li>
|
||||||
<li>Install all modules found in the <code>modules/</code> directory.</li>
|
<li>Install all modules found in the <code>modules/</code> directory.</li>
|
||||||
<li>Create a default admin account (<em>admin / admin</em>) if none exists.</li>
|
<li>Create a default admin account (<em>admin / admin</em>) if none exists.</li>
|
||||||
</ul>";
|
</ul>";
|
||||||
|
|
@ -255,7 +255,7 @@ function install() {
|
||||||
// --- Detect existing database and back it up before reinstall ---
|
// --- Detect existing database and back it up before reinstall ---
|
||||||
gsp_backup_existing_db($db, $db_host, $db_user, $db_pass, $db_name, $db_port);
|
gsp_backup_existing_db($db, $db_host, $db_user, $db_pass, $db_name, $db_port);
|
||||||
|
|
||||||
// --- Optional ogp_ → gsp_ migration ---
|
// --- Optional gsp_ → gsp_ migration ---
|
||||||
gsp_migrate_tables($db, $table_prefix);
|
gsp_migrate_tables($db, $table_prefix);
|
||||||
|
|
||||||
// --- Create base module management tables ---
|
// --- Create base module management tables ---
|
||||||
|
|
@ -300,7 +300,7 @@ function install() {
|
||||||
$site_settings = array(
|
$site_settings = array(
|
||||||
"title" => "GSP - Game Server Panel",
|
"title" => "GSP - Game Server Panel",
|
||||||
"slogan" => get_lang('slogan'),
|
"slogan" => get_lang('slogan'),
|
||||||
"ogp_version" => "0",
|
"gsp_version" => "0",
|
||||||
"version_type" => "GSP",
|
"version_type" => "GSP",
|
||||||
"theme" => "Revolution",
|
"theme" => "Revolution",
|
||||||
"welcome_title" => "1",
|
"welcome_title" => "1",
|
||||||
|
|
@ -361,29 +361,29 @@ function gsp_install_module($db, $module) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Optional ogp_ → configured-prefix migration.
|
* Optional gsp_ → configured-prefix migration.
|
||||||
*
|
*
|
||||||
* Rules:
|
* Rules:
|
||||||
* - If a table named ogp_X exists AND the corresponding prefix_X does NOT
|
* - If a table named gsp_X exists AND the corresponding prefix_X does NOT
|
||||||
* exist, rename ogp_X -> prefix_X.
|
* exist, rename gsp_X -> prefix_X.
|
||||||
* - If prefix_X already exists, skip that table (never fail).
|
* - If prefix_X already exists, skip that table (never fail).
|
||||||
* - If no ogp_ tables exist at all, do nothing.
|
* - If no gsp_ tables exist at all, do nothing.
|
||||||
*/
|
*/
|
||||||
function gsp_migrate_tables($db, $table_prefix) {
|
function gsp_migrate_tables($db, $table_prefix) {
|
||||||
if ($table_prefix === 'ogp_') {
|
if ($table_prefix === 'gsp_') {
|
||||||
// Already using ogp_ prefix – nothing to migrate.
|
// Already using gsp_ prefix – nothing to migrate.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fetch all tables starting with ogp_
|
// Fetch all tables starting with gsp_
|
||||||
$rows = $db->resultQuery("SHOW TABLES LIKE 'ogp\\_%'");
|
$rows = $db->resultQuery("SHOW TABLES LIKE 'gsp\\_%'");
|
||||||
if (!$rows || !is_array($rows)) return;
|
if (!$rows || !is_array($rows)) return;
|
||||||
|
|
||||||
$renamed = 0;
|
$renamed = 0;
|
||||||
$skipped = 0;
|
$skipped = 0;
|
||||||
foreach ($rows as $row) {
|
foreach ($rows as $row) {
|
||||||
$ogp_table = array_values($row)[0]; // e.g. ogp_users
|
$gsp_table = array_values($row)[0]; // e.g. gsp_users
|
||||||
$suffix = substr($ogp_table, 4); // strip leading "ogp_"
|
$suffix = substr($gsp_table, 4); // strip leading "gsp_"
|
||||||
$new_table = $table_prefix . $suffix;
|
$new_table = $table_prefix . $suffix;
|
||||||
|
|
||||||
// Check if destination table already exists
|
// Check if destination table already exists
|
||||||
|
|
@ -394,14 +394,14 @@ function gsp_migrate_tables($db, $table_prefix) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rename
|
// Rename
|
||||||
$ok = $db->query("RENAME TABLE `".mysqli_real_escape_string_compat($ogp_table)."` TO `".mysqli_real_escape_string_compat($new_table)."`");
|
$ok = $db->query("RENAME TABLE `".mysqli_real_escape_string_compat($gsp_table)."` TO `".mysqli_real_escape_string_compat($new_table)."`");
|
||||||
if ($ok) {
|
if ($ok) {
|
||||||
$renamed++;
|
$renamed++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($renamed > 0)
|
if ($renamed > 0)
|
||||||
print_success("Migrated {$renamed} table(s) from <code>ogp_</code> to <code>{$table_prefix}</code> prefix.");
|
print_success("Migrated {$renamed} table(s) from <code>gsp_</code> to <code>{$table_prefix}</code> prefix.");
|
||||||
if ($skipped > 0)
|
if ($skipped > 0)
|
||||||
echo "<p class='note'>{$skipped} table(s) already existed under the <code>{$table_prefix}</code> prefix – skipped.</p>";
|
echo "<p class='note'>{$skipped} table(s) already existed under the <code>{$table_prefix}</code> prefix – skipped.</p>";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,20 +58,20 @@ function showAPILinks(elem){
|
||||||
if(apiToken && ipAddr && port && modKey && panelURL){
|
if(apiToken && ipAddr && port && modKey && panelURL){
|
||||||
|
|
||||||
var actions = new Array(
|
var actions = new Array(
|
||||||
{url: 'ogp_api.php?gamemanager/start', lang: 'start_server'},
|
{url: 'gsp_api.php?gamemanager/start', lang: 'start_server'},
|
||||||
{url: 'ogp_api.php?gamemanager/stop', lang: 'stop_server'},
|
{url: 'gsp_api.php?gamemanager/stop', lang: 'stop_server'},
|
||||||
{url: 'ogp_api.php?gamemanager/restart', lang: 'restart_server'}
|
{url: 'gsp_api.php?gamemanager/restart', lang: 'restart_server'}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
var hasRcon = elem.attr('hasrcon');
|
var hasRcon = elem.attr('hasrcon');
|
||||||
if(hasRcon && hasRcon === 'true'){
|
if(hasRcon && hasRcon === 'true'){
|
||||||
actions.push({url: 'ogp_api.php?gamemanager/rcon', lang: 'rcon_command_title', additional: '&command={YOUR_RCON_COMMAND}'});
|
actions.push({url: 'gsp_api.php?gamemanager/rcon', lang: 'rcon_command_title', additional: '&command={YOUR_RCON_COMMAND}'});
|
||||||
}
|
}
|
||||||
|
|
||||||
var isSteam = elem.attr('hassteam');
|
var isSteam = elem.attr('hassteam');
|
||||||
if(isSteam && isSteam === 'true'){
|
if(isSteam && isSteam === 'true'){
|
||||||
actions.push({url: 'ogp_api.php?gamemanager/update', lang: 'get_steam_autoupdate_api_link', additional: '&type=steam', selected: true});
|
actions.push({url: 'gsp_api.php?gamemanager/update', lang: 'get_steam_autoupdate_api_link', additional: '&type=steam', selected: true});
|
||||||
}
|
}
|
||||||
|
|
||||||
var selectListHTML = '<select class="ogpAPIActions">';
|
var selectListHTML = '<select class="ogpAPIActions">';
|
||||||
|
|
|
||||||
|
|
@ -214,7 +214,7 @@ function saveGameServerOrder(){
|
||||||
// Make the call
|
// Make the call
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "ogp_api.php?gamemanager_admin/reorder&token=" + userAPIKey,
|
url: "gsp_api.php?gamemanager_admin/reorder&token=" + userAPIKey,
|
||||||
data: JSON.stringify(postData),
|
data: JSON.stringify(postData),
|
||||||
success: function(e){
|
success: function(e){
|
||||||
logToConsole("Game server order successfully saved!");
|
logToConsole("Game server order successfully saved!");
|
||||||
|
|
|
||||||
|
|
@ -1047,7 +1047,7 @@ $(document).ready(function(){
|
||||||
"<label for='subject'>"+subject+"</label><br>\n"+
|
"<label for='subject'>"+subject+"</label><br>\n"+
|
||||||
"<input name='subject' id='subject' type=text value='Files attached' style='width:100%;'><br>\n"+
|
"<input name='subject' id='subject' type=text value='Files attached' style='width:100%;'><br>\n"+
|
||||||
"<label for='message'>"+message+"</label><br>\n"+
|
"<label for='message'>"+message+"</label><br>\n"+
|
||||||
"<textarea name='message' id='message' style='width:100%;'>There are the files you requested from OGP</textarea><br>\n"+
|
"<textarea name='message' id='message' style='width:100%;'>There are the files you requested from GSP</textarea><br>\n"+
|
||||||
"<label for='dest_email'>"+dest_email+"</label><br>\n"+
|
"<label for='dest_email'>"+dest_email+"</label><br>\n"+
|
||||||
"<input name='dest_email' id='dest_email' type=text value='"+user_email+"' style='width:100%;'><br>\n");
|
"<input name='dest_email' id='dest_email' type=text value='"+user_email+"' style='width:100%;'><br>\n");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,9 +30,9 @@ function change_access_rights(id_type, assign_id)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
check_access_rights += "<tr><td align='right'><label for='" + value + "'>" + langConsts['OGP_LANG_' + value] + ":</label></td>" +
|
check_access_rights += "<tr><td align='right'><label for='" + value + "'>" + langConsts['GSP_LANG_' + value] + ":</label></td>" +
|
||||||
"<td align='left'><input class='ar_flag' id='" + value + "' type='checkbox' name='" + value + "' value='" + index + "' checked='checked' /></td></tr>" +
|
"<td align='left'><input class='ar_flag' id='" + value + "' type='checkbox' name='" + value + "' value='" + index + "' checked='checked' /></td></tr>" +
|
||||||
"<tr><td colspan='2' class='info'>" + langConsts['OGP_LANG_' + value + '_info'] + "</td></tr>";
|
"<tr><td colspan='2' class='info'>" + langConsts['GSP_LANG_' + value + '_info'] + "</td></tr>";
|
||||||
});
|
});
|
||||||
|
|
||||||
check_access_rights += '</table>';
|
check_access_rights += '</table>';
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
define('LANG_install_lang', "اختر لغتك المفضلة");
|
define('LANG_install_lang', "اختر لغتك المفضلة");
|
||||||
define('LANG_install_welcome', "مرحبًا بك في برنامج Open Game Panel Installer");
|
define('LANG_install_welcome', "مرحبًا بك في برنامج GameServer Panel Installer");
|
||||||
define('LANG_file_permission_check', "التحقق من صلاحيات الملفات المطلوبة");
|
define('LANG_file_permission_check', "التحقق من صلاحيات الملفات المطلوبة");
|
||||||
define('LANG_OK', "حسناً");
|
define('LANG_OK', "حسناً");
|
||||||
define('LANG_write_permission_required', "صلاحية الكتابة مطلوبة");
|
define('LANG_write_permission_required', "صلاحية الكتابة مطلوبة");
|
||||||
|
|
@ -60,10 +60,10 @@ define('LANG_invalid_username', "لقد أدخلت اسم مستخدم غير ص
|
||||||
define('LANG_password_too_short', "كلمة المرور قصيرة جدا ، يجب ألا يقل عدد الأحرف عن '%d' حروف.");
|
define('LANG_password_too_short', "كلمة المرور قصيرة جدا ، يجب ألا يقل عدد الأحرف عن '%d' حروف.");
|
||||||
define('LANG_password_contains_invalid_characters', "تحتوي كلمة المرور على أحرف غير صالحة.");
|
define('LANG_password_contains_invalid_characters', "تحتوي كلمة المرور على أحرف غير صالحة.");
|
||||||
define('LANG_invalid_email_address', "لقد أدخلت عنوان بريد إلكتروني غير صالح.");
|
define('LANG_invalid_email_address', "لقد أدخلت عنوان بريد إلكتروني غير صالح.");
|
||||||
define('LANG_setup_complete', "اكتمل التثبيت بنجاح. لوحة التحكم OGP جاهزة الآن للاستخدام.");
|
define('LANG_setup_complete', "اكتمل التثبيت بنجاح. لوحة التحكم GSP جاهزة الآن للاستخدام.");
|
||||||
define('LANG_remove_install_and_secure_config', "يجب حذف install.php من الخادم الخاص بك و عمل شمود لمجلد includes/config.inc.php وذالك بالعودة إلى 644 لأغراض أمنية.");
|
define('LANG_remove_install_and_secure_config', "يجب حذف install.php من الخادم الخاص بك و عمل شمود لمجلد includes/config.inc.php وذالك بالعودة إلى 644 لأغراض أمنية.");
|
||||||
define('LANG_go_to_panel', "انقر هنا للدخول إلى لوحة OGP الخاصة بك.");
|
define('LANG_go_to_panel', "انقر هنا للدخول إلى لوحة GSP الخاصة بك.");
|
||||||
define('LANG_unable_to_resolve', "إذا لم تتمكن من حل هذه المشكلة، يرجى زيارة موقع OGP");
|
define('LANG_unable_to_resolve', "إذا لم تتمكن من حل هذه المشكلة، يرجى زيارة موقع GSP");
|
||||||
define('LANG_slogan', "المصدر المفتوح واحد!");
|
define('LANG_slogan', "المصدر المفتوح واحد!");
|
||||||
define('LANG_default_welcome_title_message', "مرحبا! <b style='font-size:12px; font-weight:normal;'>يمكنك تغير هذا العنوان من '<a href='?m=settings&p=themes'>إعدادات المظهر</a>' تحت '<a href='?m=administration&p=main'>الإدارة</a>' tab.</b>");
|
define('LANG_default_welcome_title_message', "مرحبا! <b style='font-size:12px; font-weight:normal;'>يمكنك تغير هذا العنوان من '<a href='?m=settings&p=themes'>إعدادات المظهر</a>' تحت '<a href='?m=administration&p=main'>الإدارة</a>' tab.</b>");
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -25,9 +25,9 @@
|
||||||
define('LANG_dashboard_ftp_text', "يمكن لعميل ال FTP ضغط الملفات وإرسالها عبر البريد الإلكتروني ، يمكنه فك الضغط أيضا ، وتعديل الملفات النصية والمزيد");
|
define('LANG_dashboard_ftp_text', "يمكن لعميل ال FTP ضغط الملفات وإرسالها عبر البريد الإلكتروني ، يمكنه فك الضغط أيضا ، وتعديل الملفات النصية والمزيد");
|
||||||
define('LANG_dashboard_addons_manager_text', "إدارة جميع أنواع مختلفة من الخدمات مع أوبن قيم بانل. الاختيار من بين أكثر من 115 خوادم، التي زودت مباشرة من أوبن قيم بانل.");
|
define('LANG_dashboard_addons_manager_text', "إدارة جميع أنواع مختلفة من الخدمات مع أوبن قيم بانل. الاختيار من بين أكثر من 115 خوادم، التي زودت مباشرة من أوبن قيم بانل.");
|
||||||
define('LANG_dashboard_game_monitor_text', "مشاهدة ورصد الترافيك والسجلات الخاصة بك بسرعة. يمكنك رؤية أى السيرفرات يعمل وأيها مغلق.");
|
define('LANG_dashboard_game_monitor_text', "مشاهدة ورصد الترافيك والسجلات الخاصة بك بسرعة. يمكنك رؤية أى السيرفرات يعمل وأيها مغلق.");
|
||||||
define('LANG_dashboard_support_text', "إحصل على الدعم من فريق OGP فى المنتديات . رد سريع واهتمام عظيم.");
|
define('LANG_dashboard_support_text', "إحصل على الدعم من فريق GSP فى المنتديات . رد سريع واهتمام عظيم.");
|
||||||
define('LANG_welcome_text', "مرحبا بك إلى لوحة تحكم (OGP).
|
define('LANG_welcome_text', "مرحبا بك إلى لوحة تحكم (GSP).
|
||||||
OGP هو مشروع مفتوح المصدر ـ والذى يتيح لك تثبيت وبدأ ومراقبة مختلف سيرفرات الألعاب.");
|
GSP هو مشروع مفتوح المصدر ـ والذى يتيح لك تثبيت وبدأ ومراقبة مختلف سيرفرات الألعاب.");
|
||||||
define('LANG_any_server_is_online', "أى سيرفر أونلاين");
|
define('LANG_any_server_is_online', "أى سيرفر أونلاين");
|
||||||
define('LANG_current_map', "الخريطة الحالية");
|
define('LANG_current_map', "الخريطة الحالية");
|
||||||
define('LANG_server_ip_port', "الأيبي:بورت");
|
define('LANG_server_ip_port', "الأيبي:بورت");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -33,7 +33,7 @@ define('LANG_create_alias_for', "إنشاء اسم مستعار ل");
|
||||||
define('LANG_fast_dl', "إعادة توجيه التحميلات (تحميل سريع)");
|
define('LANG_fast_dl', "إعادة توجيه التحميلات (تحميل سريع)");
|
||||||
define('LANG_current_aliases_at_remote_server', "الأسماء المستعارة الحالية في سيرفر التحكم");
|
define('LANG_current_aliases_at_remote_server', "الأسماء المستعارة الحالية في سيرفر التحكم");
|
||||||
define('LANG_delete_selected_aliases', "حذف الأسماء المستعارة المحددة");
|
define('LANG_delete_selected_aliases', "حذف الأسماء المستعارة المحددة");
|
||||||
define('LANG_no_aliases_defined', "لا توجد أسماء مستعارة على شبكة الإنترنت تحددها OGP لسيرفر التحكم.");
|
define('LANG_no_aliases_defined', "لا توجد أسماء مستعارة على شبكة الإنترنت تحددها GSP لسيرفر التحكم.");
|
||||||
define('LANG_fastdl_port', "بورت");
|
define('LANG_fastdl_port', "بورت");
|
||||||
define('LANG_fastdl_port_info', "البورت الذي سيعمل عليه خادم Fast Download");
|
define('LANG_fastdl_port_info', "البورت الذي سيعمل عليه خادم Fast Download");
|
||||||
define('LANG_fastdl_ip', "عنوان");
|
define('LANG_fastdl_ip', "عنوان");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -35,7 +35,7 @@ define('LANG_assign_game_homes', "تعيين خوادم اللعبة");
|
||||||
define('LANG_user', "المستخدم");
|
define('LANG_user', "المستخدم");
|
||||||
define('LANG_group', "مجموعة");
|
define('LANG_group', "مجموعة");
|
||||||
define('LANG_start', "تشغيل");
|
define('LANG_start', "تشغيل");
|
||||||
define('LANG_ogp_agent_ip', "اي بي خادم OGP");
|
define('LANG_gsp_agent_ip', "اي بي خادم GSP");
|
||||||
define('LANG_max_players', "الحد الأقصى للاعبين");
|
define('LANG_max_players', "الحد الأقصى للاعبين");
|
||||||
define('LANG_max', "الحد الأقصى");
|
define('LANG_max', "الحد الأقصى");
|
||||||
define('LANG_ip_and_port', "ايبي و البورت");
|
define('LANG_ip_and_port', "ايبي و البورت");
|
||||||
|
|
@ -89,7 +89,7 @@ define('LANG_player_name', "إسم اللاعب");
|
||||||
define('LANG_score', "النقاط");
|
define('LANG_score', "النقاط");
|
||||||
define('LANG_time', "الوقت");
|
define('LANG_time', "الوقت");
|
||||||
define('LANG_no_rights_to_stop_server', "ليس لديك حقوق لإيقاف هذا السيرفر.");
|
define('LANG_no_rights_to_stop_server', "ليس لديك حقوق لإيقاف هذا السيرفر.");
|
||||||
define('LANG_no_ogp_lgsl_support', "هذا السيرفر (يعمل: %s) لا يملك دعم LGSL في OGP وبالتالي لا يمكن عرض إحصائياته او بياناته.");
|
define('LANG_no_gsp_lgsl_support', "هذا السيرفر (يعمل: %s) لا يملك دعم LGSL في GSP وبالتالي لا يمكن عرض إحصائياته او بياناته.");
|
||||||
define('LANG_server_status', "الخادم على %s هو %s.");
|
define('LANG_server_status', "الخادم على %s هو %s.");
|
||||||
define('LANG_server_stopped', "تم إيقاف السيرفر '%s' .");
|
define('LANG_server_stopped', "تم إيقاف السيرفر '%s' .");
|
||||||
define('LANG_if_want_to_start_homes', "إذا كنت ترغب في بدء تشغيل سيرفرات الألعاب اذهب إلى %s.");
|
define('LANG_if_want_to_start_homes', "إذا كنت ترغب في بدء تشغيل سيرفرات الألعاب اذهب إلى %s.");
|
||||||
|
|
@ -148,7 +148,7 @@ define('LANG_execute_operations', "تنفيذ العمليات");
|
||||||
define('LANG_account_expiration', "انتهاء صلاحية الحساب");
|
define('LANG_account_expiration', "انتهاء صلاحية الحساب");
|
||||||
define('LANG_mysql_databases', "قواعد بيانات MySQL");
|
define('LANG_mysql_databases', "قواعد بيانات MySQL");
|
||||||
define('LANG_failed_querying_server', "* فشل الاستعلام عن السيرفر.");
|
define('LANG_failed_querying_server', "* فشل الاستعلام عن السيرفر.");
|
||||||
define('LANG_query_protocol_not_supported', "* لا يوجد بروتوكول استعلام في OGP يمكنه دعم هذا السيرفر.");
|
define('LANG_query_protocol_not_supported', "* لا يوجد بروتوكول استعلام في GSP يمكنه دعم هذا السيرفر.");
|
||||||
define('LANG_queries_disabled_by_setting_disable_queries_after', "تم تعطيل الاستعلامات من خلال الإعداد: تعطيل طلبات البحث بعد: %s, بما لديك %s خادم.<br>");
|
define('LANG_queries_disabled_by_setting_disable_queries_after', "تم تعطيل الاستعلامات من خلال الإعداد: تعطيل طلبات البحث بعد: %s, بما لديك %s خادم.<br>");
|
||||||
define('LANG_presets_for_game_and_mod', "RCON presets for %s and mod %s");
|
define('LANG_presets_for_game_and_mod', "RCON presets for %s and mod %s");
|
||||||
define('LANG_name', "الاسم");
|
define('LANG_name', "الاسم");
|
||||||
|
|
@ -188,7 +188,7 @@ define('LANG_no_online_players', "لا يوجد لاعبين متواجدين.")
|
||||||
define('LANG_invalid_game_mod_id', "Invalid Game/Mod ID specified.");
|
define('LANG_invalid_game_mod_id', "Invalid Game/Mod ID specified.");
|
||||||
define('LANG_auto_update_title_popup', "رابط تحديث تلقائي لSteam");
|
define('LANG_auto_update_title_popup', "رابط تحديث تلقائي لSteam");
|
||||||
define('LANG_auto_update_popup_html', "<p>استخدم الرابط أدناه للتحقق من خادم اللعبة وتحديثه تلقائيًا عبر Steam إذا لزم الأمر. يمكنك الاستعلام عنها باستخدام cronjob أو بدء العملية يدويًا.</p>");
|
define('LANG_auto_update_popup_html', "<p>استخدم الرابط أدناه للتحقق من خادم اللعبة وتحديثه تلقائيًا عبر Steam إذا لزم الأمر. يمكنك الاستعلام عنها باستخدام cronjob أو بدء العملية يدويًا.</p>");
|
||||||
define('LANG_api_links_popup_html', "<p>Select an action you would like to perform using the OGP API for this game server. Then, use the link below to perform your desired action. You can run your desired action using a cronjob or by making a direct request to it.</p>");
|
define('LANG_api_links_popup_html', "<p>Select an action you would like to perform using the GSP API for this game server. Then, use the link below to perform your desired action. You can run your desired action using a cronjob or by making a direct request to it.</p>");
|
||||||
define('LANG_auto_update_copy_me', "نسخ");
|
define('LANG_auto_update_copy_me', "نسخ");
|
||||||
define('LANG_auto_update_copy_me_success', "تم النسخ!");
|
define('LANG_auto_update_copy_me_success', "تم النسخ!");
|
||||||
define('LANG_auto_update_copy_me_fail', "فشل النسخ. يرجى نسخ الرابط يدويًا.");
|
define('LANG_auto_update_copy_me_fail', "فشل النسخ. يرجى نسخ الرابط يدويًا.");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -33,7 +33,7 @@ define('LANG_to_login', "لتسجيل الدخول");
|
||||||
define('LANG_errormail', "عنوان البريد الإلكتروني الخاص بك غير صحيح.");
|
define('LANG_errormail', "عنوان البريد الإلكتروني الخاص بك غير صحيح.");
|
||||||
define('LANG_submit', "إرسال");
|
define('LANG_submit', "إرسال");
|
||||||
define('LANG_click', "انقر");
|
define('LANG_click', "انقر");
|
||||||
define('LANG_mail_settings_missing', "إعدادات البريد الخاصة باللوحة غير كاملة بحيث لا يمكن إرسال كلمة المرور. اتصل بمشرف OGP.");
|
define('LANG_mail_settings_missing', "إعدادات البريد الخاصة باللوحة غير كاملة بحيث لا يمكن إرسال كلمة المرور. اتصل بمشرف GSP.");
|
||||||
define('LANG_mail_failed', "أخفق إرسال البريد الإلكتروني.");
|
define('LANG_mail_failed', "أخفق إرسال البريد الإلكتروني.");
|
||||||
define('LANG_email', "البريد الإلكتروني");
|
define('LANG_email', "البريد الإلكتروني");
|
||||||
define('LANG_enter_email', "الرجاء إدخال عنوان البريد الإلكتروني الخاص بك");
|
define('LANG_enter_email', "الرجاء إدخال عنوان البريد الإلكتروني الخاص بك");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2017 The OGP Development Team
|
* Copyright (C) 2008 - 2017 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2017 The OGP Development Team
|
* Copyright (C) 2008 - 2017 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -40,7 +40,7 @@ define('LANG_successfull', "نجح");
|
||||||
define('LANG_click_here', "انقر هنا");
|
define('LANG_click_here', "انقر هنا");
|
||||||
define('LANG_to_login', "لتسجيل الدخول.");
|
define('LANG_to_login', "لتسجيل الدخول.");
|
||||||
define('LANG_registered_on', "مسجل في: %s.");
|
define('LANG_registered_on', "مسجل في: %s.");
|
||||||
define('LANG_register_message', "مرحبا،<br><br>تم إنشاء حسابك في Open Game Panel ويمكنك <a href='%s' target='_blank'>تسجيل الدخول الآن</a>.<br><br>اسم المستخدم: %s<br><br>تذكر تغيير كلمة المرور الخاصة بك في كثير من الأحيان وأول مرة تسجيل الدخول.<br><br>رجاءا لا ترد على هذا الأيميل!<br><br>______________________________<br>Black Market Servers");
|
define('LANG_register_message', "مرحبا،<br><br>تم إنشاء حسابك في GameServer Panel ويمكنك <a href='%s' target='_blank'>تسجيل الدخول الآن</a>.<br><br>اسم المستخدم: %s<br><br>تذكر تغيير كلمة المرور الخاصة بك في كثير من الأحيان وأول مرة تسجيل الدخول.<br><br>رجاءا لا ترد على هذا الأيميل!<br><br>______________________________<br>Black Market Servers");
|
||||||
define('LANG_err_captcha', "لا يتطابق CAPTCHA.");
|
define('LANG_err_captcha', "لا يتطابق CAPTCHA.");
|
||||||
define('LANG_err_login_name', "اسم المستخدم فارغ أو قيد الاستخدام.");
|
define('LANG_err_login_name', "اسم المستخدم فارغ أو قيد الاستخدام.");
|
||||||
define('LANG_err_first_name', "أدخل أسمك.");
|
define('LANG_err_first_name', "أدخل أسمك.");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -27,9 +27,9 @@ define('LANG_configured_remote_hosts', "تكوين المضيف البعيد");
|
||||||
define('LANG_remote_host', "المضيف البعيد");
|
define('LANG_remote_host', "المضيف البعيد");
|
||||||
define('LANG_remote_host_info', "يجب أن يكون المضيف البعيد اسم مضيف قابل للتوسيع!");
|
define('LANG_remote_host_info', "يجب أن يكون المضيف البعيد اسم مضيف قابل للتوسيع!");
|
||||||
define('LANG_remote_host_port', "بورت المضيف البعيد");
|
define('LANG_remote_host_port', "بورت المضيف البعيد");
|
||||||
define('LANG_remote_host_port_info', "The port that is listened by the OGP Agent on remote host. Default: 12679.");
|
define('LANG_remote_host_port_info', "The port that is listened by the GSP Agent on remote host. Default: 12679.");
|
||||||
define('LANG_remote_host_name', "إسم المضيف البعيد");
|
define('LANG_remote_host_name', "إسم المضيف البعيد");
|
||||||
define('LANG_ogp_user', "اسم مستخدم وكيل OGP");
|
define('LANG_gsp_user', "اسم مستخدم وكيل GSP");
|
||||||
define('LANG_remote_host_name_info', "يستخدم اسم المضيف البعيد لمساعدة المستخدمين على تحديد خوادمهم.");
|
define('LANG_remote_host_name_info', "يستخدم اسم المضيف البعيد لمساعدة المستخدمين على تحديد خوادمهم.");
|
||||||
define('LANG_add_remote_host', "إضافة المضيف البعيد");
|
define('LANG_add_remote_host', "إضافة المضيف البعيد");
|
||||||
define('LANG_remote_encryption_key', "مفتاح التشفير عن بعد");
|
define('LANG_remote_encryption_key', "مفتاح التشفير عن بعد");
|
||||||
|
|
@ -41,8 +41,8 @@ define('LANG_ips', "الأيبيهات");
|
||||||
define('LANG_add_more_ips', "إذا كنت ترغب في إدخال المزيد من الأيبيهات اضغط على \"تعيين الأيبي\" عندما تكون جميع الحقول ممتلئة وسوف يظهر حقل فارغ.");
|
define('LANG_add_more_ips', "إذا كنت ترغب في إدخال المزيد من الأيبيهات اضغط على \"تعيين الأيبي\" عندما تكون جميع الحقول ممتلئة وسوف يظهر حقل فارغ.");
|
||||||
define('LANG_encryption_key_mismatch', "لا يتطابق مفتاح التشفير مع الوكيل. يرجى إعادة التحقق من تهيئة الوكيل.");
|
define('LANG_encryption_key_mismatch', "لا يتطابق مفتاح التشفير مع الوكيل. يرجى إعادة التحقق من تهيئة الوكيل.");
|
||||||
define('LANG_no_ip_for_remote_host', "You need to add at least one (1) IP address for each remote host.");
|
define('LANG_no_ip_for_remote_host', "You need to add at least one (1) IP address for each remote host.");
|
||||||
define('LANG_note_remote_host', "A remote host is a server where the OGP Agent is running on. Each host can have multiple number of IP addresses on which users can bind servers to.");
|
define('LANG_note_remote_host', "A remote host is a server where the GSP Agent is running on. Each host can have multiple number of IP addresses on which users can bind servers to.");
|
||||||
define('LANG_ip_administration', "Server & IP Administration :: Open Game Panel");
|
define('LANG_ip_administration', "Server & IP Administration :: GameServer Panel");
|
||||||
define('LANG_unknown_error', "خطأ غير معروف - تم إرجاع status_chk");
|
define('LANG_unknown_error', "خطأ غير معروف - تم إرجاع status_chk");
|
||||||
define('LANG_remote_host_user_name', "UNIX user");
|
define('LANG_remote_host_user_name', "UNIX user");
|
||||||
define('LANG_remote_host_user_name_info', "Username where the Agent is running. Example: Jonhy");
|
define('LANG_remote_host_user_name_info', "Username where the Agent is running. Example: Jonhy");
|
||||||
|
|
@ -74,7 +74,7 @@ define('LANG_ips_set_for_server', "IPs set for server called '%s' successfully."
|
||||||
define('LANG_could_not_remove_ip', "Could not remove old IP's from database.");
|
define('LANG_could_not_remove_ip', "Could not remove old IP's from database.");
|
||||||
define('LANG_could_add_ip', "Could add remote server IP to database.");
|
define('LANG_could_add_ip', "Could add remote server IP to database.");
|
||||||
define('LANG_areyousure_removeagent', "Are you sure you want to remove the Agent called");
|
define('LANG_areyousure_removeagent', "Are you sure you want to remove the Agent called");
|
||||||
define('LANG_areyousure_removeagent2', "and all the homes related to it from the ogp database?");
|
define('LANG_areyousure_removeagent2', "and all the homes related to it from the gsp database?");
|
||||||
define('LANG_error_while_remove', "Error occurred while removing remote server.");
|
define('LANG_error_while_remove', "Error occurred while removing remote server.");
|
||||||
define('LANG_add_ip', "Add IP");
|
define('LANG_add_ip', "Add IP");
|
||||||
define('LANG_remove_ip', "Remove IP");
|
define('LANG_remove_ip', "Remove IP");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -92,7 +92,7 @@ define('LANG_recaptcha_use_login_info', "If enabled, users will have to solve th
|
||||||
define('LANG_login_attempts_before_banned', "Number of failed login attempts before user is banned");
|
define('LANG_login_attempts_before_banned', "Number of failed login attempts before user is banned");
|
||||||
define('LANG_login_attempts_before_banned_info', "If a user tries to login with invalid credentials more than this many times, the user will be banned temporarily by the panel.");
|
define('LANG_login_attempts_before_banned_info', "If a user tries to login with invalid credentials more than this many times, the user will be banned temporarily by the panel.");
|
||||||
define('LANG_custom_github_update_username', "GitHub update username");
|
define('LANG_custom_github_update_username', "GitHub update username");
|
||||||
define('LANG_custom_github_update_username_info', "Enter your GitHub username ONLY to use your own forked repositories to update OGP. This should only be changed by developers who wish to use their own repos for development rather than checking in possibly buggy code into the main branch.");
|
define('LANG_custom_github_update_username_info', "Enter your GitHub username ONLY to use your own forked repositories to update GSP. This should only be changed by developers who wish to use their own repos for development rather than checking in possibly buggy code into the main branch.");
|
||||||
define('LANG_remote_query', "Remote query");
|
define('LANG_remote_query', "Remote query");
|
||||||
define('LANG_remote_query_info', "Use the remote server (agent) to make queries to the game servers (Only GameQ and LGSL).");
|
define('LANG_remote_query_info', "Use the remote server (agent) to make queries to the game servers (Only GameQ and LGSL).");
|
||||||
define('LANG_check_expiry_by', "Check expiration using");
|
define('LANG_check_expiry_by', "Check expiration using");
|
||||||
|
|
@ -131,7 +131,7 @@ define('LANG_bg_wrapper_info', "The wrappers background image. <b style='font-si
|
||||||
define('LANG_show_server_id_game_monitor', "Show Server IDs on Game Monitor page");
|
define('LANG_show_server_id_game_monitor', "Show Server IDs on Game Monitor page");
|
||||||
define('LANG_show_server_id_game_monitor_info', "Show the game server ID column on the Game Monitor for matching up files created by the Agent to the actual game server.");
|
define('LANG_show_server_id_game_monitor_info', "Show the game server ID column on the Game Monitor for matching up files created by the Agent to the actual game server.");
|
||||||
define('LANG_default_game_server_home_path_prefix', "Default game server home directory prefix");
|
define('LANG_default_game_server_home_path_prefix', "Default game server home directory prefix");
|
||||||
define('LANG_default_game_server_home_path_prefix_info', "Enter a path prefix for where you want game server homes to be created by default. You can use \"{USERNAME}\" in the path which will be replaced with the OGP username the game server is being assigned to. You can use \"{GAMEKEY}\" in the path which will be replaced with a friendly lowercase name. You can use \"{SKIPID}\" anywhere in the path to skip appending the home ID to the path. Example: /ogp/games/{USERNAME}/{GAMEKEY}{SKIPID} will become /ogp/games/username/arkse/. Example 2: /ogp/games will become /ogp/games/1 where 1 is the game servers ID.");
|
define('LANG_default_game_server_home_path_prefix_info', "Enter a path prefix for where you want game server homes to be created by default. You can use \"{USERNAME}\" in the path which will be replaced with the GSP username the game server is being assigned to. You can use \"{GAMEKEY}\" in the path which will be replaced with a friendly lowercase name. You can use \"{SKIPID}\" anywhere in the path to skip appending the home ID to the path. Example: /gsp/games/{USERNAME}/{GAMEKEY}{SKIPID} will become /gsp/games/username/arkse/. Example 2: /gsp/games will become /gsp/games/1 where 1 is the game servers ID.");
|
||||||
define('LANG_use_authorized_hosts', "Limit API to Defined Authorized Hosts");
|
define('LANG_use_authorized_hosts', "Limit API to Defined Authorized Hosts");
|
||||||
define('LANG_use_authorized_hosts_info', "Enable this setting to only allow API calls from pre-defined and approved IP addresses. Approved addresses can be set on this page once the setting has been enabled. If this setting is disabled, a user using a valid key will have access to the API from any IP address. Users using a valid key will be able to use the API to manage any game server they have permissions to administrate.");
|
define('LANG_use_authorized_hosts_info', "Enable this setting to only allow API calls from pre-defined and approved IP addresses. Approved addresses can be set on this page once the setting has been enabled. If this setting is disabled, a user using a valid key will have access to the API from any IP address. Users using a valid key will be able to use the API to manage any game server they have permissions to administrate.");
|
||||||
define('LANG_setup_api_authorized_hosts', "Setup API authorized hosts");
|
define('LANG_setup_api_authorized_hosts', "Setup API authorized hosts");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -21,54 +21,54 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
define('OGP_LANG_game', "لعبة");
|
define('GSP_LANG_game', "لعبة");
|
||||||
define('OGP_LANG_select_mod', "تحديد mod");
|
define('GSP_LANG_select_mod', "تحديد mod");
|
||||||
define('OGP_LANG_manual_workshop_mod_id', "Manual Workshop mod ID");
|
define('GSP_LANG_manual_workshop_mod_id', "Manual Workshop mod ID");
|
||||||
define('OGP_LANG_manual_workshop_mod_id_info', "You'll find the mod id at the URL of the mod, for example 1379153273 for ARK: Survival Evolved's Solar Panel. You can install multiple mods separating them by coma.");
|
define('GSP_LANG_manual_workshop_mod_id_info', "You'll find the mod id at the URL of the mod, for example 1379153273 for ARK: Survival Evolved's Solar Panel. You can install multiple mods separating them by coma.");
|
||||||
define('OGP_LANG_update_in_progress', "التحديث قيد التقدم");
|
define('GSP_LANG_update_in_progress', "التحديث قيد التقدم");
|
||||||
define('OGP_LANG_refresh_steam_workshop_status', "Refresh Steam Workshop status");
|
define('GSP_LANG_refresh_steam_workshop_status', "Refresh Steam Workshop status");
|
||||||
define('OGP_LANG_update_completed', "إكتمل التحديث بنجاح");
|
define('GSP_LANG_update_completed', "إكتمل التحديث بنجاح");
|
||||||
define('OGP_LANG_mod_does_not_belong_to_workshop', "The mod %s does not belong to the Workshop");
|
define('GSP_LANG_mod_does_not_belong_to_workshop', "The mod %s does not belong to the Workshop");
|
||||||
define('OGP_LANG_mod_installation_started', "Mod installation started");
|
define('GSP_LANG_mod_installation_started', "Mod installation started");
|
||||||
define('OGP_LANG_failed_to_start_steam_workshop', "Failed to start Steam Workshop");
|
define('GSP_LANG_failed_to_start_steam_workshop', "Failed to start Steam Workshop");
|
||||||
define('OGP_LANG_connection_error', "خطأ في الإتصال");
|
define('GSP_LANG_connection_error', "خطأ في الإتصال");
|
||||||
define('OGP_LANG_install_mod', "تثبيت الوحدات");
|
define('GSP_LANG_install_mod', "تثبيت الوحدات");
|
||||||
define('OGP_LANG_show_mod_info', "Show mods info");
|
define('GSP_LANG_show_mod_info', "Show mods info");
|
||||||
define('OGP_LANG_select_game', "حدد اللعبة");
|
define('GSP_LANG_select_game', "حدد اللعبة");
|
||||||
define('OGP_LANG_save_config', "حفظ التكوين");
|
define('GSP_LANG_save_config', "حفظ التكوين");
|
||||||
define('OGP_LANG_mod_key_not_found_from_xml', "Mod key %s not found from xml.");
|
define('GSP_LANG_mod_key_not_found_from_xml', "Mod key %s not found from xml.");
|
||||||
define('OGP_LANG_workshop_id', "Workshop ID");
|
define('GSP_LANG_workshop_id', "Workshop ID");
|
||||||
define('OGP_LANG_workshop_id_info', "You'll find the Workshop ID at the URL of the Workshop, for example 440900 for Conan Exiles");
|
define('GSP_LANG_workshop_id_info', "You'll find the Workshop ID at the URL of the Workshop, for example 440900 for Conan Exiles");
|
||||||
define('OGP_LANG_mods_path', "Mods Path");
|
define('GSP_LANG_mods_path', "Mods Path");
|
||||||
define('OGP_LANG_mods_path_info', "The relative path for the mods folder.");
|
define('GSP_LANG_mods_path_info', "The relative path for the mods folder.");
|
||||||
define('OGP_LANG_regex', "Regex");
|
define('GSP_LANG_regex', "Regex");
|
||||||
define('OGP_LANG_regex_info', "A regular expression that matches the mods in the configuration file");
|
define('GSP_LANG_regex_info', "A regular expression that matches the mods in the configuration file");
|
||||||
define('OGP_LANG_mods_backreference_index', "Mods Backreference Index");
|
define('GSP_LANG_mods_backreference_index', "Mods Backreference Index");
|
||||||
define('OGP_LANG_mods_backreference_index_info', "The position of the back reference from the part of the regex that match the mods list, starting by 0.");
|
define('GSP_LANG_mods_backreference_index_info', "The position of the back reference from the part of the regex that match the mods list, starting by 0.");
|
||||||
define('OGP_LANG_variable', "متغير");
|
define('GSP_LANG_variable', "متغير");
|
||||||
define('OGP_LANG_variable_info', "The variable that cointains the mods list, if any.");
|
define('GSP_LANG_variable_info', "The variable that cointains the mods list, if any.");
|
||||||
define('OGP_LANG_place_after', "مكان بعد");
|
define('GSP_LANG_place_after', "مكان بعد");
|
||||||
define('OGP_LANG_place_after_info', "The section of the configuration file where the mods list appears, if any. It will be added to the config file if does not exists yet. If the given variable is not present then it will be placed in the line after this section.");
|
define('GSP_LANG_place_after_info', "The section of the configuration file where the mods list appears, if any. It will be added to the config file if does not exists yet. If the given variable is not present then it will be placed in the line after this section.");
|
||||||
define('OGP_LANG_mod_string', "Mod String");
|
define('GSP_LANG_mod_string', "Mod String");
|
||||||
define('OGP_LANG_mod_string_info', "The string that represents the mod in the mod list. Valid replacements: %workshop_mod_id%, %first_file% (first file is the first file found in the mod folder downloaded by SteamCMD)");
|
define('GSP_LANG_mod_string_info', "The string that represents the mod in the mod list. Valid replacements: %workshop_mod_id%, %first_file% (first file is the first file found in the mod folder downloaded by SteamCMD)");
|
||||||
define('OGP_LANG_string_separator', "فاصل السلسلة");
|
define('GSP_LANG_string_separator', "فاصل السلسلة");
|
||||||
define('OGP_LANG_string_separator_info', "The character that separates the mods in the configuration file, for example new line character (\\n) or coma (,).");
|
define('GSP_LANG_string_separator_info', "The character that separates the mods in the configuration file, for example new line character (\\n) or coma (,).");
|
||||||
define('OGP_LANG_filepath', "مسار الملف");
|
define('GSP_LANG_filepath', "مسار الملف");
|
||||||
define('OGP_LANG_filepath_info', "The path of the configuration file where the mods must be listed.");
|
define('GSP_LANG_filepath_info', "The path of the configuration file where the mods must be listed.");
|
||||||
define('OGP_LANG_post_install', "سكريبت ما بعد التثبيت");
|
define('GSP_LANG_post_install', "سكريبت ما بعد التثبيت");
|
||||||
define('OGP_LANG_post_install_info', "The necessary commands in bash to move the mods to the mods folder. Valid replacements: %mods_full_path% (the full path to the Wokshop mods folder), %workshop_mod_id%, %first_file% (first file is the first file found in the mod folder downloaded by SteamCMD)");
|
define('GSP_LANG_post_install_info', "The necessary commands in bash to move the mods to the mods folder. Valid replacements: %mods_full_path% (the full path to the Wokshop mods folder), %workshop_mod_id%, %first_file% (first file is the first file found in the mod folder downloaded by SteamCMD)");
|
||||||
define('OGP_LANG_install_mods', "Install Mods");
|
define('GSP_LANG_install_mods', "Install Mods");
|
||||||
define('OGP_LANG_uninstall_mods', "Uninstall Mods");
|
define('GSP_LANG_uninstall_mods', "Uninstall Mods");
|
||||||
define('OGP_LANG_failed_uninstalling_mod', "Failed uninstalling mod %s");
|
define('GSP_LANG_failed_uninstalling_mod', "Failed uninstalling mod %s");
|
||||||
define('OGP_LANG_uninstall', "إلغاء تثبيت البرنامج النصي");
|
define('GSP_LANG_uninstall', "إلغاء تثبيت البرنامج النصي");
|
||||||
define('OGP_LANG_uninstall_info', "This is the script called when a mod is uninstalled, Valid replacements: %mods_full_path% (the full path to the wokshop mods folder), %mod_string% (mod string is the name listed in the configuration file for this mod).");
|
define('GSP_LANG_uninstall_info', "This is the script called when a mod is uninstalled, Valid replacements: %mods_full_path% (the full path to the wokshop mods folder), %mod_string% (mod string is the name listed in the configuration file for this mod).");
|
||||||
define('OGP_LANG_remove_mods', "Remove Mods");
|
define('GSP_LANG_remove_mods', "Remove Mods");
|
||||||
define('OGP_LANG_do_not_close_this_page_while_mods_are_being_installed', "Do not close this page while mods are being installed.");
|
define('GSP_LANG_do_not_close_this_page_while_mods_are_being_installed', "Do not close this page while mods are being installed.");
|
||||||
define('OGP_LANG_no_game_server_selected', "لم يتم تحديد خادم اللعبة");
|
define('GSP_LANG_no_game_server_selected', "لم يتم تحديد خادم اللعبة");
|
||||||
define('OGP_LANG_there_are_no_mods_installed_on_this_game_server', "There are no mods installed on this game server");
|
define('GSP_LANG_there_are_no_mods_installed_on_this_game_server', "There are no mods installed on this game server");
|
||||||
define('OGP_LANG_workshop_configuration_not_found', "Workshop configuration not found");
|
define('GSP_LANG_workshop_configuration_not_found', "Workshop configuration not found");
|
||||||
define('OGP_LANG_download_method', "طريقة التحميل");
|
define('GSP_LANG_download_method', "طريقة التحميل");
|
||||||
define('OGP_LANG_anonymous_login', "تسجيل دخول كمجهول");
|
define('GSP_LANG_anonymous_login', "تسجيل دخول كمجهول");
|
||||||
define('OGP_LANG_select_at_least_one_mod_or_enter_mod_id', "Select at least one mod or enter a mod ID.");
|
define('GSP_LANG_select_at_least_one_mod_or_enter_mod_id', "Select at least one mod or enter a mod ID.");
|
||||||
define('OGP_LANG_no_game_servers_assigned', "ليس لديك أي خوادم مخصصة لحسابك.");
|
define('GSP_LANG_no_game_servers_assigned', "ليس لديك أي خوادم مخصصة لحسابك.");
|
||||||
?>
|
?>
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -36,7 +36,7 @@ define('LANG_successfull', "نجح");
|
||||||
define('LANG_click_here', "انقر هنا");
|
define('LANG_click_here', "انقر هنا");
|
||||||
define('LANG_to_login', "لتسجيل الدخول.");
|
define('LANG_to_login', "لتسجيل الدخول.");
|
||||||
define('LANG_registered_on', "مسجل في");
|
define('LANG_registered_on', "مسجل في");
|
||||||
define('LANG_register_message', "مرحبا، <br><br>تم إنشاء حساب Open Game Panel، ويمكنك الآن تسجيل الدخول باستخدام معلومات الحساب التالية:<br><br>اسم المستخدم: %s<br>كلمه السر: %s<br><br>تذكر تغيير كلمة المرور الخاصة بك في كثير من الأحيان، وأول مرة تقوم بتسجيل الدخول.<br><br>رجاءا لا ترد على هذا الأيميل!<br><br>______________________________<br>Black Market Servers");
|
define('LANG_register_message', "مرحبا، <br><br>تم إنشاء حساب GameServer Panel، ويمكنك الآن تسجيل الدخول باستخدام معلومات الحساب التالية:<br><br>اسم المستخدم: %s<br>كلمه السر: %s<br><br>تذكر تغيير كلمة المرور الخاصة بك في كثير من الأحيان، وأول مرة تقوم بتسجيل الدخول.<br><br>رجاءا لا ترد على هذا الأيميل!<br><br>______________________________<br>Black Market Servers");
|
||||||
define('LANG_err_password', "لا يمكن أن تكون كلمة المرور فارغة");
|
define('LANG_err_password', "لا يمكن أن تكون كلمة المرور فارغة");
|
||||||
define('LANG_err_confirm_password', "التحقق من أن حقل كلمة المرور لا يمكن أن يكون فارغا");
|
define('LANG_err_confirm_password', "التحقق من أن حقل كلمة المرور لا يمكن أن يكون فارغا");
|
||||||
define('LANG_err_password_mismatch', "كلمات المرور غير متطابقة");
|
define('LANG_err_password_mismatch', "كلمات المرور غير متطابقة");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2017 The OGP Development Team
|
* Copyright (C) 2008 - 2017 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2017 The OGP Development Team
|
* Copyright (C) 2008 - 2017 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
define('LANG_add_mods_note', "تحتاج إضافة مودز بعد إضافة سيرفر إلى مستخدم . يمكنك عمل ذلك بتعديل السيرفر.");
|
define('LANG_add_mods_note', "تحتاج إضافة مودز بعد إضافة سيرفر إلى مستخدم . يمكنك عمل ذلك بتعديل السيرفر.");
|
||||||
define('LANG_game_servers', "سيرفرات الألعاب");
|
define('LANG_game_servers', "سيرفرات الألعاب");
|
||||||
define('LANG_game_path', "مسار اللعبة");
|
define('LANG_game_path', "مسار اللعبة");
|
||||||
define('LANG_game_path_info', "An absolute server path. Example: /home/ogpbot/OGP_User_Files/My_Server");
|
define('LANG_game_path_info', "An absolute server path. Example: /home/ogpbot/GSP_User_Files/My_Server");
|
||||||
define('LANG_game_server_name_info', "اسم السيرفر يساعد المستخدمين على معرفة سيرفراتهم");
|
define('LANG_game_server_name_info', "اسم السيرفر يساعد المستخدمين على معرفة سيرفراتهم");
|
||||||
define('LANG_control_password', "التحكم في كلمة المرور");
|
define('LANG_control_password', "التحكم في كلمة المرور");
|
||||||
define('LANG_control_password_info', "كلمةالمرور هذه تستخدم للتحكم فى السيرفر . مثل كلمة السر RCON . إذا كانت خانة كلمة المرور فارغة هذا يعنى أنها مستخدمة.");
|
define('LANG_control_password_info', "كلمةالمرور هذه تستخدم للتحكم فى السيرفر . مثل كلمة السر RCON . إذا كانت خانة كلمة المرور فارغة هذا يعنى أنها مستخدمة.");
|
||||||
|
|
@ -41,7 +41,7 @@ define('LANG_game_configurations', "> صفحة تهيئة اللعبة");
|
||||||
define('LANG_add_remote_server', "أضف سيرفر.");
|
define('LANG_add_remote_server', "أضف سيرفر.");
|
||||||
define('LANG_wine_games', "ألعاب Wine");
|
define('LANG_wine_games', "ألعاب Wine");
|
||||||
define('LANG_home_path', "مسار ال Home");
|
define('LANG_home_path', "مسار ال Home");
|
||||||
define('LANG_change_home_info', "مكان تثبيت سيرفر اللعبة . مثال:/home/ogp/my_server/");
|
define('LANG_change_home_info', "مكان تثبيت سيرفر اللعبة . مثال:/home/gsp/my_server/");
|
||||||
define('LANG_game_server_name', "إسم سيرفر لعبة");
|
define('LANG_game_server_name', "إسم سيرفر لعبة");
|
||||||
define('LANG_change_name_info', "اسم السيرفر يساعد المستخدمين على معرفة سيرفراتهم");
|
define('LANG_change_name_info', "اسم السيرفر يساعد المستخدمين على معرفة سيرفراتهم");
|
||||||
define('LANG_game_control_password', "كلمة مرور تحكم اللعبة");
|
define('LANG_game_control_password', "كلمة مرور تحكم اللعبة");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2017 The OGP Development Team
|
* Copyright (C) 2008 - 2017 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -21,54 +21,54 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
define('OGP_LANG_game', "游戏");
|
define('GSP_LANG_game', "游戏");
|
||||||
define('OGP_LANG_select_mod', "选择模组");
|
define('GSP_LANG_select_mod', "选择模组");
|
||||||
define('OGP_LANG_manual_workshop_mod_id', "Steam创意工坊模组ID");
|
define('GSP_LANG_manual_workshop_mod_id', "Steam创意工坊模组ID");
|
||||||
define('OGP_LANG_manual_workshop_mod_id_info', "你可以在Steam创意工坊模组的URL中找到模组ID,例如ARK: Survival Evolved的太阳能板模组为1379153273。你可以通过逗号分隔来安装多个模组。");
|
define('GSP_LANG_manual_workshop_mod_id_info', "你可以在Steam创意工坊模组的URL中找到模组ID,例如ARK: Survival Evolved的太阳能板模组为1379153273。你可以通过逗号分隔来安装多个模组。");
|
||||||
define('OGP_LANG_update_in_progress', "更新进行中");
|
define('GSP_LANG_update_in_progress', "更新进行中");
|
||||||
define('OGP_LANG_refresh_steam_workshop_status', "刷新Steam工坊状态");
|
define('GSP_LANG_refresh_steam_workshop_status', "刷新Steam工坊状态");
|
||||||
define('OGP_LANG_update_completed', "更新完成");
|
define('GSP_LANG_update_completed', "更新完成");
|
||||||
define('OGP_LANG_mod_does_not_belong_to_workshop', "模组%s不属于Steam创意工坊");
|
define('GSP_LANG_mod_does_not_belong_to_workshop', "模组%s不属于Steam创意工坊");
|
||||||
define('OGP_LANG_mod_installation_started', "模组安装开始");
|
define('GSP_LANG_mod_installation_started', "模组安装开始");
|
||||||
define('OGP_LANG_failed_to_start_steam_workshop', "启动Steam工坊失败");
|
define('GSP_LANG_failed_to_start_steam_workshop', "启动Steam工坊失败");
|
||||||
define('OGP_LANG_connection_error', "连接错误");
|
define('GSP_LANG_connection_error', "连接错误");
|
||||||
define('OGP_LANG_install_mod', "安装模组");
|
define('GSP_LANG_install_mod', "安装模组");
|
||||||
define('OGP_LANG_show_mod_info', "显示模组信息");
|
define('GSP_LANG_show_mod_info', "显示模组信息");
|
||||||
define('OGP_LANG_select_game', "选择游戏");
|
define('GSP_LANG_select_game', "选择游戏");
|
||||||
define('OGP_LANG_save_config', "保存配置");
|
define('GSP_LANG_save_config', "保存配置");
|
||||||
define('OGP_LANG_mod_key_not_found_from_xml', "从xml中未找到模组键%s。");
|
define('GSP_LANG_mod_key_not_found_from_xml', "从xml中未找到模组键%s。");
|
||||||
define('OGP_LANG_workshop_id', "Steam创意工坊ID");
|
define('GSP_LANG_workshop_id', "Steam创意工坊ID");
|
||||||
define('OGP_LANG_workshop_id_info', "你可以在Steam创意工坊的URL中找到工坊ID,例如Conan Exiles的为440900");
|
define('GSP_LANG_workshop_id_info', "你可以在Steam创意工坊的URL中找到工坊ID,例如Conan Exiles的为440900");
|
||||||
define('OGP_LANG_mods_path', "模组路径");
|
define('GSP_LANG_mods_path', "模组路径");
|
||||||
define('OGP_LANG_mods_path_info', "模组文件夹的相对路径。");
|
define('GSP_LANG_mods_path_info', "模组文件夹的相对路径。");
|
||||||
define('OGP_LANG_regex', "正则表达式");
|
define('GSP_LANG_regex', "正则表达式");
|
||||||
define('OGP_LANG_regex_info', "一个匹配配置文件中模组的正则表达式");
|
define('GSP_LANG_regex_info', "一个匹配配置文件中模组的正则表达式");
|
||||||
define('OGP_LANG_mods_backreference_index', "模组反向引用索引");
|
define('GSP_LANG_mods_backreference_index', "模组反向引用索引");
|
||||||
define('OGP_LANG_mods_backreference_index_info', "从匹配模组列表的正则表达式部分的反向引用的位置,从0开始。");
|
define('GSP_LANG_mods_backreference_index_info', "从匹配模组列表的正则表达式部分的反向引用的位置,从0开始。");
|
||||||
define('OGP_LANG_variable', "变量");
|
define('GSP_LANG_variable', "变量");
|
||||||
define('OGP_LANG_variable_info', "包含模组列表的变量如果有");
|
define('GSP_LANG_variable_info', "包含模组列表的变量如果有");
|
||||||
define('OGP_LANG_place_after', "放置位置");
|
define('GSP_LANG_place_after', "放置位置");
|
||||||
define('OGP_LANG_place_after_info', "配置文件中模组列表出现的部分,如果有的话。如果不存在,则会被添加到配置文件中。如果给定的变量不存在,则会被放置在这个部分之后的行。");
|
define('GSP_LANG_place_after_info', "配置文件中模组列表出现的部分,如果有的话。如果不存在,则会被添加到配置文件中。如果给定的变量不存在,则会被放置在这个部分之后的行。");
|
||||||
define('OGP_LANG_mod_string', "模组字符串");
|
define('GSP_LANG_mod_string', "模组字符串");
|
||||||
define('OGP_LANG_mod_string_info', "代表模组列表中模组的字符串。有效的替换: %workshop_mod_id%,%first_file%(first file是通过SteamCMD下载的模组文件夹中找到的第一个文件)");
|
define('GSP_LANG_mod_string_info', "代表模组列表中模组的字符串。有效的替换: %workshop_mod_id%,%first_file%(first file是通过SteamCMD下载的模组文件夹中找到的第一个文件)");
|
||||||
define('OGP_LANG_string_separator', "字符串分隔符");
|
define('GSP_LANG_string_separator', "字符串分隔符");
|
||||||
define('OGP_LANG_string_separator_info', "配置文件中分隔模组的字符,例如换行符(\\n)或逗号(,)。");
|
define('GSP_LANG_string_separator_info', "配置文件中分隔模组的字符,例如换行符(\\n)或逗号(,)。");
|
||||||
define('OGP_LANG_filepath', "文件路径");
|
define('GSP_LANG_filepath', "文件路径");
|
||||||
define('OGP_LANG_filepath_info', "必须列出模组的配置文件的路径。");
|
define('GSP_LANG_filepath_info', "必须列出模组的配置文件的路径。");
|
||||||
define('OGP_LANG_post_install', "安装后脚本");
|
define('GSP_LANG_post_install', "安装后脚本");
|
||||||
define('OGP_LANG_post_install_info', "移动模组到模组文件夹所需的bash命令。有效的替换: %mods_full_path%(Wokshop模组文件夹的完整路径),%workshop_mod_id%,%first_file%(first file是通过SteamCMD下载的模组文件夹中找到的第一个文件)");
|
define('GSP_LANG_post_install_info', "移动模组到模组文件夹所需的bash命令。有效的替换: %mods_full_path%(Wokshop模组文件夹的完整路径),%workshop_mod_id%,%first_file%(first file是通过SteamCMD下载的模组文件夹中找到的第一个文件)");
|
||||||
define('OGP_LANG_install_mods', "安装模组");
|
define('GSP_LANG_install_mods', "安装模组");
|
||||||
define('OGP_LANG_uninstall_mods', "卸载模组");
|
define('GSP_LANG_uninstall_mods', "卸载模组");
|
||||||
define('OGP_LANG_failed_uninstalling_mod', "卸载模组%s失败");
|
define('GSP_LANG_failed_uninstalling_mod', "卸载模组%s失败");
|
||||||
define('OGP_LANG_uninstall', "卸载脚本");
|
define('GSP_LANG_uninstall', "卸载脚本");
|
||||||
define('OGP_LANG_uninstall_info', "当一个模组被卸载时调用的脚本,有效的替换:%mods_full_path%(wokshop模组文件夹的完整路径),%mod_string%(mod string是此模组在配置文件中列出的名称)。");
|
define('GSP_LANG_uninstall_info', "当一个模组被卸载时调用的脚本,有效的替换:%mods_full_path%(wokshop模组文件夹的完整路径),%mod_string%(mod string是此模组在配置文件中列出的名称)。");
|
||||||
define('OGP_LANG_remove_mods', "移除模组");
|
define('GSP_LANG_remove_mods', "移除模组");
|
||||||
define('OGP_LANG_do_not_close_this_page_while_mods_are_being_installed', "安装模组时请不要关闭此页面。");
|
define('GSP_LANG_do_not_close_this_page_while_mods_are_being_installed', "安装模组时请不要关闭此页面。");
|
||||||
define('OGP_LANG_no_game_server_selected', "没有选择游戏服务器");
|
define('GSP_LANG_no_game_server_selected', "没有选择游戏服务器");
|
||||||
define('OGP_LANG_there_are_no_mods_installed_on_this_game_server', "这个游戏服务器上没有安装模组");
|
define('GSP_LANG_there_are_no_mods_installed_on_this_game_server', "这个游戏服务器上没有安装模组");
|
||||||
define('OGP_LANG_workshop_configuration_not_found', "未找到Steam创意工坊配置");
|
define('GSP_LANG_workshop_configuration_not_found', "未找到Steam创意工坊配置");
|
||||||
define('OGP_LANG_download_method', "下载方法");
|
define('GSP_LANG_download_method', "下载方法");
|
||||||
define('OGP_LANG_anonymous_login', "匿名登录");
|
define('GSP_LANG_anonymous_login', "匿名登录");
|
||||||
define('OGP_LANG_select_at_least_one_mod_or_enter_mod_id', "至少选择一个模组或输入模组ID。");
|
define('GSP_LANG_select_at_least_one_mod_or_enter_mod_id', "至少选择一个模组或输入模组ID。");
|
||||||
define('OGP_LANG_no_game_servers_assigned', "你的账户没有分配任何服务器。");
|
define('GSP_LANG_no_game_servers_assigned', "你的账户没有分配任何服务器。");
|
||||||
?>
|
?>
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
define('LANG_install_lang', "Odaberite vaš željeni jezik");
|
define('LANG_install_lang', "Odaberite vaš željeni jezik");
|
||||||
define('LANG_install_welcome', "Dobrodošli u Open Game Panel Instalaciju");
|
define('LANG_install_welcome', "Dobrodošli u GameServer Panel Instalaciju");
|
||||||
define('LANG_file_permission_check', "Provjera potrebnih dozvola datoteka");
|
define('LANG_file_permission_check', "Provjera potrebnih dozvola datoteka");
|
||||||
define('LANG_OK', "OK");
|
define('LANG_OK', "OK");
|
||||||
define('LANG_write_permission_required', "Potrebna je pisana dozvola");
|
define('LANG_write_permission_required', "Potrebna je pisana dozvola");
|
||||||
|
|
@ -31,7 +31,7 @@ define('LANG_execute_permission_required', "Potrebna je dozvola za izvršavanje"
|
||||||
define('LANG_create_an_empty_file', "Izradite praznu datoteku.");
|
define('LANG_create_an_empty_file', "Izradite praznu datoteku.");
|
||||||
define('LANG_found', "Pronađeno");
|
define('LANG_found', "Pronađeno");
|
||||||
define('LANG_not_found', "Nije pronađeno");
|
define('LANG_not_found', "Nije pronađeno");
|
||||||
define('LANG_pear_xxtea_info', "Pear Crypt_XXTEA je potreban za korištenje OGP-a. U većini Linux distribucija ovaj modul se može instalirati pomoću sljedeće Pear naredbe 'pear install Crypt_XXTEA-beta'.");
|
define('LANG_pear_xxtea_info', "Pear Crypt_XXTEA je potreban za korištenje GSP-a. U većini Linux distribucija ovaj modul se može instalirati pomoću sljedeće Pear naredbe 'pear install Crypt_XXTEA-beta'.");
|
||||||
define('LANG_refresh', "Osvježiti");
|
define('LANG_refresh', "Osvježiti");
|
||||||
define('LANG_checking_required_modules', "Provjera potrebnih modula");
|
define('LANG_checking_required_modules', "Provjera potrebnih modula");
|
||||||
define('LANG_checking_optional_modules', "Provjera dodatnih modula");
|
define('LANG_checking_optional_modules', "Provjera dodatnih modula");
|
||||||
|
|
@ -49,7 +49,7 @@ define('LANG_unable_to_write_config', "Nije moguće pisati u konfiguracijsku dat
|
||||||
define('LANG_admin_login_details', "Pojedinosti prijave administratora");
|
define('LANG_admin_login_details', "Pojedinosti prijave administratora");
|
||||||
define('LANG_config_written', "Konfigurirane datoteke uspješno su stvorene.");
|
define('LANG_config_written', "Konfigurirane datoteke uspješno su stvorene.");
|
||||||
define('LANG_database_created', "Uspješno su stvorene tablice baza podataka.");
|
define('LANG_database_created', "Uspješno su stvorene tablice baza podataka.");
|
||||||
define('LANG_admin_login_details_info', "Sad stvaramo admin korisnika za vaš Open Game Panel.");
|
define('LANG_admin_login_details_info', "Sad stvaramo admin korisnika za vaš GameServer Panel.");
|
||||||
define('LANG_username', "Korisničko Ime");
|
define('LANG_username', "Korisničko Ime");
|
||||||
define('LANG_repeat_password', "Potvrdi Lozinku");
|
define('LANG_repeat_password', "Potvrdi Lozinku");
|
||||||
define('LANG_email', "Adresa E-pošte");
|
define('LANG_email', "Adresa E-pošte");
|
||||||
|
|
@ -60,10 +60,10 @@ define('LANG_invalid_username', "Unijeli ste nevaljano korisničko ime.");
|
||||||
define('LANG_password_too_short', "Vaša zaporka je prekratka. Mora biti barem '%d' znakova dugo.");
|
define('LANG_password_too_short', "Vaša zaporka je prekratka. Mora biti barem '%d' znakova dugo.");
|
||||||
define('LANG_password_contains_invalid_characters', "Vaša zaporka sadrži nevažeće znakove.");
|
define('LANG_password_contains_invalid_characters', "Vaša zaporka sadrži nevažeće znakove.");
|
||||||
define('LANG_invalid_email_address', "Unijeli ste nevažeću adresu e-pošte.");
|
define('LANG_invalid_email_address', "Unijeli ste nevažeću adresu e-pošte.");
|
||||||
define('LANG_setup_complete', "Uspostava je uspješno završena. Open Game Panel sad je spreman za upotrebu.");
|
define('LANG_setup_complete', "Uspostava je uspješno završena. GameServer Panel sad je spreman za upotrebu.");
|
||||||
define('LANG_remove_install_and_secure_config', "Trebali biste izbrisati install.php s vašeg poslužitelja i include/config.inc.php vratiti natrag na 644 zbog sigurnosnih razloga.");
|
define('LANG_remove_install_and_secure_config', "Trebali biste izbrisati install.php s vašeg poslužitelja i include/config.inc.php vratiti natrag na 644 zbog sigurnosnih razloga.");
|
||||||
define('LANG_go_to_panel', "Kliknite ovdje za prijavu na OGP.");
|
define('LANG_go_to_panel', "Kliknite ovdje za prijavu na GSP.");
|
||||||
define('LANG_unable_to_resolve', "Ako ne možete riješiti ovaj problem, posjetite web stranicu OGP-a");
|
define('LANG_unable_to_resolve', "Ako ne možete riješiti ovaj problem, posjetite web stranicu GSP-a");
|
||||||
define('LANG_slogan', "The Open-Source one!");
|
define('LANG_slogan', "The Open-Source one!");
|
||||||
define('LANG_default_welcome_title_message', "Dobrodošli! <b style='font-size:12px; font-weight:normal;'>Možete promjeniti ovaj tekst na '<a href='?m=settings&p=themes'>Postavke teme</a>' ispod '<a href='?m=administration&p=main'>Administracija</a>'</b>");
|
define('LANG_default_welcome_title_message', "Dobrodošli! <b style='font-size:12px; font-weight:normal;'>Možete promjeniti ovaj tekst na '<a href='?m=settings&p=themes'>Postavke teme</a>' ispod '<a href='?m=administration&p=main'>Administracija</a>'</b>");
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -23,10 +23,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
define('LANG_dashboard_ftp_text', "FTP klijent može komprimirati datoteke i poslati ih putem e-pošte, može dekomprimirati , uređivati tekstne datoteke i još mnogo toga.");
|
define('LANG_dashboard_ftp_text', "FTP klijent može komprimirati datoteke i poslati ih putem e-pošte, može dekomprimirati , uređivati tekstne datoteke i još mnogo toga.");
|
||||||
define('LANG_dashboard_addons_manager_text', "Upravljajte svim različitim vrstama usluga s OGP-om. Odaberite između više od 115 servera, koje izravno dobavlja OGP.");
|
define('LANG_dashboard_addons_manager_text', "Upravljajte svim različitim vrstama usluga s GSP-om. Odaberite između više od 115 servera, koje izravno dobavlja GSP.");
|
||||||
define('LANG_dashboard_game_monitor_text', "Brzo pratite i pratite promet i zapisnike. Možete vidjeti koji su serveri gore i dolje.");
|
define('LANG_dashboard_game_monitor_text', "Brzo pratite i pratite promet i zapisnike. Možete vidjeti koji su serveri gore i dolje.");
|
||||||
define('LANG_dashboard_support_text', "Potražite podršku OGP Profesionalnog tima na forumu. Brzi odgovor i velika pažnja.");
|
define('LANG_dashboard_support_text', "Potražite podršku GSP Profesionalnog tima na forumu. Brzi odgovor i velika pažnja.");
|
||||||
define('LANG_welcome_text', "Dobrodošli na Open Game Panel (OGP). OGP je softver otvorenog koda, koji vam omogućuje instalaciju, pokretanje i praćenje različitih servera.");
|
define('LANG_welcome_text', "Dobrodošli na GameServer Panel (GSP). GSP je softver otvorenog koda, koji vam omogućuje instalaciju, pokretanje i praćenje različitih servera.");
|
||||||
define('LANG_any_server_is_online', "Serveri na mreži");
|
define('LANG_any_server_is_online', "Serveri na mreži");
|
||||||
define('LANG_current_map', "Trenutna Mapa");
|
define('LANG_current_map', "Trenutna Mapa");
|
||||||
define('LANG_server_ip_port', "IP:Port");
|
define('LANG_server_ip_port', "IP:Port");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -33,7 +33,7 @@ define('LANG_create_alias_for', "Stvoriti Brzo Skidanje za");
|
||||||
define('LANG_fast_dl', "Upravljajte Brzim Skidanjem (FastDL)");
|
define('LANG_fast_dl', "Upravljajte Brzim Skidanjem (FastDL)");
|
||||||
define('LANG_current_aliases_at_remote_server', "Trenutni Serveri na kojima se koristi Brzo Skidanje");
|
define('LANG_current_aliases_at_remote_server', "Trenutni Serveri na kojima se koristi Brzo Skidanje");
|
||||||
define('LANG_delete_selected_aliases', "Izbrisati odabrane usluge");
|
define('LANG_delete_selected_aliases', "Izbrisati odabrane usluge");
|
||||||
define('LANG_no_aliases_defined', "Još ne postoje web usluge Brzo Skidanje koji definira OGP za ovaj udaljeni server.");
|
define('LANG_no_aliases_defined', "Još ne postoje web usluge Brzo Skidanje koji definira GSP za ovaj udaljeni server.");
|
||||||
define('LANG_fastdl_port', "Port");
|
define('LANG_fastdl_port', "Port");
|
||||||
define('LANG_fastdl_port_info', "Port na kojem če vaš Daemon za Brzo Skidanje početi");
|
define('LANG_fastdl_port_info', "Port na kojem če vaš Daemon za Brzo Skidanje početi");
|
||||||
define('LANG_fastdl_ip', "Adresa");
|
define('LANG_fastdl_ip', "Adresa");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
define('LANG_no_games_to_monitor', "Nemate nijednu konfiguriranu igricu koju možete nadzirati.");
|
define('LANG_no_games_to_monitor', "Nemate nijednu konfiguriranu igricu koju možete nadzirati.");
|
||||||
define('LANG_status', "Status");
|
define('LANG_status', "Status");
|
||||||
define('LANG_fail_no_mods', "Nijedan Mod nije omogućen za ovu igru! Morate zatražiti od administratora OGP-a da dodate Mod(ove) za igru koja vam je dodjeljena.");
|
define('LANG_fail_no_mods', "Nijedan Mod nije omogućen za ovu igru! Morate zatražiti od administratora GSP-a da dodate Mod(ove) za igru koja vam je dodjeljena.");
|
||||||
define('LANG_no_game_homes_assigned', "Nemate nijedan server dodijeljen vašem računu.");
|
define('LANG_no_game_homes_assigned', "Nemate nijedan server dodijeljen vašem računu.");
|
||||||
define('LANG_select_game_home_to_configure', "Odaberite server koji želite konfigurirati");
|
define('LANG_select_game_home_to_configure', "Odaberite server koji želite konfigurirati");
|
||||||
define('LANG_file_manager', "Upravitelj datoteka");
|
define('LANG_file_manager', "Upravitelj datoteka");
|
||||||
|
|
@ -35,7 +35,7 @@ define('LANG_assign_game_homes', "Dodijeli server");
|
||||||
define('LANG_user', "Korisnik");
|
define('LANG_user', "Korisnik");
|
||||||
define('LANG_group', "Grupa");
|
define('LANG_group', "Grupa");
|
||||||
define('LANG_start', "Početak");
|
define('LANG_start', "Početak");
|
||||||
define('LANG_ogp_agent_ip', "OGP IP adresa Agenta");
|
define('LANG_gsp_agent_ip', "GSP IP adresa Agenta");
|
||||||
define('LANG_max_players', "Maksimalno Igrača");
|
define('LANG_max_players', "Maksimalno Igrača");
|
||||||
define('LANG_max', "Maksimalno");
|
define('LANG_max', "Maksimalno");
|
||||||
define('LANG_ip_and_port', "IP i Port");
|
define('LANG_ip_and_port', "IP i Port");
|
||||||
|
|
@ -89,7 +89,7 @@ define('LANG_player_name', "Ime Igrača");
|
||||||
define('LANG_score', "Rezultat");
|
define('LANG_score', "Rezultat");
|
||||||
define('LANG_time', "Vrijeme");
|
define('LANG_time', "Vrijeme");
|
||||||
define('LANG_no_rights_to_stop_server', "Nemate prava za zaustavljanje ovog servera.");
|
define('LANG_no_rights_to_stop_server', "Nemate prava za zaustavljanje ovog servera.");
|
||||||
define('LANG_no_ogp_lgsl_support', "Ovaj server (pokrenut: %s) nema LGSL podršku u OGP-u i njegova se statistika ne može prikazati.");
|
define('LANG_no_gsp_lgsl_support', "Ovaj server (pokrenut: %s) nema LGSL podršku u GSP-u i njegova se statistika ne može prikazati.");
|
||||||
define('LANG_server_status', "Server na %s je %s.");
|
define('LANG_server_status', "Server na %s je %s.");
|
||||||
define('LANG_server_stopped', "Server '%s' je zaustavljen.");
|
define('LANG_server_stopped', "Server '%s' je zaustavljen.");
|
||||||
define('LANG_if_want_to_start_homes', "Ako želite pokrenuti Igrice idite na %s.");
|
define('LANG_if_want_to_start_homes', "Ako želite pokrenuti Igrice idite na %s.");
|
||||||
|
|
@ -148,7 +148,7 @@ define('LANG_execute_operations', "Izvršiti operacije");
|
||||||
define('LANG_account_expiration', "Račun ističe");
|
define('LANG_account_expiration', "Račun ističe");
|
||||||
define('LANG_mysql_databases', "MySQL Baza Podataka");
|
define('LANG_mysql_databases', "MySQL Baza Podataka");
|
||||||
define('LANG_failed_querying_server', "* Server nije uspješno pokrenut.");
|
define('LANG_failed_querying_server', "* Server nije uspješno pokrenut.");
|
||||||
define('LANG_query_protocol_not_supported', "Ne postoji upitni protokol u OGP-u koji može podržati ovaj server.");
|
define('LANG_query_protocol_not_supported', "Ne postoji upitni protokol u GSP-u koji može podržati ovaj server.");
|
||||||
define('LANG_queries_disabled_by_setting_disable_queries_after', "Upiti su onemogućeni postavljanjem: Onemogući upite nakon: %s, jer imate %s servera.<br>");
|
define('LANG_queries_disabled_by_setting_disable_queries_after', "Upiti su onemogućeni postavljanjem: Onemogući upite nakon: %s, jer imate %s servera.<br>");
|
||||||
define('LANG_presets_for_game_and_mod', "RCON predpodešavanje za %s i mod %s");
|
define('LANG_presets_for_game_and_mod', "RCON predpodešavanje za %s i mod %s");
|
||||||
define('LANG_name', "Ime");
|
define('LANG_name', "Ime");
|
||||||
|
|
@ -188,7 +188,7 @@ define('LANG_no_online_players', "Nema igrača na mreži.");
|
||||||
define('LANG_invalid_game_mod_id', "Navedeno je nevažeći ID Igre/Moda.");
|
define('LANG_invalid_game_mod_id', "Navedeno je nevažeći ID Igre/Moda.");
|
||||||
define('LANG_auto_update_title_popup', "Link za Steam Automatsko Ažuriranje");
|
define('LANG_auto_update_title_popup', "Link za Steam Automatsko Ažuriranje");
|
||||||
define('LANG_auto_update_popup_html', "<p>Koristite vezu u nastavku da biste provjerili i automatski ažurirali svoj server putem Steam-a ako je potrebno. & Nbsp; Možete upotrijebiti korištenjem cronjob-a ili ručno pokrenuti postupak.");
|
define('LANG_auto_update_popup_html', "<p>Koristite vezu u nastavku da biste provjerili i automatski ažurirali svoj server putem Steam-a ako je potrebno. & Nbsp; Možete upotrijebiti korištenjem cronjob-a ili ručno pokrenuti postupak.");
|
||||||
define('LANG_api_links_popup_html', "<p>Odaberite radnju koju želite izvršiti pomoću OGP API-ja za ovaj poslužitelj igre. Zatim pomoću donje veze izvedite željenu radnju. Željenu radnju možete pokrenuti pomoću cronjoba ili izravnim zahtjevom.</p>");
|
define('LANG_api_links_popup_html', "<p>Odaberite radnju koju želite izvršiti pomoću GSP API-ja za ovaj poslužitelj igre. Zatim pomoću donje veze izvedite željenu radnju. Željenu radnju možete pokrenuti pomoću cronjoba ili izravnim zahtjevom.</p>");
|
||||||
define('LANG_auto_update_copy_me', "Kopiraj");
|
define('LANG_auto_update_copy_me', "Kopiraj");
|
||||||
define('LANG_auto_update_copy_me_success', "Kopirano!");
|
define('LANG_auto_update_copy_me_success', "Kopirano!");
|
||||||
define('LANG_auto_update_copy_me_fail', "Kopiranje nije uspjelo. Molimo ručno kopirajte vezu.");
|
define('LANG_auto_update_copy_me_fail', "Kopiranje nije uspjelo. Molimo ručno kopirajte vezu.");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -33,7 +33,7 @@ define('LANG_to_login', "za prijavu");
|
||||||
define('LANG_errormail', "Vaša adresa e-pošte nije točna.");
|
define('LANG_errormail', "Vaša adresa e-pošte nije točna.");
|
||||||
define('LANG_submit', "Potvrditi");
|
define('LANG_submit', "Potvrditi");
|
||||||
define('LANG_click', "Stisni");
|
define('LANG_click', "Stisni");
|
||||||
define('LANG_mail_settings_missing', "Postavke Panel pošte nisu potpune pa ne može poslati vašu zaporku. Kontaktirajte svog administratora OGP-a.");
|
define('LANG_mail_settings_missing', "Postavke Panel pošte nisu potpune pa ne može poslati vašu zaporku. Kontaktirajte svog administratora GSP-a.");
|
||||||
define('LANG_mail_failed', "Slanje e-pošte nije uspjelo.");
|
define('LANG_mail_failed', "Slanje e-pošte nije uspjelo.");
|
||||||
define('LANG_email', "E-pošta");
|
define('LANG_email', "E-pošta");
|
||||||
define('LANG_enter_email', "Molim upišite svoju adresu e-pošte");
|
define('LANG_enter_email', "Molim upišite svoju adresu e-pošte");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -33,7 +33,7 @@ define('LANG_uninstall', "Deinstalirati");
|
||||||
define('LANG_modules', "Moduli");
|
define('LANG_modules', "Moduli");
|
||||||
define('LANG_update_modules', "Ažuriraj Module");
|
define('LANG_update_modules', "Ažuriraj Module");
|
||||||
define('LANG_no_installed_modules', "Nije pronađen nijedan instalirani Modul.");
|
define('LANG_no_installed_modules', "Nije pronađen nijedan instalirani Modul.");
|
||||||
define('LANG_not_complete', "Značajka Instalirati/Deinstalirari nije potpuna i možda neće ispravno raditi. UPOZORENJE: Gubitak podataka može se pojaviti u OGP bazi podataka!");
|
define('LANG_not_complete', "Značajka Instalirati/Deinstalirari nije potpuna i možda neće ispravno raditi. UPOZORENJE: Gubitak podataka može se pojaviti u GSP bazi podataka!");
|
||||||
define('LANG_core_mods_installed', "Instalirani Jezgrenih Moduli:");
|
define('LANG_core_mods_installed', "Instalirani Jezgrenih Moduli:");
|
||||||
define('LANG_custom_mods_installed', "Instalirani Dodatnih Moduli:");
|
define('LANG_custom_mods_installed', "Instalirani Dodatnih Moduli:");
|
||||||
define('LANG_installing_module', "Instaliranje modula '%s'");
|
define('LANG_installing_module', "Instaliranje modula '%s'");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2017 The OGP Development Team
|
* Copyright (C) 2008 - 2017 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2017 The OGP Development Team
|
* Copyright (C) 2008 - 2017 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -40,7 +40,7 @@ define('LANG_successfull', "Uspješno");
|
||||||
define('LANG_click_here', "Kliknite ovdje");
|
define('LANG_click_here', "Kliknite ovdje");
|
||||||
define('LANG_to_login', "za prijavu.");
|
define('LANG_to_login', "za prijavu.");
|
||||||
define('LANG_registered_on', "Registriran na %s.");
|
define('LANG_registered_on', "Registriran na %s.");
|
||||||
define('LANG_register_message', "Poštovani,<br><br>Vaš Open Game Panel račun je uspješno kreiran i vi se sada <a href='%s' target='_blank'>možete prijaviti</a>.<br><br>Korisničko ime: %s<br><br>Ne zaboravite često mijenjati zaporku i prvi put kada se prijavite.<br><br>Molimo ne odgovarajte na ovaj email!<br><br>______________________________<br>OGP Pošta");
|
define('LANG_register_message', "Poštovani,<br><br>Vaš GameServer Panel račun je uspješno kreiran i vi se sada <a href='%s' target='_blank'>možete prijaviti</a>.<br><br>Korisničko ime: %s<br><br>Ne zaboravite često mijenjati zaporku i prvi put kada se prijavite.<br><br>Molimo ne odgovarajte na ovaj email!<br><br>______________________________<br>GSP Pošta");
|
||||||
define('LANG_err_captcha', "Captcha se ne podudara.");
|
define('LANG_err_captcha', "Captcha se ne podudara.");
|
||||||
define('LANG_err_login_name', "Korisničko Ime je prazno ili zauzeto.");
|
define('LANG_err_login_name', "Korisničko Ime je prazno ili zauzeto.");
|
||||||
define('LANG_err_first_name', "Unesite vaše Ime");
|
define('LANG_err_first_name', "Unesite vaše Ime");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -27,9 +27,9 @@ define('LANG_configured_remote_hosts', "Konfigurirani Udaljeni Poslužitelj");
|
||||||
define('LANG_remote_host', "Udaljeni Poslužitelj");
|
define('LANG_remote_host', "Udaljeni Poslužitelj");
|
||||||
define('LANG_remote_host_info', "Udaljeni poslužitelj mora imati odgovarajući naziv poslužitelja!");
|
define('LANG_remote_host_info', "Udaljeni poslužitelj mora imati odgovarajući naziv poslužitelja!");
|
||||||
define('LANG_remote_host_port', "Port Udaljenog Poslužitelja");
|
define('LANG_remote_host_port', "Port Udaljenog Poslužitelja");
|
||||||
define('LANG_remote_host_port_info', "Port od strane OGP Agenta na udaljenom poslužitelju. Zadano:12679");
|
define('LANG_remote_host_port_info', "Port od strane GSP Agenta na udaljenom poslužitelju. Zadano:12679");
|
||||||
define('LANG_remote_host_name', "Naziv Udaljenog Poslužitelja");
|
define('LANG_remote_host_name', "Naziv Udaljenog Poslužitelja");
|
||||||
define('LANG_ogp_user', "Korisničko Ime OGP Agenta");
|
define('LANG_gsp_user', "Korisničko Ime GSP Agenta");
|
||||||
define('LANG_remote_host_name_info', "Naziv udaljenog poslužitelja koristi se za pomoć korisnicima da identificiraju svoje poslužitelje.");
|
define('LANG_remote_host_name_info', "Naziv udaljenog poslužitelja koristi se za pomoć korisnicima da identificiraju svoje poslužitelje.");
|
||||||
define('LANG_add_remote_host', "Dodajte Udaljeni Poslužitelj");
|
define('LANG_add_remote_host', "Dodajte Udaljeni Poslužitelj");
|
||||||
define('LANG_remote_encryption_key', "Udaljeni Ključ za Enkripciju");
|
define('LANG_remote_encryption_key', "Udaljeni Ključ za Enkripciju");
|
||||||
|
|
@ -41,8 +41,8 @@ define('LANG_ips', "IP adrese");
|
||||||
define('LANG_add_more_ips', "Ako želite unijeti više IP adresa, pritisnite 'Postaviti IPe' kada su sva polja puna i pojavit će se prazno polje.");
|
define('LANG_add_more_ips', "Ako želite unijeti više IP adresa, pritisnite 'Postaviti IPe' kada su sva polja puna i pojavit će se prazno polje.");
|
||||||
define('LANG_encryption_key_mismatch', "Ključ za enkripciju ne podudara se sa Agentom. Molimo provjerite konfiguracije Agenta");
|
define('LANG_encryption_key_mismatch', "Ključ za enkripciju ne podudara se sa Agentom. Molimo provjerite konfiguracije Agenta");
|
||||||
define('LANG_no_ip_for_remote_host', "Morate dodati barem jednu (1) IP adresu za svaki udaljeni poslužitelj.");
|
define('LANG_no_ip_for_remote_host', "Morate dodati barem jednu (1) IP adresu za svaki udaljeni poslužitelj.");
|
||||||
define('LANG_note_remote_host', "Udaljenj poslužitelj je server na kojem se pokreće Agent OGPa. Svaki poslužitelj može imati više IP adresa na kojima korisnici mogu vezati servere.");
|
define('LANG_note_remote_host', "Udaljenj poslužitelj je server na kojem se pokreće Agent GSP-a. Svaki poslužitelj može imati više IP adresa na kojima korisnici mogu vezati servere.");
|
||||||
define('LANG_ip_administration', "Server & IP Administracija :: Open Game Panel");
|
define('LANG_ip_administration', "Server & IP Administracija :: GameServer Panel");
|
||||||
define('LANG_unknown_error', "Nepoznata pogreška - status_chk odbijeno");
|
define('LANG_unknown_error', "Nepoznata pogreška - status_chk odbijeno");
|
||||||
define('LANG_remote_host_user_name', "UNIX korisnik");
|
define('LANG_remote_host_user_name', "UNIX korisnik");
|
||||||
define('LANG_remote_host_user_name_info', "Korisničko Ime odakle je Agent pokrenut. Primjer: Ivan");
|
define('LANG_remote_host_user_name_info', "Korisničko Ime odakle je Agent pokrenut. Primjer: Ivan");
|
||||||
|
|
@ -74,7 +74,7 @@ define('LANG_ips_set_for_server', "Uspješno su postavljeni IP adrese za posluž
|
||||||
define('LANG_could_not_remove_ip', "Nije moguće ukloniti stare IP adrese od baze podataka.");
|
define('LANG_could_not_remove_ip', "Nije moguće ukloniti stare IP adrese od baze podataka.");
|
||||||
define('LANG_could_add_ip', "Mogli bi dodati IP poslužitelja u bazu podataka.");
|
define('LANG_could_add_ip', "Mogli bi dodati IP poslužitelja u bazu podataka.");
|
||||||
define('LANG_areyousure_removeagent', "Jeste li sigurni da želite ukloniti Agent pod nazivom");
|
define('LANG_areyousure_removeagent', "Jeste li sigurni da želite ukloniti Agent pod nazivom");
|
||||||
define('LANG_areyousure_removeagent2', "i sve mape povezane s njim iz OGP baze podataka?");
|
define('LANG_areyousure_removeagent2', "i sve mape povezane s njim iz GSP baze podataka?");
|
||||||
define('LANG_error_while_remove', "Došlo je do pogreške prilikom uklanjanja udaljenog poslužitelja.");
|
define('LANG_error_while_remove', "Došlo je do pogreške prilikom uklanjanja udaljenog poslužitelja.");
|
||||||
define('LANG_add_ip', "Dodati IP");
|
define('LANG_add_ip', "Dodati IP");
|
||||||
define('LANG_remove_ip', "Ukloniti IP");
|
define('LANG_remove_ip', "Ukloniti IP");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -92,7 +92,7 @@ define('LANG_recaptcha_use_login_info', "Ako je omogućeno, korisnici će morati
|
||||||
define('LANG_login_attempts_before_banned', "Broj neuspjelih pokušaja prijave prije nego što korisnik dobije zabranu");
|
define('LANG_login_attempts_before_banned', "Broj neuspjelih pokušaja prijave prije nego što korisnik dobije zabranu");
|
||||||
define('LANG_login_attempts_before_banned_info', "Ako se korisnik više puta pokuša prijaviti s nevažećim detaljima za prijavu, Panel će privremeno zabraniti korisnika.");
|
define('LANG_login_attempts_before_banned_info', "Ako se korisnik više puta pokuša prijaviti s nevažećim detaljima za prijavu, Panel će privremeno zabraniti korisnika.");
|
||||||
define('LANG_custom_github_update_username', "Korisničko Ime za GitHub ažuriranje");
|
define('LANG_custom_github_update_username', "Korisničko Ime za GitHub ažuriranje");
|
||||||
define('LANG_custom_github_update_username_info', "Unesite GitHub korisničko ime SAMO za korištenje vlastitih repozitoriji za ažuriranje OGP-a. To bi trebalo mijenjati samo razvojni programeri koji žele koristiti vlastiti repozitorij za razvoj, umjesto da provjere eventualno pogrešan kod u glavnu granu.");
|
define('LANG_custom_github_update_username_info', "Unesite GitHub korisničko ime SAMO za korištenje vlastitih repozitoriji za ažuriranje GSP-a. To bi trebalo mijenjati samo razvojni programeri koji žele koristiti vlastiti repozitorij za razvoj, umjesto da provjere eventualno pogrešan kod u glavnu granu.");
|
||||||
define('LANG_remote_query', "Udaljeni upit");
|
define('LANG_remote_query', "Udaljeni upit");
|
||||||
define('LANG_remote_query_info', "Upotrijebite udaljeni poslužitelj (agent) za upite na igre (samo GameQ i LGSL).");
|
define('LANG_remote_query_info', "Upotrijebite udaljeni poslužitelj (agent) za upite na igre (samo GameQ i LGSL).");
|
||||||
define('LANG_check_expiry_by', "Provjerite istek");
|
define('LANG_check_expiry_by', "Provjerite istek");
|
||||||
|
|
@ -131,7 +131,7 @@ define('LANG_bg_wrapper_info', "Pozadinska slika wrappera. <b style='font-size:1
|
||||||
define('LANG_show_server_id_game_monitor', "Prikaži ID servera na stranici Monitor igara");
|
define('LANG_show_server_id_game_monitor', "Prikaži ID servera na stranici Monitor igara");
|
||||||
define('LANG_show_server_id_game_monitor_info', "Pokažite stupac ID servera na Monitor Igara za podudaranje datoteka stvorenih od strane Agenta na aktualnom serveru.");
|
define('LANG_show_server_id_game_monitor_info', "Pokažite stupac ID servera na Monitor Igara za podudaranje datoteka stvorenih od strane Agenta na aktualnom serveru.");
|
||||||
define('LANG_default_game_server_home_path_prefix', "Zadani prefiks Home direktorija za server");
|
define('LANG_default_game_server_home_path_prefix', "Zadani prefiks Home direktorija za server");
|
||||||
define('LANG_default_game_server_home_path_prefix_info', "Unesite prefiks putanja za mjesto na kojem želite da Home direktoriji servera budu izrađeni prema zadanim postavkama. Možete upotrebljavati \"{USERNAME}\" na putu koji će biti zamijenjen korisničkim imenom OGP-a kojem se dodjeljuje server. Možete koristiti \"{GAMEKEY}\" na putu koji će biti zamijenjen imenom sa malim slovima. Možete upotrebljavati \"{SKIPID}\" bilo gdje na putu da preskočite dodavanje Home ID-a na putnju. Primjer: /ogp/games/{USERNAME}/{GAMEKEY}{SKIPID} će postati /ogp/games/username/arkse/. Primjer 2: /ogp/games će postati /ogp/games/1 gdje je 1 ID servera.");
|
define('LANG_default_game_server_home_path_prefix_info', "Unesite prefiks putanja za mjesto na kojem želite da Home direktoriji servera budu izrađeni prema zadanim postavkama. Možete upotrebljavati \"{USERNAME}\" na putu koji će biti zamijenjen korisničkim imenom GSP-a kojem se dodjeljuje server. Možete koristiti \"{GAMEKEY}\" na putu koji će biti zamijenjen imenom sa malim slovima. Možete upotrebljavati \"{SKIPID}\" bilo gdje na putu da preskočite dodavanje Home ID-a na putnju. Primjer: /gsp/games/{USERNAME}/{GAMEKEY}{SKIPID} će postati /gsp/games/username/arkse/. Primjer 2: /gsp/games će postati /gsp/games/1 gdje je 1 ID servera.");
|
||||||
define('LANG_use_authorized_hosts', "Ograničite API na Definirane ovlaštene hostove");
|
define('LANG_use_authorized_hosts', "Ograničite API na Definirane ovlaštene hostove");
|
||||||
define('LANG_use_authorized_hosts_info', "Omogućite ovu postavku da biste dozvolili samo API pozive s unaprijed definiranih i odobrenih IP adresa. Odobrene adrese možete postaviti na ovoj stranici nakon što je postavka omogućena. Ako je ova postavka onemogućena, korisnik koji koristi važeći ključ imat će pristup API-ju s bilo koje IP adrese. Korisnici koji koriste valjani ključ moći će koristiti API za upravljanje bilo kojim poslužiteljem za igre koje imaju dozvole za administriranje.");
|
define('LANG_use_authorized_hosts_info', "Omogućite ovu postavku da biste dozvolili samo API pozive s unaprijed definiranih i odobrenih IP adresa. Odobrene adrese možete postaviti na ovoj stranici nakon što je postavka omogućena. Ako je ova postavka onemogućena, korisnik koji koristi važeći ključ imat će pristup API-ju s bilo koje IP adrese. Korisnici koji koriste valjani ključ moći će koristiti API za upravljanje bilo kojim poslužiteljem za igre koje imaju dozvole za administriranje.");
|
||||||
define('LANG_setup_api_authorized_hosts', "Postavke API za autorizaciju poslužitelja");
|
define('LANG_setup_api_authorized_hosts', "Postavke API za autorizaciju poslužitelja");
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -21,54 +21,54 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
define('OGP_LANG_game', "Igra");
|
define('GSP_LANG_game', "Igra");
|
||||||
define('OGP_LANG_select_mod', "Izaberite Mod");
|
define('GSP_LANG_select_mod', "Izaberite Mod");
|
||||||
define('OGP_LANG_manual_workshop_mod_id', "Workshop mod ID Ručno");
|
define('GSP_LANG_manual_workshop_mod_id', "Workshop mod ID Ručno");
|
||||||
define('OGP_LANG_manual_workshop_mod_id_info', "Naći ćete mod id na URL modu, na primjer 1379153273 za ARK: Survival Evolved's Solar Panel. Možete instalirati više modova koji se razdvajaju od strane coma.");
|
define('GSP_LANG_manual_workshop_mod_id_info', "Naći ćete mod id na URL modu, na primjer 1379153273 za ARK: Survival Evolved's Solar Panel. Možete instalirati više modova koji se razdvajaju od strane coma.");
|
||||||
define('OGP_LANG_update_in_progress', "Ažuriranje u tijeku");
|
define('GSP_LANG_update_in_progress', "Ažuriranje u tijeku");
|
||||||
define('OGP_LANG_refresh_steam_workshop_status', "Osjvežiti Steam Workshop status");
|
define('GSP_LANG_refresh_steam_workshop_status', "Osjvežiti Steam Workshop status");
|
||||||
define('OGP_LANG_update_completed', "Ažuriranje je dovršeno");
|
define('GSP_LANG_update_completed', "Ažuriranje je dovršeno");
|
||||||
define('OGP_LANG_mod_does_not_belong_to_workshop', "Mod %s ne pripada Workshopu");
|
define('GSP_LANG_mod_does_not_belong_to_workshop', "Mod %s ne pripada Workshopu");
|
||||||
define('OGP_LANG_mod_installation_started', "Instalacija moda je započela");
|
define('GSP_LANG_mod_installation_started', "Instalacija moda je započela");
|
||||||
define('OGP_LANG_failed_to_start_steam_workshop', "Pokretanje Steam Workshop nije uspjelo");
|
define('GSP_LANG_failed_to_start_steam_workshop', "Pokretanje Steam Workshop nije uspjelo");
|
||||||
define('OGP_LANG_connection_error', "Greška u povezivanju");
|
define('GSP_LANG_connection_error', "Greška u povezivanju");
|
||||||
define('OGP_LANG_install_mod', "Instalirajte modove");
|
define('GSP_LANG_install_mod', "Instalirajte modove");
|
||||||
define('OGP_LANG_show_mod_info', "Prikaži informacije o modovima");
|
define('GSP_LANG_show_mod_info', "Prikaži informacije o modovima");
|
||||||
define('OGP_LANG_select_game', "Odaberite Igru");
|
define('GSP_LANG_select_game', "Odaberite Igru");
|
||||||
define('OGP_LANG_save_config', "Spremi konfiguraciju");
|
define('GSP_LANG_save_config', "Spremi konfiguraciju");
|
||||||
define('OGP_LANG_mod_key_not_found_from_xml', "Mod ključ %s nije pronađen iz xml-a.");
|
define('GSP_LANG_mod_key_not_found_from_xml', "Mod ključ %s nije pronađen iz xml-a.");
|
||||||
define('OGP_LANG_workshop_id', "Workshop ID");
|
define('GSP_LANG_workshop_id', "Workshop ID");
|
||||||
define('OGP_LANG_workshop_id_info', "ID Workshopa naći ćete u URL-u Workshopa , na primjer 440900 za Conan Exiles");
|
define('GSP_LANG_workshop_id_info', "ID Workshopa naći ćete u URL-u Workshopa , na primjer 440900 za Conan Exiles");
|
||||||
define('OGP_LANG_mods_path', "Putanje modova");
|
define('GSP_LANG_mods_path', "Putanje modova");
|
||||||
define('OGP_LANG_mods_path_info', "Realtivno putanje za mapu modova");
|
define('GSP_LANG_mods_path_info', "Realtivno putanje za mapu modova");
|
||||||
define('OGP_LANG_regex', "Regex");
|
define('GSP_LANG_regex', "Regex");
|
||||||
define('OGP_LANG_regex_info', "Regularni izraz koji odgovara modima u konfiguracijskoj datoteci");
|
define('GSP_LANG_regex_info', "Regularni izraz koji odgovara modima u konfiguracijskoj datoteci");
|
||||||
define('OGP_LANG_mods_backreference_index', "Indeks povratnih informacija modova");
|
define('GSP_LANG_mods_backreference_index', "Indeks povratnih informacija modova");
|
||||||
define('OGP_LANG_mods_backreference_index_info', "Položaj povratnih informacija od dijela regexa koji odgovara popisu moda, počevši od 0.");
|
define('GSP_LANG_mods_backreference_index_info', "Položaj povratnih informacija od dijela regexa koji odgovara popisu moda, počevši od 0.");
|
||||||
define('OGP_LANG_variable', "Varijabla");
|
define('GSP_LANG_variable', "Varijabla");
|
||||||
define('OGP_LANG_variable_info', "Varijabla koja sadrži popis modova, ako ih ima.");
|
define('GSP_LANG_variable_info', "Varijabla koja sadrži popis modova, ako ih ima.");
|
||||||
define('OGP_LANG_place_after', "Mjesto nakon");
|
define('GSP_LANG_place_after', "Mjesto nakon");
|
||||||
define('OGP_LANG_place_after_info', "Dio konfiguracijske datoteke gdje se pojavljuje popis moda, ako ih ima. Bit će dodano konfiguracijskoj datoteci ako još ne postoji. Ako navedena varijabla nije prisutna, tada će biti stavljen u retku nakon ovog odjeljka.");
|
define('GSP_LANG_place_after_info', "Dio konfiguracijske datoteke gdje se pojavljuje popis moda, ako ih ima. Bit će dodano konfiguracijskoj datoteci ako još ne postoji. Ako navedena varijabla nije prisutna, tada će biti stavljen u retku nakon ovog odjeljka.");
|
||||||
define('OGP_LANG_mod_string', "Mod String");
|
define('GSP_LANG_mod_string', "Mod String");
|
||||||
define('OGP_LANG_mod_string_info', "Niz koji predstavlja mod u modu popisa. Važeće zamjene:% workshop_mod_id%, %first_file% (prva datoteka je prva datoteka pronađena u mod mapi preuzeta od strane SteamCMD)");
|
define('GSP_LANG_mod_string_info', "Niz koji predstavlja mod u modu popisa. Važeće zamjene:% workshop_mod_id%, %first_file% (prva datoteka je prva datoteka pronađena u mod mapi preuzeta od strane SteamCMD)");
|
||||||
define('OGP_LANG_string_separator', "String razdvajanje");
|
define('GSP_LANG_string_separator', "String razdvajanje");
|
||||||
define('OGP_LANG_string_separator_info', "Karakter koji razdvaja modove u konfiguracijskoj datoteci, npr. Novi znak linije (\\ n) ili coma (,).");
|
define('GSP_LANG_string_separator_info', "Karakter koji razdvaja modove u konfiguracijskoj datoteci, npr. Novi znak linije (\\ n) ili coma (,).");
|
||||||
define('OGP_LANG_filepath', "Putanje datoteke");
|
define('GSP_LANG_filepath', "Putanje datoteke");
|
||||||
define('OGP_LANG_filepath_info', "Put konfiguracijske datoteke u kojoj moraju biti navedeni modovi.");
|
define('GSP_LANG_filepath_info', "Put konfiguracijske datoteke u kojoj moraju biti navedeni modovi.");
|
||||||
define('OGP_LANG_post_install', "Postinstall Skripta");
|
define('GSP_LANG_post_install', "Postinstall Skripta");
|
||||||
define('OGP_LANG_post_install_info', "Potrebne naredbe u bash za pomicanje moda u mapu mods. Važeća zamjena:% mods_full_path% (puni put do mape Wokshop mods),% workshop_mod_id%, %first_file% (prva datoteka prva je datoteka pronađena u mod preuzeta od strane SteamCMD)");
|
define('GSP_LANG_post_install_info', "Potrebne naredbe u bash za pomicanje moda u mapu mods. Važeća zamjena:% mods_full_path% (puni put do mape Wokshop mods),% workshop_mod_id%, %first_file% (prva datoteka prva je datoteka pronađena u mod preuzeta od strane SteamCMD)");
|
||||||
define('OGP_LANG_install_mods', "Instalirati modove");
|
define('GSP_LANG_install_mods', "Instalirati modove");
|
||||||
define('OGP_LANG_uninstall_mods', "Deinstalirati modove");
|
define('GSP_LANG_uninstall_mods', "Deinstalirati modove");
|
||||||
define('OGP_LANG_failed_uninstalling_mod', "Neuspješno deinstaliranje moda %s");
|
define('GSP_LANG_failed_uninstalling_mod', "Neuspješno deinstaliranje moda %s");
|
||||||
define('OGP_LANG_uninstall', "Deinstalirati Skriptu");
|
define('GSP_LANG_uninstall', "Deinstalirati Skriptu");
|
||||||
define('OGP_LANG_uninstall_info', "Ovo je skripta koja se zove kada je mod deinstaliran, Važeće zamjene:% mods_full_path% (puni put do mape wokshop mods),% mod_string% (mod string je naziv naveden u konfiguracijskoj datoteci za ovaj mod).");
|
define('GSP_LANG_uninstall_info', "Ovo je skripta koja se zove kada je mod deinstaliran, Važeće zamjene:% mods_full_path% (puni put do mape wokshop mods),% mod_string% (mod string je naziv naveden u konfiguracijskoj datoteci za ovaj mod).");
|
||||||
define('OGP_LANG_remove_mods', "Ukloniti Modove");
|
define('GSP_LANG_remove_mods', "Ukloniti Modove");
|
||||||
define('OGP_LANG_do_not_close_this_page_while_mods_are_being_installed', "Nemojte zatvoriti ovu stranicu dok instalirate modove.");
|
define('GSP_LANG_do_not_close_this_page_while_mods_are_being_installed', "Nemojte zatvoriti ovu stranicu dok instalirate modove.");
|
||||||
define('OGP_LANG_no_game_server_selected', "Nije odabrana nijedna igra");
|
define('GSP_LANG_no_game_server_selected', "Nije odabrana nijedna igra");
|
||||||
define('OGP_LANG_there_are_no_mods_installed_on_this_game_server', "Na ovoj igri nema instaliranih modova");
|
define('GSP_LANG_there_are_no_mods_installed_on_this_game_server', "Na ovoj igri nema instaliranih modova");
|
||||||
define('OGP_LANG_workshop_configuration_not_found', "Workshop konfiguracija nije pronađena");
|
define('GSP_LANG_workshop_configuration_not_found', "Workshop konfiguracija nije pronađena");
|
||||||
define('OGP_LANG_download_method', "Preuzimanje Metode");
|
define('GSP_LANG_download_method', "Preuzimanje Metode");
|
||||||
define('OGP_LANG_anonymous_login', "Anonimna Prijava");
|
define('GSP_LANG_anonymous_login', "Anonimna Prijava");
|
||||||
define('OGP_LANG_select_at_least_one_mod_or_enter_mod_id', "Odaberite barem jedan mod ili unesite mod ID.");
|
define('GSP_LANG_select_at_least_one_mod_or_enter_mod_id', "Odaberite barem jedan mod ili unesite mod ID.");
|
||||||
define('OGP_LANG_no_game_servers_assigned', "Nemate nijedan server dodijeljen vašem računu.");
|
define('GSP_LANG_no_game_servers_assigned', "Nemate nijedan server dodijeljen vašem računu.");
|
||||||
?>
|
?>
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* OGP - Open Game Panel
|
* GSP - GameServer Panel
|
||||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
* Copyright (C) 2008 - 2018 The GSP Development Team
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* http://www.opengamepanel.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
@ -36,7 +36,7 @@ define('LANG_successfull', "Uspješno");
|
||||||
define('LANG_click_here', "Kliknite Ovdje");
|
define('LANG_click_here', "Kliknite Ovdje");
|
||||||
define('LANG_to_login', "za prijavu");
|
define('LANG_to_login', "za prijavu");
|
||||||
define('LANG_registered_on', "Registriran");
|
define('LANG_registered_on', "Registriran");
|
||||||
define('LANG_register_message', "Poštovani,<br><br> Vaš Open Game Panel račun je uspješno kreiran i za prijavu unesite Vaše podatke:<br><br>Korisničko Ime: %s<br>Lozinka: %s<br><br>Ne zaboravite često mijenjati lozinku nakon vaše prve prijave.<br><br>Molimo ne odgovarajte na ovu e-poštu!<br><br>______________________________<br>Black Market Servers");
|
define('LANG_register_message', "Poštovani,<br><br> Vaš GameServer Panel račun je uspješno kreiran i za prijavu unesite Vaše podatke:<br><br>Korisničko Ime: %s<br>Lozinka: %s<br><br>Ne zaboravite često mijenjati lozinku nakon vaše prve prijave.<br><br>Molimo ne odgovarajte na ovu e-poštu!<br><br>______________________________<br>Black Market Servers");
|
||||||
define('LANG_err_password', "Lozinka ne može biti prazna");
|
define('LANG_err_password', "Lozinka ne može biti prazna");
|
||||||
define('LANG_err_confirm_password', "Polje za provjeru lozinke ne može biti prazno");
|
define('LANG_err_confirm_password', "Polje za provjeru lozinke ne može biti prazno");
|
||||||
define('LANG_err_password_mismatch', "Lozinke se ne podudaraju");
|
define('LANG_err_password_mismatch', "Lozinke se ne podudaraju");
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue