ایجاد و راه اندازی سرور Minecraft

ایجاد و راه اندازی سرور Minecraft

Minecraft یکی از محبوب ترین بازی های آنلاین امروزی است. در کمتر از سه سال (اولین انتشار رسمی در پاییز 2011 انجام شد)، او میلیون ها طرفدار در سراسر جهان پیدا کرد.

توسعه دهندگان بازی عمداً روی بهترین نمونه های بیست سال پیش تمرکز می کنند، زمانی که بسیاری از بازی ها با استانداردهای امروزی از نظر گرافیک ابتدایی و از نظر کاربرد ناقص بودند، اما در عین حال واقعاً هیجان انگیز بودند.

مانند همه بازی های جعبه شنی، Minecraft فرصت های زیادی برای خلاقیت در اختیار کاربر قرار می دهد - این در واقع راز اصلی محبوبیت آن است.

سازماندهی سرورها برای بازی در حالت چند نفره توسط خود بازیکنان و جوامع آنها انجام می شود. امروزه ده ها هزار سرور بازی در اینترنت کار می کنند (مثلاً به لیست اینجا مراجعه کنید).

در بین مشتریان ما طرفداران زیادی از این بازی وجود دارد و آنها تجهیزاتی را برای پروژه های بازی در مراکز داده ما اجاره می کنند. در این مقاله در مورد اینکه هنگام انتخاب سرور باید به چه نکات فنی توجه کنید صحبت خواهیم کرد
کنکوری.

انتخاب یک پلتفرم

بازی Minecraft شامل عناصر معماری زیر است:

  1. سرور - برنامه ای که با آن بازیکنان از طریق شبکه با یکدیگر تعامل دارند.
  2. مشتری - برنامه ای برای اتصال به سرور، نصب شده بر روی رایانه بازیکن؛
  3. افزونه ها - افزودنی هایی به سرور که عملکردهای جدید اضافه می کنند یا موارد قدیمی را گسترش می دهند.
  4. مدها - اضافه شده به دنیای بازی (بلوک های جدید، آیتم ها، ویژگی ها).

پلتفرم های سرور زیادی برای Minecraft وجود دارد. رایج ترین و محبوب ترین آنها وانیل و بوکیت هستند.

وانیل این پلتفرم رسمی توسعه دهندگان بازی است. در دو نسخه گرافیکی و کنسولی توزیع شده است. یک نسخه جدید از Vanilla همیشه همزمان با نسخه جدید Minecraft منتشر می شود.

نقطه ضعف وانیل مصرف بیش از حد حافظه آن است (تقریبا 50 مگابایت برای هر پخش کننده). یکی دیگر از ایرادات مهم کمبود افزونه است.

بوکیت توسط گروهی از علاقه مندان ایجاد شد که سعی در بهبود سرور رسمی Minecraft داشتند. این تلاش کاملاً موفقیت آمیز بود: از نظر عملکرد ، Bukkit بسیار گسترده تر از Vanilla است - در درجه اول به دلیل پشتیبانی از حالت ها و پلاگین های مختلف. در عین حال، حافظه کمتری را برای هر پخش کننده مصرف می کند - حدود 5-10 مگابایت.

معایب Bukkit این است که هنگام راه اندازی رم بیش از حد مصرف می کند. علاوه بر این، هر چه سرور بیشتر در حال اجرا باشد، به حافظه بیشتری نیاز دارد (حتی اگر تعداد بازیکنان کمی وجود داشته باشد). هنگام انتخاب Bukkit به عنوان سرور، به خاطر داشته باشید که نسخه های جدید آن، به عنوان یک قاعده، حاوی خطا هستند. نسخه پایدار معمولاً حدود 2-3 هفته پس از انتشار نسخه رسمی Minecraft ظاهر می شود.

علاوه بر این، پلتفرم‌های دیگر اخیراً محبوبیت پیدا کرده‌اند (به عنوان مثال، Spout، MCPC و MCPC +)، اما در سازگاری محدود با Vanilla و Bukkit و پشتیبانی بسیار محدود از مودها متفاوت هستند (به عنوان مثال، فقط می‌توانید برای Spout از ابتدا مود بنویسید. ). اگر از آنها استفاده می شود، فقط برای آزمایش.

