package org.skfiy.typhon.spi.playerevent; import javax.inject.Inject; import org.skfiy.typhon.domain.Friend; import org.skfiy.typhon.domain.Player; import org.skfiy.typhon.domain.VacantData; import org.skfiy.typhon.session.Session; import org.skfiy.typhon.session.SessionManager; import org.skfiy.typhon.session.SessionUtils; import org.skfiy.typhon.spi.IPlayerEvent; import org.skfiy.typhon.spi.IncidentConstants; import org.skfiy.typhon.spi.RoleProvider; import org.skfiy.typhon.spi.role.PlayerEventBean; import com.alibaba.fastjson.JSONObject; public class FriendPlayerEventAccept implements IPlayerEvent<PlayerEventBean> { @Override public String getEventName() { return IncidentConstants.EVENT_FRIEND_ACCEPTED; } @Inject private RoleProvider roleProvider; @Inject private SessionManager sessionManager; @Override public void invoke(PlayerEventBean bean) { int rid = JSONObject.parseObject(bean.getIncident().getData(), Friend.class).getRid(); Session beSeesion = sessionManager.getSession(rid); Friend friend = new Friend(); if (beSeesion != null) { Player beplayer = SessionUtils.getPlayer(beSeesion); friend = roleProvider.integrationFriend(beplayer); } else { VacantData vacantData = roleProvider.loadVacantData(rid); friend = new Friend(rid, vacantData.getName(), vacantData.getLevel(), roleProvider.findHeroFighting(rid), roleProvider.primaryHeroId(rid), vacantData.getAvatar(), vacantData.getAvatarBorder(), vacantData.getSocietyName()); } bean.getPlayer().getNormal().addFriend(friend); } @Override public boolean isDeletable() { return true; } }