@phantomclient/plugin 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import{c as w}from"./chunks/api-0JFqyaCU.js";import{C as g,D as f,g as k,F as v,h as b,k as S,N as A,l as P,m as T,P as W,R as J,n as O,o as R,S as C,p as E,q as _,i as N,r as D,f as I,e as M,t as H,u as $,v as j,s as L}from"./chunks/sdk-permissions-CDp6went.js";function d(a){return a}const s=["player","membership","reports","avatar","looks","room","world","session","assets","dens","denShop","chat","buddies","ecards","playerWall","trades","referrals","inventory","shops","pets","currency","dailyGift","achievements","adventures","minigames","journeyBook","gui","editor","popups","screens","ui","sound","localization","feedback","newspaper","masterpieces","content","customRooms","community","realtime","input","view","artStudio","hud","map","settings","avatars","scene"];new RegExp(`^(sdk:(${s.join("|")}):(read|act)|packets:watch|packets:send|packets:modify|flash|clipboard:write|notifications|network:.+)$`);function c(a){const e=[];for(const t of s){const o=a.sdk[t];o&&(e.push(`sdk:${t}:read`),o==="act"&&e.push(`sdk:${t}:act`))}a.packets.watch.length&&e.push("packets:watch"),a.packets.send.length&&e.push("packets:send"),a.packets.modify.length&&e.push("packets:modify"),a.flash&&e.push("flash");for(const t of a.network)e.push(`network:${t}`);return a.clipboard&&e.push("clipboard:write"),a.notifications&&e.push("notifications"),e}function i(a){const e=/^sdk:(\w+):(read|act)$/.exec(a);return!e||!s.includes(e[1])?null:{area:e[1],level:e[2]}}function u(a){if(a==="flash"||a==="packets:modify")return"full";const e=i(a);return(e==null?void 0:e.area)==="realtime"?"high":e?e.level==="act"?"high":"medium":a==="packets:send"||a.startsWith("network:")?"high":a==="packets:watch"?"medium":"low"}const h={player:{read:["See your account","Your username, avatar name, membership and level, your privacy settings, the clothing and den items the game holds for you, and what it holds of players you have met."],act:["Change your account","Your account’s own settings."]},reports:{read:["See your reports","The reports you send, and whether Animal Jam took them. Nobody else’s reports are seen."],act:["Report players","Send a real report about a named player to Animal Jam’s moderators, as if from you."]},avatar:{read:["See your avatar","Where it stands, what it looks like, and your other animals."],act:["Move and change your avatar","Walk, teleport, dance and act, paint it, switch animals, and change which colours the avatar editor offers you. A colour you then pick is sent to Animal Jam, so everyone sees it. It can also buy new animals, avatar slots and photo booth pictures with your gems, choose which animals stay usable, and delete one for good."]},looks:{read:["See looks","What your animal wears and its colours, and what any player you name is wearing now."],act:["Change what your animal wears","Put on clothing you own and repaint your animal, saved to your account, so everyone sees it. It never buys anything."]},room:{read:["See the room you are in","The room, who is in it, and who comes and goes."],act:["Change rooms","Take you to another room."]},world:{read:["See the servers and parties","Which servers there are, how full they are, and parties."],act:["Change servers and join parties","Move you to another server, room or party, and host a party of your own."]},session:{read:["See your connection","Whether the game is connected to Animal Jam, which server, the game’s own named lists, and your email being confirmed."],act:["Disconnect you, keep you active, and send email as you","Drop the game’s own connection, which signs you out; there is no soft version of this. Keep the game from signing you out for being idle, as clicking now and then would. Ask Animal Jam to send an activation email to an address."]},assets:{read:["See how assets load","The client’s asset version, loading a picture or data pack by id, and which files it loads."],act:["Load extra assets","Fetch a picture or data pack from Animal Jam that was not already loading."]},dens:{read:["See dens","Dens you visit, their rooms, who is in them and how full they are."],act:["Go to dens and change your den","Take you to dens, and change your den’s privacy."]},denShop:{read:["See den shops","What is listed for sale in a den shop, yours or someone else’s, and what of yours sells."],act:["Change your den shop and buy from others’","List, reprice and take down items in your own den shop, and buy from someone else’s, which spends your gems or diamonds at once."]},chat:{read:["Read the chat","What is said in the room, and notices from moderators."],act:["Chat as you","Say things and send emotes, with your name on them."]},buddies:{read:["See your buddies","Your buddy list, who is online, requests, and where buddies were when the game last asked."],act:["Change your buddies","Add, remove and block buddies, answer requests and go to them."]},ecards:{read:["Read your jam-a-grams","Your inbox and the gifts in it."],act:["Send and manage jam-a-grams","Send jam-a-grams, which can carry your items, accept and throw away gifts, and change who may send them."]},playerWall:{read:["Read player walls","Yours and others’, and who may post on yours."],act:["Change your wall and like others’","Remove and block posts, clear it, change who may post, and like walls with your name on it."]},trades:{read:["See trades offered to you","What is offered, and by whom."],act:["Trade as you","Offer, accept and confirm trades of your items and pets. A trade cannot be undone."]},inventory:{read:["See your items","What you own and what you wear."],act:["Change your items","Wear and take off items, buy and recycle them. Buying spends gems; recycling cannot be undone."]},shops:{read:["See the shops","What they sell, for how much, and what each item looks like."],act:["Buy and sell in shops","Open shops, buy with your gems and diamonds, and sell back."]},pets:{read:["See your pets","Your pets and which one is out, the kinds you have unlocked, and Adopt a Pet checklists."],act:["Change your pets","Bring pets out and put them away, adopt, buy, name and dress them, and free them. Adopting, buying and dressing spend gems or diamonds; freeing cannot be undone."]},currency:{read:["See your gems and diamonds","Your balances, as they change."],act:["Spend your gems","Donate gems and redeem codes."]},dailyGift:{read:["See your daily gift","What it offers today."],act:["Open your daily gift","Open it, keep or refuse what it offers, and spin the gem wheel, as you would."]},achievements:{read:["See your achievements","Your achievements and stats."],act:["Change your stats","Set the stats the game keeps for you, which is how achievements are earned. Animal Jam sees each one."]},membership:{read:["See your membership","Whether Animal Jam counts you as a member, and when your membership runs out."],act:["Show a membership in your game","Make your own game show you as a member. Only your game is told; Animal Jam and other players are not."]},adventures:{read:["See adventures","Which there are, and everything that happens in one you play."],act:["Play adventures as you","Join, host and leave them, fight, collect treasure and take rewards."]},minigames:{read:["See minigames","Which there are, and what happens in one you play, including the gems and scores it reports."],act:["Play minigames as you","Start and leave them, and play for you."]},gui:{read:["See the game’s screen","What is on screen: windows, buttons and their words."],act:["Use the game’s screen","Press buttons, type in fields and close windows, as you would, and keep your gems showing on the HUD."]},editor:{read:["See the avatar editor, den editor and pet creator","Whether one is open, its tabs, and its colour wheels."],act:["Use the avatar editor, den editor and pet creator","Switch their tabs, show and hide the den editor’s customise bar, and pick from the pet creator’s colour wheels. Nothing here is sent to Animal Jam until the screen’s own button sends it."]},popups:{read:["See the game’s own dialogs","Which are open, what they say and which buttons they offer, and what the game’s tooltip is saying about whatever is under your mouse."],act:["Press the game’s own dialogs","Press OK, Yes, No, Cancel and the rest, as you would, close a barrier or image popup, leave out the popups the game shows at login, and put words in the game’s own tooltip."]},screens:{read:["See the game’s own windows","Which of them are open, the loading screen and the waiting spinner, and whether the tutorial is running."],act:["Open and close the game’s own windows","Open and close them as clicking them does, close the lot at once, cover the game with its loading screen, and start the tutorial, which moves you to its own room."]},ui:{read:["See what Phantom can draw in the game","Which of the game’s own art, screens and containers it can draw in, and when one of its screens opens."],act:["Draw in the game","Draw windows, buttons and panels over the game, in Animal Jam’s own look or Phantom’s, put them inside the game’s own screens, hide or replace pieces of them, open the game’s own popups, and work the game’s own screens and the lists and grids they are built from. Whatever the game would tell Animal Jam, it still tells it; everything the plugin drew goes when it stops."]},sound:{read:["See the game’s sound settings","What is playing, and how loudly."],act:["Change the game’s sound","Mute, set volumes and play or stop sounds and music."]},localization:{read:["See the game’s own language","Which language it and your account use, its locales and your country, and turn its coded ids and names into the words you would read."],act:["Change the game’s language","Switch which language it shows, as Settings does."]},feedback:{read:["See the report window","Whether it is open, and what it says."],act:["Close the report window","Close it for you."]},newspaper:{read:["See the Jamaa Journal","Its back issues, and when you last read each one."],act:["Open the Jamaa Journal","Open it for you, and mark a page as read."]},masterpieces:{read:["See masterpieces","The art placed in a den, whether Animal Jam has approved each drawing, and who drew it."],act:["Like masterpieces as you","Like the art placed in a den, with your name on it. A like cannot be taken back."]},community:{read:["See who you have hidden","The screen names of the people you hid from shared rooms and plugins’ real-time channels."],act:["Hide and report people you meet through Phantom","Hide someone from you in shared rooms and real-time channels, or send Phantom’s moderators what they said in a shared room."]},content:{read:["See what the game loads","The game’s pictures and sounds as it asks for them."],act:["Change what the game looks and sounds like","Serve its own pictures, sounds and other files in place of Animal Jam’s, while the game is open. Nothing is changed on Animal Jam or kept on your computer."]},customRooms:{read:["See its own rooms","Where you walk, what you say and what you touch while you are in a room it built, and which shared rooms from the store have people in them, by name and head count."],act:["Take you into rooms it builds","Build rooms of its own and walk you into them, in place of the room you are in: on your own, or, for a plugin from the store, with other Phantom users who go into the same room. Animal Jam is never told; leaving puts you back where you were."]},realtime:{read:["See whether it is connected","Whether its real-time connection through Phantom is up. Nothing is sent or heard with this alone."],act:["Talk to other people running it, live","Join channels with other Phantom users who run this plugin, under your screen name: in your room, everyone online, or a group it names. It sends and hears whatever it likes through Phantom’s server, can ask one of them a question its copy there answers, and can set a note about you that everyone in the channel is shown, and a value the whole channel shares. Phantom names one person in each channel as its host, which a game uses as its referee, and a plugin holding it can pass it to somebody else. Phantom’s server passes it all on without keeping it once the channel empties. Phantom’s moderators can watch it, and you can report it."]},journeyBook:{read:["See your Journey Book","How many pages you have not opened and gifts you have not claimed."],act:["Open your Journey Book","Open the book for you, at a land’s page or a fact’s."]},artStudio:{read:["See the art studio","Whether a studio is open, the canvas, the tool, brush and colour it is set to, and every stroke, clear and submission made in it."],act:["Paint in the art studio","Pick its tools and colours, draw, fill, clear and undo on its canvas, paint a picture onto it, and press its own Submit, which sends the picture to Animal Jam under your name and clears the canvas. A masterpiece still costs diamonds, which you spend yourself on the studio’s own popup."]},scene:{read:["See the room as it is drawn","The layers the room is stacked out of, every piece of its art, how far the view has scrolled and how far it may, the walk grid under it, the routes the room draws, and the minimap."],act:["Change how the room is drawn","Hide and fade the room’s layers and art, scroll the view, and redraw or rebuild the minimap. This screen only: nothing is sent to Animal Jam, nobody else sees it, and the next room is drawn as ever."]},avatars:{read:["See everyone’s animal on screen","Where each animal in the room is drawn, which way it faces, whether it is walking, the animations and idles played over it, the emote above it, and what its name bar says."],act:["Change how animals are drawn","Draw an animal in front of the others, hide or redraw a name bar, and set the health bar on one. This screen only: nothing is sent to Animal Jam and nobody else sees it, though it does change what you are shown of another player."]},referrals:{read:["See your referrals","Your refer a friend code and link, who joined with it, and whether you have named who referred you."],act:["Name who referred you","Tell Animal Jam which player referred you. It is recorded against your account for good."]},input:{read:["Hear its keyboard shortcuts","The shortcuts it has set, as you press them in the game. Never while you are typing in chat or any other box."],act:["Set keyboard shortcuts in the game","Listen for the keys it names, and keep them from the game if it asks to. Never while you are typing."]},view:{read:["See how the game is drawn","How far the room is zoomed, and whether the game’s interface, your avatar or your name tag is hidden."],act:["Change how the game looks on your screen","Zoom the room in and out, and hide the game’s interface, your avatar or your name tag. Only your screen changes: nothing is sent to Animal Jam, and it all comes back when the plugin stops."]},hud:{read:["See the HUD","What the bar along the bottom of the game says: the land, your animal, your unread mail and an adventure’s objective, and which buttons are there."],act:["Change the HUD","Write over the words on it and hide parts of it, on your screen only. The game puts its own back the next time it has something to say there."]},map:{read:["See the map and the world picker","Which map is open, the zones it lists with the buddies shown in each, and the worlds the picker lists with how full each is."],act:["Open the map and travel with it","Open and close the map and the world picker, and travel to a zone or to your own den as clicking the map does. Travelling moves you, and Animal Jam is told which room you asked for."]},settings:{read:["See the game’s settings","The toggles on the Settings screen, which pointer the game draws, how well the game is being drawn, and the handful of choices the game keeps on this computer."],act:["Change the game’s settings","Turn the Settings screen’s own toggles on and off, which Animal Jam keeps against your account, switch the pointer, change how well the game is drawn, and change what the game keeps on this computer."]}};function l(a,e){const t=n=>n.includes("*")?"every message":`only ${n.join(", ")}`,o=i(a);if(o){const[n,r]=h[o.area][o.level];return{title:n,detail:o.level==="read"?`${r} Only in the games you choose.`:r}}switch(a){case"packets:watch":return{title:"Read the game’s traffic",detail:`The messages between the game and Animal Jam: ${e?t(e.packets.watch):"the commands it lists"}. Never your sign in.`};case"packets:send":return{title:"Send messages to the game or Animal Jam",detail:`As though the game or the server sent them: ${e?t(e.packets.send):"the commands it lists"}.`};case"packets:modify":return{title:"Change or block the game’s traffic",detail:`Before it arrives: ${e?t(e.packets.modify):"the commands it lists"}.`};case"flash":return{title:"Control the game client",detail:"Every part of the game itself, as the game can. The most a plugin can ask for; only allow a plugin you trust."};case"clipboard:write":return{title:"Copy text to your clipboard",detail:"It can never read your clipboard."};case"notifications":return{title:"Show notifications",detail:"On your desktop, with the plugin’s name."};default:{const n=a.slice(8);return{title:`Send and receive data from ${n}`,detail:`Only ${n}, over HTTPS. What it sends there is between you and the plugin’s author.`}}}}export{g as CustomRoomObjectError,f as DEV_MANIFEST_PATH,k as DEV_PORT,v as FRAME_AREAS,b as FRAME_MEMBERS,S as FRAME_PAGE,A as NOT_FOR_PLUGINS,P as PLUGIN_FLASH_IDS_PER_FRAME,T as PLUGIN_FLASH_IDS_START,W as PROTOCOL,w as PluginError,J as RUNTIME_SCRIPT,O as RUNTIME_STYLES,R as RealtimeAskError,s as SDK_AREAS,C as SDK_PERMISSIONS,E as STOPPING_PATHS,_ as asCustomRoomObjectError,d as definePlugin,l as describeScope,N as isEventPath,D as isFrameMessage,I as isHostMessage,M as isNamedEvent,H as isSdkPath,$ as pluginUrl,j as scopeOfPath,u as scopeRisk,c as scopesOf,L as stopKindOf};
1
+ import{c as w}from"./chunks/api-0JFqyaCU.js";import{C as g,D as f,g as k,F as v,h as b,k as S,N as A,l as P,m as T,P as W,R as J,n as O,o as R,S as C,p as E,q as _,i as N,r as D,f as I,e as M,t as H,u as $,v as j,s as L}from"./chunks/sdk-permissions-DXVe00ho.js";function d(a){return a}const s=["player","membership","reports","avatar","looks","room","world","session","assets","dens","denShop","chat","buddies","ecards","playerWall","trades","referrals","inventory","shops","pets","currency","dailyGift","achievements","adventures","minigames","journeyBook","gui","editor","popups","screens","ui","sound","localization","feedback","newspaper","masterpieces","content","customRooms","community","realtime","input","view","artStudio","hud","map","settings","avatars","scene"];new RegExp(`^(sdk:(${s.join("|")}):(read|act)|packets:watch|packets:send|packets:modify|flash|clipboard:write|notifications|network:.+)$`);function c(a){const e=[];for(const t of s){const o=a.sdk[t];o&&(e.push(`sdk:${t}:read`),o==="act"&&e.push(`sdk:${t}:act`))}a.packets.watch.length&&e.push("packets:watch"),a.packets.send.length&&e.push("packets:send"),a.packets.modify.length&&e.push("packets:modify"),a.flash&&e.push("flash");for(const t of a.network)e.push(`network:${t}`);return a.clipboard&&e.push("clipboard:write"),a.notifications&&e.push("notifications"),e}function i(a){const e=/^sdk:(\w+):(read|act)$/.exec(a);return!e||!s.includes(e[1])?null:{area:e[1],level:e[2]}}function u(a){if(a==="flash"||a==="packets:modify")return"full";const e=i(a);return(e==null?void 0:e.area)==="realtime"?"high":e?e.level==="act"?"high":"medium":a==="packets:send"||a.startsWith("network:")?"high":a==="packets:watch"?"medium":"low"}const h={player:{read:["See your account","Your username, avatar name, membership and level, your privacy settings, the clothing and den items the game holds for you, and what it holds of players you have met."],act:["Change your account","Your account’s own settings."]},reports:{read:["See your reports","The reports you send, and whether Animal Jam took them. Nobody else’s reports are seen."],act:["Report players","Send a real report about a named player to Animal Jam’s moderators, as if from you."]},avatar:{read:["See your avatar","Where it stands, what it looks like, and your other animals."],act:["Move and change your avatar","Walk, teleport, dance and act, paint it, switch animals, and change which colours the avatar editor offers you. A colour you then pick is sent to Animal Jam, so everyone sees it. It can also buy new animals, avatar slots and photo booth pictures with your gems, choose which animals stay usable, and delete one for good."]},looks:{read:["See looks","What your animal wears and its colours, and what any player you name is wearing now."],act:["Change what your animal wears","Put on clothing you own and repaint your animal, saved to your account, so everyone sees it. It never buys anything."]},room:{read:["See the room you are in","The room, who is in it, and who comes and goes."],act:["Change rooms","Take you to another room."]},world:{read:["See the servers and parties","Which servers there are, how full they are, and parties."],act:["Change servers and join parties","Move you to another server, room or party, and host a party of your own."]},session:{read:["See your connection","Whether the game is connected to Animal Jam, which server, the game’s own named lists, and your email being confirmed."],act:["Disconnect you, keep you active, and send email as you","Drop the game’s own connection, which signs you out; there is no soft version of this. Keep the game from signing you out for being idle, as clicking now and then would. Ask Animal Jam to send an activation email to an address."]},assets:{read:["See how assets load","The client’s asset version, loading a picture or data pack by id, and which files it loads."],act:["Load extra assets","Fetch a picture or data pack from Animal Jam that was not already loading."]},dens:{read:["See dens","Dens you visit, their rooms, who is in them and how full they are."],act:["Go to dens and change your den","Take you to dens, and change your den’s privacy."]},denShop:{read:["See den shops","What is listed for sale in a den shop, yours or someone else’s, and what of yours sells."],act:["Change your den shop and buy from others’","List, reprice and take down items in your own den shop, and buy from someone else’s, which spends your gems or diamonds at once."]},chat:{read:["Read the chat","What is said in the room, and notices from moderators."],act:["Chat as you","Say things and send emotes, with your name on them."]},buddies:{read:["See your buddies","Your buddy list, who is online, requests, and where buddies were when the game last asked."],act:["Change your buddies","Add, remove and block buddies, answer requests and go to them."]},ecards:{read:["Read your jam-a-grams","Your inbox and the gifts in it."],act:["Send and manage jam-a-grams","Send jam-a-grams, which can carry your items, accept and throw away gifts, and change who may send them."]},playerWall:{read:["Read player walls","Yours and others’, and who may post on yours."],act:["Change your wall and like others’","Remove and block posts, clear it, change who may post, and like walls with your name on it."]},trades:{read:["See trades offered to you","What is offered, and by whom."],act:["Trade as you","Offer, accept and confirm trades of your items and pets. A trade cannot be undone."]},inventory:{read:["See your items","What you own and what you wear."],act:["Change your items","Wear and take off items, buy and recycle them. Buying spends gems; recycling cannot be undone."]},shops:{read:["See the shops","What they sell, for how much, and what each item looks like."],act:["Buy and sell in shops","Open shops, buy with your gems and diamonds, and sell back."]},pets:{read:["See your pets","Your pets and which one is out, the kinds you have unlocked, and Adopt a Pet checklists."],act:["Change your pets","Bring pets out and put them away, adopt, buy, name and dress them, and free them. Adopting, buying and dressing spend gems or diamonds; freeing cannot be undone."]},currency:{read:["See your gems and diamonds","Your balances, as they change."],act:["Spend your gems","Donate gems and redeem codes."]},dailyGift:{read:["See your daily gift","What it offers today."],act:["Open your daily gift","Open it, keep or refuse what it offers, and spin the gem wheel, as you would."]},achievements:{read:["See your achievements","Your achievements and stats."],act:["Change your stats","Set the stats the game keeps for you, which is how achievements are earned. Animal Jam sees each one."]},membership:{read:["See your membership","Whether Animal Jam counts you as a member, and when your membership runs out."],act:["Show a membership in your game","Make your own game show you as a member. Only your game is told; Animal Jam and other players are not."]},adventures:{read:["See adventures","Which there are, and everything that happens in one you play."],act:["Play adventures as you","Join, host and leave them, fight, collect treasure and take rewards."]},minigames:{read:["See minigames","Which there are, and what happens in one you play, including the gems and scores it reports."],act:["Play minigames as you","Start and leave them, and play for you."]},gui:{read:["See the game’s screen","What is on screen: windows, buttons and their words."],act:["Use the game’s screen","Press buttons, type in fields and close windows, as you would, and keep your gems showing on the HUD."]},editor:{read:["See the avatar editor, den editor and pet creator","Whether one is open, its tabs, and its colour wheels."],act:["Use the avatar editor, den editor and pet creator","Switch their tabs, show and hide the den editor’s customise bar, and pick from the pet creator’s colour wheels. Nothing here is sent to Animal Jam until the screen’s own button sends it."]},popups:{read:["See the game’s own dialogs","Which are open, what they say and which buttons they offer, and what the game’s tooltip is saying about whatever is under your mouse."],act:["Press the game’s own dialogs","Press OK, Yes, No, Cancel and the rest, as you would, close a barrier or image popup, leave out the popups the game shows at login, and put words in the game’s own tooltip."]},screens:{read:["See the game’s own windows","Which of them are open, the loading screen and the waiting spinner, and whether the tutorial is running."],act:["Open and close the game’s own windows","Open and close them as clicking them does, close the lot at once, cover the game with its loading screen, and start the tutorial, which moves you to its own room."]},ui:{read:["See what Phantom can draw in the game","Which of the game’s own art, screens and containers it can draw in, and when one of its screens opens."],act:["Draw in the game","Draw windows, buttons and panels over the game, in Animal Jam’s own look or Phantom’s, put them inside the game’s own screens, hide or replace pieces of them, open the game’s own popups, and work the game’s own screens and the lists and grids they are built from. Whatever the game would tell Animal Jam, it still tells it; everything the plugin drew goes when it stops."]},sound:{read:["See the game’s sound settings","What is playing, and how loudly."],act:["Change the game’s sound","Mute, set volumes and play or stop sounds and music."]},localization:{read:["See the game’s own language","Which language it and your account use, its locales and your country, and turn its coded ids and names into the words you would read."],act:["Change the game’s language","Switch which language it shows, as Settings does."]},feedback:{read:["See the report window","Whether it is open, and what it says."],act:["Close the report window","Close it for you."]},newspaper:{read:["See the Jamaa Journal","Its back issues, and when you last read each one."],act:["Open the Jamaa Journal","Open it for you, and mark a page as read."]},masterpieces:{read:["See masterpieces","The art placed in a den, whether Animal Jam has approved each drawing, and who drew it."],act:["Like masterpieces as you","Like the art placed in a den, with your name on it. A like cannot be taken back."]},community:{read:["See who you have hidden","The screen names of the people you hid from shared rooms and plugins’ real-time channels."],act:["Hide and report people you meet through Phantom","Hide someone from you in shared rooms and real-time channels, or send Phantom’s moderators what they said in a shared room."]},content:{read:["See what the game loads","The game’s pictures and sounds as it asks for them."],act:["Change what the game looks and sounds like","Serve its own pictures, sounds and other files in place of Animal Jam’s, while the game is open. Nothing is changed on Animal Jam or kept on your computer."]},customRooms:{read:["See its own rooms","Where you walk, what you say and what you touch while you are in a room it built, and which shared rooms from the store have people in them, by name and head count."],act:["Take you into rooms it builds","Build rooms of its own and walk you into them, in place of the room you are in: on your own, or, for a plugin from the store, with other Phantom users who go into the same room. Animal Jam is never told; leaving puts you back where you were."]},realtime:{read:["See whether it is connected","Whether its real-time connection through Phantom is up. Nothing is sent or heard with this alone."],act:["Talk to other people running it, live","Join channels with other Phantom users who run this plugin, under your screen name: in your room, everyone online, or a group it names. It sends and hears whatever it likes through Phantom’s server, can ask one of them a question its copy there answers, and can set a note about you that everyone in the channel is shown, and a value the whole channel shares. Phantom names one person in each channel as its host, which a game uses as its referee, and a plugin holding it can pass it to somebody else. Phantom’s server passes it all on without keeping it once the channel empties. Phantom’s moderators can watch it, and you can report it."]},journeyBook:{read:["See your Journey Book","How many pages you have not opened and gifts you have not claimed."],act:["Open your Journey Book","Open the book for you, at a land’s page or a fact’s."]},artStudio:{read:["See the art studio","Whether a studio is open, the canvas, the tool, brush and colour it is set to, and every stroke, clear and submission made in it."],act:["Paint in the art studio","Pick its tools and colours, draw, fill, clear and undo on its canvas, paint a picture onto it, and press its own Submit, which sends the picture to Animal Jam under your name and clears the canvas. A masterpiece still costs diamonds, which you spend yourself on the studio’s own popup."]},scene:{read:["See the room as it is drawn","The layers the room is stacked out of, every piece of its art, how far the view has scrolled and how far it may, the walk grid under it, the routes the room draws, and the minimap."],act:["Change how the room is drawn","Hide and fade the room’s layers and art, scroll the view, and redraw or rebuild the minimap. This screen only: nothing is sent to Animal Jam, nobody else sees it, and the next room is drawn as ever."]},avatars:{read:["See everyone’s animal on screen","Where each animal in the room is drawn, which way it faces, whether it is walking, the animations and idles played over it, the emote above it, and what its name bar says."],act:["Change how animals are drawn","Draw an animal in front of the others, hide or redraw a name bar, and set the health bar on one. This screen only: nothing is sent to Animal Jam and nobody else sees it, though it does change what you are shown of another player."]},referrals:{read:["See your referrals","Your refer a friend code and link, who joined with it, and whether you have named who referred you."],act:["Name who referred you","Tell Animal Jam which player referred you. It is recorded against your account for good."]},input:{read:["Hear its keyboard shortcuts","The shortcuts it has set, as you press them in the game. Never while you are typing in chat or any other box."],act:["Set keyboard shortcuts in the game","Listen for the keys it names, and keep them from the game if it asks to. Never while you are typing."]},view:{read:["See how the game is drawn","How far the room is zoomed, and whether the game’s interface, your avatar or your name tag is hidden."],act:["Change how the game looks on your screen","Zoom the room in and out, and hide the game’s interface, your avatar or your name tag. Only your screen changes: nothing is sent to Animal Jam, and it all comes back when the plugin stops."]},hud:{read:["See the HUD","What the bar along the bottom of the game says: the land, your animal, your unread mail and an adventure’s objective, and which buttons are there."],act:["Change the HUD","Write over the words on it and hide parts of it, on your screen only. The game puts its own back the next time it has something to say there."]},map:{read:["See the map and the world picker","Which map is open, the zones it lists with the buddies shown in each, and the worlds the picker lists with how full each is."],act:["Open the map and travel with it","Open and close the map and the world picker, and travel to a zone or to your own den as clicking the map does. Travelling moves you, and Animal Jam is told which room you asked for."]},settings:{read:["See the game’s settings","The toggles on the Settings screen, which pointer the game draws, how well the game is being drawn, and the handful of choices the game keeps on this computer."],act:["Change the game’s settings","Turn the Settings screen’s own toggles on and off, which Animal Jam keeps against your account, switch the pointer, change how well the game is drawn, and change what the game keeps on this computer."]}};function l(a,e){const t=n=>n.includes("*")?"every message":`only ${n.join(", ")}`,o=i(a);if(o){const[n,r]=h[o.area][o.level];return{title:n,detail:o.level==="read"?`${r} Only in the games you choose.`:r}}switch(a){case"packets:watch":return{title:"Read the game’s traffic",detail:`The messages between the game and Animal Jam: ${e?t(e.packets.watch):"the commands it lists"}. Never your sign in.`};case"packets:send":return{title:"Send messages to the game or Animal Jam",detail:`As though the game or the server sent them: ${e?t(e.packets.send):"the commands it lists"}.`};case"packets:modify":return{title:"Change or block the game’s traffic",detail:`Before it arrives: ${e?t(e.packets.modify):"the commands it lists"}.`};case"flash":return{title:"Control the game client",detail:"Every part of the game itself, as the game can. The most a plugin can ask for; only allow a plugin you trust."};case"clipboard:write":return{title:"Copy text to your clipboard",detail:"It can never read your clipboard."};case"notifications":return{title:"Show notifications",detail:"On your desktop, with the plugin’s name."};default:{const n=a.slice(8);return{title:`Send and receive data from ${n}`,detail:`Only ${n}, over HTTPS. What it sends there is between you and the plugin’s author.`}}}}export{g as CustomRoomObjectError,f as DEV_MANIFEST_PATH,k as DEV_PORT,v as FRAME_AREAS,b as FRAME_MEMBERS,S as FRAME_PAGE,A as NOT_FOR_PLUGINS,P as PLUGIN_FLASH_IDS_PER_FRAME,T as PLUGIN_FLASH_IDS_START,W as PROTOCOL,w as PluginError,J as RUNTIME_SCRIPT,O as RUNTIME_STYLES,R as RealtimeAskError,s as SDK_AREAS,C as SDK_PERMISSIONS,E as STOPPING_PATHS,_ as asCustomRoomObjectError,d as definePlugin,l as describeScope,N as isEventPath,D as isFrameMessage,I as isHostMessage,M as isNamedEvent,H as isSdkPath,$ as pluginUrl,j as scopeOfPath,u as scopeRisk,c as scopesOf,L as stopKindOf};
@@ -2889,6 +2889,10 @@ declare class ContentApi {
2889
2889
  allowCode?: boolean;
2890
2890
  timeoutMs?: number;
2891
2891
  }): Promise<LoadedContent>;
