Основной функционал для ark
This commit is contained in:
commit
5918ee50b5
82
.gitignore
vendored
82
.gitignore
vendored
@ -1,4 +1,78 @@
|
||||
__pycache__
|
||||
# Ignore dynaconf secret files
|
||||
.secrets.*
|
||||
.idea
|
||||
# This file is used to ignore files which are generated
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
*~
|
||||
*.autosave
|
||||
*.a
|
||||
*.core
|
||||
*.moc
|
||||
*.o
|
||||
*.obj
|
||||
*.orig
|
||||
*.rej
|
||||
*.so
|
||||
*.so.*
|
||||
*_pch.h.cpp
|
||||
*_resource.rc
|
||||
*.qm
|
||||
.#*
|
||||
*.*#
|
||||
core
|
||||
!core/
|
||||
tags
|
||||
.DS_Store
|
||||
.directory
|
||||
*.debug
|
||||
Makefile*
|
||||
*.prl
|
||||
*.app
|
||||
moc_*.cpp
|
||||
ui_*.h
|
||||
qrc_*.cpp
|
||||
Thumbs.db
|
||||
*.res
|
||||
*.rc
|
||||
/.qmake.cache
|
||||
/.qmake.stash
|
||||
|
||||
# qtcreator generated files
|
||||
*.pro.user*
|
||||
CMakeLists.txt.user*
|
||||
|
||||
# xemacs temporary files
|
||||
*.flc
|
||||
|
||||
# Vim temporary files
|
||||
.*.swp
|
||||
|
||||
# Visual Studio generated files
|
||||
*.ib_pdb_index
|
||||
*.idb
|
||||
*.ilk
|
||||
*.pdb
|
||||
*.sln
|
||||
*.suo
|
||||
*.vcproj
|
||||
*vcproj.*.*.user
|
||||
*.ncb
|
||||
*.sdf
|
||||
*.opensdf
|
||||
*.vcxproj
|
||||
*vcxproj.*
|
||||
|
||||
# MinGW generated files
|
||||
*.Debug
|
||||
*.Release
|
||||
|
||||
# Python byte code
|
||||
*.pyc
|
||||
|
||||
# Binaries
|
||||
# --------
|
||||
*.dll
|
||||
*.exe
|
||||
|
||||
#pyproject
|
||||
*.pyproject
|
||||
*.pyproject.user
|
||||
*.ui
|
13
README.md
13
README.md
@ -1,11 +1,14 @@
|
||||

|
||||

