mirror of
https://github.com/islehorse/HISP.git
synced 2025-04-13 08:29:49 +12:00
Add distinciton between subscribed and non subscribed users.
This commit is contained in:
parent
7ed2389152
commit
1ed964aacf
4 changed files with 101 additions and 8 deletions
|
@ -76,6 +76,25 @@
|
||||||
"end_of_meta":"^Z",
|
"end_of_meta":"^Z",
|
||||||
"back_to_map":"^M",
|
"back_to_map":"^M",
|
||||||
"long_full_line":"^L",
|
"long_full_line":"^L",
|
||||||
|
"stats_page":{
|
||||||
|
"stats_bar_format":"^ATPlayer %USERNAME%'s Details^H",
|
||||||
|
"stats_area_format":"Currently in %AREA%",
|
||||||
|
"stats_money_format":"<BR>Money: <FONT COLOR='#003300'>$%MONEY%</FONT>",
|
||||||
|
"stats_freetime_format":"<BR>Today's Free Time Remaining: <B>%FREEMINUTES% minutes.</B>",
|
||||||
|
"stats_description_format":"<BR>Description: <B>%PLAYERDESC%</B>",
|
||||||
|
"stats_experience":"<BR>^HExperience: <B>%EXPERIENCE%</B>",
|
||||||
|
"stats_questpoints":"<BR>Quest Points: <B>%QUESTPOINTS%</B>",
|
||||||
|
"stats_hunger":"<BR>Hunger: <B>%HUNGER%</B>",
|
||||||
|
"stats_thisrt":"<BR>Thirst: <B>%THIRST%</B>",
|
||||||
|
"stats_tiredness":"<BR>Tiredness: <B>%TIRED%</B>",
|
||||||
|
"stats_gender":"<BR>Gender: <B>%GENDER%</B>",
|
||||||
|
"stats_equipped":"<BR>%JEWELFORMAT%",
|
||||||
|
"stats_competion_gear":"<BR>%GEARFORMAT%"
|
||||||
|
"msg":{
|
||||||
|
"no_jewelry_equipped":"You have no Jewelry on.",
|
||||||
|
"no_competition_gear":"^LYou have nothing interesting for special competition gear.",
|
||||||
|
}
|
||||||
|
},
|
||||||
"shop":{
|
"shop":{
|
||||||
"selling":"^LThings I am selling:",
|
"selling":"^LThings I am selling:",
|
||||||
"sell_me":"^LThings you can SELL to me:",
|
"sell_me":"^LThings you can SELL to me:",
|
||||||
|
|
|
@ -35,6 +35,25 @@ namespace HISP.Player
|
||||||
public Npc.NpcEntry LastTalkedToNpc;
|
public Npc.NpcEntry LastTalkedToNpc;
|
||||||
public Shop LastShoppedAt;
|
public Shop LastShoppedAt;
|
||||||
public PlayerQuests Quests;
|
public PlayerQuests Quests;
|
||||||
|
public bool Subscribed
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
int Timestamp = Convert.ToInt32(new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds());
|
||||||
|
if(Timestamp > subscribedUntil) // sub expired.
|
||||||
|
{
|
||||||
|
Logger.InfoPrint(Username + "'s Subscription expired. (timestamp now: " + Timestamp + " exp date: " + subscribedUntil+" )");
|
||||||
|
Database.SetUserSubscriptionStatus(this.Id, false);
|
||||||
|
subscribed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return subscribed;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
Database.SetUserSubscriptionStatus(this.Id, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
public bool Stealth
|
public bool Stealth
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -46,7 +65,7 @@ namespace HISP.Player
|
||||||
if (value)
|
if (value)
|
||||||
Database.RemoveOnlineUser(this.Id);
|
Database.RemoveOnlineUser(this.Id);
|
||||||
else
|
else
|
||||||
Database.AddOnlineUser(this.Id, this.Administrator, this.Moderator);
|
Database.AddOnlineUser(this.Id, this.Administrator, this.Moderator, this.Subscribed);
|
||||||
|
|
||||||
stealth = value;
|
stealth = value;
|
||||||
}
|
}
|
||||||
|
@ -156,6 +175,8 @@ namespace HISP.Player
|
||||||
|
|
||||||
private int chatViolations;
|
private int chatViolations;
|
||||||
private int charId;
|
private int charId;
|
||||||
|
private int subscribedUntil;
|
||||||
|
private bool subscribed;
|
||||||
private string profilePage;
|
private string profilePage;
|
||||||
private int x;
|
private int x;
|
||||||
private bool stealth = false;
|
private bool stealth = false;
|
||||||
|
@ -225,7 +246,8 @@ namespace HISP.Player
|
||||||
money = Database.GetPlayerMoney(UserId);
|
money = Database.GetPlayerMoney(UserId);
|
||||||
bankMoney = Database.GetPlayerBankMoney(UserId);
|
bankMoney = Database.GetPlayerBankMoney(UserId);
|
||||||
questPoints = Database.GetPlayerQuestPoints(UserId);
|
questPoints = Database.GetPlayerQuestPoints(UserId);
|
||||||
|
subscribed = Database.IsUserSubscribed(UserId);
|
||||||
|
subscribedUntil = Database.GetUserSubscriptionExpireDate(UserId);
|
||||||
profilePage = Database.GetPlayerProfile(UserId);
|
profilePage = Database.GetPlayerProfile(UserId);
|
||||||
|
|
||||||
MailBox = new Mailbox(this);
|
MailBox = new Mailbox(this);
|
||||||
|
|
|
@ -16,7 +16,7 @@ namespace HISP.Server
|
||||||
{
|
{
|
||||||
db.Open();
|
db.Open();
|
||||||
string UserTable = "CREATE TABLE Users(Id INT, Username TEXT(16),Email TEXT(128),Country TEXT(128),SecurityQuestion Text(128),SecurityAnswerHash TEXT(128),Age INT,PassHash TEXT(128), Salt TEXT(128),Gender TEXT(16), Admin TEXT(3), Moderator TEXT(3))";
|
string UserTable = "CREATE TABLE Users(Id INT, Username TEXT(16),Email TEXT(128),Country TEXT(128),SecurityQuestion Text(128),SecurityAnswerHash TEXT(128),Age INT,PassHash TEXT(128), Salt TEXT(128),Gender TEXT(16), Admin TEXT(3), Moderator TEXT(3))";
|
||||||
string ExtTable = "CREATE TABLE UserExt(Id INT, X INT, Y INT, Money INT, QuestPoints INT, BankBalance BIGINT,ProfilePage Text(1028), CharId INT, ChatViolations INT)";
|
string ExtTable = "CREATE TABLE UserExt(Id INT, X INT, Y INT, Money INT, QuestPoints INT, BankBalance BIGINT,ProfilePage Text(1028), CharId INT, ChatViolations INT,Subscriber TEXT(3), SubscribedUntil INT, Experience INT, Tiredness INT, Hunger INT, Thirst INT, FreeMinutes INT)";
|
||||||
string MailTable = "CREATE TABLE Mailbox(IdTo INT, PlayerFrom TEXT(16),Subject TEXT(128), Message Text(1028), TimeSent INT)";
|
string MailTable = "CREATE TABLE Mailbox(IdTo INT, PlayerFrom TEXT(16),Subject TEXT(128), Message Text(1028), TimeSent INT)";
|
||||||
string BuddyTable = "CREATE TABLE BuddyList(Id INT, IdFriend INT, Pending BOOL)";
|
string BuddyTable = "CREATE TABLE BuddyList(Id INT, IdFriend INT, Pending BOOL)";
|
||||||
string WorldTable = "CREATE TABLE World(Time INT,Day INT, Year INT, Weather TEXT(64))";
|
string WorldTable = "CREATE TABLE World(Time INT,Day INT, Year INT, Weather TEXT(64))";
|
||||||
|
@ -24,7 +24,7 @@ namespace HISP.Server
|
||||||
string ShopInventory = "CREATE TABLE ShopInventory(ShopID INT, RandomID INT, ItemID INT)";
|
string ShopInventory = "CREATE TABLE ShopInventory(ShopID INT, RandomID INT, ItemID INT)";
|
||||||
string DroppedItems = "CREATE TABLE DroppedItems(X INT, Y INT, RandomID INT, ItemID INT, DespawnTimer INT)";
|
string DroppedItems = "CREATE TABLE DroppedItems(X INT, Y INT, RandomID INT, ItemID INT, DespawnTimer INT)";
|
||||||
string TrackedQuest = "CREATE TABLE TrackedQuest(playerId INT, questId INT, timesCompleted INT)";
|
string TrackedQuest = "CREATE TABLE TrackedQuest(playerId INT, questId INT, timesCompleted INT)";
|
||||||
string OnlineUsers = "CREATE TABLE OnlineUsers(playerId INT, Admin TEXT(3), Moderator TEXT(3))";
|
string OnlineUsers = "CREATE TABLE OnlineUsers(playerId INT, Admin TEXT(3), Moderator TEXT(3), Subscribed TEXT(3))";
|
||||||
string DeleteOnlineUsers = "DELETE FROM OnlineUsers";
|
string DeleteOnlineUsers = "DELETE FROM OnlineUsers";
|
||||||
|
|
||||||
|
|
||||||
|
@ -389,6 +389,56 @@ namespace HISP.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
public static bool SetUserSubscriptionStatus(int playerId, bool subscribed)
|
||||||
|
{
|
||||||
|
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||||
|
{
|
||||||
|
db.Open();
|
||||||
|
MySqlCommand sqlCommand = db.CreateCommand();
|
||||||
|
|
||||||
|
sqlCommand.CommandText = "UPDATE userExt SET Subscriber=@subscribed WHERE Id=@playerId";
|
||||||
|
sqlCommand.Parameters.AddWithValue("@subscribed", subscribed ? "YES" : "NO");
|
||||||
|
sqlCommand.Parameters.AddWithValue("@playerId", playerId);
|
||||||
|
sqlCommand.Prepare();
|
||||||
|
sqlCommand.ExecuteNonQuery();
|
||||||
|
|
||||||
|
sqlCommand.Dispose();
|
||||||
|
|
||||||
|
return subscribed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static int GetUserSubscriptionExpireDate(int playerId)
|
||||||
|
{
|
||||||
|
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||||
|
{
|
||||||
|
db.Open();
|
||||||
|
MySqlCommand sqlCommand = db.CreateCommand();
|
||||||
|
|
||||||
|
sqlCommand.CommandText = "SELECT SubscribedUntil FROM userExt WHERE Id=@playerId";
|
||||||
|
sqlCommand.Parameters.AddWithValue("@playerId", playerId);
|
||||||
|
sqlCommand.Prepare();
|
||||||
|
int subscribedUntil = Convert.ToInt32(sqlCommand.ExecuteScalar());
|
||||||
|
sqlCommand.Dispose();
|
||||||
|
|
||||||
|
return subscribedUntil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static bool IsUserSubscribed(int playerId)
|
||||||
|
{
|
||||||
|
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||||
|
{
|
||||||
|
db.Open();
|
||||||
|
MySqlCommand sqlCommand = db.CreateCommand();
|
||||||
|
|
||||||
|
sqlCommand.CommandText = "SELECT Subscriber FROM userExt WHERE Id=@playerId";
|
||||||
|
sqlCommand.Parameters.AddWithValue("@playerId", playerId);
|
||||||
|
sqlCommand.Prepare();
|
||||||
|
bool subscribed = (string)(sqlCommand.ExecuteScalar()) == "YES";
|
||||||
|
sqlCommand.Dispose();
|
||||||
|
|
||||||
|
return subscribed;
|
||||||
|
}
|
||||||
|
}
|
||||||
public static void AddNewTrackedQuest(int playerId, int questId, int timesCompleted)
|
public static void AddNewTrackedQuest(int playerId, int questId, int timesCompleted)
|
||||||
{
|
{
|
||||||
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||||
|
@ -405,17 +455,18 @@ namespace HISP.Server
|
||||||
sqlCommand.Dispose();
|
sqlCommand.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void AddOnlineUser(int playerId, bool Admin, bool Moderator)
|
public static void AddOnlineUser(int playerId, bool Admin, bool Moderator, bool Subscribed)
|
||||||
{
|
{
|
||||||
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||||
{
|
{
|
||||||
db.Open();
|
db.Open();
|
||||||
MySqlCommand sqlCommand = db.CreateCommand();
|
MySqlCommand sqlCommand = db.CreateCommand();
|
||||||
|
|
||||||
sqlCommand.CommandText = "INSERT INTO OnlineUsers VALUES(@playerId, @admin, @moderator)";
|
sqlCommand.CommandText = "INSERT INTO OnlineUsers VALUES(@playerId, @admin, @moderator, @subscribed)";
|
||||||
sqlCommand.Parameters.AddWithValue("@playerId", playerId);
|
sqlCommand.Parameters.AddWithValue("@playerId", playerId);
|
||||||
sqlCommand.Parameters.AddWithValue("@admin", Admin ? "YES" : "NO");
|
sqlCommand.Parameters.AddWithValue("@admin", Admin ? "YES" : "NO");
|
||||||
sqlCommand.Parameters.AddWithValue("@moderator", Moderator ? "YES" : "NO");
|
sqlCommand.Parameters.AddWithValue("@moderator", Moderator ? "YES" : "NO");
|
||||||
|
sqlCommand.Parameters.AddWithValue("@subscribed", Subscribed ? "YES" : "NO");
|
||||||
sqlCommand.Prepare();
|
sqlCommand.Prepare();
|
||||||
sqlCommand.ExecuteNonQuery();
|
sqlCommand.ExecuteNonQuery();
|
||||||
sqlCommand.Dispose();
|
sqlCommand.Dispose();
|
||||||
|
@ -842,7 +893,7 @@ namespace HISP.Server
|
||||||
throw new Exception("Userid " + id + " Allready in userext.");
|
throw new Exception("Userid " + id + " Allready in userext.");
|
||||||
|
|
||||||
MySqlCommand sqlCommand = db.CreateCommand();
|
MySqlCommand sqlCommand = db.CreateCommand();
|
||||||
sqlCommand.CommandText = "INSERT INTO UserExt VALUES(@id,@x,@y,0,0,0,'',0,0)";
|
sqlCommand.CommandText = "INSERT INTO UserExt VALUES(@id,@x,@y,0,0,0,'',0,0,'NO',0,0,1000,1000,1000, 360)";
|
||||||
sqlCommand.Parameters.AddWithValue("@id", id);
|
sqlCommand.Parameters.AddWithValue("@id", id);
|
||||||
sqlCommand.Parameters.AddWithValue("@x", Map.NewUserStartX);
|
sqlCommand.Parameters.AddWithValue("@x", Map.NewUserStartX);
|
||||||
sqlCommand.Parameters.AddWithValue("@y", Map.NewUserStartY);
|
sqlCommand.Parameters.AddWithValue("@y", Map.NewUserStartY);
|
||||||
|
|
|
@ -65,7 +65,8 @@ namespace HISP.Server
|
||||||
Logger.ErrorPrint(sender.RemoteIp + " Requested user information when not logged in.");
|
Logger.ErrorPrint(sender.RemoteIp + " Requested user information when not logged in.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Database.AddOnlineUser(sender.LoggedinUser.Id, sender.LoggedinUser.Administrator, sender.LoggedinUser.Moderator);
|
Database.AddOnlineUser(sender.LoggedinUser.Id, sender.LoggedinUser.Administrator, sender.LoggedinUser.Moderator, sender.LoggedinUser.Subscribed);
|
||||||
|
|
||||||
Logger.DebugPrint(sender.LoggedinUser.Username + " Requested user information.");
|
Logger.DebugPrint(sender.LoggedinUser.Username + " Requested user information.");
|
||||||
|
|
||||||
User user = sender.LoggedinUser;
|
User user = sender.LoggedinUser;
|
||||||
|
|
Loading…
Add table
Reference in a new issue