2892
+ loadAddress(url: string, options?: {
2893
+ allowCode?: boolean;
2894
+ timeoutMs?: number;
2895
+ }): Promise<LoadedContent>;
2892
2896
  private pointClientAt;
2893
2897
  private unhook;
2894
2898
  private addressOf;
@@ -5031,6 +5035,9 @@ type BalloonOptions = {
5031
5035
  colour?: number;
5032
5036
  seconds?: number;
5033
5037
  most?: number;
5038
+ image?: ContentSource;
5039
+ width?: number;
5040
+ height?: number;
5034
5041
  };
5035
5042
  declare class ChatApi {
5036
5043
  readonly [STATE_FIELDS]: readonly [
@@ -5040,6 +5047,7 @@ declare class ChatApi {
5040
5047
  ];
5041
5048
  private readonly flash;
5042
5049
  private readonly client;
5050
+ private readonly game;
5043
5051
  private readonly balloons;
5044
5052
  private readonly server;
5045
5053
  private readonly history;
@@ -15615,6 +15623,7 @@ declare const NOT_FOR_PLUGINS: readonly [
15615
15623
  "adventures.record",
15616
15624
  "content.replaceOnScreen",
15617
15625
  "content.load",
15626
+ "content.loadAddress",
15618
15627
  "realtime.join",
15619
15628
  "realtime.stayIn",
15620
15629
  "customRooms.prop",
@@ -15628,6 +15637,7 @@ declare const FRAME_MEMBERS: {
15628
15637
  readonly "room.surfaces": "flash";
15629
15638
  readonly "adventures.record": "sdk:adventures:read";
15630
15639
  readonly "content.load": "flash";
15640
+ readonly "content.loadAddress": "flash";
15631
15641
  readonly "content.replaceOnScreen": "flash";
15632
15642
  readonly "recipes.chatShortcuts": "flash";
15633
15643
  readonly "recipes.customChatBox": "flash";
@@ -2891,6 +2891,10 @@ declare class ContentApi {
2891
2891
  allowCode?: boolean;
2892
2892
  timeoutMs?: number;
2893
2893
  }): Promise<LoadedContent>;
2894
+ loadAddress(url: string, options?: {
2895
+ allowCode?: boolean;
2896
+ timeoutMs?: number;
2897
+ }): Promise<LoadedContent>;
2894
2898
  private pointClientAt;
2895
2899
  private unhook;
2896
2900
  private addressOf;
@@ -5018,6 +5022,9 @@ type BalloonOptions = {
5018
5022
  colour?: number;
5019
5023
  seconds?: number;
5020
5024
  most?: number;
5025
+ image?: ContentSource;
5026
+ width?: number;
5027
+ height?: number;
5021
5028
  };
5022
5029
  declare class ChatApi {
5023
5030
  readonly [STATE_FIELDS]: readonly [
@@ -5027,6 +5034,7 @@ declare class ChatApi {
5027
5034
  ];
5028
5035
  private readonly flash;
5029
5036
  private readonly client;
5037
+ private readonly game;
5030
5038
  private readonly balloons;
5031
5039
  private readonly server;
5032
5040
  private readonly history;
@@ -15602,6 +15610,7 @@ declare const NOT_FOR_PLUGINS: readonly [
15602
15610
  "adventures.record",
15603
15611
  "content.replaceOnScreen",
15604
15612
  "content.load",
15613
+ "content.loadAddress",
15605
15614
  "realtime.join",
15606
15615
  "realtime.stayIn",
15607
15616
  "customRooms.prop",
package/package.json CHANGED
@@ -18,7 +18,7 @@
18
18
  "peerDependencies": {
19
19
  "vue": "^3.5.0"
20
20
  },
21
- "version": "0.1.3",
21
+ "version": "0.1.4",
22
22
  "license": "UNLICENSED",
23
23
  "homepage": "https://docs.phantm.site",
24
24
  "publishConfig": {