def METHOD_NAME(self,state,id,events):
    PtDebugPrint("xCalendarStar.OnNotify(): state = %d, id = %d" % (state,id))
    global boolCalStar
    if not state or id != rgnCalStar.id:
        return
    #if not PtWasLocallyNotified(self.key):
    if PtFindAvatar(events) != PtGetLocalAvatar():
        PtDebugPrint("DEBUG: xCalendarStar.OnNotify():\t received notify from non-local player, ignoring...")
        return
    else:
        PtDebugPrint("DEBUG: xCalendarStar.OnNotify():\t local player requesting %s change via %s" % (sdlCalStar.value,rgnCalStar.value[0].getName()) )
    if not self.GotPage():
        PtDebugPrint("xCalendarStar.OnNotify(): do NOT have YeeshaPage20 (the Calendar Pinnacle) yet")
        return            
    else:
        PtDebugPrint("xCalendarStar.OnNotify():  have YeeshaPage20 (the Calendar Pinnacle)")
        if AgeStartedIn == PtGetAgeName():
            psnlSDL = xPsnlVaultSDL()
        if not boolCalStar:
            PtDebugPrint("xCalendarStar.OnNotify(): getting star's stone: ",sdlCalStar.value)
            psnlSDL[sdlCalStar.value] = (1,)
            respCalStar.run(self.key)
            boolCalStar = 1
            PtSendKIMessageInt(kStartBookAlert,0)
        else:
            PtDebugPrint("xCalendarStar.OnNotify(): already have the stone: ",sdlCalStar.value)