Skip to content

Commit c52c2df

Browse files
committed
Initial commit: ClassIsland.Achievements plugin (GPLv3)
1 parent c7517b1 commit c52c2df

17 files changed

Lines changed: 854 additions & 70 deletions

File tree

ClassIsland.PluginTemplate.Packaging/ClassIsland.PluginTemplate.Packaging.csproj renamed to ClassIsland.Achievements.Packaging/ClassIsland.Achievements.Packaging.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
<PropertyGroup>
44
<!-- The package metadata. Fill in the properties marked as TODO below -->
55
<!-- Follow the instructions on https://learn.microsoft.com/en-us/nuget/create-packages/package-authoring-best-practices -->
6-
<PackageId>ClassIsland.PluginTemplate.Packaging</PackageId>
6+
<PackageId>ClassIsland.Achievements.Packaging</PackageId>
77
<PackageVersion>1.0</PackageVersion>
8-
<Title>ClassIsland 2 插件模板</Title>
8+
<Title>ClassIsland Achievements Plugin</Title>
99
<Authors>ClassIsland</Authors>
10-
<Description>适用于 ClassIsland 2 的空白插件模板。</Description>
10+
<Description>ClassIsland Achievements Plugin.</Description>
1111
<PackageTags>dotnet-new;templates;classisland</PackageTags>
1212
<PackageProjectUrl>https://www.classisland.tech</PackageProjectUrl>
1313

@@ -20,7 +20,7 @@
2020
<NoWarn>$(NoWarn);NU5128</NoWarn>
2121
<NoDefaultExcludes>true</NoDefaultExcludes>
2222
<PackageReadmeFile>README.md</PackageReadmeFile>
23-
<PackageLicenseExpression>MIT</PackageLicenseExpression>
23+
<PackageLicenseExpression>GPL-3.0-only</PackageLicenseExpression>
2424
</PropertyGroup>
2525

2626
<PropertyGroup>
File renamed without changes.

ClassIsland.PluginTemplate.Packaging/content/ClassIsland.PluginTemplate2 renamed to ClassIsland.Achievements.Packaging/content/ClassIsland.PluginTemplate2

File renamed without changes.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassIsland.PluginTemplate2", "ClassIsland.PluginTemplate2\ClassIsland.PluginTemplate2.csproj", "{4E72A84B-64E6-4ADD-BE0F-78C7964E299F}"
3+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassIsland.Achievements", "ClassIsland.Achievements\ClassIsland.Achievements.csproj", "{4E72A84B-64E6-4ADD-BE0F-78C7964E299F}"
44
EndProject
5-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassIsland.PluginTemplate.Packaging", "ClassIsland.PluginTemplate.Packaging\ClassIsland.PluginTemplate.Packaging.csproj", "{66AD546C-8BD8-4BC5-AEBD-5275CD432822}"
5+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassIsland.Achievements.Packaging", "ClassIsland.Achievements.Packaging\ClassIsland.Achievements.Packaging.csproj", "{66AD546C-8BD8-4BC5-AEBD-5275CD432822}"
66
EndProject
77
Global
88
GlobalSection(SolutionConfigurationPlatforms) = preSolution

ClassIsland.PluginTemplate2/.template.config/template.json renamed to ClassIsland.Achievements/.template.config/template.json

File renamed without changes.

ClassIsland.PluginTemplate2/ClassIsland.PluginTemplate2.csproj renamed to ClassIsland.Achievements/ClassIsland.Achievements.csproj

File renamed without changes.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
namespace ClassIsland.Achievements.Models;
2+
3+
public class Achievement
4+
{
5+
public string Id { get; set; } = string.Empty;
6+
public string Name { get; set; } = string.Empty;
7+
public string Description { get; set; } = string.Empty;
8+
public string IconPath { get; set; } = string.Empty;
9+
public bool IsUnlocked { get; set; }
10+
public DateTime? UnlockedTime { get; set; }
11+
}

ClassIsland.Achievements/Plugin.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using ClassIsland.Core;
2+
using ClassIsland.Core.Abstractions;
3+
using ClassIsland.Core.Attributes;
4+
using ClassIsland.Core.Controls;
5+
using ClassIsland.Achievements.Services;
6+
using ClassIsland.Shared;
7+
using Microsoft.Extensions.DependencyInjection;
8+
using Microsoft.Extensions.Hosting;
9+
10+
namespace ClassIsland.Achievements;
11+
12+
[PluginEntrance]
13+
public class Plugin : PluginBase
14+
{
15+
public override void Initialize(HostBuilderContext context, IServiceCollection services)
16+
{
17+
services.AddSingleton<IAchievementService, AchievementService>();
18+
19+
AppBase.Current.AppStarted += (_, _) =>
20+
{
21+
var achievementService = IAppHost.GetService<IAchievementService>();
22+
achievementService?.UnlockAchievement("hello_world");
23+
};
24+
}
25+
}

ClassIsland.PluginTemplate2/Properties/launchSettings.json renamed to ClassIsland.Achievements/Properties/launchSettings.json

File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)