Skip to content

Los Íconos (Español)

Jorge Orlando edited this page Oct 16, 2019 · 2 revisions

Cómo funcionan los íconos de los lenguajes e IDEs en el plugin?

Una respuesta rápida sería: Funcionan de una manera compleja, o que, por lo menos, es difícil de entender para la gente que es nueva en el tema de las aplicaciones para Discord, Kotlin, Gradle, o en la programación en general.

Por suerte para tí, el enfoque de ésta sección es intentar explicar cómo pudo lograrse esto, y cómo el proyecto se las arregla para mostrar los íconos en estado de Discord. Dicho esto, digamos que quieres hacer algo como esto:


Claramente, ese gatito no estaba ahí por default, asi que veamos como podríamos lograr algo así:


  1. En primer lugar, clona la repo:

git clone https://github.com/Almighty-Alpaca/JetBrains-Discord-Integration

Ésto básicamente descargará el proyecto, el cuál podrás compilar y obtener el plugin en sí, y de esta forma poder instalarlo en tu IDE.


  1. Crea una aplicación de Discord en El sitio oficial de aplicaciones de Discord.

Para efectos de este proyecto, cada aplicación que crees actuará de host para las imagenes de los lenguajes, podiendo así el plugin acceder a ellas de manera remota para poder mostrarlas en tu estado de Discord. La razón por la cual las copias locales de los archivos exísten en icons/themes/ es sólo para que así puedan ser subidos a aplicaciones de Discord como la que vamos a crear por el mísmo plugin, el cual realiza esto mediante un script que las sube todas de una sóla vez para mantenerlas sincronizadas.

Cuando crees tu aplicación, guarda tu app ID, la necesitarás después. La ID son los números que se hayan justo debajo del campo de CLIENT ID:



  1. Borra todos los temas existentes excepto uno, para poder así usar éste restante como base.

Los íconos locales no son aquellos que se muestran en tu estado de Discord por el plugin directamente, pero como se mencionó arriba, éstos son subidos a tus aplicaciones de Discord, y es desde ellas que pueden ser mostrados en tu estatus.

Reemplaza todos los iconos que quieras ahora. Por ejemplo, java.png en éste minuto es el ícono normal de Java (la tazita de café); sin embargo, podrías eventualmente reemplazarlo por la foto de un gatito, y renombrar esta foto a java.png, con lo cual funcionaría de igual manera. (1024x1024 son las dimensiones recomendadas).

En el proyecto hay un task de Gradle programado para subir los íconos a tu aplicación, el cual puede ser ejecutado desde la raíz de tu proyecto via consola con el siguiente comando:

./gradlew upload

Pero aún no lo hagas! Todavía debes terminar de configurar algunas cosas!.


  1. El token de tu aplicación de Discord servirá ahora. Si usaste el tema Material como tu base, deberás ver este YAML file en tu carpeta themes/ (es lo mísmo si ocupaste otro tema de base, sólo busca por flat, etc), que especifica diferentes IDs de aplicaciones de Discord para todos los IDEs que JetBrains ofrece. Está hecho de esta manera para así poder obtener los iconos de los lenguajes y el logo de los IDE desde aplicaciones especificas de Discord.

Esencialmente, tendrás que borrar todas las IDs de aplicaciones que no te pertenezcan (los números al lado de los nombres de los IDEs) y relacionar el(los) IDE(s) que usarás con tus aplicaciones de Discord (las que hostearán las imagenes) usando la ID de tus mismas aplicaciones de Discord, por ejemplo:

name: Material
description: Material Icons taken from the Material Theme for JetBrains IDEs
applications:
  AI: 547786360308891688

Si dejas las IDs que vienen con el proyecto y ejecutas el script para subir las imagenes, intentará subir los iconos a la aplicación del autor del plugin, a la cual no tienes acceso, resultando en un error 401.


  1. Una vez que el paso 4 esté completo, tendrás que obtener tu Discord token y colocarla este archivo de llaves.

  1. Crea una cuenta en Bintray.

Una vez logueado, deberás crear un respositorio y una package generico dentro de él. Dejalos ahí por ahora, es el script para subir los archivos el que subira los archivos locales de tu proyecto correspondientes a esta repo.


  1. Obtén tu API key de Bintray y colócala en el mísmo archivo de llaves.
  • La llave puede ser encontrada en: Edit Profile > API Key > Copy

  1. Edita este archivo colocando tu nombre de usuario, repo y package de Bintray.

Ésto le dira al plugin dónde debe subir los archivos de los directoriosthemes & languages.


  1. Ahora es cuando debes ejecutar el script de subida de archivos:

./gradlew upload


  1. Refiere tu propio usuario/repo/package de Bintray en este archivo.

Ya está! Ahora todo lo que queda por hacer es compilar el plugin:

./gradlew

Finalmente, este último comando generará un archivo .zip en la raíz del proyecto, que es el plugin que instarás desde tu IDE:


¡Diviértete con tus íconos personalizados!

Clone this wiki locally