Commit Graph

200 Commits

Author SHA1 Message Date
Michael Bayne 05cef39f63 Revamped chat handling a bit:
- the ChatProvider is now a proper singleton rather than providing static
methods for everything (it is accessed through CrowdServer.chatprov)
- it can now be extended to create a custom UserMessage for tells (which can
contain avatar information on systems that want to show an avatar on the
receipt of a tell)
- the ChatProvider API was tidied up a bit as some methods had been addded over
time that were not sufficiently general purpose so their callers will be
changed to use the general purpose APIs.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4251 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-07-06 00:22:12 +00:00
Michael Bayne bdadd2377e Behold, TAPOAFTSM! The Awesome Power Of A Fully Type-Safe Mothership.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4246 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-07-05 00:56:16 +00:00
Michael Bayne 33a758dfce The basis of cluster support for Presents servers. All servers in a cluster
make connections to other servers in the cluster and can exchange events (in a
limited fashion).

This is different than Liz's project wherein servers share an oid space and one
can interchangably work with distributed objects from any server. This package
provides a means by which certain services (by default, presence and chat) can
be communicated between servers to allow communication between players
scattered around a bunch of otherwise independent server instances.

This is less general purpose but also less likely to encourage people to write
code that tightly couples multiple servers and then falls over because it
generates gobs of network traffic as events are flung willy nilly behind the
scenes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4238 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-07-01 00:19:59 +00:00
Michael Bayne 78a8d6fe62 Nix superfluous log message.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4198 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-06-17 23:12:21 +00:00
Ray Greenwell 79c6427c21 StringBuffer -> StringBuilder.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4191 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-06-13 22:42:20 +00:00
Ray Greenwell 26c928fc45 Use the valueOf factory methods pretty much everywhere.
These are the preferred way to get instances of Boolean, Byte,
Short, Character, Integer, Long, Float, and Double object.
It's always made sense for Boolean objects, and with 1.5 these factory
methods were blessed as the proper way to get instances unless one
absolutely needed a distinct object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4145 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-05-24 01:24:24 +00:00
Michael Bayne 0699eb3d1c Added a standard mechanism for customizing the AccessController on a
PlaceObject. Created a default AccessController that is slightly more strict
than the CrowdServer-wide default in that it only allows place occupants to
subscribe to a PlaceObject (a motivated and resourceful player could otherwise
listen in on place chat everywhere in the game if they so desired; with a
custom client, of course).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4079 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-04-30 19:16:05 +00:00
Michael Bayne 58cbfb6db1 Regenerated using the new Ant-task-based generator.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3914 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-06 21:51:59 +00:00
Michael Bayne d57adeca1c Big fat bernie OccupantInfo revamp. Now:
- OccupantInfo is created by the BodyObject
- the BodyObject is passed to the OI constructor and it uses information
  therefrom to configure itself
- the PlaceManager are no longer responsible for indicating the type of
  OccupantInfo to use or how to populate it.

