{"id":19141601,"url":"https://github.com/reinanhs/godot-websocket","last_synced_at":"2025-06-30T22:35:39.107Z","repository":{"id":42818128,"uuid":"268135670","full_name":"ReinanHS/godot-websocket","owner":"ReinanHS","description":"Um módulo do Godot Engine implementando cliente e servidor WebSocket através de um bate-papo","archived":false,"fork":false,"pushed_at":"2023-03-04T21:19:04.000Z","size":1033,"stargazers_count":17,"open_issues_count":2,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-06T23:46:55.783Z","etag":null,"topics":["godot","javascript","websocket"],"latest_commit_sha":null,"homepage":"https://youtu.be/USYVrXiCgSI","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ReinanHS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-30T18:16:20.000Z","updated_at":"2024-08-05T21:50:04.000Z","dependencies_parsed_at":"2024-11-09T07:24:39.880Z","dependency_job_id":"6fa612cd-026e-4e77-9e7a-3a98108fce1b","html_url":"https://github.com/ReinanHS/godot-websocket","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ReinanHS/godot-websocket","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReinanHS%2Fgodot-websocket","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReinanHS%2Fgodot-websocket/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReinanHS%2Fgodot-websocket/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReinanHS%2Fgodot-websocket/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ReinanHS","download_url":"https://codeload.github.com/ReinanHS/godot-websocket/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReinanHS%2Fgodot-websocket/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262862409,"owners_count":23376405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["godot","javascript","websocket"],"created_at":"2024-11-09T07:24:02.059Z","updated_at":"2025-06-30T22:35:39.042Z","avatar_url":"https://github.com/ReinanHS.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Godot Websocket\n\nEste é um jogo de plataforma online feito na Godot 3.\n\n## Como instalar\n\nPara fazer a instalação deste projeto é necessário ter:\n\n- Git\n- Nodejs\n\nO primeiro passo é baixar esse repositório para o seu computador\n```git\ngit clone https://github.com/reinanhs/godot-websocket.git\n```\n\nAgora vamos baixar as dependências e iniciar o projeto\n```sh\ncd godot-websocket/server\nnpm install\nnpm start\n```\n\nAgora abra o projeto client na sua godot\n\n## Imagens\n\n![Godot webbsocket](https://i.imgur.com/4pdBQ4d.jpg)\n![Godot webbsocket javascript](https://i.imgur.com/7qp5zOl.jpg)\n\n## Como criar um plugin?\n\nPara criar um plugin para o servidor, você precisará criar um arquivo javascript no diretório `server/resource`. O arquivo deve seguir a seguinte estrutura:\n\n```javascript\nexport default () =\u003e {\n  const event = global.eventServer\n\n  /*\n  // É aqui que a lógica do plugin será colocada\n  event.on('onServerInit', () =\u003e {\n    console.log('\u003e Example Plugin successfully loaded')\n  })\n  */\n}\n```\n\nDepois de criar o arquivo, teremos que importar o arquivo em `src/plugins.js`:\n\n```javascript\nimport ExamplePluginName from '../resource/ExamplePluginName'\n\nexport default () =\u003e {\n  return {\n    example: ExamplePluginName(),\n  }\n}\n```\n\n### onServerInit\n\n**Descrição**: Este Evento é chamado quando o Servidor é iniciado. \n\n| Nome       | Parâmetros     |\n|------------|----------------|\n|onServerInit|Nenhum parâmetro|\n\n**Exemplo**:\n\n```javascript\n/**\n * Este Evento é chamado quando o Servidor é iniciado.\n */\nevent.on('onServerInit', () =\u003e {\n  console.log('\u003e Example Plugin successfully loaded')\n})\n```\n\n### onPlayerConnect\n\n**Descrição**: Este Evento é chamado quando um jogador conecta ao servidor.\n\n| Nome          | Parâmetros |\n|---------------|------------|\n|onPlayerConnect|player      |\n\n**Exemplo**:\n\n```javascript\n/**\n * Este Evento é chamado quando um jogador conecta ao servidor.\n * @param {Player} player O jogador que conectou.\n */\nevent.on('onPlayerConnect', (player) =\u003e {\n  return event.emit('sendClientMessage', player, 'Esse servidor está utilizando o plugin X')\n});\n```\n\n### onPlayerDisconnect\n\n**Descrição**: Este Evento é chamado quando um jogador desconecta do servidor.\n\n| Nome             | Parâmetros |\n|------------------|------------|\n|onPlayerDisconnect|player      |\n\n**Exemplo**:\n\n```javascript\n/**\n * Este Evento é chamado quando um jogador desconecta do servidor.\n * @param {Player} player jogador que desconectou.\n * @param {String} reason O motivo por desconectar.\n */\nevent.on('onPlayerDisconnect', (player) =\u003e {\n  // Lógica para fazer o tratamento do evento\n})\n```\n\n### onPlayerText\n\n**Descrição**: Este Evento é chamado quando um player envia mensagem ao chat.\n\n| Nome       | Parâmetros | Parâmetros |\n|------------|------------|------------|\n|onPlayerText|player      |text        |\n\n**Exemplo**:\n\n```javascript\n/**\n * Este Evento é chamado quando um player envia mensagem ao chat.\n * @param {Player} player Jogador que enviou a mensagem.\n * @param {String} text   O texto digitado pelo jogador.\n */\nevent.on('onPlayerText', (player, text) =\u003e {\n  // Lógica para fazer o tratamento do evento\n})\n```\n\n### onPlayerCommandText\n\n**Descrição**: Este Evento é chamado quando um jogador digita um comando no chat, Ex.: /ajuda.\n\n| Nome              | Parâmetros | Parâmetros |\n|-------------------|------------|------------|\n|onPlayerCommandText|player      |cmd[]       |\n\n**Exemplo**:\n\n```javascript\n/**\n * Este Evento é chamado quando um jogador digita um comando no chat, Ex.: /ajuda.\n * @param {Player} player Jogador que digitou o comando\n * @param {Array\u003cString\u003e} cmd O comando que sera executado (incluindo a barra).\n */\nevent.on('onPlayerCommandText', (player, cmd) =\u003e {\n  // Lógica para fazer o tratamento do evento\n  if(cmd[0] == '/menu'){\n    return event.emit('showPlayerDialog', player, DIALOG_MENU, 'box', 'Menu principal', 'Como você está hoje?', 'Estou bem', 'Estou mal')\n  }\n})\n```\n\n### showPlayerDialog\n\n**Descrição**: Mostra ao jogador uma caixa de diálogo síncrona (apenas uma de cada vez).\n\n| Nome           | Parâmetros | Parâmetros |Parâmetros |Parâmetros |Parâmetros |Parâmetros      |\n|----------------|------------|------------|-----------|-----------|-----------|----------------|\n|showPlayerDialog|player      |dialogid    |style      | caption   |info       |button1, button1|\n\n**Exemplo**:\n\n```javascript\n/**\n * Mostra ao jogador uma caixa de diálogo síncrona (apenas uma de cada vez).\n * @param  {Player} player jogador \n * @param  {Number} dialogid Um ID para atribuir a esta caixa de diálogo, para que as respostas possam ser processadas.\n * @param  {String} style O estilo da dialog.\n * @param  {String} caption O título na parte superior da caixa de diálogo.\n * @param  {String} info O texto a ser exibido na caixa de diálogo principal.\n * @param  {String} button1 O texto do botão esquerdo.\n * @param  {String} button2 O texto do botão direito.\n */\nevent.emit('showPlayerDialog', player, 1, 'box', 'Header', 'Hello', 'Ok', 'Close')\n```\n\nPara ver todos os eventos acesse a documentação","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freinanhs%2Fgodot-websocket","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freinanhs%2Fgodot-websocket","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freinanhs%2Fgodot-websocket/lists"}