hch
2023-12-26 aa908e55497929fb57282e97bb7dae71630d16e1
10074 新增渠道-绝峰
3个文件已修改
28个文件已添加
730 ■■■■■ 已修改文件
Channel/Android/mlgtgame_jf/AndroidManifest.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Channel/Android/mlgtgame_jf/debug/libs/library-debug-mlgtgame_jf.aar 补丁 | 查看 | 原始文档 | blame | 历史
Channel/Android/mlgtgame_jf/deps.gradle 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Channel/Android/mlgtgame_jf/release/libs/library-release-mlgtgame_jf.aar 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/AndroidManifest.xml 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/config.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/deps.gradle 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/GTGameApp.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/GTGameMain.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/GTGamePlatform.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/MySdkMgr.java 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdCreateRole.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdOpenDashboard.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdPayFinished.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdPlatformInit.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdPlatformLogin.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdPlatformLogout.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdPlatformPay.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdRoleLevelUp.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdRoleLogin.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdTrackingCloseVote.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdTutorialFinish.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/GoToReview.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/channel/mlgtgame_jf/res/xml/filepaths.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/gradle.properties 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/library/build.gradle 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/library/libs/alipaysdk_15.7.5.jar 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/library/libs/android-support-v4.jar 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/library/libs/gson-2.8.6.jar 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/library/libs/sdklibrary-release.aar 补丁 | 查看 | 原始文档 | blame | 历史
SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Channel/Android/mlgtgame_jf/AndroidManifest.xml
New file
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.unity3d.player"
    xmlns:tools="http://schemas.android.com/tools">
    <application
    android:allowNativeHeapPointerTagging="false">
        <activity android:name="com.secondworld.sdk.GameActivity"
                  android:theme="@style/UnityThemeSelector">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
        </activity>
    </application>
</manifest>
Channel/Android/mlgtgame_jf/debug/libs/library-debug-mlgtgame_jf.aar
Binary files differ
Channel/Android/mlgtgame_jf/deps.gradle
New file
@@ -0,0 +1,3 @@
dependencies {
}
Channel/Android/mlgtgame_jf/release/libs/library-release-mlgtgame_jf.aar
Binary files differ
SdkProject/channel/mlgtgame_jf/AndroidManifest.xml
New file
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.secondworld.sdk">
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--    GooglePay-->
    <uses-permission android:name="com.android.vending.BILLING" />
    <application
        android:name=".GTGameApp"
        android:requestLegacyExternalStorage="true"
        android:usesCleartextTraffic="true"
        android:supportsPictureInPicture= "true"
        android:resizeableActivity="true"
        android:exported="false"
        android:extractNativeLibs="true"
        tools:replace="android:name">
        <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${applicationId}.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/filepaths" />
        </provider>
        <meta-data
            android:name="JF_APPID"
            android:value="81445"/>
        <meta-data
            android:name="JF_APPKEY"
            android:value="538D489BFA57BAF0AF6401745118D6EA"/>
        <activity
            android:name="com.juefeng.sdk.juefengsdk.ui.activity.InitdataActivity"
            android:screenOrientation="sensorLandscape" />
    </application>
