/*
 * Copyright (c) 2023-2023 jwdeveloper jacekwoln@gmail.com
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
package io.github.jwdeveloper.tiktok;

import io.github.jwdeveloper.tiktok.data.models.Picture;
import io.github.jwdeveloper.tiktok.live.GiftManager;
import io.github.jwdeveloper.tiktok.live.LiveClient;
import io.github.jwdeveloper.tiktok.messages.webcast.WebcastGiftMessage;

public class CustomGiftExample {
    /**
     * If you can't find your wanted Gift inside Gift enum register it manually
     */


    public static void main(String[] args) {
        LiveClient client = TikTokLive.newClient(SimpleExample.TIKTOK_HOSTNAME)
                .onConnected((liveClient, event) ->
                {
                    liveClient.disconnect();
                })
                .onWebsocketResponse((liveClient, event) ->
                {
                    var packets =event.getResponse().getMessagesList();
                    for(var packet : packets)
                    {
                        var name = packet.getMethod();
                        var data = packet.getPayload();
                        if(name.equals("WebcastGiftMessage"))
                        {
                         //   var message = WebcastGiftMessage.parseFrom(data);

                        }
                    }
                })
                .onGift((liveClient, event) ->
                {
                    liveClient.getLogger().info(event.getGift().getName());
                }).build();

        GiftManager giftManager = client.getGiftManager();

        //If you can't find your wanted Gift inside Gift enum register it manually
        giftManager.registerGift(123, "my custom gift", 69, new Picture("https://as2.ftcdn.net/v2/jpg/03/03/62/45/1000_F_303624505_u0bFT1Rnoj8CMUSs8wMCwoKlnWlh5Jiq.jpg"));


        //You can also override existing gift, for example Rose has Id 5655
        //We can make our custom gift appear in the event instead of rose
        giftManager.registerGift(5655, "custom-rose", 999, new Picture("https://as2.ftcdn.net/v2/jpg/03/03/62/45/1000_F_303624505_u0bFT1Rnoj8CMUSs8wMCwoKlnWlh5Jiq.jpg"));

        client.connect();
    }
}
