tonyhcj 6a597092fe fix: corrige chaves desencontradas em GuiManager.buildMenu
Um bloco do if (menu instanceof UnicastSubMenu) estava duplicado e
incompleto (sobrava um fragmento com reticências soltas), o que
impedia a compilação do núcleo. Remove a duplicação, mantendo só
o bloco correto e completo que já existia logo depois.
2026-10-03 20:11:17 -03:00
2026-10-03 16:55:08 -03:00

pitiupi

Este repositório tem 4 projetos Java que são independentes:

Sistema:

  • A ferramenta pitiupi (P2P)

Plugins:

  • Um plugin de Chat
  • Um plugin de Chat multiprotocolo (TCP/UDP)
  • Um plugin de ScreenCast

Cada um destes projetos deve ser compilado individualmente. Para isso, use a ferramenta ant no diretório do projeto. Ex:

cd pitiupi.chat
ant jar

Feito isso, os arquivos jar dos plugins deverão ser copiados ou linkados na pasta plugin da ferramenta. No caso de a mesma ser linkada, ao recompilar os plugins não é necessário copiar o mesmo novamente para a pasta de plugins da ferramenta. Para criar links simbólicos no Linux, use o comando:

cd pitiupi/plugins
ln -s ../../pitiupi.chat/dist/*.jar .
ln -s ../../pitiupi.mpChat/dist/*.jar .
ln -s ../../pitiupi.screenCast/dist/*.jar .

Isso deve resolver!

Como um plugin conversa com o pitiupi

Um plugin nunca recebe acesso direto às classes internas do núcleo (ConnectionManager, GuiManager). Em vez disso, recebe uma facade, a classe Pitiupi, que expõe só o que um plugin precisa: enviar mensagem (multicast, unicast ou tcp), abrir conexão tcp privada, ler nome de usuário e porta, criar menu.

public abstract void createPlugin(Pitiupi pitiupi);

Para criar um novo plugin

  1. Implemente pitiupi.models.Plugin, incluindo createPlugin(Pitiupi pitiupi)
  2. Registre a classe em src/META-INF/services/pitiupi.models.Plugin, com o nome completo da classe numa linha
  3. Compile com ant jar
  4. Linke o .jar em pitiupi/plugins

Use pitiupi.chat como referência — é o exemplo mais simples e completo.

Plugins que ainda não foram atualizados para a Pitiupi (como uma versão mais antiga do screenCast) não compilam contra o núcleo atual e precisam de migração antes de serem usados.

S
Description
Ferramenta p2p para práticas em rede
Readme
468 KiB
1 Stars 1 Watchers 0 Forks
Languages
Java 99.7%
Makefile 0.3%