質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Scratch

Scratchは、MITメディアラボが開発した子ども向けプログラミング言語。コードを記述することなくブロックを組み合わせてプログラミングを行うビジュアルプログラミング言語です。Scratch2.0からは、Web上でのプログラミングも可能になっています。

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

0回答

1310閲覧

ScratchのオリジナルブロックからRconプロトコルでMinecraftを操作する方法

panda531

総合スコア12

Scratch

Scratchは、MITメディアラボが開発した子ども向けプログラミング言語。コードを記述することなくブロックを組み合わせてプログラミングを行うビジュアルプログラミング言語です。Scratch2.0からは、Web上でのプログラミングも可能になっています。

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

0クリップ

投稿2021/02/12 00:45

前提・実現したいこと

作成したScratchのオリジナルブロックからMinecraftにコマンドを送信できるようにしたい

(実現できていること)

  • Scratchのオリジナルブロック作成(参考URL

(実現できていないこと)

  • オリジナルブロックからMinecraftへコマンドを送信する

発生している問題・エラーメッセージ

npmでインストールできるRconのライブラリを使うと、内部でnetを使っているためエラーが起きる
(ブラウザ側で実行する際にnetが存在しないので実行できない?)

Module not found: Error: Can't resolve 'net' in ...

ここにあるような対応は一通り実行してみましたが解決しませんでした。。。
webpack.config.jsを編集する対応はどこに記載するかわかりませんでした。。。)

該当のソースコード

試したこと

下記のライブラリを使って接続テストを行ったがいずれも失敗

補足情報(FW/ツールのバージョンなど)

  • browser : Google Chrome(87.0.4280.141(Official Build) (x86_64))
  • Node.js : v12.1.0
  • npm : 6.9.0

Node.jsはこれまで使ったことがないので仕組みもよくわかっていません。
その他必要な情報があればご指摘ください。

聞きたいこと

  • ScratchのオリジナルブロックからRconで通信する方法

参考URL

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyabi-sun

2021/02/12 03:07 編集

なるほど、Scratch3.0でオリジナルブロックを作ろうの記事を読みました。 回答のレベルではないアドバイスレベルなのでこちらにぶら下げます。 Node.jsはDOMを書き換えるしか能がないJavaScriptを、 コマンドラインから好き勝手に実行する為に C++製のモジュールを付け足してRubyやPythonと同じ汎用スクリプト言語にしたものです。 エラーで叱られている`net`はこのC++製モジュールに該当するので、 自由なHTTP通信を飛ばしたり待ち受ける目的で利用されるものです。 WebpackはNode.jsが利用しているnpmでのパッケージ管理やrequire等の仕組みを JavaScriptに逆輸入するもので、コードを無理やり1個に固めて、自作のrequire関数をグローバル変数に設置してNode.js流儀でJavaScriptを動かそうという試みです。 制約としてはNode.jsのC++製プログラムはJavaScriptには持って帰れないので、 Webpackで固める事が出来ないモジュールがある程度存在してしまいます。 なので回避策としてはJavaScriptでも使える Fetch API等でHTTPリクエストを送信して、Node.jsのWebサーバでHTTPリクエストを受け取って やってほしい事を代行する事になります。 この視点で調査をすすめてみてください。
panda531

2021/02/12 03:46

貴重な情報ありがとうございます! Node.jsやWebpackについても大変勉強になりました! > なので回避策としてはJavaScriptでも使える > Fetch API等でHTTPリクエストを送信して、Node.jsのWebサーバでHTTPリクエストを受け取って > やってほしい事を代行する事になります。 なるほど! 薄々そうかなとは思っていましたが、やはりそのような方法になるのですね。 以下、上記コメントを受けた私の理解です! - 既存のRconライブラリは`net`を使用しているので、やはりWebpackで固めたScratch上では動かない - リクエストに従ってMinecraftとやりとりするサーバーを別で立てておき、Scratchからはそのサーバーにリクエストを送る 上記内容について解釈が間違っている部分などがあれば教えていただければ幸いです! 引き続き調査を進めます。進展があればコメントさせていただきます!
miyabi-sun

2021/02/12 04:06

その理解で完璧です。 私はScratchに全然詳しくないので、「リクエストに従ってMinecraftとやりとりするサーバーを別で立てておき、Scratchからはそのサーバーにリクエストを送る」は一番良さそうなアプローチに思えます。 Scratchって色々できそうですが、そもそもそれらの細かい動作を実現する為に 裏でNode.jsのサーバが走っているはずですよね。 その中に上手くアダプターみたいな感じではめ込んで動かせそうな気がします。 頑張ってみてください。
panda531

2021/02/12 04:22

> Scratchって色々できそうですが、そもそもそれらの細かい動作を実現する為に > 裏でNode.jsのサーバが走っているはずですよね。 > その中に上手くアダプターみたいな感じではめ込んで動かせそうな気がします。 なるほど! Scratchが動かすために動いている(であろう)Node.jsのサーバーに処理をさせるということですね! その方面で調べてみます! 進展があればコメントさせていただきます! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問