برای سازماندهی سرور بازی، توصیه می کنیم از پلت فرم Bukkit استفاده کنید، زیرا انعطاف پذیرترین است. علاوه بر این، مادها و پلاگین های مختلفی برای آن وجود دارد. عملکرد پایدار سرور Minecraft تا حد زیادی به انتخاب صحیح پلت فرم سخت افزاری بستگی دارد. بیایید این موضوع را با جزئیات بیشتری در نظر بگیریم.

الزامات سخت افزاری

هم سرور و هم مشتری Minecraft در منابع سیستم بسیار نیازمندند.
هنگام انتخاب یک پلت فرم سخت افزاری، باید در نظر داشت که یک پردازنده چند هسته ای مزایای زیادی به همراه نخواهد داشت: هسته سرور Minecraft می تواند تنها از یک رشته محاسباتی استفاده کند. هسته دوم اما مفید خواهد بود: برخی از افزونه ها در رشته های جداگانه اجرا می شوند و جاوا نیز منابع زیادی را مصرف می کند ...

بنابراین برای سرور Minecraft بهتر است پردازنده ای را انتخاب کنید که عملکرد تک هسته ای بالاتری داشته باشد. یک پردازنده دو هسته ای قوی تر بر یک پردازنده چند هسته ای کم قدرت ترجیح داده می شود. در انجمن های تخصصی، استفاده از پردازنده هایی با سرعت ساعت حداقل 3 گیگاهرتز توصیه می شود.

مقدار زیادی رم برای عملکرد عادی سرور Minecraft مورد نیاز است. Bukkit تقریباً 1 گیگابایت رم را اشغال می کند. علاوه بر این، برای هر بازیکن، همانطور که در بالا ذکر شد، از 5 تا 10 مگابایت اختصاص داده شده است. افزونه ها و مدها نیز حافظه بسیار زیادی مصرف می کنند. برای سروری با 30 تا 50 بازیکن، حداقل به 4 گیگابایت رم نیاز دارید.

در Minecraft، مقدار زیادی (مثلاً بارگذاری همان پلاگین ها) به سرعت فایل سیستم بستگی دارد. بنابراین ترجیح داده می شود سروری با درایو SSD انتخاب کنید. درایوهای اسپیندل به دلیل سرعت پایین خواندن تصادفی بعید است مناسب باشند.

سرعت اتصال به اینترنت شما نیز از اهمیت بالایی برخوردار است. برای یک بازی 40-50 نفری یک کانال 10 مگابیت بر ثانیه کافی است. با این حال، برای کسانی که در حال برنامه ریزی یک پروژه ماین کرافت بزرگتر از جمله وب سایت، انجمن و نقشه پویا هستند، داشتن کانالی با پهنای باند بالاتر بسیار مطلوب است.

کدام پیکربندی خاص برای انتخاب بهتر است؟ از جانب تنظیماتی که ما ارائه می دهیم توصیه می کنیم به موارد زیر توجه کنید:

  • Intel Core 2 Duo E8400 3GHz, 6GB RAM, 2x500GB SATA, 3000 RUR/ماه.
  • Intel Core 2 Quad Q8300 2.5 گیگاهرتز، 6 گیگابایت رم، 2×500 گیگابایت SATA، 3500 روبل در ماه - ما از این پیکربندی برای سرور تست MineCraft خود استفاده می کنیم که می توانید همین الان روی آن بازی کنید (نحوه انجام این کار در زیر توضیح داده شده است).
  • Intel Core i3-2120 3.3GHz، 8GB RAM، 2x500GB SATA، 3500 روبل در ماه

این تنظیمات برای ایجاد یک سرور Minecraft برای 30-40 بازیکن کاملاً مناسب هستند. برخی از معایب فقدان درایوهای SSD است، اما ما یک مزیت مهم دیگر را ارائه می دهیم: کانال تضمین شده 100 مگابیت در ثانیه بدون هیچ محدودیت و نسبت. هنگام سفارش تمام پیکربندی های ذکر شده در بالا، هزینه نصب دریافت نمی شود.

ما همچنین سرورهای پربارتر، اما در عین حال، به طور طبیعی، گران‌تر نیز داریم (هنگام سفارش این تنظیمات، هزینه نصب نیز دریافت نمی‌شود):

  • 2x Intel Xeon 5130، 2GHz، 8GB RAM، 4x160GB SATA، 5000 روبل در ماه.
  • 2 x IntelXeon 5504، 2GHz، 12GB RAM، 3×1TB SATA، 9000 روبل در ماه.