This makes much more sense as the same type of OccupantInfo is generally used
across the entire system and it's annoying to have to have every PlaceMaanger
derived class know the type of OccupantInfo to create and know how to
initialize it. The one drawback is that only information from the BodyObject
can be used to populate the OccupantInfo, unpublished server-side only
information cannot be used (unless its stuffed into a transient field in the
BodyObject).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3774 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-12-03 03:05:06 +00:00
Ray Greenwell 38ee3ae362 When a place is loaded, immediately schedule an unload in the future, if
applicable, as it will only otherwise get checked when users leave the place.
It's possible that we'll load and nobody will ever enter.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3763 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-11-17 03:29:24 +00:00
Michael Bayne 176329e1ed Various updates to allow a system where a user's visible name is not the same
as their authentication name (which we leave in BodyObject.username). This
turns out to be simpler than the system we adopted for Yohoho wherein we
replace the player's user object after they select a character, but converting
to this sort of system is way more work than would be worth it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3758 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-11-10 23:18:58 +00:00
Ray Greenwell de892e0187 Catch exceptions in a few tender places during creation of a place and try
to log information.
There was an exception in here somewhere that froze a big tourney last week
but the stack trace was optimized out by hotspot (damn thee!). Hopefully
this will at least narrow it down, and possibly prevent total brokenness.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3681 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-08-12 22:22:13 +00:00
Ray Greenwell 3820456813 Allow subclasses to not create a speak service if they should so desire.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3644 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-06 17:47:51 +00:00
Michael Bayne a213847eea Added leavePlace() for games where you are sometimes not in any "place" at
all.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3638 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-06-30 00:02:13 +00:00
Andrzej Kapolka 9213b23ce1 Added ratifyBodyEntry to PlaceManager.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3561 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-05-17 21:53:53 +00:00
Michael Bayne 4757af99c6 No longer needed.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3555 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-05-16 22:08:16 +00:00
Ray Greenwell a2b8874f46 Allow the userobject access controller to be overridden by ye subclasses.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3554 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-05-16 18:33:57 +00:00
Michael Bayne ff3012c5f9 Implement sensible default object access policies at the Crowd level (no
one can modify anything, a select few events are allowed on the body
object by the body object's owner only).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3553 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-05-16 05:17:05 +00:00
Ray Greenwell 5290ab7c1d Pass the mode to the speaker validator.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3429 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-03-27 20:16:59 +00:00
Michael Bayne 2d19a0ba82 Renamed DSet.entries() -> DSet.iterator().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3406 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-03-15 02:12:03 +00:00
Michael Bayne 01592d2593 Reorganized basic permissions handling to be more cleanly extensible.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3375 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-03-02 03:22:27 +00:00
Michael Bayne 44f2a29f4f Regenerated with updated copyright information.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3365 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-02-22 18:56:52 +00:00
Michael Bayne d2ea985abb Regenerated invocation receivers; fixing a javadoc booch in the process.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3311 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-01-24 23:13:00 +00:00
Michael Bayne 93ef73095e Make it possible for external entities to add delegates.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3301 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-01-14 17:06:23 +00:00
Ray Greenwell bd80c348eb The great Interval revamp.
There is no more SafeInterval, instead Intervals can be constructed with a RunQueue to use for expiring.
PresentsDObjectMgr implements RunQueue.
Client has a getRunQueue() method to get the client side RunQueue.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3283 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-12-22 19:23:00 +00:00
Michael Bayne aeff9e61cf Not having a client is not a warnable offense. All server only
"characters" (NPPs in Yohoho) have no client.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3270 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-12-10 19:16:57 +00:00
Michael Bayne a6d7764e29 More custom classloader support. We now have a proof-of-concept working so
it's unlikely that the rabbit hole will surprise us with further depth.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3269 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-12-10 02:54:26 +00:00
Michael Bayne c92a922678 The rabbit hole goes deeper. Now we can configure the client with a custom
classloader to use when unserializing objects off the network. Also fixed
the way custom classloaders were used as Class.forName(class, true,
loader) seems to be the proper way to go to have caching work and whatnot.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3268 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-12-10 01:23:44 +00:00
Michael Bayne f16beaa0a1 Allow custom classloaders to be used when loading PlaceManager
implementations and their ilk.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3267 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-12-10 00:41:38 +00:00
Michael Bayne 5f7409307f Allow a derived place registry to be used.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3266 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-12-10 00:27:31 +00:00
Michael Bayne a04e23e025 Regenerated our marshaller and dispatcher classes with the new Java-based
generator. It handles inner classes slightly differently and prepends a
project-specific header to the generated classes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3239 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-11-25 04:47:40 +00:00
Michael Bayne 254e60811e Removed our temporary code as we have figured said things out.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3234 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-11-24 20:37:36 +00:00
Ray Greenwell a9ccfc8553 Don't NPE during normal operation!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3227 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-11-23 00:41:58 +00:00
Michael Bayne 4cdcec6149 Do some hackery until we figure out where AuthUserObjects are getting
mapped into the client table without mogrified names.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3226 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-11-23 00:17:46 +00:00
Michael Bayne ffc1552225 Clear out idle state when client logs off in case their client object
remains around until their next session.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3129 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-10-01 22:04:18 +00:00
Michael Bayne 1f8c4578b7 LGPLed the library. Hello world.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3098 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-08-27 02:12:55 +00:00
Michael Bayne 031331a5c3 Regenerated from service definitions.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3037 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-06-22 13:57:44 +00:00
Michael Bayne 32dee3cbaf 405 modified source files and 17,367 lines of diffs later we now enforce
more discipline when handling names in our code base. Any user entered
name should find its way into a Name object as soon as it comes out of a
text field or whatnot, and stay that way until it makes its way into a
text field or into a database record (for which String objects are vastly
simpler because of JORA magic).

Dear God, let me never again make a change this large for the rest of my
mortal life.

Unfortunately, this means we have to keep an eye out for funny business
pretty much everywhere. However, since we will absolutely want to test
market stalls and so forth on Azure, we'll have an opportunity to iron out
any funny business that might fall under the radar during our internal
testing.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2980 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-03-06 11:29:19 +00:00
Michael Bayne 9ccff79f52 Regenerated.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2973 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-25 14:51:51 +00:00
Michael Bayne ef748636e2 Various Eclipse suggested bits.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2969 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-25 14:41:47 +00:00
Ray Greenwell bfe9cbba04 Changed the variable named "enum", since that's a keyword in jdk 1.5
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2964 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-22 18:52:33 +00:00
Ray Greenwell ca89a3c122 Demoted logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2935 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-01-11 17:43:12 +00:00
Michael Bayne 8c219530d1 More debug log wrapping.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2804 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-09-22 23:59:39 +00:00
Michael Bayne 0812c3d8a1 Made the code for updating a player's occupant info more general purpose.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2793 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-09-11 03:20:06 +00:00
Michael Bayne a34e6a7fd8 Only log when we unload the place, not when it becomes empty.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2782 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-20 01:54:57 +00:00
Michael Bayne 4a302495d5 Unload scene managers (and all their associated business) after they've
been unoccupied for five minutes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2772 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-15 18:40:48 +00:00
Michael Bayne 206dd46e68 This too can now be related to the land of debug messages.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2761 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-09 04:58:25 +00:00
Michael Bayne ff12758dc0 That can be a debug message for surely-sure-opolis.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2760 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-09 04:57:41 +00:00
Michael Bayne 3d5ab0c79a The #1 most popular Narya log message gets the can. No need to hear about
this 50,000 times a day.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2759 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-09 04:56:35 +00:00
Ray Greenwell 829f3ad0eb Start transactions outside of the try-finally clause so that if there
is a problem with starting a transaction, we don't get an exception
for failing to commit the transaction.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2712 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-07-16 18:03:30 +00:00