贵族防被踢,隐身进房开关

This commit is contained in:
chenguilong
2022-04-28 11:24:41 +08:00
parent e933347dd6
commit 63138e62ca
17 changed files with 117 additions and 34 deletions

View File

@@ -114,8 +114,6 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, assign) GroupType groupType;
///
@property (nonatomic,strong) NSArray<UserGiftWallInfoModel *> *userGiftWall;
///是否隐身进房 0不隐身1隐身
@property (nonatomic, assign) NobleEnterHideStatus enterHide;
@end
NS_ASSUME_NONNULL_END

View File

@@ -17,6 +17,12 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, assign) NSInteger vipLevel;
//用户好友昵称颜色
@property (nonatomic, copy) NSString *friendNickColour;
///是否防被踢
@property (nonatomic, assign) BOOL preventKick;
///是否隐身进房
@property (nonatomic, assign) BOOL enterHide;
///贵族进房特效
@property (nonatomic, copy) NSString *enterRoomEffects;
@end

View File

@@ -60,8 +60,4 @@ typedef NS_ENUM(NSInteger, LittleGamePlayStatus) {
LittleGamePlayStatus_Plying = 3,//游戏中
};
typedef NS_ENUM(NSUInteger, NobleEnterHideStatus) {
NobleEnterHideStatus_NoHide = 0,//不隐身
NobleEnterHideStatus_Hide = 1,//隐身
};
#endif /* XPEnum_h */

View File

@@ -38,6 +38,11 @@ NS_ASSUME_NONNULL_BEGIN
/// @param completion 完成
+ (void)requestRecoveryDress:(HttpRequestHelperCompletion)completion;
/// 开关隐身进房
/// @param complection 完成回调
/// @param open 是否打开
+ (void)changeEnterHidCompletion:(HttpRequestHelperCompletion)complection open:(NSString *)open;
@end
NS_ASSUME_NONNULL_END

View File

@@ -47,4 +47,11 @@
[self makeRequest:@"vip/recoveryDress" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil];
}
///
/// @param complection
/// @param open
+ (void)changeEnterHidCompletion:(HttpRequestHelperCompletion)complection open:(NSString *)open {
[self makeRequest:@"vip/changeInvisibleInRoom" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__,open, nil];
}
@end

View File

@@ -20,7 +20,7 @@ NS_ASSUME_NONNULL_BEGIN
///特权名称
@property (nonatomic, copy) NSString *authName;
///特权类型1. 铭牌 2. 头饰 3. 座驾 4. 礼物 5.资料卡 6. 财富值经验加成 7.表情 8.麦序光圈 9.麦位昵称颜色 10. 好友红名
///特权类型1. 铭牌 2. 头饰 3. 座驾 4. 礼物 5.资料卡 6. 财富值经验加成 7.表情 8.麦序光圈 9.麦位昵称颜色 10. 好友红名 11.房间小喇叭 12.进场特效 13 隐身进房
@property (nonatomic, assign) NSInteger authType;
///描述图片
@property (nonatomic, copy) NSString *descPic;

View File

@@ -34,6 +34,10 @@ NS_ASSUME_NONNULL_BEGIN
/// @param transcations 凭据的数组
- (void)checkTranscationIds:(NSArray *)transcations;
/// 切换隐身进房
/// @param enterHide 隐身进房
- (void)changeEnterHide:(BOOL)enterHide;
@end
NS_ASSUME_NONNULL_END

View File

@@ -85,4 +85,12 @@
}] transcationIdStr:transcationIdStr];
}
///
/// @param enterHide
- (void)changeEnterHide:(BOOL)enterHide {
[Api changeEnterHidCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
[[self getView] changeEnterHideSuccess];
}] open:[NSString stringWithFormat:@"%d", enterHide]];
}
@end

View File

@@ -30,4 +30,7 @@
///批量验证凭据成功
- (void)checkTranscationIdsSuccess;
///开关隐身进房成功
- (void)changeEnterHideSuccess;
@end

View File

