If a request is made for an asset which is not in the cache yet,
but has already been requested by something else, queue up the
callbacks on that requester instead of swamping the asset server
with multiple requests for the same asset.
replaced by EventManager events.
also, i've added instructions to README.txt about running
runprebuild.sh and on how to report bugs.
plus some minor fixes (dropping m_log statement left over
from debugging llOwnerSay, nicer catch of exception in
IRCBridgeModule
a clean interface for Sim broadcasts. Added SimBroadcast support to
ChatModule.
Removing all code from IRCBridgeModule dealing with agent/client directly.
Cleaning up ChatModule.
Polishing IRC messages, adding support for "/me" (both directions).
Copying, reseting, dragging scripts cause unnecessary recompilation,
slowing down the simulator and filling up the ScriptEngines directory
with compiled .dll and misc. files.
This patch keeps track of compiled assets since the last simulator restarts,
and only recompiles new assets. (editing a script generates a new asset,
so no problems there).
There's some oddness with the parcel counts, but if you can get past the oddness, you can return objects under an owner that you have permission to return.
* If user is in the same sim with you, they'll get an inventory update, if not.... oh well, they'll have to clear their cache potentially before they'll see it.
finding out which region a new avatar was logging in to; the same problem
occurred when the client/avatar logged out. the reason was mani-fold:
- Scene.AddNewClient(...) would call SubscribeToClientEvents(client)
which would subscribe to all client events and then call
TriggerOnNewClient(...) BEFORE the ScenePresence object had even been
created and added. i've moved the TriggerOnNewClient() call to the
end of Scene.AddNewClient()
- Scene.AddNewClient(...) is called with child == true; a later call
to ScenePresence.MakeRootAgent() will turn child to false. When
OnNewClient is triggered, child is still true, causing IRCBridgeModule's
FindClientRegion to ignore the ScenePresence of the new avatar.
i've changed IRCBridgeModule to still use OnNewClient and also OnLogout
and OnConnectionClosed but only to signal that the avatar has logged on
(logged off respectively). to track whether an avatar has actually entered
a region i've added EventManager.OnMakeRootAgent (complementing
OnMakeChildAgent).
also, i've cleaned up the internal IRCModule code a bit. currently it
still uses IClientAPI.SendChatMessage() which replicates the code in
ChatModule, that needs to be changed to use TriggerOnChatFromWorld().
ChatModule is now only doing in-world chat. IRCBridgeModule is only doing, well,
bridging chat to/from IRC. Both modules are now using a new OnChatFromWorld event
handler (which Scene.PacketHandler is feeding for chat from in-world instead of
going via the Interface method). This refactoring will allow us to easily add
other bridge modules (e.g., an XMPP bridge module).
there is still a bug in IRCBridgeModule (inherited from the old ChatModule)
where FindClientRegion does not really find the client region...
Nothing huge, but the new button code for producing
a new script does well, but the script will not allow
for name change once created. It reverts back to new script.