Skip to main content
Version: 5.15.0

Full Code

BackendGuild.cs

using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;

// Add BACKND SDK namespace
using BackEnd;

public class BackendGuild
{
private static BackendGuild _instance = null;

public static BackendGuild Instance
{
get
{
if (_instance == null)
{
_instance = new BackendGuild();
}

return _instance;
}
}

public void CreateGuild(string guildName)
{
// goodsCount entering as 10 is the number of goods types that can be used and cannot be modified later.
var bro = Backend.Guild.CreateGuildV3(guildName, 10);

if (bro.IsSuccess() == false)
{
Debug.LogError("An error occurred while creating the guild. : " + bro);
return;
}

Debug.Log("Guild created. : " + bro);
}

public void RequestGuildJoin(string guildName)
{
var bro = Backend.Guild.GetGuildIndateByGuildNameV3(guildName);

if (bro.IsSuccess() == false)
{
Debug.LogError($"An error occurred while searching {guildName}. : " + bro);
return;
}

string guildInDate = bro.GetFlattenJSON()["guildInDate"].ToString();

bro = Backend.Guild.ApplyGuildV3(guildInDate);

if (bro.IsSuccess() == false)
{
Debug.LogError($"An error occurred while sending a join request to {guildName}({guildInDate}). : " + bro);
return;
}

Debug.Log($"Successfully sent guild join request to {guildName}({guildInDate}). : " + bro);
}

public void AcceptGuildJoinRequest(int index)
{
var bro = Backend.Guild.GetApplicantsV3();

if (bro.IsSuccess() == false)
{
Debug.LogError("An error occurred while loading the list of users who requested to join the guild. : " + bro);
return;
}

Debug.Log("Successfully loaded the list of users who requested to join the guild. : " + bro);


if (bro.FlattenRows().Count <= 0)
{
Debug.LogError("There are no users who requested to join. : " + bro);
return;
}

List<Tuple<string, string>> requestUserList = new List<Tuple<string, string>>();

foreach (LitJson.JsonData requestJson in bro.FlattenRows())
{
requestUserList.Add(new Tuple<string, string>(requestJson["nickname"].ToString(),
requestJson["inDate"].ToString()));
}

string userString = "Join request list\n";

for (int i = 0; i < requestUserList.Count; i++)
{
userString += $"{index}. {requestUserList[i].Item1}({requestUserList[i].Item2})\n";
}

Debug.Log(userString);

bro = Backend.Guild.ApproveApplicantV3(requestUserList[index].Item2);
if (bro.IsSuccess() == false)
{
Debug.LogError(
$"An error occurred while approving the join request of {requestUserList[index].Item1}({requestUserList[index].Item2}). : " + bro);
return;
}

Debug.Log($"Successfully accepted the join request of {requestUserList[index].Item1}({requestUserList[index].Item2}).: " + bro);
}

public void ContributeGoods()
{
var bro = Backend.Guild.ContributeGoodsV3(goodsType.goods1, 100);

if (bro.IsSuccess() == false)
{
Debug.LogError("An error occurred during guild contribution. : " + bro);
}

Debug.Log("Successfully contributed goods to the guild. : " + bro);
}
}

BackendManager.cs

using UnityEngine;


// Add BACKND SDK namespace
using BackEnd;

public class BackendManager : MonoBehaviour {
void Start() {
var bro = Backend.Initialize(); // Initialize BACKND

// Response value for BACKND initialization
if(bro.IsSuccess()) {
Debug.Log("Initialization successful : " + bro); // If successful, 'statusCode 204 Success'
} else {
Debug.LogError("Initialization failed : " + bro); // If failed, a 4xx statusCode error occurs
}

Test();
}

// A method that allows synchronous methods to be called from asynchronous methods (cannot be accessed by the Unity UI)
void Test() {


// #Step 1
BackendLogin.Instance.CustomLogin("user1", "1234"); // Log in as user1
// When 412 error occurs while creating a guild, the creation of the guild is unavailable because the user already belongs to a guild.
// Create a new user with CustomSignUp ("user3", "1234") to generate a guild.

BackendGuild.Instance.CreateGuild("Desired_guild_name"); // Method for creating guilds

// #Step 2
BackendLogin.Instance.CustomSignUp("guildUser", "1234"); // New sign-up of user for the guild
BackendLogin.Instance.UpdateNickname("guildUser"); // Nickname registration of user for the guild

// The guild name entered in CreateGuild during Step 1 should be entered as the parameter value
BackendGuild.Instance.RequestGuildJoin("Desired_guild_name");

// #Step 3
BackendLogin.Instance.CustomLogin("user1", "1234");
BackendGuild.Instance.AcceptGuildJoinRequest(0); // From users who sent join requests, accepts the one who sent the most recent request.

// #Step 4
BackendGuild.Instance.ContributeGoods(); // Guild goods contribution (addition) method

Debug.Log("Test complete.");
}
}