Skip to content
Permalink
Browse files
Different room information if public or private room
  • Loading branch information
TheAmazingAussie committed Sep 16, 2017
1 parent afbd2b3 commit e91d2a5
Show file tree
Hide file tree
Showing 9 changed files with 43 additions and 11 deletions.
@@ -6,7 +6,7 @@ namespace AuroraEmu.DI.Database.DAO
{
public interface INavigatorDao
{
List<FrontpageItem> ReloadFrontpageItems(List<FrontpageItem> frontpageItems);
Dictionary<int, FrontpageItem> ReloadFrontpageItems(Dictionary<int, FrontpageItem> frontpageItems);

Dictionary<int, RoomCategory> ReloadCategories(Dictionary<int, RoomCategory> categories);

@@ -6,7 +6,7 @@ namespace AuroraEmu.DI.Game.Navigator
{
public interface INavigatorController
{
List<FrontpageItem> FrontpageItems { get; set; }
Dictionary<int, FrontpageItem> FrontpageItems { get; set; }

Dictionary<int, RoomCategory> Categories { get; set; }

@@ -7,7 +7,7 @@ namespace AuroraEmu.Database.DAO
{
public class NavigatorDao : INavigatorDao
{
public List<FrontpageItem> ReloadFrontpageItems(List<FrontpageItem> frontpageItems)
public Dictionary<int, FrontpageItem> ReloadFrontpageItems(Dictionary<int, FrontpageItem> frontpageItems)
{
frontpageItems.Clear();

@@ -16,7 +16,7 @@ public List<FrontpageItem> ReloadFrontpageItems(List<FrontpageItem> frontpageIte
dbConnection.SetQuery("SELECT * FROM frontpage_items;");
using (var reader = dbConnection.ExecuteReader())
while (reader.Read())
frontpageItems.Add(new FrontpageItem(reader));
frontpageItems.Add(reader.GetInt32("room_id"), new FrontpageItem(reader));
}

return frontpageItems;
@@ -12,6 +12,7 @@ public class FrontpageItem
public int Type { get; set; }
public string Tag { get; set; }
public int RoomId { get; set; }
public string ExternalText { get; set; }

public FrontpageItem(MySqlDataReader reader)
{
@@ -23,6 +24,7 @@ public FrontpageItem(MySqlDataReader reader)
Type = reader.GetInt32("type");
Tag = reader.GetString("tag");
RoomId = reader.GetInt32("room_id");
ExternalText = reader.GetString("external_text");
}
}
}
@@ -6,13 +6,13 @@ namespace AuroraEmu.Game.Navigator
{
public class NavigatorController : INavigatorController
{
public List<FrontpageItem> FrontpageItems { get; set; }
public Dictionary<int, FrontpageItem> FrontpageItems { get; set; }
public Dictionary<int, RoomCategory> Categories { get; set; }


public NavigatorController()
{
FrontpageItems = new List<FrontpageItem>();
FrontpageItems = new Dictionary<int, FrontpageItem>();
Categories = new Dictionary<int, RoomCategory>();

ReloadFrontpageItems();
@@ -1,6 +1,7 @@
using AuroraEmu.Database;
using AuroraEmu.Game.Clients;
using AuroraEmu.Game.Items;
using AuroraEmu.Game.Navigator;
using AuroraEmu.Game.Rooms.Components;
using AuroraEmu.Game.Rooms.User;
using AuroraEmu.Network.Game.Packets;
@@ -29,6 +30,21 @@ public class Room
public string CCTs { get; }
public bool ShowOwner { get; set; }
public bool AllPlayerRights { get; set; }
public bool IsFrontpageItem
{
get
{
return Engine.MainDI.NavigatorController.FrontpageItems.ContainsKey(Id);
}
}
public FrontpageItem FrontpageItem
{
get
{
return Engine.MainDI.NavigatorController.FrontpageItems[Id];
}
}

public string Icon { get; set; }
public int Floor { get; set; }
public int Wallpaper { get; set; }
@@ -48,7 +64,6 @@ public class Room
return _items;
}
}

public ConcurrentDictionary<int, RoomActor> Actors { get; private set; }
private ProcessComponent ProcessComponent { get; set; }

@@ -6,13 +6,13 @@ namespace AuroraEmu.Network.Game.Packets.Composers.Navigator
{
class OfficialRoomsComposer : MessageComposer
{
public OfficialRoomsComposer(IList<FrontpageItem> frontpageItems)
public OfficialRoomsComposer(IDictionary<int, FrontpageItem> frontpageItems)
: base(450)
{
AppendVL64(0);
AppendVL64(frontpageItems.Count);

foreach (FrontpageItem item in frontpageItems)
foreach (FrontpageItem item in frontpageItems.Values)
{
AppendString(item.Name);
AppendString(item.Description);
@@ -9,5 +9,13 @@ public RoomEntryInfoMessageComposer(bool privateRoom, int roomId, bool rights)
AppendVL64(roomId);
AppendVL64(rights);
}

public RoomEntryInfoMessageComposer(string model)
: base(471)
{
AppendVL64(false);
AppendString(model);
AppendVL64(false);
}
}
}
@@ -19,8 +19,15 @@ public void Run(Client client, MessageEvent msgEvent)
room.AddUserActor(client);
client.CurrentRoom.SendComposer(new UsersMessageComposer(client.UserActor));

client.QueueComposer(new RoomEntryInfoMessageComposer(true, client.CurrentRoom.Id, true));
client.QueueComposer(new GetGuestRoomResultComposer(client.CurrentRoom));
if (room.IsFrontpageItem)
{
client.QueueComposer(new RoomEntryInfoMessageComposer(room.FrontpageItem.ExternalText));
}
else
{
client.QueueComposer(new RoomEntryInfoMessageComposer(true, client.CurrentRoom.Id, true));
client.QueueComposer(new GetGuestRoomResultComposer(client.CurrentRoom));
}

client.QueueComposer(new ObjectsMessageComposer(client.CurrentRoom.GetFloorItems()));
client.QueueComposer(new ItemsMessageComposer(client.CurrentRoom.GetWallItems()));

0 comments on commit e91d2a5

Please sign in to comment.