@@ -61,6 +61,8 @@
@property (nonatomic, strong) UIButton *openNobleButton;
///-
@property (nonatomic, strong) XPNobleCenterMyNobleView *myNobleView;
///
@property (nonatomic, assign) BOOL needUpdateUserInfo;
///-----
@property (nonatomic, strong) NobleRechargeModel *rechargeModel;
@@ -101,6 +103,9 @@
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self hideNavigationBar];
if (self.needUpdateUserInfo) {
[self.presenter getUserInfo];
}
}
- (XPNobleCenterPresenter *)createPresenter {
@@ -171,6 +176,7 @@
///
- (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo {
self.userInfo = userInfo;
self.needUpdateUserInfo = NO;
[self.presenter getNobleCenterInfo];
}
@@ -344,6 +350,10 @@
- (void)xPNobleCenterNavView:(XPNobleCenterNavView *)view didClickSettingButton:(UIButton *)sender {
XPNobleSettingViewController * settingVC =[[XPNobleSettingViewController alloc] init];
settingVC.enterHide = self.userInfo.userVipInfoVO.enterHide;
settingVC.didUpdateEnterHideBlock = ^{
self.needUpdateUserInfo = YES;
};
[self.navigationController pushViewController:settingVC animated:YES];
}

View File

@@ -11,6 +11,10 @@ NS_ASSUME_NONNULL_BEGIN
@interface XPNobleSettingViewController : MvpViewController
@property (nonatomic, assign) BOOL enterHide;
@property (nonatomic, copy) void(^didUpdateEnterHideBlock)(void);
@end
NS_ASSUME_NONNULL_END

View File

@@ -13,8 +13,11 @@
#import "UIButton+EnlargeTouchArea.h"
///Third
#import <Masonry/Masonry.h>
///P
#import "XPNobleCenterPresenter.h"
#import "XPNobleCenterProtocol.h"
@interface XPNobleSettingViewController ()<XPNobleSettingNavViewDelegate>
@interface XPNobleSettingViewController ()<XPNobleSettingNavViewDelegate, XPNobleCenterProtocol>
@property (nonatomic, strong) XPNobleSettingNavView *navView;
///
@@ -26,6 +29,10 @@
@implementation XPNobleSettingViewController
- (XPNobleCenterPresenter *)createPresenter {
return [[XPNobleCenterPresenter alloc] init];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"贵族设置";
@@ -54,7 +61,7 @@
make.height.mas_equalTo(kNavigationHeight);
}];
[self.label mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kNavigationHeight+8);
make.top.mas_equalTo(kNavigationHeight+16);
make.left.mas_equalTo(15);
make.height.mas_equalTo(21);
}];
@@ -66,6 +73,13 @@
}];
}
#pragma mark - XPNobleCenterProtocol
- (void)changeEnterHideSuccess {
self.switchButton.selected = !self.switchButton.selected;
if (self.didUpdateEnterHideBlock) {
self.didUpdateEnterHideBlock();
}
}
#pragma mark - XPNobleSettingNavViewDelegate
///
@@ -74,10 +88,15 @@
}
- (void)switchButtonAction:(UIButton *)sender {
[self.presenter changeEnterHide:!sender.isSelected];
}
#pragma mark - getter and setter
- (void)setEnterHide:(BOOL)enterHide {
_enterHide = enterHide;
self.switchButton.selected = enterHide;
}
#pragma mark - getter
- (XPNobleSettingNavView *)navView {
if (!_navView) {
_navView = [[XPNobleSettingNavView alloc] init];
@@ -91,7 +110,7 @@
_label = [[UILabel alloc] init];
_label.text = @"隐身进房";
_label.textColor = [UIColor whiteColor];
_label.font = [UIFont systemFontOfSize:14];
_label.font = [UIFont systemFontOfSize:15];
}
return _label;
}

View File

@@ -75,7 +75,8 @@
extModel.fromNick = userInfo.fromNick;
extModel.iosBubbleUrl = userInfo.iosBubbleUrl;
extModel.androidBubbleUrl = userInfo.androidBubbleUrl;
extModel.enterHide = userInfo.enterHide;
extModel.enterHide = userInfo.userVipInfoVO.enterHide;
extModel.enterRoomEffects = userInfo.userVipInfoVO.enterRoomEffects;
NSMutableDictionary *ext = [NSMutableDictionary dictionaryWithObject:extModel.model2dictionary forKey:[NSString stringWithFormat:@"%ld", userInfo.uid]];
request.roomExt = [ext toJSONString];

View File