همچنین توصیه می کنیم به مدل بودجه جدید با درایو SSD مبتنی بر پردازنده Intel Atom C2758 توجه کنید: Intel Atom C2758 2.4 گیگاهرتز، 16 گیگابایت رم، 2 × 240 گیگابایت SSD، 4000 روبل در ماه، پرداخت نصب - 3000 روبل.

نصب و اجرای سرور Bukkit در اوبونتو OC

قبل از نصب سرور، بیایید یک کاربر جدید ایجاد کنیم و آن را به گروه sudo اضافه کنیم:

$ sudo useradd -m -s /bin/bash <username> $ sudo adduser <username> sudo

در مرحله بعد رمز عبوری که کاربر ایجاد شده به سرور متصل می شود را تعیین می کنیم:

$ sudo passwd <نام کاربری>

با یک حساب کاربری جدید دوباره به سرور متصل شوید و نصب را ادامه دهید.
Minecraft به زبان جاوا نوشته شده است، بنابراین Java Runtime Environment باید روی سرور نصب شود.

لیست بسته های موجود را به روز کنید:

$ sudo apt-get update

سپس دستور زیر را اجرا کنید:

$ sudo apt-get install default-jdk

برای نصب و اجرای Bukkit، همچنین مطلوب است که یک مالتی پلکسر ترمینال نصب کنید - به عنوان مثال، صفحه نمایش (می توان از مالتی پلکسرهای ترمینال دیگر استفاده کرد - به ما مراجعه کنید مروری):

صفحه نصب $ sudo apt-get

در صورتی که از طریق ssh به سرور بازی وصل شویم نیاز به صفحه نمایش خواهد بود. با آن، راه اندازی سرور Minecraft در یک پنجره ترمینال جداگانه امکان پذیر خواهد بود و حتی پس از بستن کلاینت ssh، سرور کار می کند.

بیایید یک دایرکتوری ایجاد کنیم که در آن فایل های سرور ذخیره می شوند:

$ mkdir bukkit $ cd bukkit

پس از آن، بیایید به صفحه دانلود وب سایت رسمی Bukkit. در قسمت سمت راست بالای صفحه، می توانید پیوندی به آخرین ساخت سرور توصیه شده برای استفاده (ساخت توصیه شده) مشاهده کنید. توصیه می کنیم آن را دانلود کنید:

$ wget <پیوند به نسخه توصیه شده>

حالا بیایید صفحه را اجرا کنیم:

صفحه sudo $

و دستور زیر را اجرا کنید:

$ java -Xmx1024M -jar craftbukkit.jar -o false

بیایید توضیح دهیم که پارامترهای استفاده شده به چه معنا هستند:

  • Xmx1024M - حداکثر مقدار RAM در هر سرور.
  • jar craftbukkit.jar - کلید سرور.
  • o false - اجازه دسترسی به سرور را از کلاینت های دزدان دریایی می دهد.

سرور شروع خواهد شد.
با تایپ دستور stop در کنسول می توانید سرور را متوقف کنید.

راه اندازی و پیکربندی سرور

