opensim0.9.0.1releaseのプロフィールの問題解決(暫定)

Re: opensim0.9.0.1releaseのプロフィールの問題解決(暫定)

- 堀田 海月 の投稿
返信数: 6

お疲れ様です。

気になって、今回ビルドしたJOGが配布してるモジュールのソースの0.9.0版のソースと0.9.1版のソースを見比べてみました所、0.9.1の方には、プロフィール画面で日本語が通るべき部分を表す各変数にConvert.ToBase64String(Enc.GetBytes([テキスト]))関数が挟み込まれていましたが、0.9.0のソースにはそれがありませんでした。(それ以外のソースコードは全く同一)そこでためにし0.9.1のソースをビルドして、佐久島のOpenSimProfile.Modules.dllと入れ替えた所、表示及び編集もできるようになりました。

ここからはあくまで想像ですが、Convert.ToBase64String(Enc.GetBytes([テキスト]))によるBase64変換がないために、JOGでBase64に変換されてたSQL文を処理できず(SQLiteにしろMySQLにしろ、SQL命令の構文は基本同じ)エラーになってた可能性があります。こちらでエラーが出なかった理由がちょっとわかりませんが。

 

一応今回ビルドしたOpenSimProfile.Modules.dllもこの投稿に添付しておきます。

 

堀田 海月 への返信

Re: opensim0.9.0.1releaseのプロフィールの問題解決(暫定)

- 堀田 海月 の投稿

自身の勉強も兼ねて、C#における文字列のBase64へのエンコード及びデコードの実装方法を解説したサイトを見つけたのでリンクを張って置きます。

「Base64形式の文字列に変換する、Base64形式の文字列を復元する」

https://dobon.net/vb/dotnet/string/base64.html

堀田 海月 への返信

Re: opensim0.9.0.1releaseのプロフィールの問題解決(暫定)

- Shinobar Martinek の投稿

おめでとうございます。でも、うちではやはりエラーとなります。

JOGのProfileモジュールのソースを見ると、v0.8.1に無かった MySQLOpenSimProfilesData.cs なるものが v0.9.0 以降に追加されています。DBはMySQL決め打ちになっていて、これがうちの SQLite環境でエラーとなる原因のようです。

DBの初期化処理はv0.8.1にもあるので必要なのでしょう。しかし v0.9.0以降なぜ MySQL決め打ちなのか疑問です。

Shinobar Martinek への返信

Re: opensim0.9.0.1releaseのプロフィールの問題解決(暫定)

- 堀田 海月 の投稿

0.9.1のソースコードを見てると、MySQLOpenSimProfilesData.csで定義された、OpenSim.Data.MySQLクラスのオブジェクトが呼び出されて、MySQLサーバーとの接続を試みてますが、このあとこのオブジェクトが使われている形跡が全くありません。

そこで、関連部分を全てコメントアウトした上でビルドしましたら、1ワーニング(OpenSim.Data.MySQLクラスが値を保存しているだけの変数。関連コードをコメント化したので使われないまま残ってしまった。)を除いてノーエラーでビルドできました。

ただしこちらではすぐには検証できないのと、本当にこれで正しいのかわからないのと、コメント化したコードはそれほどないにもかかわらずバイナリが1/3にも減ってるのでちょっと怖いのですが、添付しますので人柱お願いします(ωV_vω)ペコ

0.8系のソースも見ましたが名前定義とかで大幅に変わっているのでそのままでは動かない可能性があります。

堀田 海月 への返信

Re: opensim0.9.0.1releaseのプロフィールの問題解決(暫定)

- Shinobar Martinek の投稿

やってくれちゃうじゃないですか、えくすさん。

opensim-0.9.0.1 Release に JOG OpenSim-0.9.0Dev からJOG独自モジュールを入れた環境で、えくすさんの OpenSimProfile.Modules_not_MySQL_test.zip を解凍したものを binに入れて OpenSimProfile.Module.dll を入れ替え。GridHypergrid.ini にはすでに[Profile]のセクションがあったので、その部分(54-55行目)を書き換え。

[Profile]
    Module = "OpenProfileModule"

[Profile]
    Module = "OpenSimProfileModule"

OpenSim.iniはJOG 0.9.0Devのまま。(最後のほう)

[Profile]
    ; Change it to your own HTTP server to have the Profile server work
    ProfileURL = http://www.jogrid.net/wi/blocks/modlos/helper/profile.php

結果は...大成功!heart

アバターのプロファイルは正しく表示され、編集、追記もできました。日本語もOKです。

DBの初期化処理というのは、新しくアバターを作ったときなのでしょうか。その点はテストできてませんが、ほぼ完璧と言えましょう。

お疲れ様です。ありがとうございました。パッチ公開してくださいね。

Shinobar Martinek への返信

Re: opensim0.9.0.1releaseのプロフィールの問題解決(暫定)

- 堀田 海月 の投稿

おめでとうございます^^

ヨーダさんがフォーラムを読んでくれてて、インワで話したのですが、ふみさんがMySQLでなにかやろうとしてて、初期化まで入れたけど、忙しくてそのまま放置してるのでは?って結論に達しました(^_^;)

ビルド時にまだワーニングが出る状態なので、そこも直した上でパッチ公開したいと思います。

堀田 海月 への返信

Re: opensim0.9.0.1releaseのプロフィールの問題解決(暫定)

- Iseki Fumikazu の投稿

どうも代わりにソースを読んでくださってありがとうございます.m(__)m

もう結構いろいろと忘れているので助かります.

最近さぼり気味でしたが,0.9.0.1 のバイナリーもこれから UPします.

よろしくお願いします.