@@ -233,7 +233,7 @@
NIMMessageChatroomExtension * messageExt = (NIMMessageChatroomExtension *)message.messageExt;
NSDictionary * dic = [(NSDictionary *)messageExt.roomExt.toJSONObject objectForKey:message.from];
XPMessageRemoteExtModel * extModel = [XPMessageRemoteExtModel modelWithJSON:dic];
if (extModel.enterHide == NobleEnterHideStatus_Hide) {//
if (extModel.enterHide) {//
if ([message.from isEqualToString:[AccountInfoStorage instance].getUid]) {
[self createEnterHideAnimation:dic];
}
@@ -344,13 +344,13 @@
if (extModel.experLevelSeq < 30) return;
NSString * title = [NSString stringWithFormat:@"%@进入了房间", content.source.nick];
if (self.enterEffectQueue.count ==0) {
[self playUserEnterRoomAnimation:title experLevelSeq:extModel.experLevelSeq];
[self playUserEnterRoomAnimation:title experLevelSeq:extModel.experLevelSeq effectPath:extModel.enterRoomEffects];
}
NSDictionary * dic= @{@"title":title, @"experLevelSeq":[NSString stringWithFormat:@"%ld", extModel.experLevelSeq]};
NSDictionary * dic= @{@"title":title, @"experLevelSeq":[NSString stringWithFormat:@"%ld", extModel.experLevelSeq], @"effectPath" : extModel.enterRoomEffects.length ? extModel.enterRoomEffects : @""};
[self.enterEffectQueue addObject:dic];
}
- (void)playUserEnterRoomAnimation:(NSString *)title experLevelSeq:(NSInteger)experLevelSeq {
- (void)playUserEnterRoomAnimation:(NSString *)title experLevelSeq:(NSInteger)experLevelSeq effectPath:(NSString *)effectPath {
NSString * path;
if (experLevelSeq >= 30 && experLevelSeq <= 39) {
path = @"svga_member_in_lv30";
@@ -375,6 +375,21 @@
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:26], NSForegroundColorAttributeName:[UIColor whiteColor]}];
[attribute setYy_alignment:NSTextAlignmentLeft];
if (effectPath.length > 0) {
@kWeakify(self);
[self.parser parseWithURL:[NSURL URLWithString:effectPath] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
@kStrongify(self);
self.enterEffectView.loops = 1;
self.enterEffectView.hidden = NO;
self.enterEffectView.clearsAfterStop = NO;
self.enterEffectView.alpha = 1;
self.enterEffectView.videoItem = videoItem;
[self.enterEffectView setAttributedText:attribute forKey:@"room_text"];
[self.enterEffectView startAnimation];
} failureBlock:^(NSError * _Nonnull error) {
}];
} else {
@kWeakify(self);
[self.parser parseWithNamed:path inBundle:[NSBundle mainBundle] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
@kStrongify(self);
@@ -388,6 +403,7 @@
} failureBlock:^(NSError * _Nonnull error) {
}];
}
[UIView animateWithDuration:0.5 animations:^{
@@ -1294,7 +1310,8 @@
if (self.enterEffectQueue.count > 0) {
NSString * title = [self.enterEffectQueue.firstObject objectForKey:@"title"];
NSInteger experLevelSeq = [(NSString *)[self.enterEffectQueue.firstObject objectForKey:@"experLevelSeq"] integerValue];
[self playUserEnterRoomAnimation:title experLevelSeq:experLevelSeq];
NSString *effectPath = [self.enterEffectQueue.firstObject objectForKey:@"effectPath"];
[self playUserEnterRoomAnimation:title experLevelSeq:experLevelSeq effectPath:effectPath];
}
}
}

View File

@@ -43,7 +43,9 @@ NS_ASSUME_NONNULL_BEGIN
///iOS房间公屏气泡
@property (nonatomic, copy) NSString *iosBubbleUrl;
///是否隐身进房 0不隐身1隐身
@property (nonatomic, assign) NobleEnterHideStatus enterHide;
@property (nonatomic, assign) BOOL enterHide;
///进房特效
@property (nonatomic, copy) NSString *enterRoomEffects;
@end
NS_ASSUME_NONNULL_END

View File

@@ -752,12 +752,12 @@
case UserCardItemType_KickOut:
{
// 1
if (self.targetUserInfo.userVipInfoVO.vipLevel > 6) {
if (self.targetUserInfo.userVipInfoVO.preventKick) {
//2
if (self.cardInfo.roomInfo.uid != [AccountInfoStorage instance].getUid.integerValue) {
[self showErrorToast:@"该用户为神皇贵族,只有房主才可以踢出哦~"];
} else {//
NSString *message = [NSString stringWithFormat:@"该用户为神皇贵族\n确认是否要将其踢出"];
NSString *message = [NSString stringWithFormat:@"该用户为神皇贵族\n确认是否要将其踢出房间"];
TTAlertConfig *config = [[TTAlertConfig alloc] init];
config.title = @"";
config.message = message;

View File

@@ -247,6 +247,9 @@ UIKIT_EXTERN NSString * const kRoomMiniNotificationKey;
attachment.first = CustomMessageType_Car_Notify;
attachment.second = Custom_Message_Sub_Car_EnterRoom;
NSMutableDictionary *att = [NSMutableDictionary dictionary];
if (self.userInfo.userVipInfoVO.enterHide) {///,
return;
}
if (self.userInfo.viewUrl.length > 0) {
[att setValue:self.userInfo.nick forKey:@"nick"];
[att setValue:self.userInfo.viewUrl forKey:@"viewUrl"];