mirror of
https://github.com/amiayweb/Hytale-F2P.git
synced 2026-02-26 17:01:46 -03:00
Merge branch 'develop' into patch-1
This commit is contained in:
154
.github/workflows/release.yml
vendored
154
.github/workflows/release.yml
vendored
@@ -9,80 +9,6 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-arch:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
container:
|
|
||||||
image: archlinux:latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Install base packages
|
|
||||||
run: |
|
|
||||||
pacman -Syu --noconfirm
|
|
||||||
pacman -S --noconfirm \
|
|
||||||
base-devel \
|
|
||||||
git \
|
|
||||||
nodejs \
|
|
||||||
npm \
|
|
||||||
rpm-tools \
|
|
||||||
libxcrypt-compat
|
|
||||||
|
|
||||||
- name: Create build user
|
|
||||||
run: |
|
|
||||||
useradd -m builder
|
|
||||||
echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
|
||||||
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Fix permissions
|
|
||||||
run: chown -R builder:builder .
|
|
||||||
|
|
||||||
- name: Build Arch Package
|
|
||||||
run: |
|
|
||||||
sudo -u builder bash << 'EOF'
|
|
||||||
set -e
|
|
||||||
makepkg -s --noconfirm
|
|
||||||
EOF
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: arch-package
|
|
||||||
path: |
|
|
||||||
*.pkg.tar.zst
|
|
||||||
*.src.tar.zst
|
|
||||||
.SRCINFO
|
|
||||||
|
|
||||||
build-linux:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- name: Install build dependencies
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y libarchive-tools
|
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: '22'
|
|
||||||
cache: 'npm'
|
|
||||||
- run: npm ci
|
|
||||||
|
|
||||||
- name: Build Linux Packages
|
|
||||||
run: |
|
|
||||||
npx electron-builder --linux --x64 --arm64 --publish never
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: linux-builds
|
|
||||||
path: |
|
|
||||||
dist/*.AppImage
|
|
||||||
dist/*.AppImage.blockmap
|
|
||||||
dist/*.deb
|
|
||||||
dist/*.rpm
|
|
||||||
dist/*.pacman
|
|
||||||
dist/latest-linux.yml
|
|
||||||
|
|
||||||
build-windows:
|
build-windows:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
@@ -123,8 +49,82 @@ jobs:
|
|||||||
dist/*.zip
|
dist/*.zip
|
||||||
dist/latest-mac.yml
|
dist/latest-mac.yml
|
||||||
|
|
||||||
|
build-linux:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install build dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y libarchive-tools
|
||||||
|
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '22'
|
||||||
|
cache: 'npm'
|
||||||
|
- run: npm ci
|
||||||
|
|
||||||
|
- name: Build Linux Packages
|
||||||
|
run: |
|
||||||
|
npx electron-builder --linux AppImage deb rpm --x64 --arm64 --publish never
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: linux-builds
|
||||||
|
path: |
|
||||||
|
dist/*.AppImage
|
||||||
|
dist/*.AppImage.blockmap
|
||||||
|
dist/*.deb
|
||||||
|
dist/*.rpm
|
||||||
|
dist/latest-linux.yml
|
||||||
|
|
||||||
|
build-arch:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: archlinux:latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Install base packages
|
||||||
|
run: |
|
||||||
|
pacman -Syu --noconfirm
|
||||||
|
pacman -S --noconfirm \
|
||||||
|
base-devel \
|
||||||
|
git \
|
||||||
|
nodejs \
|
||||||
|
npm \
|
||||||
|
rpm-tools \
|
||||||
|
libxcrypt-compat
|
||||||
|
|
||||||
|
- name: Create build user
|
||||||
|
run: |
|
||||||
|
useradd -m builder
|
||||||
|
echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
||||||
|
|
||||||
|
- name: Fix Permissions
|
||||||
|
run: chown -R builder:builder .
|
||||||
|
|
||||||
|
- name: Build Arch Package
|
||||||
|
run: |
|
||||||
|
sudo -u builder bash << 'EOF'
|
||||||
|
set -e
|
||||||
|
makepkg --printsrcinfo > .SRCINFO
|
||||||
|
makepkg -s --noconfirm
|
||||||
|
EOF
|
||||||
|
|
||||||
|
- name: Upload Arch Package
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: arch-package
|
||||||
|
path: |
|
||||||
|
*.pkg.tar.zst
|
||||||
|
*.src.tar.zst
|
||||||
|
.SRCINFO
|
||||||
|
|
||||||
release:
|
release:
|
||||||
needs: [build-linux, build-windows, build-macos]
|
needs: [build-windows, build-macos, build-linux, build-arch]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: |
|
if: |
|
||||||
startsWith(github.ref, 'refs/tags/v') ||
|
startsWith(github.ref, 'refs/tags/v') ||
|
||||||
@@ -154,13 +154,15 @@ jobs:
|
|||||||
- name: Create Release
|
- name: Create Release
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
|
tag_name: ${{ github.ref_name }}
|
||||||
# If it's a tag, use the tag.
|
# If it's a tag, use the tag.
|
||||||
tag_name: ${{ github.ref_type == 'tag' && github.ref_name || format('v{0}.r{1}', steps.pkg_version.outputs.VERSION, github.run_number) }}
|
# tag_name: ${{ github.ref_type == 'tag' && github.ref_name || format('v{0}.r{1}', steps.pkg_version.outputs.VERSION, github.run_number) }}
|
||||||
# If it's the 'release' branch, use 'v2.0.2-beta.r42'
|
# If it's the 'release' branch, use 'v2.0.2-beta.r42'
|
||||||
# name: ${{ github.ref_type == 'tag' && github.ref_name || format('v{0}-beta.r{1}', steps.pkg_version.outputs.VERSION, github.run_number) }}
|
# name: ${{ github.ref_type == 'tag' && github.ref_name || format('v{0}-beta.r{1}', steps.pkg_version.outputs.VERSION, github.run_number) }}
|
||||||
files: |
|
files: |
|
||||||
artifacts/arch-package/*.pkg.tar.zst
|
artifacts/arch-package/*.pkg.tar.zst
|
||||||
artifacts/arch-package/*.src.tar.zst
|
artifacts/arch-package/*.src.tar.zst
|
||||||
|
artifacts/arch-package/.SRCINFO
|
||||||
artifacts/linux-builds/**/*
|
artifacts/linux-builds/**/*
|
||||||
artifacts/windows-builds/**/*
|
artifacts/windows-builds/**/*
|
||||||
artifacts/macos-builds/**/*
|
artifacts/macos-builds/**/*
|
||||||
|
|||||||
33
PKGBUILD
33
PKGBUILD
@@ -1,33 +1,28 @@
|
|||||||
# Maintainer: Terromur <terromuroz@proton.me>
|
# Maintainer: Terromur <terromuroz@proton.me>
|
||||||
pkgname=Hytale-F2P-git
|
# Maintainer: Fazri Gading <fazrigading@gmail.com>
|
||||||
_pkgname=Hytale-F2P
|
# This PKGBUILD is for Github Releases
|
||||||
pkgver=2.0.12.r150.gb62ffc1
|
pkgname=Hytale-F2P
|
||||||
|
pkgver=2.1.1
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Hytale-F2P - unofficial Hytale Launcher for free to play with multiplayer support"
|
pkgdesc="Hytale-F2P - unofficial Hytale Launcher for free to play with multiplayer support"
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
url="https://github.com/amiayweb/Hytale-F2P"
|
url="https://github.com/amiayweb/Hytale-F2P"
|
||||||
license=('custom')
|
license=('custom')
|
||||||
makedepends=('npm' 'git' 'rpm-tools' 'libxcrypt-compat')
|
depends=('gtk3' 'nss' 'libxcrypt-compat')
|
||||||
source=("git+$url.git" "Hytale-F2P.desktop")
|
makedepends=('npm')
|
||||||
|
source=("$url/archive/v$pkgver.tar.gz" "Hytale-F2P.desktop")
|
||||||
sha256sums=('SKIP' '46488fada4775d9976d7b7b62f8d1f1f8d9a9a9d8f8aa9af4f2e2153019f6a30')
|
sha256sums=('SKIP' '46488fada4775d9976d7b7b62f8d1f1f8d9a9a9d8f8aa9af4f2e2153019f6a30')
|
||||||
|
|
||||||
pkgver() {
|
|
||||||
cd "$_pkgname"
|
|
||||||
version=$(git describe --abbrev=0 --tags --match "v[0-9]*")
|
|
||||||
commits=$(git rev-list --count HEAD)
|
|
||||||
hash=$(git rev-parse --short HEAD)
|
|
||||||
printf "%s.r%s.g%s" "${version#v}" "$commits" "$hash"
|
|
||||||
}
|
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
cd "$_pkgname"
|
cd "$_pkgname-$pkgver"
|
||||||
npm ci
|
npm ci
|
||||||
npm run build:linux
|
npm run build:arch
|
||||||
}
|
}
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
mkdir -p "$pkgdir/opt/$_pkgname"
|
cd "$_pkgname-$pkgver"
|
||||||
cp -r "$_pkgname/dist/linux-unpacked/"* "$pkgdir/opt/$_pkgname"
|
install -d "$pkgdir/opt/$_pkgname"
|
||||||
install -Dm644 "$_pkgname.desktop" "$pkgdir/usr/share/applications/$_pkgname.desktop"
|
cp -r dist/linux-unpacked/* "$pkgdir/opt/$_pkgname"
|
||||||
install -Dm644 "$_pkgname/GUI/icon.png" "$pkgdir/usr/share/icons/hicolor/256x256/apps/$_pkgname.png"
|
install -Dm644 "$srcdir/$_pkgname.desktop" "$pkgdir/usr/share/applications/$_pkgname.desktop"
|
||||||
|
install -Dm644 GUI/icon.png "$pkgdir/usr/share/icons/hicolor/256x256/apps/$_pkgname.png"
|
||||||
}
|
}
|
||||||
|
|||||||
34
PKGBUILD-git
Normal file
34
PKGBUILD-git
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# Maintainer: Terromur <terromuroz@proton.me>
|
||||||
|
# Maintainer: Fazri Gading <fazrigading@gmail.com>
|
||||||
|
pkgname=Hytale-F2P-git
|
||||||
|
_pkgname=Hytale-F2P
|
||||||
|
pkgver=0
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Hytale-F2P - Unofficial Hytale Launcher for free to play with multiplayer support (rolling git build)"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://github.com/amiayweb/Hytale-F2P"
|
||||||
|
license=('custom')
|
||||||
|
depends=('gtk3' 'nss' 'libxcrypt-compat')
|
||||||
|
makedepends=('git' 'npm')
|
||||||
|
source=("git+$url.git" "$_pkgname.desktop")
|
||||||
|
sha256sums=('SKIP' '46488fada4775d9976d7b7b62f8d1f1f8d9a9a9d8f8aa9af4f2e2153019f6a30')
|
||||||
|
|
||||||
|
pkgver() {
|
||||||
|
cd "$srcdir/$_pkgname"
|
||||||
|
git describe --tags --long | sed 's/^v//;s/-/.r/;s/-/./'
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$srcdir/$_pkgname"
|
||||||
|
npm ci
|
||||||
|
npm run build:arch
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$srcdir/$_pkgname"
|
||||||
|
install -d "$pkgdir/opt/$_pkgname"
|
||||||
|
cp -r "$_pkgname/dist/linux-unpacked/"* "$pkgdir/opt/$_pkgname"
|
||||||
|
|
||||||
|
install -Dm644 "$srcdir/$_pkgname.desktop" "$pkgdir/usr/share/applications/$_pkgname.desktop"
|
||||||
|
install -Dm644 GUI/icon.png "$pkgdir/usr/share/icons/hicolor/256x256/apps/$_pkgname.png"
|
||||||
|
}
|
||||||
58
README.md
58
README.md
@@ -120,7 +120,7 @@
|
|||||||
<td colspan="3" align="center">
|
<td colspan="3" align="center">
|
||||||
Windows 10/11 (64-bit; X64/ARM64) | Linux (x64/ARM64) | macOS (Apple Silicon only)
|
Windows 10/11 (64-bit; X64/ARM64) | Linux (x64/ARM64) | macOS (Apple Silicon only)
|
||||||
<br />
|
<br />
|
||||||
<small><i>⚠️ Note: macOS Intel (x86) is not yet supported <a href="#fn1" id="ref1">1</a></sup></i></small>
|
<small><i>⚠️ Note: macOS Intel (x86) is not yet supported <sup><a href="#fn1" id="ref1">1</a></sup></i></small>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -131,7 +131,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>🧠 RAM</b></td>
|
<td><b>🧠 RAM</b></td>
|
||||||
<td>8GB (Dedicated) / 12GB (iGPU)</td>
|
<td>8GB (dGPU)<sup><a href="#fn1" id="ref2">2</a></sup> /<br>12GB (iGPU)<sup><a href="#fn1" id="ref3">3</a></sup></td>
|
||||||
<td>16 GB</td>
|
<td>16 GB</td>
|
||||||
<td>32 GB</td>
|
<td>32 GB</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -156,7 +156,9 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<p id="fn1"><sup>1</sup> Hytale did not provide game files for macOS Intel, yet.</p>
|
<p id="fn1"><sup>Note 1</sup> Hytale did not provide game files for macOS Intel, yet.</p>
|
||||||
|
<p id="fn2"><sup>Note 2</sup> Using Discrete/Dedicated GPU (dGPU) must have 8 GB RAM minimum.</p>
|
||||||
|
<p id="fn3"><sup>Note 3</sup> Using Integrated GPU (dGPU) must have 12 GB RAM minimum.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -209,24 +211,36 @@
|
|||||||
3. **Permissions & Execution:**
|
3. **Permissions & Execution:**
|
||||||
* **AppImage:** Make the file executable and run it:
|
* **AppImage:** Make the file executable and run it:
|
||||||
```bash
|
```bash
|
||||||
chmod +x Hytale-F2P-Launcher.AppImage
|
chmod +x hytale-f2p-launcher.AppImage
|
||||||
./Hytale-F2P-Launcher.AppImage
|
./hytale-f2p-launcher.AppImage
|
||||||
```
|
```
|
||||||
* **Fedora (dnf):** Install the RPM:
|
* **Ubuntu/Debian-based or Fedora/RHEL-based:** Install the DEB/RPM:
|
||||||
```bash
|
```bash
|
||||||
sudo dnf install ./Hytale-F2P-Launcher.rpm
|
# Fedora/RHEL-based
|
||||||
```
|
sudo dnf install ./hytale-f2p-launcher.rpm
|
||||||
* **Debian/Ubuntu (apt):** Install the DEB:
|
# Debian/Ubuntu
|
||||||
```bash
|
sudo apt install ./hytale-f2p-launcher.deb
|
||||||
sudo apt install ./Hytale-F2P-Launcher.deb
|
|
||||||
```
|
```
|
||||||
* **Arch Linux (pacman):** Install the package using:
|
* **Arch Linux (pacman):** Install the package using:
|
||||||
```bash
|
```bash
|
||||||
sudo pacman -U /path/to/Hytale-F2P-Launcher.pkg.tar.zst
|
# Stable Build
|
||||||
|
sudo pacman -U hytale-f2p-launcher.pkg.tar.zst
|
||||||
|
# Development Build
|
||||||
|
yay -S hytale-f2p-git # or
|
||||||
|
paru -S hytale-f2p-git
|
||||||
|
# Manual Build
|
||||||
|
git clone https://aur.archlinux.org/hytale-f2p-git.git
|
||||||
|
cd hytale-f2p-git
|
||||||
|
makepkg -si
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> Make sure to adjust the filename correctly with the version and the architecture type.
|
||||||
|
|
||||||
4. **Troubleshooting:**
|
4. **Troubleshooting:**
|
||||||
* **FUSE:** If the AppImage fails to launch on newer distributions, ensure `libfuse2` (or `fuse2` on Arch/Fedora) is installed.
|
* **FUSE:** If the AppImage fails to launch on newer distributions, ensure `libfuse2` (or `fuse2` on Arch/Fedora) is installed.
|
||||||
* **Desktop Entry:** After installing via `.rpm`, `.deb`, or `.pkg.tar.zst`, the launcher should automatically appear in your App Library/Grid.
|
* **Desktop Entry:** After installing via `.rpm`, `.deb`, or `.pkg.tar.zst`, the launcher should automatically appear in your App Library/Grid.
|
||||||
|
* Missing libxcrypt.so.1: Install `libxcrypt-compat` using your package manager
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -292,20 +306,20 @@ See [BUILD.md](docs/BUILD.md) for comprehensive build instructions.
|
|||||||
|
|
||||||
## 📋 Changelog
|
## 📋 Changelog
|
||||||
|
|
||||||
### 🆕 v2.1.0
|
### 🆕 v2.1.1
|
||||||
|
- 🛠️ **Fix EPERM** Issue
|
||||||
- 🚨 **Auto-Retry Downloads and Auto-Patch Files** —
|
- 🅰️ **Adds Better Arch Build**
|
||||||
- ⚡ **Hardware Acceleration** —
|
-
|
||||||
- 👨💻 **In-App Logging** —
|
|
||||||
- 🛠️ **Repair Button** — Y
|
|
||||||
- 🔎 **Browse CurseForge Mods** — Browsing mods now easier with our dedicated CurseForge API Key.
|
|
||||||
- 🌎 **Fixes and Release New Translation** — Fixed 🇪🇸 🇧🇷 and added more translation for current build. Turkish 🇹🇷 language now added.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Click here to see older Changelogs</summary>
|
<summary>Click here to see older Changelogs</summary>
|
||||||
|
|
||||||
|
### 🆕 v2.1.0
|
||||||
|
- 🚨 **Auto-Retry Downloads and Auto-Patch Files** —
|
||||||
|
- ⚡ **Hardware Acceleration** —
|
||||||
|
- 🔎 **Browse CurseForge Mods** — Browsing mods now easier with our dedicated CurseForge API Key.
|
||||||
|
- 🌎 **Fixes and Release New Translation** — Fixed 🇪🇸 🇧🇷 and added more translation for current build. Turkish 🇹🇷 language now added.
|
||||||
|
|
||||||
### 🆕 v2.0.2b *(Minor Update: Performance & Utilities)*
|
### 🆕 v2.0.2b *(Minor Update: Performance & Utilities)*
|
||||||
- 🌎 **Language Translation** — A big welcome for Spanish 🇪🇸 and Portuguese (Brazil) 🇧🇷 players! **Language setting can be found in the bottom part of Settings pane.**
|
- 🌎 **Language Translation** — A big welcome for Spanish 🇪🇸 and Portuguese (Brazil) 🇧🇷 players! **Language setting can be found in the bottom part of Settings pane.**
|
||||||
- 💻 **Laptop/Hybrid GPU Performance Issue Fix** — Added automatic GPU detection system and options to choose which GPU will be used for the game, *specifically for Linux users*.
|
- 💻 **Laptop/Hybrid GPU Performance Issue Fix** — Added automatic GPU detection system and options to choose which GPU will be used for the game, *specifically for Linux users*.
|
||||||
|
|||||||
15
package.json
15
package.json
@@ -11,7 +11,11 @@
|
|||||||
"build:win": "electron-builder --win",
|
"build:win": "electron-builder --win",
|
||||||
"build:linux": "electron-builder --linux",
|
"build:linux": "electron-builder --linux",
|
||||||
"build:mac": "electron-builder --mac",
|
"build:mac": "electron-builder --mac",
|
||||||
"build:all": "electron-builder --win --linux --mac"
|
"build:all": "electron-builder --win --linux --mac",
|
||||||
|
"build:arch": "electron-builder --linux dir",
|
||||||
|
"build:appimage": "electron-builder --linux AppImage --publish never",
|
||||||
|
"build:deb": "electron-builder --linux deb --publish never",
|
||||||
|
"build:rpm": "electron-builder --linux rpm --publish never"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"hytale",
|
"hytale",
|
||||||
@@ -82,7 +86,7 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"icon": "icon.ico"
|
"icon": "build/icon.ico"
|
||||||
},
|
},
|
||||||
"linux": {
|
"linux": {
|
||||||
"target": [
|
"target": [
|
||||||
@@ -106,13 +110,6 @@
|
|||||||
"x64",
|
"x64",
|
||||||
"arm64"
|
"arm64"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
"target": "pacman",
|
|
||||||
"arch": [
|
|
||||||
"x64",
|
|
||||||
"arm64"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"icon": "build/icon.png",
|
"icon": "build/icon.png",
|
||||||
|
|||||||
Reference in New Issue
Block a user