تنظیمات سرور در فایل پیکربندی server.properties ذخیره می شود. این شامل گزینه های زیر است:

  • generator-settings - قالبی را برای ایجاد یک دنیای فوق مسطح تنظیم می کند.
  • اجازه-نه - امکان انتقال به Nether را تعیین می کند. به طور پیش فرض، این پارامتر روی true تنظیم شده است. اگر روی false تنظیم شود، تمام بازیکنان از Nether به حالت عادی منتقل خواهند شد.
  • level-name نام پوشه فایل نقشه است که در طول بازی استفاده می شود. پوشه در همان دایرکتوری فایل های سرور قرار دارد. اگر چنین دایرکتوری وجود نداشته باشد، سرور به طور خودکار یک دنیای جدید ایجاد می کند و آن را در فهرستی با همین نام قرار می دهد.
  • enable-query - وقتی روی true تنظیم شود، پروتکل GameSpy4 را برای گوش دادن به سرور فعال می کند.
  • allow-flight - اجازه پرواز در دنیای Minecraft را می دهد. مقدار پیش فرض false است (بدون پرواز)؛
  • server-port - پورتی را مشخص می کند که توسط سرور بازی استفاده می شود. پورت پیش‌فرض Minecraft 25565 است. ما تغییر این تنظیمات را توصیه نمی‌کنیم.
  • سطح-نوع - نوع جهان را تعریف می کند (DEFAUT/FLAT/LARGEBIOMES).
  • enable-rcon - دسترسی از راه دور را به کنسول سرور باز می کند. به طور پیش فرض غیرفعال (نادرست) است.
  • سطح دانه - ورودی برای مولد سطح. برای اینکه بتوانید دنیاهای تصادفی ایجاد کنید، این قسمت باید خالی بماند.
  • force-gamemode - بازیکنانی که به سرور متصل می شوند را به حالت استاندارد بازی تنظیم می کند.
  • server-ip - آدرس IP را مشخص می کند که توسط بازیکنان برای اتصال به سرور استفاده می شود.
  • max-build-height - حداکثر ارتفاع یک ساختمان در سرور را مشخص می کند. مقدار آن باید مضربی از 16 باشد (64، 96، 256، و غیره).
  • spawn-npcs - به NPCها اجازه می دهد (اگر روی true تنظیم شده باشد) یا غیرفعال می کنند (اگر روی false تنظیم شده باشند) در دهکده ها ایجاد شوند.
  • لیست سفید - استفاده از لیست سفید بازیکنان را در سرور فعال یا غیرفعال می کند. اگر روی true تنظیم شود، مدیر می‌تواند با افزودن نام مستعار بازیکن به صورت دستی، یک لیست سفید ایجاد کند. اگر روی false تنظیم شود، هر کاربری که آدرس IP و پورت خود را بداند می تواند به سرور دسترسی داشته باشد.
  • spawn-animals - به گروه‌های دوستانه اجازه می‌دهد در صورت تنظیم روی true به صورت خودکار تخم‌ریزی کنند)
  • snooper-enabled - به سرور اجازه می دهد تا آمار و داده ها را برای توسعه دهندگان ارسال کند.
  • هاردکور - حالت هاردکور را در سرور روشن می کند.
  • texture-pac فایل بافتی است که هنگام اتصال پخش کننده به سرور استفاده می شود. مقدار این پارامتر نام آرشیو فشرده با بافت است که در همان دایرکتوری سرور ذخیره می شود.
  • حالت آنلاین - امکان بررسی حساب های پریمیوم کاربرانی که به سرور متصل می شوند را می دهد. اگر این پارامتر روی درست تنظیم شود، فقط دارندگان حساب پریمیوم می‌توانند به سرور دسترسی داشته باشند. اگر تأیید حساب غیرفعال باشد (روی نادرست تنظیم شده باشد)، هر کاربر (از جمله، به عنوان مثال، بازیکنانی که نام مستعار را جعل کرده‌اند) می‌توانند به سرور دسترسی داشته باشند که خطرات امنیتی بیشتری ایجاد می‌کند. با غیرفعال شدن تأیید، می‌توانید Minecraft را از طریق یک شبکه محلی، بدون دسترسی به اینترنت بازی کنید.
  • pvp - به بازیکنان اجازه می دهد یا از مبارزه با یکدیگر منع می کنند. اگر این پارامتر روی true تنظیم شود، بازیکنان می توانند یکدیگر را نابود کنند. اگر روی false تنظیم شود، بازیکنان نمی توانند به یکدیگر آسیب مستقیم وارد کنند.
  • دشواری - سطح دشواری بازی را تعیین می کند. می تواند مقادیر را از 0 (ساده ترین) تا 3 (سخت ترین) بگیرد.
  • Gamemode - مشخص می کند که کدام حالت بازی برای بازیکنانی که به سرور می پیوندند تنظیم شود. می تواند مقادیر زیر را بگیرد: 0 - بقا، 1-خلاق، 2-ماجراجویی.
  • بازیکن-بیکار-تایم اوت - زمان بیکار (بر حسب دقیقه)، پس از آن بازیکنان به طور خودکار از سرور قطع می شوند.
  • max-players - حداکثر تعداد مجاز بازیکنان در سرور (از 0 تا 999)؛
  • spawn-monsters - اجازه می دهد (اگر روی درست تنظیم شود) تخم ریزی اوباش متخاصم.
  • تولید-ساختارها - تولید سازه ها (خزانه ها، قلعه ها، روستاها) را فعال می کند (درست) / غیرفعال می کند (نادرست).
  • view-distance - شعاع تکه های به روز شده را برای ارسال به پخش کننده تنظیم می کند. می تواند مقادیری از 3 تا 15 بگیرد.

