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 class OSMCore
|
||||||
{
|
{
|
||||||
public const string version = "v1.0";
|
public const string version = "v2.0";
|
||||||
public const string version2 = "Rebirth";
|
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)
|
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++)
|
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)
|
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++)
|
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})");
|
regionItems.Add($"{award} 个{item.Name}(来自{region.Name})");
|
||||||
for (int j = 0; j < award; j++)
|
for (int j = 0; j < award; j++)
|
||||||
{
|
{
|
||||||
AddItemToUserInventory(user, item);
|
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
builder.AppendLine($"{string.Join("、", regionItems)}!");
|
builder.AppendLine($"{string.Join("、", regionItems)}!");
|
||||||
@ -3906,7 +3906,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
characterLevelBreakItems.Add($"{award} 个{item.Name}");
|
characterLevelBreakItems.Add($"{award} 个{item.Name}");
|
||||||
for (int j = 0; j < award; j++)
|
for (int j = 0; j < award; j++)
|
||||||
{
|
{
|
||||||
AddItemToUserInventory(user, item);
|
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
builder.AppendLine($"{string.Join("、", characterLevelBreakItems)}!");
|
builder.AppendLine($"{string.Join("、", characterLevelBreakItems)}!");
|
||||||
@ -3933,7 +3933,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
skillLevelUpItems.Add($"{award} 个{item.Name}");
|
skillLevelUpItems.Add($"{award} 个{item.Name}");
|
||||||
for (int j = 0; j < award; j++)
|
for (int j = 0; j < award; j++)
|
||||||
{
|
{
|
||||||
AddItemToUserInventory(user, item);
|
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
builder.AppendLine($"{string.Join("、", skillLevelUpItems)}!");
|
builder.AppendLine($"{string.Join("、", skillLevelUpItems)}!");
|
||||||
@ -4104,7 +4104,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
regionItems.Add($"{award} 个{item.Name}(来自{region.Name})");
|
regionItems.Add($"{award} 个{item.Name}(来自{region.Name})");
|
||||||
for (int j = 0; j < award; j++)
|
for (int j = 0; j < award; j++)
|
||||||
{
|
{
|
||||||
AddItemToUserInventory(user, item);
|
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
builder.AppendLine($"{string.Join("、", regionItems)}!");
|
builder.AppendLine($"{string.Join("、", regionItems)}!");
|
||||||
@ -4131,7 +4131,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
characterLevelBreakItems.Add($"{award} 个{item.Name}");
|
characterLevelBreakItems.Add($"{award} 个{item.Name}");
|
||||||
for (int j = 0; j < award; j++)
|
for (int j = 0; j < award; j++)
|
||||||
{
|
{
|
||||||
AddItemToUserInventory(user, item);
|
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
builder.AppendLine($"{string.Join("、", characterLevelBreakItems)}!");
|
builder.AppendLine($"{string.Join("、", characterLevelBreakItems)}!");
|
||||||
@ -4158,7 +4158,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
skillLevelUpItems.Add($"{award} 个{item.Name}");
|
skillLevelUpItems.Add($"{award} 个{item.Name}");
|
||||||
for (int j = 0; j < award; j++)
|
for (int j = 0; j < award; j++)
|
||||||
{
|
{
|
||||||
AddItemToUserInventory(user, item);
|
AddItemToUserInventory(user, item, copyLevel: item.ItemType == ItemType.MagicCard);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
builder.AppendLine($"{string.Join("、", skillLevelUpItems)}!");
|
builder.AppendLine($"{string.Join("、", skillLevelUpItems)}!");
|
||||||
@ -4435,9 +4435,9 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
if (page <= 0) page = 1;
|
if (page <= 0) page = 1;
|
||||||
IEnumerable<MarketItem> marketItems = market.MarketItems.Values;
|
IEnumerable<MarketItem> marketItems = market.MarketItems.Values;
|
||||||
if (showListed) marketItems = marketItems.Where(g => g.Status == MarketItemState.Listed);
|
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;
|
if (page > maxPage) page = maxPage;
|
||||||
marketItems = market.MarketItems.Values.GetPage(page, 8);
|
marketItems = marketItems.GetPage(page, 8);
|
||||||
|
|
||||||
StringBuilder builder = new();
|
StringBuilder builder = new();
|
||||||
|
|
||||||
|
|||||||
@ -7486,9 +7486,61 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
{
|
{
|
||||||
msg += FunGameService.GetMarketItemInfo(marketItem, true, user) + "\r\n";
|
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.ReleaseMarketSemaphoreSlim();
|
||||||
FunGameService.SetUserConfigAndReleaseSemaphoreSlim(userid, pc, user);
|
FunGameService.SetUserConfigAndReleaseSemaphoreSlim(userid, pc, user);
|
||||||
@ -7590,7 +7642,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
double fee = amount * 0.15;
|
double fee = amount * 0.15;
|
||||||
double net = amount - fee;
|
double net = amount - fee;
|
||||||
user2.Inventory.Credits += net;
|
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.SetUserConfigButNotRelease(userid2, pc2, user2, false);
|
||||||
}
|
}
|
||||||
FunGameService.ReleaseUserSemaphoreSlim(userid2);
|
FunGameService.ReleaseUserSemaphoreSlim(userid2);
|
||||||
|
|||||||
@ -2782,6 +2782,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
|||||||
await SendAsync(e, "挑战金币秘境", msg);
|
await SendAsync(e, "挑战金币秘境", msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2797,6 +2801,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
|||||||
await SendAsync(e, "挑战钻石秘境", msg);
|
await SendAsync(e, "挑战钻石秘境", msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2812,6 +2820,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
|||||||
await SendAsync(e, "挑战经验秘境", msg);
|
await SendAsync(e, "挑战经验秘境", msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2827,6 +2839,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
|||||||
await SendAsync(e, "挑战地区秘境", msg);
|
await SendAsync(e, "挑战地区秘境", msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2842,6 +2858,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
|||||||
await SendAsync(e, "挑战突破秘境", msg);
|
await SendAsync(e, "挑战突破秘境", msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2857,6 +2877,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
|||||||
await SendAsync(e, "挑战技能秘境", msg);
|
await SendAsync(e, "挑战技能秘境", msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2872,6 +2896,10 @@ namespace Oshima.FunGame.WebAPI.Services
|
|||||||
await SendAsync(e, "挑战魔法卡秘境", msg);
|
await SendAsync(e, "挑战魔法卡秘境", msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await SendAsync(e, "挑战秘境", "请在指令后面输入难度系数(1-5)");
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3204,6 +3232,25 @@ namespace Oshima.FunGame.WebAPI.Services
|
|||||||
return result;
|
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("市场"))
|
if (e.Detail.StartsWith("市场"))
|
||||||
{
|
{
|
||||||
string detail = e.Detail.Replace("市场", "").Trim();
|
string detail = e.Detail.Replace("市场", "").Trim();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user