buddyList
Posted: 12 Mar 2008, 21:58
Hi Lapo I am having troubles with the event onBuddyPermissionRequest the event don´t fire at all my this is the zone I am using please explain what can be happening any clue why this is not working I am using this code is the same code of the example just with a little modifications please take a look to the code .
thanks in advanced
thanks in advanced
Code: Select all
package
{
import flash.display.MovieClip
import it.gotoandplay.smartfoxserver.SmartFoxClient
import it.gotoandplay.smartfoxserver.SFSEvent
import flash.events.*
import fl.events.ListEvent
import fl.data.DataProvider
import flash.text.TextField
import flash.utils.*
public class Main extends MovieClip
{
private var sfs:SmartFoxClient
init()
function Main() : void
{
mc_alert.visible = false
init()
}
function init() : void
{
setTimeout(toggleUI, 50, false)
sfs = new SmartFoxClient()
// Register for SFS events
sfs.addEventListener( SFSEvent.onConnection, onConnection )
sfs.addEventListener( SFSEvent.onConnectionLost, onConnectionLost )
sfs.addEventListener( SFSEvent.onBuddyList, onBuddyList )
sfs.addEventListener( SFSEvent.onBuddyListUpdate, onBuddyListUpdate )
sfs.addEventListener( SFSEvent.onBuddyPermissionRequest, onBuddyPermissionRequest )
sfs.addEventListener( SFSEvent.onPrivateMessage, onPrivateMessage )
// Register for generic errors
sfs.addEventListener( SecurityErrorEvent.SECURITY_ERROR, onSecurityError )
sfs.addEventListener( IOErrorEvent.IO_ERROR, onIOError )
bt_connect.addEventListener( MouseEvent.CLICK, bt_connect_click )
bt_addBuddy.addEventListener( MouseEvent.CLICK, bt_addBuddy_click )
bt_removeBuddy.addEventListener( MouseEvent.CLICK, bt_removeBuddy_click )
bt_blockBuddy.addEventListener( MouseEvent.CLICK, bt_blockBuddy_click )
bt_unblockBuddy.addEventListener( MouseEvent.CLICK, bt_unblockBuddy_click )
bt_setVariable.addEventListener( MouseEvent.CLICK, bt_setVariable_click )
bt_disconnect.addEventListener( MouseEvent.CLICK, bt_disconnect_click )
bt_send.addEventListener( MouseEvent.CLICK, bt_send_click )
mc_alert.bt_grant.addEventListener ( MouseEvent.CLICK, bt_grant_click )
mc_alert.bt_refuse.addEventListener ( MouseEvent.CLICK, bt_refuse_click )
// Initialize datagrids components
dg_buddies.columns = ["name", "online", "X"]
dg_vars.columns = ["key", "value"]
dg_buddies.getColumnAt(0).width = 80
dg_buddies.getColumnAt(2).width = 25
dg_buddies.addEventListener(ListEvent.ITEM_CLICK, dg_buddies_click)
debugTrace( "API Version: " + sfs.getVersion() )
debugTrace( "Click the CONNECT button to start" )
}
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::
* Button Handlers
* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*/
function bt_connect_click(evt:Event):void
{
if ( !sfs.isConnected && tf_connect.text != "" )
sfs.connect("127.0.0.1",9339);
else
debugTrace("You are already connected!")
}
function bt_addBuddy_click(evt:Event):void
{
if ( tf_buddyName.text != "" )
{
sfs.addBuddy( tf_buddyName.text )
tf_buddyName.text = ""
}
}
function bt_removeBuddy_click(evt:Event):void
{
if ( dg_buddies.selectedItem != null )
{
sfs.removeBuddy( dg_buddies.selectedItem.name )
}
}
function bt_blockBuddy_click(evt:Event):void
{
if ( dg_buddies.selectedItem != null )
sfs.setBuddyBlockStatus( dg_buddies.selectedItem.name, true )
}
function bt_unblockBuddy_click(evt:Event):void
{
if ( dg_buddies.selectedItem != null )
sfs.setBuddyBlockStatus( dg_buddies.selectedItem.name, false )
}
function bt_setVariable_click(evt:Event):void
{
if ( tf_varKey.text != "" && tf_varValue.text != "" )
{
var vars:Array = []
vars[tf_varKey.text] = tf_varValue.text
sfs.setBuddyVariables( vars )
}
}
function bt_grant_click(evt:Event):void
{
sendBuddyPermissionResponse( true )
}
function bt_refuse_click(evt:Event):void
{
sendBuddyPermissionResponse( false )
}
function bt_disconnect_click(evt:Event):void
{
sfs.disconnect()
}
function bt_send_click(evt:Event):void
{
if ( dg_buddies.selectedItem != null && tf_chat.text != "" )
{
var buddy = sfs.getBuddyByName( dg_buddies.selectedItem.name )
if ( buddy.isOnline)
{
sfs.sendPrivateMessage( tf_chat.text, buddy.id )
tf_chat.text = ""
}
}
}
function sendBuddyPermissionResponse( b:Boolean ):void
{
sfs.sendBuddyPermissionResponse( b, mc_alert.lb_name.text )
mc_alert.lb_name.text = ""
mc_alert.visible = false
}
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::
* Datagrid Handlers
* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*/
function dg_buddies_click( evt:ListEvent ) : void
{
var buddy:Object = sfs.getBuddyByName( evt.item.name )
refreshBuddyVariables( buddy )
}
function toggleUI(b:Boolean):void
{
tf_connect.enabled = !b
bt_connect.enabled = !b
tf_buddyName.enabled = b
tf_varKey.enabled = b
tf_varValue.enabled = b
tf_chat.enabled = b
ta_chat.enabled = b
bt_disconnect.enabled = b
bt_removeBuddy.enabled = b
bt_blockBuddy.enabled = b
bt_unblockBuddy.enabled = b
bt_setVariable.enabled = b
bt_addBuddy.enabled = b
dg_vars.enabled = b
dg_buddies.enabled = b
}
function onConnection(evt:SFSEvent):void
{
var success:Boolean = evt.params.success
trace(success);
if (success)
{
debugTrace("Connection successfull!")
tf_conn.text = "Connected"
mc_conn.gotoAndStop(2)
toggleUI( true )
sfs.login("ACA", "a", "a")
}
else
{
debugTrace("Connection failed!")
}
}
function onConnectionLost(evt:SFSEvent):void
{
debugTrace("Connection lost!")
tf_conn.text = "Not Connected"
mc_conn.gotoAndStop(1)
ta_chat.text = ""
tf_connect.text = ""
dg_buddies.dataProvider = new DataProvider([])
dg_vars.dataProvider = new DataProvider([])
toggleUI( false )
}
function onBuddyList(evt:SFSEvent):void
{
refreshBuddyList()
for (var i:String in sfs.myBuddyVars )
{
trace(i + " >> " + sfs.myBuddyVars[i])
}
}
function onBuddyListUpdate(evt:SFSEvent):void
{
trace("list update");
var isSameItem:Boolean = dg_buddies.selectedItem != null && dg_buddies.selectedItem.name == evt.params.buddy.name
refreshBuddyList()
if ( isSameItem )
refreshBuddyVariables( evt.params.buddy )
}
function onBuddyPermissionRequest(evt:SFSEvent):void
{
trace("request permision");
mc_alert.lb_name.text = evt.params.sender
mc_alert.visible = true
}
}
}
Code: Select all
<Zone name="ACA" uCountUpdate="true" buddyList="20" maxUsers="4000" customLogin="true">
<BuddyList active="true">
<size>50</size>
<maxBuddyVariables>6</maxBuddyVariables>
<mode>advanced</mode>
<addBuddyPermission>true</addBuddyPermission>
<offLineBuddyVariables>true</offLineBuddyVariables>
<mutualAddBuddy>true</mutualAddBuddy>
<mutualRemoveBuddy>true</mutualRemoveBuddy>
</BuddyList>
<Rooms>
<Room name="enter" maxUsers="1000" limbo="true" isPrivate="false" isTemp="false" autoJoin="true" uCountUpdate="false" />
</Rooms>
<AutoReloadExtensions>true</AutoReloadExtensions>
<Extensions>
<extension name="SapiDB" className="SapiDB.as" type="script" />
<extension name="SapiFastData" className="SapiFastData.as" type="script" />
<extension name="SapiLogin" className="SapiLogin.as" type="script" />
<extension name="SapiMU" className="SapiMU.as" type="script" />
<extension name="SapiAvatar" className="SapiAvatar.as" type="script" />
<extension name="SapiTrivia" className="SapiTrivia.as" type="script" />
<extension name="SapiMessage" className="SapiMessage.as" type="script" />
<extension name="SapiClue" className="SapiClue.as" type="script" />
<extension name="SapiPassport" className="SapiPassport.as" type="script" />
</Extensions>
<DatabaseManager active="true">
<Driver>org.gjt.mm.mysql.Driver</Driver>
<ConnectionString>jdbc:mysql://127.0.0.1:3306/vWorld</ConnectionString>
<UserName>root</UserName>
<Password>root</Password>
<TestSQL><![CDATA[SELECT COUNT(*) FROM user]]></TestSQL>
<MaxActive>10</MaxActive>
<MaxIdle>10</MaxIdle>
<OnExhaustedPool>fail</OnExhaustedPool>
<BlockTime>5000</BlockTime>
</DatabaseManager>
</Zone>