npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@akashic-extension/resolve-player-info

v1.3.0

Published

ユーザー用のプレイヤー名取得ライブラリ

Downloads

88

Readme

resolve-player-info

ニコニコ生放送 (ニコ生ゲーム) や ゲームアツマールにおいて、 プレイヤーのユーザ情報を取得するための Akashic Engine 向けライブラリです。

利用には Akashic Engine v3 以降が必要です。

インストール

akashic install コマンドでインストールしてください。

akashic install @akashic-extension/resolve-player-info

インストール後にテキストエディタで game.json を開いて、次のような environment.external.coeLimited プロパティがなければ作成してください。 値は "0" としてください。(v2.1.2 以降の akashic-cli では、 akashic install 時に自動的に作成されます。)

{
  ...,
  "environment": {
    "external": {
      "coeLimited": "0"
    }
  }
}

利用方法

スクリプトアセット内で、 require() で関数 resolvePlayerInfo() を取得します。

var resolvePlayerInfo = require("@akashic-extension/resolve-player-info").resolvePlayerInfo;

TypeScript の場合は import を利用してください。

import { resolvePlayerInfo } from "@akashic-extension/resolve-player-info");

取得した resolvePlayerInfo() を呼び出すと、各プレイヤーのユーザ名などの情報が g.game.onPlayerInfo で通知されます。 また以降そのプレイヤーが生成したイベント (画面押下の g.PointDownEvent など) には、 player.name プロパティにユーザ名が含まれるようになります。

var nameTable = {};
g.game.onPlayerInfo.add(function (ev) {
  // ev.player.id にプレイヤーIDが、ev.player.name にそのプレイヤーの名前が含まれます。
  // ここで取得しなくても、以降そのプレイヤーが生成したイベントはすべて .player.name で名前を参照できます。
  nameTable[ev.player.id] = ev.player.name;
});

resolvePlayerInfo({ raises: true });

resolvePlayerInfo() は、ローカルイベント (ローカルエンティティの操作などを契機とするイベント) の処理内でのみ利用してください。

ニコニコ生放送 (ニコ生ゲーム) では、ユーザ名の利用許諾を求めるダイアログが表示されます。 許諾された場合にはユーザ名が、されなかった場合はランダムに生成されたダミーの名前 (「ゲスト123」など) が通知されます。

詳細な利用方法は 「ユーザ名を使う」 を参照してください。

仕様

resolvePlayerInfo(opts, callback);

第一引数 opts はオプションです。次のプロパティを指定できます。

|プロパティ名|デフォルト値|内容| |:---:|:---:|:---| |raises|false|true の時、取得完了時に g.PlayerInfoEvent を送信します。 送信されたg.PlayerInfoEventg.game.onPlayerInfo で全員に通知されます。| |limitSeconds|15|名前の利用許諾ダイアログを表示する場合に、自動的に拒否とみなしてダイアログを閉じるまでの時間。単位は秒です。|

第二引数 callback には、関数を指定できます。指定した場合、名前取得の完了時に callback(err, playerInfo) の形で引数 2 つで呼び出されます。

|引数|内容| |:---:|:---| |err|第一引数。成功した場合、 null 。なんらかのエラーが発生した場合、それが渡されます。| |playerInfo|第二引数。取得したプレイヤー情報。errnull の時のみ与えられます。|

プレイヤー情報 playerInfo は、次のプロパティを含みます。

|プロパティ名|型|内容| |:---:|:---:|:---| |name|string|ユーザ名。| |userData.accepted|boolean|名前利用を許諾したか。 false の場合、 name はランダムに生成された名前です (e.g. 「ゲスト123」)。| |userData.premium|boolean|ユーザーがニコニコプレミアム会員かどうか。| |userData.unnamed|boolean またはなし|名前のない (非プレイヤー) インスタンスの時、 trueサーバサイドなどの特殊なインスタンスの場合にのみ true になります。このプレイヤーは自発的に操作を行うことはありません。 raises オプションが真の場合でも、このプレイヤーが g.PlayerInfoEvent で通知されることはありません。|

制限

  • resolvePlayerInfo() は、ローカルイベント (ローカルエンティティの操作などを契機とするイベント) の処理内でのみ利用してください。 これに反する場合、早回しで最新フレームに追いつくような局面でもダイアログが表示されてしまうなど、いくつかの動作に支障があります。
  • このライブラリはダイアログを表示することがあります。UI 表示の都合上、ゲーム画面の高さは幅の 0.4 倍以上でなければなりません。 (ニコ生ゲームの推奨解像度は 16:9 (高さが幅の 0.56 倍) で、これを満たします)
  • resolvePlayerInfo() の呼び出し後、 limitSeconds 秒経過するまで (または呼び出した全員分の game.onPlayerInfo が通知されるまで) はシーン切り替えを行わないでください。

開発

ビルド方法

TypeScript で書かれています。ビルドには Node.js が必要です。以下のコマンドでビルドしてください。

npm install
npm run build

ライセンス

本リポジトリは MIT License の元で公開されています。 詳しくは LICENSE をご覧ください。

ただし、画像ファイルおよび音声ファイルは CC BY 2.1 JP の元で公開されています。