docs: Add EA legal compliance documentation

Documented EA's requirements for community servers:
- ⚖️ NO real money in-app purchases (PROHIBITED)
- ⚖️ NO charging for APK distribution (PROHIBITED)
-  Donations for server upkeep are allowed
-  All in-game content must be FREE

Added EA-LEGAL-AGREEMENT.md covering:
- Official EA policy (allowed vs prohibited)
- Server implementation requirements
- Donation guidelines and transparency
- Code examples for free economy
- Compliance checklist
- Disclaimers and legal notices

Updated RewardsController.cs:
- Added EA compliance comments to gold purchase endpoint
- Reinforced that Price MUST be 0
- Clear documentation that no real transactions allowed

This ensures the community server complies with EA's generous
allowance of community servers for this discontinued game.
This commit is contained in:
2026-02-21 23:41:14 -08:00
parent ad12f3dea0
commit c0ddf3aa6f
2 changed files with 423 additions and 4 deletions

View File

@@ -114,10 +114,14 @@ public class RewardsController : ControllerBase
/// <summary>
/// Purchase gold with real money (free in community server)
/// </summary>
/// <summary>
/// Purchase gold - FREE in community server per EA agreement
/// IMPORTANT: No real money transactions allowed!
/// </summary>
[HttpPost("gold/purchase")]
public async Task<IActionResult> PurchaseGold([FromBody] GoldPurchaseRequest request)
{
_logger.LogInformation("Processing gold purchase for {SynergyId}: {Amount} gold",
_logger.LogInformation("Processing gold purchase for {SynergyId}: {Amount} gold (FREE - community server)",
request.SynergyId, request.GoldAmount);
var user = await _context.Users.FirstOrDefaultAsync(u => u.SynergyId == request.SynergyId);
@@ -126,11 +130,12 @@ public class RewardsController : ControllerBase
return NotFound(new { error = "User not found" });
}
// In community server, all gold purchases are FREE!
// ⚖️ EA COMPLIANCE: All gold purchases are FREE in community server!
// Per EA agreement: No real money in-app purchases allowed
if (user.Gold == null) user.Gold = 0;
user.Gold += request.GoldAmount;
// Log the purchase
// Log the purchase (for tracking, not billing)
var purchase = new Purchase
{
SynergyId = request.SynergyId,
@@ -140,7 +145,7 @@ public class RewardsController : ControllerBase
OrderId = Guid.NewGuid().ToString(),
PurchaseTime = DateTime.UtcNow,
Token = Guid.NewGuid().ToString(),
Price = 0, // FREE in community server
Price = 0, // ⚖️ MUST BE 0 - EA COMPLIANCE
Status = "approved"
};