2012年7月7日土曜日

Firefoxアドオン開発-JQueryの.append()で書き込めなかったんすよ。

DC2Fアドオン作成中、チャットの表示をしようとする時に
TypeError: p is null

ってエラーに悩まされた。

初歩的な話っぽいけど、XULで「<」とか「&」とか.append()で書き込もうとするとでるっぽい。
タグいれたきゃはこんな風にしろってさあああああ。
var href = "http://www.google.com/";
var text = "Google";
$("body").append(
$("<div>", { class: "foo" })
.append($("<a>", { href: href, text: text })
.click(function (event) { alert(event.target.href) }))
.append($("<span>").text("Foo")));

&はどうすればいいのかまだわからない・・・。
XUL_School/DOM_Building_and_HTML_Insertion#jQuery_Templating

っていうか子供泣き過ぎでブログ書けねぇ!腕を引っ張るな!wwwwww

Firefoxアドオン開発-cookieの取得(XPCOMの利用)

DC2FはクッキーにセッションIDが保存されておるので、それを取得したかったんです。
でもFirefoxに保存されたクッキーをどうやったら覗けるのかがわからんかった。

XPCOMだろうなぁ。と思って検索したらわかりました。

XPCOMの利用例(クッキー)
ここにある例を参考に無事取得することができたので、アドオンの下準備部分を書き換えましたよ。
わかれば意外と簡単ですね。
MDNのページってところどころ日本語訳のページなかったりで見づらいっす。


2012年7月3日火曜日

Firefoxアドオン開発-Webコンソール

WEBコンソール今使ってみてすげー便利ってわかったよ・・・。

Web Console

そしてFirebugの良さを再認識だよ・・・。

Webコンソールみて

-- [23:41:45.408] Web コンソールのログ記録 API (console.log, console.info, console.warn, console.error) は、このページ上のスクリプトにより無効化されています。

とかでててconsole.log()が使えねえ!って調べてたら、Firebugのコンソールにでてるだけじゃねえか!恥ずかしいw
alert()で頑張ってたとかほんと恥ずかしい。

つーかもう今使いたかった程度の事ならconsole.logすらいらねーじゃん。
オブジェクトの中身とかコマンドライン インタプリタで十分じゃんじゃんじゃじゃーん。
何故今まで俺はこの辺の情報に辿り着けなかったんだああああああああああああああああああああああああ。うんこおおおおおおおおおお。

Firefoxアドオン開発-アドオンのテスト

開発中のアドオンのテストする時にいちいちXPI更新するのは面倒なので下記のような方法を使っているわけです。

一回addons.mozilla.orgにUPしてインストールした時に、IDが同じだからローカルのが消えちゃってたわけですね。(消しちゃってたのかもだけど)

んでもっかいやろうとした時にアレ?っとなったのでメモしとく。

ちなみにプロファイルフォルダは自分の場合はここ↓にありましたよ。

C:\Documents and Settings\[ユーザー名]\Application Data\Mozilla\Firefox\Profiles\プロファイルフォルダ

 

以下 Building_an_Extensionより

テスト

最初に、我々はあなたの拡張機能の存在を Firefox に伝えなくてはなりません。昔、Firefox 1.0 の頃にはこれは、あなたの拡張機能を XPI としてパッケージ化して、ユーザインタフェースを通じてそれをインストールする事を意味していました。これが実に辛い。でも、今はもっとずっと簡単です。
  1. あなたの環境の プロファイルフォルダを開いてください。
  2. そこにある extensions という名前のフォルダを開いて下さい。(なければ作成して下さい。)
  3. 新しいテキストファイルを作成して、その中にあなたの機能拡張フォルダのパス(例:「C:\extensions\myExtension\」とか「~/extensions/myExtension」とか。)を書いて、そのファイルをあなたの拡張機能のIDと同じ名前(例:「sample@foo.net」)で保存して下さい。
これで拡張機能のテストの準備ができました!
Firefoxを起動します。Firefox はあなたの拡張機能のディレクトリへのテキストリンクを検出して、そして拡張機能をインストールしてくれます。ブラウザウインドウが表示されると、ステー タスバーパネルの右側でテキスト「Hello, World!」と表示されているのが見えるでしょう。
戻って「.xul」ファイルを修正した場合も、ファイルを閉じて Firefox を再起動すれば、その結果が反映されます。

んで更にアドオンで再起動ボタンとか入れとくと楽だと思う。

2012年6月30日土曜日

ドラゴンクルセイド2F用Firefoxアドオン開発

ドラゴンクルセイド2Fのユーザーインターフェースがクソすぎるので勉強がてらFirefoxアドオンを作ってみることにした。

そもそもの始まりはゲーム内チャットが使いづらすぎることだった。
  • 日本語入力を確定するとチャットが送信されてしまう事
  • チャットにスクロールバーがついているのに過去の発言を閲覧しようとしてスクロールしてると、勝手に最新の発言のところまで戻されてちゃんと見れない事
というわけでFirebugで通信内容を覗いたら普通にチャットの発言とか覗けたので、アドオンとしてつくれるんじゃねぇか?って妄想した。
Firefoxのアドオンは作ったことなかったので魔法使いとしてはやってみる必要があると思った。

で、アドオンの作り方から調べて、現在の機能
  • ログインは2サバ限定(簡単に変更できると思う)
  • 世界とギルドチャットの取得(約5秒間隔)
  • ギルドチャットでの発言

これから作る予定の機能
  1. 税金の自動徴収
  2. 城のリスト表示
    • 建築中物件の表示
    • 物件のアップグレード
あと色々妄想するところはあるけど、モチベが続くかどうかが問題だ。
例えば便利そうで実現できそうなのは
最寄りの野外資源地検索
建築キュー(通常2件までだが、終わったら自動的に次を入れれるようにする)
自動最上級兵士生産
自動狩り

ってやり過ぎるとただのBOT・・・?

 DC2Fサポートツール(Firefoxアドオン)