گزارش‌های سرور Minecraft در فایل server.log نوشته می‌شوند. در همان پوشه فایل های سرور ذخیره می شود. اندازه لاگ دائماً در حال افزایش است و فضای دیسک بیشتری را اشغال می کند. شما می توانید با استفاده از چرخش ورود به سیستم، عملکرد مکانیزم ثبت را ساده کنید. برای چرخش، از یک ابزار ویژه استفاده می شود - logrotate. این تعداد ورودی ها در گزارش را به حد معینی محدود می کند.

می‌توانید چرخش گزارش را طوری تنظیم کنید که به محض اینکه فایل گزارش به اندازه معینی رسید، همه ورودی‌ها حذف شوند. همچنین می توانید دوره ای را تعیین کنید که پس از آن همه ورودی های قدیمی بی ربط در نظر گرفته شده و حذف می شوند.

تنظیمات چرخش اصلی در فایل /etc/logrotate.conf است. علاوه بر این، تنظیمات فردی را می توان برای هر برنامه ایجاد کرد. فایل هایی با تنظیمات جداگانه در پوشه /etc/logrotate.d ذخیره می شوند.

یک فایل متنی /etc/logrotate.d/craftbukkit ایجاد کنید و پارامترهای زیر را در آن وارد کنید:

/home/craftbukkit/server.log { چرخش 2 فشرده هفتگی missingok notifempty }

بیایید معانی آنها را با جزئیات بیشتری در نظر بگیریم:

  • پارامتر rotate تعداد چرخش های قبل از حذف فایل را مشخص می کند.
  • هفتگی نشان می دهد که چرخش به صورت هفتگی انجام می شود (سایر پارامترها را می توان تنظیم کرد: ماهانه - ماهانه و روزانه - روزانه).
  • compress مشخص می کند که لاگ های بایگانی شده باید فشرده شوند (گزینه معکوس nocompress است).
  • missingok مشخص می کند که در صورت عدم وجود فایل گزارش، کار باید ادامه یابد و هیچ پیام خطایی نمایش داده نشود.
  • notifempty مشخص می کند که در صورت خالی بودن فایل log تغییر نکند.

می‌توانید درباره تنظیمات چرخش گزارش بیشتر بخوانید. اینجا.

نکات بهینه سازی

بیایید فوراً رزرو کنیم که این بخش نکاتی را فقط مربوط به بهینه سازی سرور بازی ارائه می دهد. مسائل مربوط به تنظیم دقیق و بهینه سازی سروری که Minecraft بر روی آن نصب شده است موضوعی جداگانه است که از حوصله این مقاله خارج است. خوانندگان علاقه مند می توانند به راحتی اطلاعات مورد نیاز خود را در اینترنت بیابند.

یکی از رایج ترین مشکلاتی که هنگام بازی Minecraft ایجاد می شود، به اصطلاح تاخیر است - موقعیت هایی که برنامه به ورودی کاربر به موقع پاسخ نمی دهد. آنها می توانند ناشی از مشکلاتی هم در سمت مشتری و هم در سمت سرور باشند. در زیر توصیه هایی ارائه خواهیم داد که به کاهش احتمال بروز مشکلات در سمت سرور کمک می کند.

به طور منظم مصرف حافظه سرور و افزونه ها را کنترل کنید

مصرف حافظه را می توان با استفاده از افزونه های تخصصی مدیریتی ردیابی کرد - به عنوان مثال، LagMeter.

منتظر به روز رسانی افزونه باشید

به عنوان یک قاعده، توسعه دهندگان پلاگین های جدید با هر نسخه جدید تلاش می کنند تا بار را کاهش دهند.

سعی کنید از افزونه های زیادی با عملکرد مشابه استفاده نکنید

پلاگین های بزرگ (به عنوان مثال Essentials، AdminCMD، CommandBook) اغلب شامل عملکرد بسیاری از پلاگین های کوچکتر می شوند. به عنوان مثال، همان Essential شامل توابع iConomy، uHome، OpenInv، VanishNoPacket، Kit است. پلاگین های کوچکی که عملکرد آنها به طور کامل توسط عملکرد یک پلاگین بزرگ پوشش داده می شود، در بیشتر موارد می توانند حذف شوند تا سرور بیش از حد بارگیری نشود.

