Перейти к публикации

gladdos

Игрок
  • Публикаций

    59
  • Зарегистрирован

  • Посещение

Посетители профиля

307 просмотров профиля

Достижения gladdos

  1. gladdos

    Hardsok

    Автор поста. Много раз отвечал, не поленюсь повторить. Малолетний дебил — это не возраст и не медицинский диагноз. Это состояние ума. Которое легко может длиться до седых волос на всех частях тела, если человек не желает взрослеть, или если ему взрослеть просто нечем. Мозг малолетнего дебила пожизненно работает в режиме «подросток». В режиме «здравомыслие» данный мозг работает только в редчайших, исключительных случаях — например, пока дебила бьют или лишают иллюзий иными способами. Пожалуйста, не позорься в глазах сверстников, не выставляй себя малолетним дебилом и удали тему
  2. gladdos

    Генератор ников

    Сайд школьники задудосили. Нужно будет регистрацию вводить. P.S. Лол, еще Анальный замазал
  3. gladdos

    Генератор ников

    Нет, я репер
  4. gladdos

    Генератор ников

    Скриншоты немного затерялись,. Исходный код теперь на github Запасной сайт По прежнему ищу тех, кто умеет верстать
  5. Опираясь на эту тему я решил запилить собственную вариацию софтины, только где пользователи сами могут добавлять свои варианты никнеймов. И так, во первых, это сайт http://gladdos.studio/1.png http://gladdos.studio/2.png Второе: вы сами можете добавлять свои никнеймы. Особо отбитые будут удаться. Ну и исходный код открыт. Если вы умеете верстать, милости просим в команду. Ссылка : gladdos.studio Доп материал: Добавить: gladdos.studio/post Добавить: gladdos.studio/nick/post Получить ник: gladdos.studio/nick/get/{nick}/ Скачать исходный код.
  6. Обращаюсь ко всем, кто делает видосики по кубикам и прочему. Ошибка распространенная для всех и никто даже не собирается это решать. Когда конкретно ты, слушаешь музыку (не репчик про тёлочку) что-то тебе режет слух? Вряд-ли. Тогда почему речь в видео условно держится на X уровне громкости, а заставка в видео (или интро) настолько громкое по отношению к X, что приходится выключать звук в системе, крутить все крутилки на звуковой карте, чтобы не оглохнуть. А потом еще некоторое время сидеть контуженным проклиная автора. Я сейчас даже не говорю про соотношение громкости музыки и речи в видео. Я говорю про самое банальное, заставка в видео и речь. Спасибо за внимание
  7. Не буду объяснять зачем вам нужно API в вашем приложении. Просто покажу простейшую реализацию Желательно ознакомиться с этим Подготовим .htaccess RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L] Начнем с index.php Он отвечает за роутинг по сайту (api или отображение контента), но в нашем случае линкует лишь на API <?php $routes = explode('/', $_SERVER['REQUEST_URI']); if ($routes[1] == 'api') { include 'api.php'; } Создаем файл api.php в который будет неявно передаваться переменная $routes <?php try { header('Content-Type: application/json'); http_response_code(200); include __DIR__ . "/engine/api/$routes[2]/$routes[3].php"; } catch (RuntimeException $e) { http_response_code(500); print json_encode([ 'issueType' => substr(strrchr(get_class($e), "\\"), 1), 'issueMessage' => $e->getMessage(), 'issueCode' => $e->getCode() ]); } В общем-то на этом все. Теперь пишем примеры Создаем папку engine,в которой будут конфиги и прочий ваш код. В ней же создаем папку api Дальше по вашей структуре. К примеру взаимодействие с пользователями: /engine/api/users Для примера добавление пользователя и вывод списка всех пользователей add.php <?php use Exception\IllegalArgumentException; use Database\PDO; $mysqli = new PDO(); $request = json_decode(file_get_contents("php://input"), true); if (!isset($request['name'])) throw new IllegalArgumentException("Fields must be exists"); $mysqli->addAuthor($request['name']); get_all.php <?php use Database\PDO; print json_encode((new PDO())->getAuthors()); Использование example.com/api/users/add POST запрос с параметрами string name example.com/api/users/get_all POST запрос без входных параментров
  8. 5 минут дебага и вышло вот что: там просто формочка и взаимодействие с API через SSL (служба случайного лоха). Не получится понять, что оно конкретно делает
  9. Я её написал в раздел для разработчиков для людей которые пишут на java. Есть тут пару человек таких. Тема полезная, если писать софт для кубачей. Для серьёзных проектов подобный код не годится
  10. ТЗ: Написать фичу для софтинки, которая будет при запуске основной программы проверять наличие обновлений и скачивать их с сервера. Примечания: файл основной программы должен заменяться на ново-скаченный Для начала пишем JSON файлик по подобной структуре. package ru.patay.entities; public class Information { public String version; public String url; public String sha256sum; } заливаем его на сервер. после psvm открываем try…catch блок ловим подобные ошибки: IOException | NoSuchAlgorithmException | URISyntaxException e Гуглим GSON, коннектим его к сборщику. Впрочем для ленивых вот на него ссылка Не отходя от конфигов сборщика (GRADLE) Пилим подобный линковщик: jar { manifest { attributes('Main-Class': "${project.group}.Main", 'Implementation-Version': version) } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } }Выше указываем ТЕКУЩУЮ ВЕРСИЮ и основной пакет group 'ru.patay' version '1.0-SNAPSHOT'Теперь все апдейты (будущие) мы меняем в конфигах сборщика. Идем по нексусу (так называемому пожилому нексилю) Объявляем InputStream до JSON файлика и заодно его читаем InputStream is = new URL("https://example.com/package.json").openConnection().getInputStream(); String result = new BufferedReader(new InputStreamReader(is)).lines() .collect(Collectors.joining("\n")); is.close();Используем GSON ( Я так и не разобрался с встроенным JSON, пришлось использовать сторонние фреймоворки) Gson gson = new Gson(); Information information = gson.fromJson(result, Information.class);Так, первая проверка на сравнение текущей версии и свеже-полученной if (!Main.class.getPackage().getImplementationVersion().equals(information.version)) {}Дальше сохраняем полученный файлик по ссылке из JSON System.out.println("New version found!"); is = new URL(information.url).openConnection().getInputStream(); File file = new File("tmp"); Files.copy(is, file.toPath(), StandardCopyOption.REPLACE_EXISTING); is.close(); И получаем его хеш сумму SHA256 byte[] buffer = new byte[8192]; int count; MessageDigest digest = MessageDigest.getInstance("SHA-256"); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); while ((count = bis.read(buffer)) > 0) { digest.update(buffer, 0, count); } bis.close(); String downloadedSHA = new BigInteger(1, digest.digest()).toString(16).toLowerCase(); И сравниваем полученную хеш-сумму из JSON`a с хешсуммой скаченного файла if (information.sha256sum.toLowerCase().equals(downloadedSHA)) { } else throw new IOException("SHA256SUM does not equals!"); Заменяем текущий файл скаченным файлом File current = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().toURI()); FileOutputStream fos = new FileOutputStream(current); FileInputStream fis = new FileInputStream(file); fos.flush(); while (fis.available() > 0) fos.write(fis.read()); fos.close(); fis.close(); file.delete();Остается только запустить Runtime.getRuntime().exec("java -jar " + current.getAbsolutePath()); System.exit(0); Готовый пример лежит тут : GitHub А на сегодня все. Спасибо за просмотр
  11. gladdos

    sashok724's Launcher v15.4

    Держу в курсе, автор фейк, а НАСТОЯЩИЙ лаунчер давным давно лежит на гитхабе, а последний коммит был 5 месяцев назад
  12. gladdos

    Мобильный клиент VimeTop

    По этому чувак, я купил себе это:
  13. Если можно: Поставь margin в 5px у текста: "Выбор игрового сервера", "Minigames", "Аватарки и ника". Черный цвет в активном режиме через-чур черный. Чуть по белее вместе с hover эффектом. Сделай кнопку играть чуть больше и на hover добавь смену градиента, а не просто блюрь. Левую менюшку увеличить бы, она скукожена до минимума. Нельзя двигать окном, но вроде как это не фиксится. --- Залей на гит и пускай форки делает. Пьешь пыво и релизишь чужой код
×
×
  • Создать...