- Joined
- Apr 27, 2008
- Messages
- 446
- Reaction score
- 168
Unite
Features:
- Caching
- Security
- Free licensing
- From scratch
Snippets:
Code:
using System.Collections.Generic;using Unite.HabboHotel.Friendlist;
using Unite.HabboHotel.GameClients;
using Unite.HabboHotel.Users;
using Unite.HabboHotel.Users.Friendlist;
using Unite.Messages;
namespace Unite.Communication.Messages.Outgoing
{
internal class FriendlistComponents
{
public static void FriendCategoryData(ServerMessage serverMessage, FriendCategory friendCategory)
{
serverMessage.AppendInt(friendCategory.CategoryId);
serverMessage.AppendString(friendCategory.Name);
}
public static void FriendData(ServerMessage serverMessage, Friendship friendship)
{
User user = Unite.GetGame().UserManager.GetUser(friendship.FriendId);
serverMessage.AppendInt(user.Id);
serverMessage.AppendString(user.Name);
serverMessage.AppendInt(user.Gender == "M" ? 1 : 0);
serverMessage.AppendBoolean(user.Online);
serverMessage.AppendBoolean(user.FollowingAllowed);
serverMessage.AppendString(user.Figure);
serverMessage.AppendInt(friendship.CategoryId);
serverMessage.AppendString(user.Motto);
serverMessage.AppendString(user.LastAccess);
serverMessage.AppendString(user.RealName);
serverMessage.AppendBoolean(false); //PersistedMessageUser
serverMessage.AppendBoolean(false); //VipMember
serverMessage.AppendBoolean(false); //PocketHabboUser
serverMessage.AppendShort(0); //RelationshipStatus
}
public static void HabboSearchResultData(ServerMessage serverMessage, int userId)
{
User user = Unite.GetGame().UserManager.GetUser(userId);
serverMessage.AppendInt(user.Id);
serverMessage.AppendString(user.Name);
serverMessage.AppendString(user.Motto);
serverMessage.AppendBoolean(user.Online);
serverMessage.AppendBoolean(user.FollowingAllowed);
serverMessage.AppendString(user.LastAccess);
serverMessage.AppendInt(user.Gender == "M" ? 1 : 0);
serverMessage.AppendString(user.Figure);
serverMessage.AppendString(user.RealName);
}
public static void FriendRequest(ServerMessage serverMessage, FriendRequest friendRequest)
{
User user = Unite.GetGame().UserManager.GetUser(friendRequest.UserId);
serverMessage.AppendInt(friendRequest.UserId);
serverMessage.AppendString(user.Name);
serverMessage.AppendString(user.Figure);
}
public static void AcceptFriendFailureData(ServerMessage serverMessage, AcceptFriendFailure acceptFriendFailure)
{
serverMessage.AppendInt(acceptFriendFailure.SenderId);
serverMessage.AppendInt(acceptFriendFailure.ErrorCode);
}
}
internal class FriendlistComposers
{
public static void MessengerInitMessageComposer(GameClient gameClient, List<FriendCategory> friendCategories, List<Friendship> friendships)
{
var serverMessage = new ServerMessage(1603);
serverMessage.AppendInt(100); //_userFriendLimit
serverMessage.AppendInt(100); //_normalFriendLimit
serverMessage.AppendInt(100); //_extendedFriendLimit
serverMessage.AppendInt(100); //_evenMoreExtendedFriendLimit
serverMessage.AppendInt(friendCategories.Count);
foreach (FriendCategory friendCategory in friendCategories)
{
FriendlistComponents.FriendCategoryData(serverMessage, friendCategory);
}
serverMessage.AppendInt(friendships.Count);
foreach (Friendship friendship in friendships)
{
FriendlistComponents.FriendData(serverMessage, friendship);
}
gameClient.SendMessage(serverMessage);
}
public static void FriendRequestsMessageComposer(GameClient gameClient, List<FriendRequest> friendRequests)
{
var serverMessage = new ServerMessage(2313);
serverMessage.AppendInt(friendRequests.Count);
serverMessage.AppendInt(friendRequests.Count);
foreach (FriendRequest messengerRequest in friendRequests)
{
FriendlistComponents.FriendRequest(serverMessage, messengerRequest);
}
gameClient.SendMessage(serverMessage);
}
public static void AcceptFriendResultMessageComposer(GameClient gameClient, List<AcceptFriendFailure> failures)
{
var serverMessage = new ServerMessage(1859);
serverMessage.AppendInt(failures.Count);
foreach (var failure in failures)
{
FriendlistComponents.AcceptFriendFailureData(serverMessage, failure);
}
gameClient.SendMessage(serverMessage);
}
public static void FindFriendsProcessResultMessageComposer(GameClient gameClient, bool success)
{
var serverMessage = new ServerMessage(3955);
serverMessage.AppendBoolean(success);
gameClient.SendMessage(serverMessage);
}
public static void FollowFriendFailedMessageComposer(GameClient gameClient, int errorCode)
{
var serverMessage = new ServerMessage(621);
serverMessage.AppendInt(errorCode);
gameClient.SendMessage(serverMessage);
}
public static void FriendListUpdateMessageComposer(GameClient gameClient,
List<FriendCategory> updateCategories,
List<int> removedFriendIds, Dictionary<Friendship, int> updatedFriends)
{
var serverMessage = new ServerMessage(596);
serverMessage.AppendInt(updateCategories.Count);
foreach (var messengerCategory in updateCategories)
{
FriendlistComponents.FriendCategoryData(serverMessage, messengerCategory);
}
serverMessage.AppendInt(updatedFriends.Count + removedFriendIds.Count);
foreach (var buddy in removedFriendIds)
{
serverMessage.AppendInt(-1);
serverMessage.AppendInt(buddy);
}
foreach (var buddyUpdate in updatedFriends)
{
serverMessage.AppendInt(buddyUpdate.Value);
FriendlistComponents.FriendData(serverMessage, buddyUpdate.Key);
}
gameClient.SendMessage(serverMessage);
}
public static void FriendNotificationMessageComposer(GameClient gameClient,
FriendNotification friendNotification)
{
var serverMessage = new ServerMessage(2005);
serverMessage.AppendInt(friendNotification.TypeCode);
serverMessage.AppendString(friendNotification.AvatarId);
serverMessage.AppendString(friendNotification.Message);
gameClient.SendMessage(serverMessage);
}
public static void HabboSearchResultMessageComposer(GameClient gameClient, List<int> freinds,
List<int> others)
{
var serverMessage = new ServerMessage(390);
serverMessage.AppendInt(freinds.Count);
foreach (int messengerBuddy in freinds)
{
FriendlistComponents.HabboSearchResultData(serverMessage, messengerBuddy);
}
serverMessage.AppendInt(others.Count);
foreach (int messengerBuddy in others)
{
FriendlistComponents.HabboSearchResultData(serverMessage, messengerBuddy);
}
gameClient.SendMessage(serverMessage);
}
public static void InstantMessageErrorMessageComposer(GameClient gameClient, int errorCode, int userId,
string message)
{
var serverMessage = new ServerMessage(1180);
serverMessage.AppendInt(errorCode);
serverMessage.AppendInt(userId);
serverMessage.AppendString(message);
gameClient.SendMessage(serverMessage);
}
public static void MessengerErrorMessageComposer(GameClient gameClient, int clientMessageId, int errorCode)
{
var serverMessage = new ServerMessage(3543);
serverMessage.AppendInt(clientMessageId);
serverMessage.AppendInt(errorCode);
gameClient.SendMessage(serverMessage);
}
public static void MiniMailNewMessageMessageComposer(GameClient gameClient)
{
var serverMessage = new ServerMessage(113);
gameClient.SendMessage(serverMessage);
}
public static void MiniMailUnreadCountMessageComposer(GameClient gameClient, int unreadMessageCount)
{
var serverMessage = new ServerMessage(1822);
serverMessage.AppendInt(unreadMessageCount);
gameClient.SendMessage(serverMessage);
}
public static void NewConsoleMessageMessageComposer(GameClient gameClient, int senderId, string messageText,
int secondsSinceSent)
{
var serverMessage = new ServerMessage(2393);
serverMessage.AppendInt(senderId);
serverMessage.AppendString(messageText);
serverMessage.AppendInt(secondsSinceSent);
gameClient.SendMessage(serverMessage);
}
public static void NewFriendRequestMessageComposer(GameClient gameClient, FriendRequest friendRequest)
{
var serverMessage = new ServerMessage(2279);
FriendlistComponents.FriendRequest(serverMessage, friendRequest);
gameClient.SendMessage(serverMessage);
}
public static void RoomInviteErrorMessageComposer(GameClient gameClient, int errorCode,
List<int> failedRecipients)
{
var serverMessage = new ServerMessage(1832);
serverMessage.AppendInt(errorCode);
serverMessage.AppendInt(failedRecipients.Count);
foreach (var failedRecipient in failedRecipients)
{
serverMessage.AppendInt(failedRecipient);
}
gameClient.SendMessage(serverMessage);
}
public static void RoomInviteMessageComposer(GameClient gameClient, int senderId, string messageText)
{
var serverMessage = new ServerMessage(2557);
serverMessage.AppendInt(senderId);
serverMessage.AppendString(messageText);
gameClient.SendMessage(serverMessage);
}
}
}
Code:
using System.Collections.Generic;using System.Data;
using System.Linq;
using Unite.Core;
using Unite.HabboHotel.Catalog.Enum;
using Unite.Storage;
namespace Unite.HabboHotel.Catalog
{
internal class CatalogManager
{
private CatalogNode _rootNodeNormal;
private CatalogNode _rootNodeBuilder;
private readonly List<CatalogPage> _catalogPages;
private readonly List<CatalogProduct> _catalogProducts;
public CatalogManager()
{
_catalogPages = new List<CatalogPage>();
_catalogProducts = new List<CatalogProduct>();
}
public void Initialize(DatabaseClient databaseClient)
{
Logging.Write("[CatalogManager] ");
_catalogPages.Clear();
_catalogProducts.Clear();
var catalogProductsDataTable = databaseClient.ReadDataTable("SELECT * FROM catalog_products");
if (catalogProductsDataTable == null) return;
foreach (DataRow catalogProductDataRow in catalogProductsDataTable.Rows)
{
_catalogProducts.Add(new CatalogProduct((int) catalogProductDataRow["ProductId"],
(string) catalogProductDataRow["ProductType"], (int) catalogProductDataRow["FurniClassId"],
(string) catalogProductDataRow["ExtraParam"], (int) catalogProductDataRow["ProductCount"],
Unite.EnumToBool((string) catalogProductDataRow["UniqueLimitedItem"]),
(int) catalogProductDataRow["UniqueLimitedItemSeriesSize"],
(int) catalogProductDataRow["UniqueLimitedItemsLeft"]));
}
var catalogPagesDataTable = databaseClient.ReadDataTable("SELECT * FROM catalog_pages");
if (catalogPagesDataTable == null) return;
foreach (DataRow catalogPageDataRow in catalogPagesDataTable.Rows)
{
databaseClient.AddParamWithValue("PageId", (int) catalogPageDataRow["PageId"]);
var catalogOffersDataTable =
databaseClient.ReadDataTable("SELECT * FROM catalog_offers WHERE PageId = [USER=1333342663]Page[/USER]Id");
_catalogPages.Add(new CatalogPage((int) catalogPageDataRow["PageId"], (int) catalogPageDataRow["Parent"],
(string) catalogPageDataRow["PageName"], (string) catalogPageDataRow["Localization"],
(int) catalogPageDataRow["Icon"],
Unite.EnumToBool((string) catalogPageDataRow["Visible"]),
(string) catalogPageDataRow["CatalogType"],
(string) catalogPageDataRow["LayoutCode"],
((string) catalogPageDataRow["Images"] == ""
? new List<string>()
: ((string) catalogPageDataRow["Images"]).Split('|').ToList()),
((string) catalogPageDataRow["Texts"] == ""
? new List<string>()
: ((string) catalogPageDataRow["Texts"]).Split('|').ToList()),
(from DataRow catalogOfferDataRow in catalogOffersDataTable.Rows
select
new CatalogOffer((int) catalogOfferDataRow["OfferId"],
(string) catalogOfferDataRow["LocalizationId"],
(int) catalogOfferDataRow["PriceInCredits"],
(int) catalogOfferDataRow["PriceInActivityPoints"],
(int) catalogOfferDataRow["ActivityPointType"], (int) catalogOfferDataRow["ClubLevel"],
Unite.EnumToBool((string) catalogOfferDataRow["Rent"]),
Unite.EnumToBool((string) catalogOfferDataRow["Giftable"]),
Unite.EnumToBool((string) catalogOfferDataRow["BundlePurchaseAllowed"]),
(string) catalogOfferDataRow["Products"] == ""
? new List<CatalogProduct>()
: ((string) catalogOfferDataRow["Products"]).Split(',')
.Select(
productId =>
_catalogProducts.Find(
product => product.ProductId == int.Parse(productId)))
.ToList())).ToList(), (int) catalogPageDataRow["OfferId"],
Unite.EnumToBool((string) catalogPageDataRow["AcceptSeasonCurrencyAsCredits"])));
}
_rootNodeNormal = new CatalogNode(CatalogType.Normal);
_rootNodeBuilder = new CatalogNode(CatalogType.Builder);
Logging.WriteLine("Initialization done.");
}
public CatalogNode GetCatalogNode(string catalogType)
{
switch (catalogType)
{
case CatalogType.Normal:
return _rootNodeNormal;
case CatalogType.Builder:
return _rootNodeBuilder;
default:
return _rootNodeNormal;
}
}
public CatalogPage GetCatalogPage(int pageId)
{
return _catalogPages.Find(catalogPage => catalogPage.PageId == pageId);
}
public List<CatalogPage> GetCatalogPages(int parent, string catalogType)
{
return
_catalogPages.Where(
catalogPage => catalogPage.CatalogType == catalogType && catalogPage.Parent == parent).ToList();
}
public List<CatalogPage> GetCatalogPages(int parent)
{
return _catalogPages.Where(catalogPage => catalogPage.Parent == parent).ToList();
}
}
}