mirror of
https://github.com/oshima-studios/OshimaGameModule.git
synced 2026-01-19 14:08:23 +00:00
再次修复市场分页BUG
This commit is contained in:
parent
7b64ec028a
commit
78e2cb095a
@ -6,10 +6,10 @@ namespace Oshima.Core
|
||||
{
|
||||
public class OSMCore
|
||||
{
|
||||
public const string version = "v1.0";
|
||||
public const string version2 = "Rebirth";
|
||||
public const string version = "v2.0";
|
||||
public const string version2 = "Release";
|
||||
|
||||
public static string Info => $"OSM Core {version} {version2}\r\nAuthor: Milimoe\r\nBuilt on {GetBuiltTime(Assembly.GetExecutingAssembly().Location)}\r\nSee: https://github.com/milimoe";
|
||||
public static string Info => $"OSM Core {version} {version2}\r\nAuthor: Milimoe\r\nBuilt at {GetBuiltTime(Assembly.GetExecutingAssembly().Location)}\r\nSee: https://github.com/milimoe";
|
||||
|
||||
public static string GetBuiltTime(string dll_name)
|
||||
{
|
||||
|
||||
@ -1331,7 +1331,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
{
|
||||
for (int i = 0; i < box.Gifts[name]; i++)
|
||||
{
|
||||
AddItemToUserInventory(user, currentItem, toExploreCache: false, toActivitiesCache: false);
|
||||
AddItemToUserInventory(user, currentItem, copyLevel: item.ItemType == ItemType.MagicCard, toExploreCache: false, toActivitiesCache: false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2006,7 +2006,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
{
|
||||
if (FunGameConstant.AllItems.FirstOrDefault(i => i.Name == item.Name) != null)
|
||||
{
|
||||
AddItemToUserInventory(user, item);
|
||||
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2984,7 +2984,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
{
|
||||
for (int i = 0; i < model.Awards[name]; i++)
|
||||
{
|
||||
AddItemToUserInventory(user, item);
|
||||
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3879,7 +3879,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
regionItems.Add($"{award} 个{item.Name}(来自{region.Name})");
|
||||
for (int j = 0; j < award; j++)
|
||||
{
|
||||
AddItemToUserInventory(user, item);
|
||||
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||
}
|
||||
}
|
||||
builder.AppendLine($"{string.Join("、", regionItems)}!");
|
||||
@ -3906,7 +3906,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
characterLevelBreakItems.Add($"{award} 个{item.Name}");
|
||||
for (int j = 0; j < award; j++)
|
||||
{
|
||||
AddItemToUserInventory(user, item);
|
||||
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||
}
|
||||
}
|
||||
builder.AppendLine($"{string.Join("、", characterLevelBreakItems)}!");
|
||||
@ -3933,7 +3933,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
skillLevelUpItems.Add($"{award} 个{item.Name}");
|
||||
for (int j = 0; j < award; j++)
|
||||
{
|
||||
AddItemToUserInventory(user, item);
|
||||
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||
}
|
||||
}
|
||||
builder.AppendLine($"{string.Join("、", skillLevelUpItems)}!");
|
||||
@ -4104,7 +4104,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
regionItems.Add($"{award} 个{item.Name}(来自{region.Name})");
|
||||
for (int j = 0; j < award; j++)
|
||||
{
|
||||
AddItemToUserInventory(user, item);
|
||||
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||
}
|
||||
}
|
||||
builder.AppendLine($"{string.Join("、", regionItems)}!");
|
||||
@ -4131,7 +4131,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
characterLevelBreakItems.Add($"{award} 个{item.Name}");
|
||||
for (int j = 0; j < award; j++)
|
||||
{
|
||||
AddItemToUserInventory(user, item);
|
||||
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||
}
|
||||
}
|
||||
builder.AppendLine($"{string.Join("、", characterLevelBreakItems)}!");
|
||||
@ -4158,7 +4158,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
skillLevelUpItems.Add($"{award} 个{item.Name}");
|
||||
for (int j = 0; j < award; j++)
|
||||
{
|
||||
AddItemToUserInventory(user, item);
|
||||
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||
}
|
||||
}
|
||||
builder.AppendLine($"{string.Join("、", skillLevelUpItems)}!");
|
||||
@ -4435,9 +4435,9 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
if (page <= 0) page = 1;
|
||||
IEnumerable<MarketItem> marketItems = market.MarketItems.Values;
|
||||
if (showListed) marketItems = marketItems.Where(g => g.Status == MarketItemState.Listed);
|
||||
int maxPage = market.MarketItems.Values.MaxPage(8);
|
||||
int maxPage = marketItems.MaxPage(8);
|
||||
if (page > maxPage) page = maxPage;
|
||||
marketItems = market.MarketItems.Values.GetPage(page, 8);
|
||||
marketItems = marketItems.GetPage(page, 8);
|
||||
|
||||
StringBuilder builder = new();
|
||||
|
||||
|
||||
@ -7486,9 +7486,61 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
||||
{
|
||||
msg += FunGameService.GetMarketItemInfo(marketItem, true, user) + "\r\n";
|
||||
}
|
||||
msg += $"页数:{page} / {maxPage},使用【市场+页码】快速跳转指定页面。";
|
||||
msg += $"页数:{page} / {maxPage},使用【我的市场+页码】快速跳转指定页面。";
|
||||
}
|
||||
else msg += "你还没有上架过任何物品。";
|
||||
else msg += "你在近三天内还未上架过任何物品。";
|
||||
|
||||
FunGameService.ReleaseMarketSemaphoreSlim();
|
||||
FunGameService.SetUserConfigAndReleaseSemaphoreSlim(userid, pc, user);
|
||||
|
||||
return msg.Trim();
|
||||
}
|
||||
else
|
||||
{
|
||||
FunGameService.ReleaseUserSemaphoreSlim(userid);
|
||||
return noSaved;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
FunGameService.ReleaseMarketSemaphoreSlim();
|
||||
FunGameService.ReleaseUserSemaphoreSlim(userid);
|
||||
if (Logger.IsEnabled(Microsoft.Extensions.Logging.LogLevel.Error)) Logger.LogError(e, "Error: {e}", e);
|
||||
return busy;
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost("marketshowlistmybuys")]
|
||||
public string MarketShowListMyBuys([FromQuery] long userid = -1, [FromQuery] int page = 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
PluginConfig pc = FunGameService.GetUserConfig(userid, out _);
|
||||
|
||||
if (pc.Count > 0)
|
||||
{
|
||||
User user = FunGameService.GetUser(pc);
|
||||
|
||||
FunGameService.GetMarketSemaphoreSlim();
|
||||
|
||||
EntityModuleConfig<Market> emc = new("markets", "general");
|
||||
emc.LoadConfig();
|
||||
Market market = emc.Get("dokyo") ?? new("铎京集市");
|
||||
string msg = "☆--- 我的市场购买记录 ---☆\r\n";
|
||||
MarketItem[] marketItems = [.. market.MarketItems.Values.Where(m => m.Buyers.Contains(userid))];
|
||||
if (marketItems.Length > 0)
|
||||
{
|
||||
if (page <= 0) page = 1;
|
||||
int maxPage = marketItems.MaxPage(8);
|
||||
if (page > maxPage) page = maxPage;
|
||||
marketItems = [.. marketItems.GetPage(page, 8)];
|
||||
foreach (MarketItem marketItem in marketItems)
|
||||
{
|
||||
msg += FunGameService.GetMarketItemInfo(marketItem, true, user) + "\r\n";
|
||||
}
|
||||
msg += $"页数:{page} / {maxPage},使用【我的购买+页码】快速跳转指定页面。";
|
||||
}
|
||||
else msg += "你在近三天内还未购买过任何物品。";
|
||||
|
||||
FunGameService.ReleaseMarketSemaphoreSlim();
|
||||
FunGameService.SetUserConfigAndReleaseSemaphoreSlim(userid, pc, user);
|
||||
@ -7590,7 +7642,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
||||
double fee = amount * 0.15;
|
||||
double net = amount - fee;
|
||||
user2.Inventory.Credits += net;
|
||||
FunGameService.AddNotice(userid2, $"【市场通知】你售出了 {count} 件{item.Name}!净收入 {net:0.##} {General.GameplayEquilibriumConstant.InGameCurrency};市场收取手续费 {fee:0.##} {General.GameplayEquilibriumConstant.InGameCurrency}。");
|
||||
FunGameService.AddNotice(userid2, $"【市场通知】你售出了 {count} 件{item.Name}([{ItemSet.GetQualityTypeName(item.Item.QualityType)}|{ItemSet.GetItemTypeName(item.Item.ItemType)}] {item.Item.Name})!净收入 {net:0.##} {General.GameplayEquilibriumConstant.InGameCurrency};市场收取手续费 {fee:0.##} {General.GameplayEquilibriumConstant.InGameCurrency}。");
|
||||
FunGameService.SetUserConfigButNotRelease(userid2, pc2, user2, false);
|
||||
}
|
||||
FunGameService.ReleaseUserSemaphoreSlim(userid2);
|
||||
|
||||
@ -2782,6 +2782,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
await SendAsync(e, "挑战金币秘境", msg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -2797,6 +2801,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
await SendAsync(e, "挑战钻石秘境", msg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -2812,6 +2820,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
await SendAsync(e, "挑战经验秘境", msg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -2827,6 +2839,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
await SendAsync(e, "挑战地区秘境", msg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -2842,6 +2858,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
await SendAsync(e, "挑战突破秘境", msg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -2857,6 +2877,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
await SendAsync(e, "挑战技能秘境", msg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -2872,6 +2896,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
await SendAsync(e, "挑战魔法卡秘境", msg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -3204,6 +3232,25 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
return result;
|
||||
}
|
||||
|
||||
if (e.Detail.StartsWith("我的购买"))
|
||||
{
|
||||
string detail = e.Detail.Replace("我的购买", "").Trim();
|
||||
string msg = "";
|
||||
if (int.TryParse(detail, out int page))
|
||||
{
|
||||
msg = Controller.MarketShowListMyBuys(uid, page);
|
||||
}
|
||||
else
|
||||
{
|
||||
msg = Controller.MarketShowListMyBuys(uid, 1);
|
||||
}
|
||||
if (msg.Trim() != "")
|
||||
{
|
||||
await SendAsync(e, "我的购买", msg);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
if (e.Detail.StartsWith("市场"))
|
||||
{
|
||||
string detail = e.Detail.Replace("市场", "").Trim();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user