</manifest>
SdkProject/channel/mlgtgame_jf/config.properties
New file
@@ -0,0 +1 @@
PLUGINS=
SdkProject/channel/mlgtgame_jf/deps.gradle
New file
@@ -0,0 +1,3 @@
dependencies {
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/GTGameApp.java
New file
@@ -0,0 +1,25 @@
package com.secondworld.sdk;
import android.app.Application;
public class GTGameApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        GameAppProxy.create(this,new GTGamePlatform());
        registerProxy();
    }
    protected void registerProxy() {
        //主界面代理注册
        GameActivity.registerProxy(GTGameMain.class);
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/GTGameMain.java
New file
@@ -0,0 +1,79 @@
package com.secondworld.sdk;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.KeyEvent;
import androidx.annotation.NonNull;
import com.juefeng.sdk.juefengsdk.JFSDK;
public class GTGameMain extends GameActivityProxy {
    @Override
    public void onCreate(Activity activity) {
        super.onCreate(activity);
        // 初始化SDK
        MySdkMgr.I.OnCreate(activity);
    }
    @Override
    public void onStart()
    {
        super.onStart();
        MySdkMgr.I.onStart();
    }
    @Override
    public void onResume() {
        super.onResume();
        MySdkMgr.I.onResume();
    }
    @Override
    public void onPause() {
        super.onPause();
        MySdkMgr.I.onPause();
    }
    @Override
    public void onStop() {
        super.onPause();
        MySdkMgr.I.onStop();
    }
    @Override
    public void onDestroy() {
        super.onDestroy();
        MySdkMgr.I.onDestroy();
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        MySdkMgr.I.onActivityResult(requestCode, resultCode, data);
    }
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        MySdkMgr.I.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
                // 游戏调用自身的退出对话框,点击确定后,调用quick的exit接口
                new AlertDialog.Builder(activity).setTitle("退出").setMessage("是否退出游戏?").setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface arg0, int arg1) {
                        JFSDK.getInstance().exitLogin(GTGameMain.I.activity);
                    }
                }).setNegativeButton("取消", null).show();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/GTGamePlatform.java