|
||||
|
||||
[](https://discord.gg/3cFebGvPQt)[](https://t.me/plemyakh)[](https://boosty.to/xpamych/donate)
|
||||
|
||||
# Описание
|
||||
Этот инструмент позволяет управлять выделенным сервером (dedicated server) ARK Survival Evolved на Linux.
|
||||
Этот инструмент позволяет управлять выделенным сервером (dedicated server) ARK Survival Evolved и\или 7Days to Die на Linux.
|
||||
Он предоставляет множество функций, чтобы получить полный список, ознакомьтесь с разделом использования. (находится в разработке и может содержать ошибки)
|
||||
|
||||
# Установка
|
||||
```shell
|
||||
curl https://www.arsenm.dev/lure.sh | bash & lure ar -n xpamych-repo -u https://gitflic.ru/project/xpamych/xpamych-lure-repo.git & lure in hlna-git
|
||||
curl https://www.elara.ws/lure.sh | bash & lure ar -n xpamych-repo -u https://gitflic.ru/project/xpamych/xpamych-lure-repo.git & lure in hlna-git
|
||||
```
|
||||
|
||||
# Использование
|
||||
@ -16,9 +19,9 @@ hlna config
|
||||
|
||||
Для запуска, сконфигурированного сервера или кластера
|
||||
```bash
|
||||
hlna start
|
||||
hlna start -g ark
|
||||
```
|
||||
Подробнее в [WIKI](https://gitflic.ru/project/xpamych/hln-a/wiki)
|
||||
|
||||
# Спасибы
|
||||
Сей софт написан при активном участии Sitisll, Xpamych, Vano, а так же при моральной поддержке Nezrimka и Vajka))
|
||||
Сей софт написан при активном участии [Sitisll](https://gitflic.ru/user/sitisll), [Xpamych](https://gitflic.ru/user/xpamych), Vano, ChatGPT, а так же при моральной поддержке Nezrimka и [Vajka](https://gitflic.ru/user/vajka))
|
||||
|
167
hlna_bot.py
167
hlna_bot.py
@ -1,167 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
import errno
|
||||
import time
|
||||
import sys
|
||||
import os
|
||||
import telebot
|
||||
from telebot import types
|
||||
import subprocess
|
||||
import yaml
|
||||
import colorama
|
||||
|
||||
import hlna
|
||||
|
||||
list_config = hlna.list_config
|
||||
|
||||
|
||||
def start():
|
||||
if not os.path.exists(f"{hlna.home_dir}/.config/hlna/bot/hlna_bot"):
|
||||
key_api = input("Укажите ключ бота\n")
|
||||
os.chdir(f"{hlna.home_dir}/.config/hlna/")
|
||||
try:
|
||||
os.mkdir("bot")
|
||||
except OSError as e:
|
||||
if e.errno == errno.EEXIST:
|
||||
print('Каталог создан')
|
||||
else:
|
||||
raise
|
||||
create_config(key_api)
|
||||
else:
|
||||
x = input("Уже есть запомненный ключа api. Запустить его? Y/n \n")
|
||||
if x == "" or x.lower == 'y':
|
||||
read_config()
|
||||
|
||||
elif x == "n":
|
||||
os.remove(f"{hlna.home_dir}/.config/hlna/bot/hlna_bot")
|
||||
start()
|
||||
|
||||
|
||||
def check_status(m):
|
||||
for i in list_config:
|
||||
data = hlna.read_yaml(i)
|
||||
hlna.print_line(data)
|
||||
x = os.system(f"lsof -w -i :{data['Port']}")
|
||||
n_srv = data['SessionName']
|
||||
if x != 0:
|
||||
hlna_bot.send_message(m.chat.id, text=f"Сервер {n_srv} не работает 🛑")
|
||||
elif x == 0:
|
||||
hlna_bot.send_message(m.chat.id, text=f"Сервер {n_srv} запустился 🟢")
|
||||
|
||||
|
||||
def read_config():
|
||||
with open(f"{hlna.home_dir}/.config/hlna/bot/hlna_bot", "r") as yamlfile:
|
||||
data = yaml.load(yamlfile, Loader=yaml.FullLoader)
|
||||
return data[0]
|
||||
|
||||
|
||||
def create_config(key_api):
|
||||
config_hlna_bot = [
|
||||
{
|
||||
'key_api': key_api,
|
||||
}
|
||||
]
|
||||
with open(f"{hlna.home_dir}/.config/hlna/bot/hlna_bot", 'w') as yamlfile:
|
||||
yaml.dump(config_hlna_bot, yamlfile)
|
||||
print(colorama.Fore.GREEN + "Конфиг бота создан" + colorama.Style.RESET_ALL)
|
||||
|
||||
|
||||
start()
|
||||
|
||||
|
||||
data = read_config()
|
||||
k_api = data['key_api']
|
||||
hlna_bot = telebot.TeleBot(f"{k_api}", parse_mode=None)
|
||||
|
||||
|
||||
@hlna_bot.message_handler(commands=["start"])
|
||||
def m_mainmenu(m):
|
||||
menu = types.ReplyKeyboardMarkup(resize_keyboard=True)
|
||||
k_start = types.KeyboardButton("🦖 Старт")
|
||||
k_stop = types.KeyboardButton("🦇 Выключить")
|
||||
menu.add(k_start, k_stop)
|
||||
|
||||
k_restart = types.KeyboardButton("🦕 Перезагрузить")
|
||||
k_update = types.KeyboardButton("🔸 Обновить")
|
||||
menu.add(k_restart, k_update)
|
||||
|
||||
k_status = types.KeyboardButton("🧾 Статус")
|
||||
menu.add(k_status)
|
||||
|
||||
k_mods = types.KeyboardButton("⏬ Установка модов")
|
||||
menu.add(k_mods)
|
||||
|
||||
hlna_bot.send_message(m.chat.id, text="Привет, {0.first_name}! Это панель управления сервером".format(m.from_user),
|
||||
reply_markup=menu)
|
||||
|
||||
|
||||
@hlna_bot.message_handler(content_types=["text"])
|
||||
def m_chose(m):
|
||||
if m.text.strip() == '🦖 Старт':
|
||||
if list_config == []:
|
||||
menu_install = types.ReplyKeyboardMarkup(resize_keyboard=True)
|
||||
k_install = types.KeyboardButton("Установить")
|
||||
k_back = types.KeyboardButton("Назад")
|
||||
menu_install.add(k_back, k_install)
|
||||
hlna_bot.send_message(m.chat.id, text="{0.first_name}, ниодна карта не установлена".format(m.from_user),
|
||||
reply_markup=menu_install)
|
||||
hlna_bot.register_next_step_handler(m, m_install)
|
||||
else:
|
||||
hlna.read_yaml(list_config[-1], flag=True)
|
||||
menu_start = types.ReplyKeyboardMarkup(resize_keyboard=True)
|
||||
for i in list_config:
|
||||
k_mapname = types.KeyboardButton(i)
|
||||
menu_start.add(k_mapname)
|
||||
k_back = types.KeyboardButton("Назад")
|
||||
menu_start.add(k_back)
|
||||
hlna_bot.send_message(m.chat.id, text="{0.first_name}, выбери карту".format(m.from_user), reply_markup=menu_start)
|
||||
elif m.text.strip() == '🧾 Статус':
|
||||
check_status(m)
|
||||
elif m.text.strip() == 'Назад':
|
||||
m_mainmenu(m)
|
||||
for i in list_config:
|
||||
if m.text.strip() == f'{i}':
|
||||
hlna.print_line(f"Старт карты {i}")
|
||||
hlna.start()
|
||||
|
||||
# @hlna_bot.message_handler(content_types=["text"])
|
||||
# def m_mapstart(m):
|
||||
# hlna.print_line("Старт карты")
|
||||
# for i in list_config:
|
||||
# if m.text.strip() == f'{i}':
|
||||
# hlna.print_line(f"Старт карты {i}")
|
||||
# hlna.start()
|
||||
|
||||
|
||||
def m_install(m):
|
||||
if m.text.strip() == 'Установить':
|
||||
hlna_bot.send_message(m.chat.id, subprocess.check_output(hlna.config(), shell=True))
|
||||
|
||||
|
||||
print("Бот запущен")
|
||||
hlna_bot.polling(none_stop=True, interval=0, timeout=999)
|
||||
|
||||
# subprocess.run(["arkmanager", "start", "--alwaysrestart", "@all"])
|
||||
# elif m.text.strip() == '🦇 Выключить':
|
||||
# subprocess.run(["arkmanager", "stop", "@all"])
|
||||
# elif m.text.strip() == '🦕 Перезагрузить':
|
||||
# subprocess.run(["arkmanager","restart", "--alwaysrestart", "--warn", "@all"])
|
||||
# elif (m.text.strip() == '🔸 Обновить'):
|
||||
# subprocess.run(["arkmanager", "update", "--update-mods", "@all"])
|
||||
#
|
||||
#
|
||||
# elif (m.text.strip() == '⏬ Установка модов'):
|
||||
# bot.send_message(m.from_user.id, "Введите id модификации")
|
||||
# bot.register_next_step_handler(m, mods)
|
||||
# else:
|
||||
# pass
|
||||
# else:
|
||||
# if m.text.strip() == 'Zxx843Aj':
|
||||
# th = Thread(target=check, args=(m,))
|
||||
# th.start()
|
||||
# id.append(m.chat.id)
|
||||
# bot.send_message(m.chat.id, text="{0.first_name} вы авторизованы, нажмите /start для работы с ботом".format(m.from_user))
|
||||
# return id
|
||||
# def mods(m):
|
||||
# id = m.text.strip()
|
||||
# subprocess.run(["arkmanager", "installmods", id, "@all"])
|
||||
# subprocess.run(["arkmanager", "enablemod", id, "@all"])
|
203
hlnaui.py
Normal file
203
hlnaui.py
Normal file
@ -0,0 +1,203 @@
|
||||
# Form implementation generated from reading ui file './hlna.ui'
|
||||
#
|
||||
# Created by: PyQt6 UI code generator 6.5.0
|
||||
#
|
||||
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
|
||||
# run again. Do not edit this file unless you know what you are doing.
|
||||
|
||||
|
||||
from PyQt6 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_MainWindow(object):
|
||||
def setupUi(self, MainWindow):
|
||||
MainWindow.setObjectName("MainWindow")
|
||||
MainWindow.resize(1552, 1000)
|
||||
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.tabWidget = QtWidgets.QTabWidget(parent=self.centralwidget)
|
||||
self.tabWidget.setMaximumSize(QtCore.QSize(1551, 941))
|
||||
self.tabWidget.setObjectName("tabWidget")
|
||||
self.tab = QtWidgets.QWidget()
|
||||
self.tab.setObjectName("tab")
|
||||
self.gridLayout_2 = QtWidgets.QGridLayout(self.tab)
|
||||
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||
self.tabWidget_2 = QtWidgets.QTabWidget(parent=self.tab)
|
||||
self.tabWidget_2.setTabsClosable(True)
|
||||
self.tabWidget_2.setTabBarAutoHide(True)
|
||||
self.tabWidget_2.setObjectName("tabWidget_2")
|
||||
self.tab_5 = QtWidgets.QWidget()
|
||||
self.tab_5.setObjectName("tab_5")
|
||||
self.gridLayout_3 = QtWidgets.QGridLayout(self.tab_5)
|
||||
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||
self.groupBox = QtWidgets.QGroupBox(parent=self.tab_5)
|
||||
self.groupBox.setTitle("")
|
||||
self.groupBox.setObjectName("groupBox")
|
||||
self.textEdit = QtWidgets.QTextEdit(parent=self.groupBox)
|
||||
self.textEdit.setGeometry(QtCore.QRect(10, 30, 441, 31))
|
||||
self.textEdit.setObjectName("textEdit")
|
||||
self.label = QtWidgets.QLabel(parent=self.groupBox)
|
||||
self.label.setGeometry(QtCore.QRect(10, 10, 81, 18))
|
||||
self.label.setScaledContents(True)
|
||||
self.label.setObjectName("label")
|
||||
self.textEdit_2 = QtWidgets.QTextEdit(parent=self.groupBox)
|
||||
self.textEdit_2.setGeometry(QtCore.QRect(10, 80, 131, 31))
|
||||
self.textEdit_2.setObjectName("textEdit_2")
|
||||
self.label_2 = QtWidgets.QLabel(parent=self.groupBox)
|
||||
self.label_2.setGeometry(QtCore.QRect(10, 60, 81, 18))
|
||||
self.label_2.setScaledContents(True)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.label_3 = QtWidgets.QLabel(parent=self.groupBox)
|
||||
self.label_3.setGeometry(QtCore.QRect(170, 60, 81, 18))
|
||||
self.label_3.setScaledContents(True)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.textEdit_3 = QtWidgets.QTextEdit(parent=self.groupBox)
|
||||
self.textEdit_3.setGeometry(QtCore.QRect(170, 80, 131, 31))
|
||||
self.textEdit_3.setObjectName("textEdit_3")
|
||||
self.textEdit_4 = QtWidgets.QTextEdit(parent=self.groupBox)
|
||||
self.textEdit_4.setGeometry(QtCore.QRect(330, 80, 121, 31))
|
||||
self.textEdit_4.setObjectName("textEdit_4")
|
||||
self.label_4 = QtWidgets.QLabel(parent=self.groupBox)
|
||||
self.label_4.setGeometry(QtCore.QRect(330, 60, 81, 18))
|
||||
self.label_4.setScaledContents(True)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.textEdit_5 = QtWidgets.QTextEdit(parent=self.groupBox)
|
||||
self.textEdit_5.setGeometry(QtCore.QRect(10, 140, 221, 31))
|
||||
self.textEdit_5.setObjectName("textEdit_5")
|
||||
self.label_5 = QtWidgets.QLabel(parent=self.groupBox)
|
||||
self.label_5.setGeometry(QtCore.QRect(10, 120, 101, 18))
|
||||
self.label_5.setScaledContents(True)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.label_6 = QtWidgets.QLabel(parent=self.groupBox)
|
||||
self.label_6.setGeometry(QtCore.QRect(240, 120, 161, 18))
|
||||
self.label_6.setScaledContents(True)
|
||||
self.label_6.setObjectName("label_6")
|
||||
self.textEdit_6 = QtWidgets.QTextEdit(parent=self.groupBox)
|
||||
self.textEdit_6.setGeometry(QtCore.QRect(230, 140, 221, 31))
|
||||
self.textEdit_6.setObjectName("textEdit_6")
|
||||
self.textEdit_7 = QtWidgets.QTextEdit(parent=self.groupBox)
|
||||
self.textEdit_7.setGeometry(QtCore.QRect(10, 200, 71, 31))
|
||||
self.textEdit_7.setObjectName("textEdit_7")
|
||||
self.label_7 = QtWidgets.QLabel(parent=self.groupBox)
|
||||
self.label_7.setGeometry(QtCore.QRect(10, 180, 131, 18))
|
||||
self.label_7.setScaledContents(True)
|
||||
self.label_7.setObjectName("label_7")
|
||||
self.checkBox = QtWidgets.QCheckBox(parent=self.groupBox)
|
||||
self.checkBox.setGeometry(QtCore.QRect(140, 200, 301, 31))
|
||||
self.checkBox.setObjectName("checkBox")
|
||||
self.gridLayout_3.addWidget(self.groupBox, 0, 0, 1, 1)
|
||||
self.groupBox_2 = QtWidgets.QGroupBox(parent=self.tab_5)
|
||||
self.groupBox_2.setObjectName("groupBox_2")
|
||||
self.gridLayout_3.addWidget(self.groupBox_2, 0, 1, 1, 1)
|
||||
self.tabWidget_2.addTab(self.tab_5, "")
|
||||
self.tab_6 = QtWidgets.QWidget()
|
||||
self.tab_6.setObjectName("tab_6")
|
||||
self.tabWidget_2.addTab(self.tab_6, "")
|
||||
self.gridLayout_2.addWidget(self.tabWidget_2, 0, 0, 1, 1)
|
||||
self.tabWidget.addTab(self.tab, "")
|
||||
self.tab_2 = QtWidgets.QWidget()
|
||||
self.tab_2.setObjectName("tab_2")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.tab_2)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.groupBox_3 = QtWidgets.QGroupBox(parent=self.tab_2)
|
||||
self.groupBox_3.setTitle("")
|
||||
self.groupBox_3.setObjectName("groupBox_3")
|
||||
self.textEdit_8 = QtWidgets.QTextEdit(parent=self.groupBox_3)
|
||||
self.textEdit_8.setGeometry(QtCore.QRect(10, 30, 441, 31))
|
||||
self.textEdit_8.setObjectName("textEdit_8")
|
||||
self.label_8 = QtWidgets.QLabel(parent=self.groupBox_3)
|
||||
self.label_8.setGeometry(QtCore.QRect(10, 10, 81, 18))
|
||||
self.label_8.setScaledContents(True)
|
||||
self.label_8.setObjectName("label_8")
|
||||
self.textEdit_9 = QtWidgets.QTextEdit(parent=self.groupBox_3)
|
||||
self.textEdit_9.setGeometry(QtCore.QRect(10, 80, 131, 31))
|
||||
self.textEdit_9.setObjectName("textEdit_9")
|
||||
self.label_9 = QtWidgets.QLabel(parent=self.groupBox_3)
|
||||
self.label_9.setGeometry(QtCore.QRect(10, 60, 81, 18))
|
||||
self.label_9.setScaledContents(True)
|
||||
self.label_9.setObjectName("label_9")
|
||||
self.textEdit_12 = QtWidgets.QTextEdit(parent=self.groupBox_3)
|
||||
self.textEdit_12.setGeometry(QtCore.QRect(10, 140, 221, 31))
|
||||
self.textEdit_12.setObjectName("textEdit_12")
|
||||
self.label_12 = QtWidgets.QLabel(parent=self.groupBox_3)
|
||||
self.label_12.setGeometry(QtCore.QRect(10, 120, 101, 18))
|
||||
self.label_12.setScaledContents(True)
|
||||
self.label_12.setObjectName("label_12")
|
||||
self.label_13 = QtWidgets.QLabel(parent=self.groupBox_3)
|
||||
self.label_13.setGeometry(QtCore.QRect(240, 120, 161, 18))
|
||||
self.label_13.setScaledContents(True)
|
||||
self.label_13.setObjectName("label_13")
|
||||
self.textEdit_13 = QtWidgets.QTextEdit(parent=self.groupBox_3)
|
||||
self.textEdit_13.setGeometry(QtCore.QRect(230, 140, 221, 31))
|
||||
self.textEdit_13.setObjectName("textEdit_13")
|
||||
self.textEdit_14 = QtWidgets.QTextEdit(parent=self.groupBox_3)
|
||||
self.textEdit_14.setGeometry(QtCore.QRect(10, 200, 71, 31))
|
||||
self.textEdit_14.setObjectName("textEdit_14")
|
||||
self.label_14 = QtWidgets.QLabel(parent=self.groupBox_3)
|
||||
self.label_14.setGeometry(QtCore.QRect(10, 180, 131, 18))
|
||||
self.label_14.setScaledContents(True)
|
||||
self.label_14.setObjectName("label_14")
|
||||
self.gridLayout.addWidget(self.groupBox_3, 0, 0, 1, 1)
|
||||
self.groupBox_4 = QtWidgets.QGroupBox(parent=self.tab_2)
|
||||
self.groupBox_4.setObjectName("groupBox_4")
|
||||
self.gridLayout.addWidget(self.groupBox_4, 0, 1, 1, 1)
|
||||
self.tabWidget.addTab(self.tab_2, "")
|
||||
self.horizontalLayout.addWidget(self.tabWidget)
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 1552, 30))
|
||||
self.menubar.setObjectName("menubar")
|
||||
MainWindow.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(parent=MainWindow)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
MainWindow.setStatusBar(self.statusbar)
|
||||
|
||||
self.retranslateUi(MainWindow)
|
||||
self.tabWidget.setCurrentIndex(1)
|
||||
self.tabWidget_2.setCurrentIndex(0)
|
||||
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||
|
||||
def retranslateUi(self, MainWindow):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
|
||||
self.label.setText(_translate("MainWindow", "Имя сессии"))
|
||||
self.textEdit_2.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:\'Noto Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">7777</p></body></html>"))
|
||||
self.label_2.setText(_translate("MainWindow", "Порт"))
|
||||
self.label_3.setText(_translate("MainWindow", "Querry порт"))
|
||||
self.textEdit_3.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:\'Noto Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">27015</p></body></html>"))
|
||||
self.textEdit_4.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:\'Noto Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">27042</p></body></html>"))
|
||||
self.label_4.setText(_translate("MainWindow", "Rcon порт"))
|
||||
self.label_5.setText(_translate("MainWindow", "Пароль сессии"))
|
||||
self.label_6.setText(_translate("MainWindow", "Пароль администратора"))
|
||||
self.label_7.setText(_translate("MainWindow", "Количество игроков"))
|
||||
self.checkBox.setText(_translate("MainWindow", "Передавать в глобальный список серверов"))
|
||||
self.groupBox_2.setTitle(_translate("MainWindow", "ini"))
|
||||
self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_5), _translate("MainWindow", "Tab 1"))
|
||||
self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_6), _translate("MainWindow", "Tab 2"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "ARK"))
|
||||
self.label_8.setText(_translate("MainWindow", "Имя сессии"))
|
||||
self.textEdit_9.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:\'Noto Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
|
||||
self.label_9.setText(_translate("MainWindow", "Порт"))
|
||||
self.label_12.setText(_translate("MainWindow", "Пароль сессии"))
|
||||
self.label_13.setText(_translate("MainWindow", "Пароль администратора"))
|
||||
self.label_14.setText(_translate("MainWindow", "Количество игроков"))
|
||||
self.groupBox_4.setTitle(_translate("MainWindow", "xml"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "7 Days to Die"))
|
Loading…
Reference in New Issue
Block a user