نقشه را محدود کنید و خودتان آن را بارگذاری کنید

اگر نقشه را محدود نکنید، بار روی سرور به میزان قابل توجهی افزایش می یابد. می توانید نقشه را با استفاده از یک افزونه محدود کنید مرز جهانی. برای این کار باید این افزونه را اجرا کنید و دستور /wb 200 را اجرا کنید و سپس با استفاده از دستور /wb fill نقشه را بکشید.

ترسیم البته زمان زیادی می برد، اما بهتر است یک بار انجام شود و سرور را برای کارهای فنی ببندید. اگر هر بازیکن نقشه را بکشد، سرور به کندی کار می کند.

افزونه‌های سنگین را با پلاگین‌های سریع‌تر و کم‌مصرف جایگزین کنید

همه پلاگین های Minecraft را نمی توان موفق نامید: آنها اغلب حاوی تعداد زیادی عملکرد غیر ضروری و غیر ضروری هستند و گاهی اوقات حافظه زیادی را نیز مصرف می کنند. افزونه های ناموفق بهتر است با افزونه های جایگزین جایگزین شوند (تعداد کمی از آنها وجود دارد). به عنوان مثال، پلاگین LWC را می توان با Wgfix+MachineGuard و افزونه DynMap را با Minecraft Overviewer جایگزین کرد.

همیشه قطره را تمیز کنید یا یک افزونه نصب کنید تا به طور خودکار قطره حذف شود

قطره‌های بازی آیتم‌هایی هستند که هنگام مرگ یک گروه یا برخی از بلوک‌ها از بین می‌روند. ذخیره و پردازش افت ها منابع زیادی از سیستم را می گیرد.

برای اینکه سرور سریعتر اجرا شود، توصیه می شود که Drop را حذف کنید. این بهترین کار با استفاده از پلاگین های خاص است - به عنوان مثال، NoLagg یا McClean.

از ضد تقلب استفاده نکنید

به اصطلاح ضد تقلب ها اغلب بر روی سرورهای بازی نصب می شوند - برنامه هایی که مانع از تلاش برای تأثیرگذاری بر بازی به روش های غیر صادقانه می شوند.

همچنین ضد تقلب برای Minecraft وجود دارد. هر گونه ضد تقلب همیشه یک بار اضافی بر روی سرور است. ترجیحاً برای پرتاب کننده (که با این حال تضمین مطلق ایمنی را ارائه نمی دهد و به راحتی می شکند - اما این موضوعی برای بحث جداگانه است) و برای مشتری ترجیح داده می شود.

به جای یک نتیجه گیری

هر دستورالعمل و توصیه ای در صورتی که با مثال های خاص پشتیبانی شود بسیار مؤثرتر خواهد بود. بر اساس دستورالعمل نصب بالا، ما سرور Minecraft خودمان را ایجاد کردیم و چیزهای جالبی را روی نقشه قرار دادیم.

این چیزی است که ما به دست آوردیم:

  • سرور Bukkit - نسخه 1.6.4 توصیه شده پایدار؛
  • پلاگین آمار - برای جمع آوری آمار در مورد بازیکنان.
  • پلاگین WorldBorder - برای ترسیم و محدود کردن نقشه.
  • افزونه WorldGuard (+WorldEdit به عنوان یک وابستگی) - برای محافظت از برخی مناطق.

ما از همه دعوت می کنیم تا در آن بازی کنند: برای اتصال، یک سرور جدید اضافه کنید و آدرس را مشخص کنید mncrft.slc.tl.

خوشحال خواهیم شد اگر در نظرات تجربه خود را از نصب، پیکربندی و بهینه سازی سرورهای MineCraft به اشتراک بگذارید و به ما بگویید به کدام مدها و پلاگین ها علاقه دارید و چرا.

خبر جالب: از اول آگوست، هزینه راه‌اندازی سرورهای اختصاصی با پیکربندی ثابت 1% کاهش یافته است. اکنون پرداخت راه اندازی یک بار فقط 50 روبل است.

خوانندگانی که نمی توانند در اینجا نظر بگذارند، می توانند به ما بپیوندند وبلاگ.

منبع: www.habr.com

اضافه کردن نظر