New file
@@ -0,0 +1,9 @@
package com.secondworld.sdk;
public class GTGamePlatform extends PlatformDiff {
    @Override
    public String platformName() {
        return "jfgtgame";
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/MySdkMgr.java
New file
@@ -0,0 +1,201 @@
package com.secondworld.sdk;
import android.app.Activity;
import android.content.Intent;
import android.widget.Toast;
import androidx.annotation.NonNull;
import com.juefeng.sdk.juefengsdk.interf.SDKEventListener;
import com.juefeng.sdk.juefengsdk.services.bean.CreatOrderInfo;
import com.juefeng.sdk.juefengsdk.services.bean.JfOrderInfo;
import com.juefeng.sdk.juefengsdk.services.bean.LoginErrorMsg;
import com.juefeng.sdk.juefengsdk.services.bean.LogincallBack;
import com.juefeng.sdk.juefengsdk.services.bean.PayFaildInfo;
import com.juefeng.sdk.juefengsdk.services.bean.PaySuccessInfo;
import com.secondworld.sdk.utils.CodeA2U;
import com.secondworld.sdk.utils.LogUtil;
import com.juefeng.sdk.juefengsdk.JFSDK;
import org.json.JSONException;
import org.json.JSONObject;
public class MySdkMgr extends PlatformSdkMgr {
    private static final String TAG = MySdkMgr.class.getSimpleName();
    public static MySdkMgr I = new MySdkMgr();
    public static String uid;
    public static int viplevel;
    public void init(Activity activity) {
        sdkInitState = SdkInitState.LOADING;
        JFSDK.getInstance().init(activity, mSDKEventListener);
    }
    public void OnCreate(Activity activity) {
        JFSDK.getInstance().onCreate(GTGameMain.I.activity);
        init(activity);
    }
    public void onStart()
    {
        JFSDK.getInstance().onStart(GTGameMain.I.activity);
    }
    public void login() {
        switch (sdkInitState) {
            case FAILED:
            case UNKNOWN: {
                break;
            }
            case SUCCEED: {
                GameActivityProxy.I.activity.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        JFSDK.getInstance().doLogin(GTGameMain.I.activity);
                    }
                });
                break;
            }
            case LOADING: {
                Toast.makeText(GameAppProxy.app, "Initializing", Toast.LENGTH_LONG).show();
                break;
            }
        }
    }
    public void LogOutInitialize() {
        JFSDK.getInstance().logoutLogin(GTGameMain.I.activity);
    }
    public void pay(JfOrderInfo roleInfo) {
        JFSDK.getInstance().showPay(GTGameMain.I.activity, roleInfo);
    }
    public void onResume() {
        JFSDK.getInstance().onResume(GTGameMain.I.activity);
    }
    public void onPause() {
        JFSDK.getInstance().onPause(GTGameMain.I.activity);
    }
    public void onStop() {
        JFSDK.getInstance().onStop(GTGameMain.I.activity);
    }
    public void onDestroy() {
        //退出登录、退出游戏调用
        JFSDK.getInstance().onDestroy(GTGameMain.I.activity);
    }
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        JFSDK.getInstance().onActivityResult(GTGameMain.I.activity, requestCode, resultCode, data);
    }
    public void onRequestPermissionsResult(int requestCode,
                                           @NonNull String[] permissions, @NonNull int[] grantResults) {
        JFSDK.getInstance().onRequestPermissionsResult(GTGameMain.I.activity, requestCode, permissions, grantResults);
    }
    SDKEventListener mSDKEventListener = new SDKEventListener(){
        @Override
        public void onLoginSuccess(LogincallBack logincallBack) {//登录成功
            JFSDK.getInstance().showFloatView(GTGameMain.I.activity);
            try
            {
                args.clear();
                JSONObject info = new JSONObject();
                String channelID = "9996";
                uid = logincallBack.userId;
                String account = uid + "@" + channelID;
                info.put("account", account);
                info.put("userName", uid);
                info.put("token", logincallBack.token);
                args.put("info", info);
                UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginOk, args);
            } catch (JSONException e) {
                e.printStackTrace();
                LogUtil.e("SdkManager 登录成功 但信息处理失败", e);
            }
            LogUtil.i(TAG, "login success,uid:" + uid + " userName:" + logincallBack.userName);
        }
        @Override
        public void onLoginFailed(LoginErrorMsg loginErrorMsg) {//登录失败
            Toast.makeText(GameAppProxy.app, "login fail " + loginErrorMsg.getCode(), Toast.LENGTH_LONG).show();
            //登录失败
            LogUtil.e("SdkManager", "登录失败:" + loginErrorMsg.getErrorMsg());
            UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginFail);
        }
        @Override
        public void onInitSuccess(String desc,boolean isAutoLogin) {
            sdkInitState = SdkInitState.SUCCEED;
            LogUtil.debug("SdkManager", "初始化成功");
            UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitOk);
        }
        @Override
        public void onInitFaild(String desc) {
            Toast.makeText(GameAppProxy.app,  "init fail "+desc, Toast.LENGTH_LONG).show();
            //初始化失败
            sdkInitState = SdkInitState.FAILED;
            LogUtil.e("SdkManager", "初始化失败 msg:" + desc);
            UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitFail);
        }
        @Override
        public void onPaySuccessCallback(PaySuccessInfo paySuccessInfo) {
            //支付成功
            UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayOk);
            }
        @Override
        public void onPayFaildCallback(PayFaildInfo payFaildInfo) {
            //支付失败
            UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayFail);
            }
        @Override
        public void onExit(String desc) {//退出成功
        }
        @Override
        public void onCancleExit(String desc) {
        }
        @Override
        public void onCreatedOrder(CreatOrderInfo infoBean) {
            //订单创建成功
            LogUtil.i("SdkManager", "订单创建成功");
        }
        @Override
        public void  onLogoutLogin(){//此处需回到游戏登录界面游戏方执行
            UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutOk);
        }
        public void onSwitchAccountSuccess(LogincallBack login)
        {
    /*此回调接口是在当SDK内部有切换帐号的功能,且切换成功时会调用,游
    戏方需要在这个回调接口中注销原来的角色数据,然后根据新的openid(参数
        login中可以获取到)来重新加载角色数据;*/
            UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutOk);
        }
        @Override
        public void onGameSwitchAccount()
        {
    /*此接口是在游戏内有账号切换功能点击 调用          JFSDK.getInstance().switchAccount(MainActivity.this);后回调
      游戏方账号切换逻辑需要在此回调中执行
    * */
            UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutOk);
        }
    };
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdCreateRole.java
New file
@@ -0,0 +1,35 @@
package com.secondworld.sdk.command;
import com.juefeng.sdk.juefengsdk.JFSDK;
import com.juefeng.sdk.juefengsdk.services.bean.JfRoleInfo;
import com.secondworld.sdk.MySdkMgr;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
public class CmdCreateRole implements ICommand {
    @Override
    public int getCode() {
        return CodeU2A.CreateRole;
    }
    @Override
    public void process(JSONObject json) throws Exception {
        //上报角色信息
        JfRoleInfo roleInfo = new JfRoleInfo();
        roleInfo.setGameRoleLevel(json.getString("level"));
        roleInfo.setRoleId(json.getString("roleID"));
        roleInfo.setGameRolePower(json.getInt("fightPower"));
        roleInfo.setServerId(json.getString("sid"));
        roleInfo.setServerName(json.getString("serverName"));
        roleInfo.setRoleName(json.getString("roleName"));
        roleInfo.setExperience("1");
        roleInfo.setPartyId(json.getString("familyID"));
        roleInfo.setPartyName(json.getString("familyName"));
        roleInfo.setRoleCreateTime(System.currentTimeMillis());
        roleInfo.setVipLevel(json.getInt("vipLevel"));
        roleInfo.setType("1");
        JFSDK.getInstance().syncInfo(roleInfo);
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdOpenDashboard.java
New file
@@ -0,0 +1,17 @@
package com.secondworld.sdk.command;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
public class CmdOpenDashboard implements  ICommand{
    @Override
    public int getCode() {
        return CodeU2A.OpenDashboard;
    }
    @Override
    public void process(JSONObject json) throws Exception {
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdPayFinished.java
New file
@@ -0,0 +1,17 @@
package com.secondworld.sdk.command;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
public class CmdPayFinished implements  ICommand{
    @Override
    public int getCode() {
        return CodeU2A.PayFinished;
    }
    @Override
    public void process(JSONObject json) throws Exception {
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdPlatformInit.java
New file
@@ -0,0 +1,17 @@
package com.secondworld.sdk.command;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
public class CmdPlatformInit implements ICommand {
    @Override
    public int getCode() {
        return CodeU2A.PlatformInit;
    }
    @Override
    public void process(JSONObject json) throws Exception {
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdPlatformLogin.java
New file
@@ -0,0 +1,18 @@
package com.secondworld.sdk.command;
import com.secondworld.sdk.MySdkMgr;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
public class CmdPlatformLogin implements ICommand {
    @Override
    public int getCode() {
        return CodeU2A.PlatformLogin;
    }
    @Override
    public void process(JSONObject json) throws Exception {
        MySdkMgr.I.login();
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdPlatformLogout.java
New file
@@ -0,0 +1,17 @@
package com.secondworld.sdk.command;
import com.secondworld.sdk.MySdkMgr;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
public class CmdPlatformLogout implements ICommand {
    @Override
    public int getCode() {
        return CodeU2A.PlatformLogout;
    }
    @Override
    public void process(JSONObject json) throws Exception {
        MySdkMgr.I.LogOutInitialize();
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdPlatformPay.java
New file
@@ -0,0 +1,37 @@
package com.secondworld.sdk.command;
import com.juefeng.sdk.juefengsdk.services.bean.JfOrderInfo;
import com.secondworld.sdk.MySdkMgr;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
public class CmdPlatformPay implements ICommand {
    @Override
    public int getCode() {
        return CodeU2A.PlatformPay;
    }
    @Override
    public void process(JSONObject json) throws Exception {
        //channelID_cp订单id_区服id_游戏充值编号  长度不超过100 只能用下划线
        JfOrderInfo roleInfo = new JfOrderInfo ();
        roleInfo.setLevel(json.getString("level"));
        roleInfo.setGoodsId(json.getString("cpInfo"));
        roleInfo.setGoodsName(json.getString("title"));
        roleInfo.setGoodsDes(json.getString("title"));
        roleInfo.setPrice(json.getString("mount"));
        roleInfo.setServerId(json.getString("sid"));
        roleInfo.setServerName(json.getString("serverName"));
        roleInfo.setRoleId(json.getString("roleID"));
        roleInfo.setRoleName(json.getString("roleName"));
        roleInfo.setVip(json.getString("vipLevel"));
        String attach = "9996_" + json.getString("orderId") + "_" + json.getString("sid") + "_" + json.getString("cpInfo");
        roleInfo.setRemark(attach);
        roleInfo.setCpOrderId(json.getString("orderId"));
        MySdkMgr.I.pay(roleInfo);
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdRoleLevelUp.java
New file
@@ -0,0 +1,34 @@
package com.secondworld.sdk.command;
import com.juefeng.sdk.juefengsdk.JFSDK;
import com.juefeng.sdk.juefengsdk.services.bean.JfRoleInfo;
import com.secondworld.sdk.MySdkMgr;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
public class CmdRoleLevelUp implements ICommand {
    @Override
    public int getCode() {
        return CodeU2A.RoleLevelUp;
    }
    @Override
    public void process(JSONObject json) throws Exception {
        //上报角色信息
        JfRoleInfo roleInfo = new JfRoleInfo();
        roleInfo.setGameRoleLevel(json.getString("level"));
        roleInfo.setRoleId(json.getString("roleID"));
        roleInfo.setGameRolePower(json.getInt("fightPower"));
        roleInfo.setServerId(json.getString("sid"));
        roleInfo.setServerName(json.getString("serverName"));
        roleInfo.setRoleName(json.getString("roleName"));
        roleInfo.setExperience("1");
        roleInfo.setPartyId(json.getString("familyID"));
        roleInfo.setPartyName(json.getString("familyName"));
        roleInfo.setVipLevel(json.getInt("vipLevel"));
        roleInfo.setType("3");
        JFSDK.getInstance().syncInfo(roleInfo);
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdRoleLogin.java
New file
@@ -0,0 +1,34 @@
package com.secondworld.sdk.command;
import com.juefeng.sdk.juefengsdk.JFSDK;
import com.juefeng.sdk.juefengsdk.services.bean.JfRoleInfo;
import com.secondworld.sdk.MySdkMgr;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
public class CmdRoleLogin implements  ICommand{
    @Override
    public int getCode() {
        return CodeU2A.RoleLogin;
    }
    @Override
    public void process(JSONObject json) throws Exception {
        //上报角色信息
        JfRoleInfo roleInfo = new JfRoleInfo();
        roleInfo.setGameRoleLevel(json.getString("level"));
        roleInfo.setRoleId(json.getString("roleID"));
        roleInfo.setGameRolePower(json.getInt("fightPower"));
        roleInfo.setServerId(json.getString("sid"));
        roleInfo.setServerName(json.getString("serverName"));
        roleInfo.setRoleName(json.getString("roleName"));
        roleInfo.setExperience("1");
        roleInfo.setPartyId(json.getString("familyID"));
        roleInfo.setPartyName(json.getString("familyName"));
        roleInfo.setVipLevel(json.getInt("vipLevel"));
        roleInfo.setType("2");
        JFSDK.getInstance().syncInfo(roleInfo);
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdTrackingCloseVote.java
New file
@@ -0,0 +1,15 @@
package com.secondworld.sdk.command;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
public class CmdTrackingCloseVote implements  ICommand{
    @Override
    public int getCode() {
        return CodeU2A.TrackingCloseVote;
    }
    @Override
    public void process(JSONObject json) throws Exception {
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/CmdTutorialFinish.java
New file
@@ -0,0 +1,15 @@
package com.secondworld.sdk.command;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
public class CmdTutorialFinish implements  ICommand{
    @Override
    public int getCode() {
        return CodeU2A.TutorialFinish;
    }
    @Override
    public void process(JSONObject json) throws Exception {
    }
}
SdkProject/channel/mlgtgame_jf/java/com/secondworld/sdk/command/GoToReview.java
New file
@@ -0,0 +1,16 @@
package com.secondworld.sdk.command;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
public class GoToReview implements ICommand {
    @Override
    public int getCode() {
        return CodeU2A.GoToReview;
    }
    @Override
    public void process(JSONObject json) throws Exception {
    }
}
SdkProject/channel/mlgtgame_jf/res/xml/filepaths.xml
New file
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <paths>
        <root-path path="." name="root_path"/>
       <!-- <external-path name="external_storage_root" path="." />
        <external-path name="external_storage_download" path="." />
        <external-cache-path name="external_cache_path" path="." />
        <external-files-path name="external_files_path" path="." />
        <external-path name="external_path" path=". " />
        <cache-path name="cache_path" path="." />
        <files-path name="files_path" path="." />-->
    </paths>
</resources>
SdkProject/gradle.properties
@@ -18,4 +18,4 @@
## Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
#当前构建的渠道名称
CHANNEL_NAME=mlgtgame_quickhw
CHANNEL_NAME=mlgtgame_jf
SdkProject/library/build.gradle
@@ -204,34 +204,6 @@
    }
//以下为必需依赖的库
    implementation(name: 'quickgame_hw_2.3.3', ext: 'aar') //x.x.x为具体版本
    implementation 'com.android.billingclient:billing:5.2.1'//google内购
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.4.10"
//以下为选接库
//谷歌登录
    implementation 'com.google.android.gms:play-services-auth:19.0.0'
//Facebook
    implementation 'com.facebook.android:facebook-android-sdk:16.0.0'
    implementation(name: 'sdklibrary-release', ext: 'aar') //x.x.x为具体版本
    //firebase analytics
    implementation 'com.google.firebase:firebase-analytics:20.1.0'
//appsflyer
//    implementation 'com.appsflyer:af-android-sdk:6.10.3'
////adjust
//    implementation 'com.adjust.sdk:adjust-android:4.31.1'
////adjust需要
//    implementation 'com.google.android.gms:play-services-ads-identifier:17.0.1'
////appsflyer、adjust需要
//    implementation 'com.android.installreferrer:installreferrer:2.2'
////Twitter登录
//    implementation 'com.twitter.sdk.android:twitter:3.1.1'
////Line登录
//    implementation (name: 'line_sdk_4.0.8',ext: 'aar')
////tapdb
//    implementation files('libs/libTapDB-3.3.0.aar')
////TalkingData
//    implementation files('libs/TalkingData_GP_GameAnalytics_V4.0.69.jar')
}
SdkProject/library/libs/alipaysdk_15.7.5.jar
Binary files differ
SdkProject/library/libs/android-support-v4.jar
Binary files differ
SdkProject/library/libs/gson-2.8.6.jar
Binary files differ
SdkProject/library/libs/sdklibrary-release.aar
Binary files differ
SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java
@@ -10,7 +10,7 @@
import com.secondworld.sdk.utils.LogUtil;
import com.secondworld.sdk.utils.WebViewUtil;
import com.juefeng.sdk.juefengsdk.JFSDK;
public class GameActivity extends UnityPlayerActivity {
@@ -60,6 +60,8 @@
        super.onRestart();
        if (proxy != null)
            proxy.onRestart();
        JFSDK.getInstance().onRestart(GTGameMain.I.activity);
    }
    @Override
@@ -95,6 +97,7 @@
        super.onNewIntent(intent);
        if (proxy != null)
            proxy.onNewIntent(intent);
        JFSDK.getInstance().onNewIntent(GTGameMain.I.activity, intent);
    }
    @Override
@@ -118,4 +121,29 @@
        boolean b = proxy.onKeyDown(keyCode, event);
        return b ? b : super.onKeyDown(keyCode, event);
    }
    @Override
    public boolean  dispatchKeyEvent(KeyEvent event) {
        if(event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
            if(event.getAction() == KeyEvent.ACTION_DOWN&&event.getRepeatCount() == 0) {
                JFSDK.getInstance().exitLogin(GTGameMain.I.activity);
                return true;
            }
        }
        return super.dispatchKeyEvent(event);
    }
    @Override
    public void onWindowFocusChanged(boolean hasFocus)
    {
        super.onWindowFocusChanged(hasFocus);
        JFSDK.getInstance().onWindowFocusChanged(hasFocus);
    }
    @Override
    public void onBackPressed()
    {
        super.onBackPressed();
        JFSDK.getInstance().onBackPressed(GTGameMain.I.activity);
    }
}