Updated CoreClientManager to pull all account data via name request.
Cleaned up some code with pet administrator. added logging if 0 rows were being saved in CommitChanges
This commit is contained in:
parent
c7e0ebefd1
commit
7906f48262
|
@ -168,9 +168,38 @@ public class CoreClientManager extends MiniPlugin
|
|||
client.SetAccountId(token.AccountId);
|
||||
client.SetRank(Rank.valueOf(token.Rank));
|
||||
|
||||
final RetrieveClientInformationEvent clientInformationEvent = new RetrieveClientInformationEvent(client.GetPlayerName(), uuid);
|
||||
clientInformationEvent.incrementProcessingCount();
|
||||
|
||||
Bukkit.getServer().getScheduler().runTaskAsynchronously(GetPlugin(), new Runnable()
|
||||
{
|
||||
public void run()
|
||||
{
|
||||
_mysqlRepository.login(uuid.toString(), client.GetPlayerName());
|
||||
|
||||
Bukkit.getServer().getPluginManager().callEvent(clientInformationEvent);
|
||||
clientInformationEvent.decreaseProcessingCount();
|
||||
}
|
||||
});
|
||||
|
||||
// JSON sql response
|
||||
Bukkit.getServer().getPluginManager().callEvent(new ClientWebResponseEvent(response));
|
||||
|
||||
// Load client in miniplugins
|
||||
Bukkit.getServer().getPluginManager().callEvent(new AsyncClientLoadEvent(token, client));
|
||||
|
||||
while (clientInformationEvent.processing())
|
||||
{
|
||||
try
|
||||
{
|
||||
Thread.sleep(1);
|
||||
}
|
||||
catch (InterruptedException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
Bukkit.getServer().getScheduler().runTask(GetPlugin(), new Runnable()
|
||||
{
|
||||
public void run()
|
||||
|
|
|
@ -19,6 +19,7 @@ import mineplex.core.MiniPlugin;
|
|||
import mineplex.core.account.CoreClient;
|
||||
import mineplex.core.account.CoreClientManager;
|
||||
import mineplex.core.common.Rank;
|
||||
import mineplex.core.common.jsonchat.JsonMessage;
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.F;
|
||||
import mineplex.core.common.util.NautHashMap;
|
||||
|
@ -99,21 +100,49 @@ public class CustomerSupport extends MiniPlugin
|
|||
caller.sendMessage(C.cDGreen + C.Strike + "=============================================");
|
||||
caller.sendMessage(C.cBlue + "Name : " + C.cYellow + playerName);
|
||||
caller.sendMessage(C.cBlue + "Rank : " + C.cYellow + (client.GetRank().Name.isEmpty() ? "Regular" : client.GetRank().Name));
|
||||
caller.sendMessage(C.cBlue + "Transactions : ");
|
||||
caller.sendMessage(C.cBlue + "Coins : " + C.cYellow + donor.getCoins());
|
||||
caller.sendMessage(C.cBlue + "Gems : " + C.cYellow + donor.GetGems());
|
||||
|
||||
int coinTransactionTotal = 0;
|
||||
int enjinCoinsReceived = 0;
|
||||
int coinSpentTotal = 0;
|
||||
|
||||
int enjinBoostersReceived = 0;
|
||||
|
||||
for (CoinTransactionToken transaction : donor.getCoinTransactions())
|
||||
{
|
||||
if (transaction.Source.equalsIgnoreCase("Poll") || transaction.Source.equalsIgnoreCase("Coin Party Bomb Pickup") || transaction.Source.contains("Reward"))
|
||||
continue;
|
||||
if (transaction.Source.equalsIgnoreCase("Poll") || transaction.Source.equalsIgnoreCase("Coin Party Bomb Pickup") || transaction.Source.contains("Reward") || transaction.Source.contains("purchase"))
|
||||
{
|
||||
coinTransactionTotal += transaction.Amount;
|
||||
|
||||
caller.sendMessage(C.cYellow + _date.format(transaction.Date) + C.cGray + " - " + C.cYellow + transaction.Amount + " Coins - Applied via " + transaction.Source);
|
||||
if (transaction.Source.contains("purchase"))
|
||||
enjinCoinsReceived += transaction.Amount;
|
||||
}
|
||||
}
|
||||
|
||||
for (TransactionToken transaction : donor.getTransactions())
|
||||
{
|
||||
if (transaction.Coins == 0 && transaction.Gems == 0 && transaction.SalesPackageName.contains("Gem Booster"))
|
||||
caller.sendMessage(C.cYellow + _date.format(transaction.Date) + C.cGray + " - " + C.cYellow + transaction.SalesPackageName);
|
||||
coinSpentTotal += transaction.Coins;
|
||||
|
||||
if (transaction.SalesPackageName.contains("Gem Booster"))
|
||||
{
|
||||
if (transaction.SalesPackageName.startsWith("Gem Booster") && transaction.Coins == 0 && transaction.Gems == 0 && transaction.SalesPackageName.split(" ").length == 3)
|
||||
enjinBoostersReceived += Integer.parseInt(transaction.SalesPackageName.split(" ")[2]);
|
||||
}
|
||||
}
|
||||
|
||||
caller.sendMessage(C.cBlue + "Enjin Coin Total Received : " + C.cYellow + enjinCoinsReceived);
|
||||
caller.sendMessage(C.cBlue + "Enjin Booster Total Received : " + C.cYellow + enjinBoostersReceived);
|
||||
|
||||
int coinsMissing = coinTransactionTotal - (donor.getCoins() + coinSpentTotal);
|
||||
|
||||
if (coinsMissing > 0)
|
||||
{
|
||||
caller.sendMessage(C.cRed + "Coins missing!");
|
||||
new JsonMessage("[").color("blue").extra(C.cGreen + "Apply Missing Coins").color("green").click("run_command", "/sales coin " + playerName + " " + coinsMissing)
|
||||
.add("] ").color("blue").add("Missing Coins.").color("yellow").sendToPlayer(caller);
|
||||
}
|
||||
|
||||
caller.sendMessage(C.cDGreen + C.Strike + "=============================================");
|
||||
_salesPackageManager.displaySalesPackages(caller, playerName);
|
||||
caller.sendMessage(C.cDGreen + C.Strike + "=============================================");
|
||||
|
|
|
@ -52,7 +52,14 @@
|
|||
const string PREFIX = "CommitChanges() failed because: ";
|
||||
try
|
||||
{
|
||||
Context.SaveChanges();
|
||||
if (Context.SaveChanges() == 0)
|
||||
Log("WARNING", "No entities to save: " + Environment.StackTrace);
|
||||
/*
|
||||
* List<Object> modifiedOrAddedEntities = context.ChangeTracker.Entries()
|
||||
.Where(x => x.State == System.Data.EntityState.Modified
|
||||
|| x.State == System.Data.EntityState.Added)
|
||||
.Select(x=>x.Entity).ToList();
|
||||
* */
|
||||
}
|
||||
catch (DbEntityValidationException ex)
|
||||
{
|
||||
|
|
|
@ -559,17 +559,12 @@
|
|||
if (rank == null)
|
||||
return account.Rank.ToString();
|
||||
|
||||
repository.Attach(account);
|
||||
repository.Edit(account);
|
||||
|
||||
var expire = DateTime.Now.AddMonths(1).AddMilliseconds(-DateTime.Now.Millisecond);
|
||||
|
||||
account.Rank = rank;
|
||||
account.RankExpire = expire;
|
||||
account.RankPerm = token.Perm;
|
||||
|
||||
repository.CommitChanges();
|
||||
|
||||
repository.Edit(account);
|
||||
|
||||
if ((rank.Name == "HERO" || rank.Name == "ULTRA") && token.Perm)
|
||||
|
|
|
@ -21,12 +21,15 @@
|
|||
{
|
||||
using (var repository = _repositoryFactory.CreateRepository())
|
||||
{
|
||||
bool added = false;
|
||||
foreach (var item in petTokens.Where(item => !repository.Any<Pet>(x => x.PetType == item.PetType)))
|
||||
{
|
||||
repository.Add(item);
|
||||
added = true;
|
||||
}
|
||||
|
||||
repository.CommitChanges();
|
||||
if (added)
|
||||
repository.CommitChanges();
|
||||
|
||||
return repository.GetAll<Pet>().Include(x => x.SalesPackage).ToList();
|
||||
}
|
||||
|
@ -36,12 +39,15 @@
|
|||
{
|
||||
using (var repository = _repositoryFactory.CreateRepository())
|
||||
{
|
||||
bool added = false;
|
||||
foreach (var item in petExtraTokens.Where(item => !repository.Any<PetExtra>(x => x.Name == item.Name && x.Material == item.Material)))
|
||||
{
|
||||
repository.Add(item);
|
||||
added = true;
|
||||
}
|
||||
|
||||
repository.CommitChanges();
|
||||
if (added)
|
||||
repository.CommitChanges();
|
||||
|
||||
return repository.GetAll<PetExtra>().Include(x => x.SalesPackage).ToList();
|
||||
}
|
||||
|
@ -76,6 +82,8 @@
|
|||
if (pet == null)
|
||||
return;
|
||||
|
||||
account.Pets.RemoveAll(x => x.PetType.Equals(token.PetType) && x.OwnedPetId != pet.OwnedPetId);
|
||||
|
||||
pet.PetName = token.PetName;
|
||||
|
||||
repository.Edit(pet);
|
||||
|
|
|
@ -35,12 +35,15 @@
|
|||
{
|
||||
using (var repository = RepositoryFactory.CreateRepository())
|
||||
{
|
||||
bool added = false;
|
||||
foreach (var skill in skills.Where(skill => !repository.Any<Skill>(x => x.Name == skill.Name && x.Level == skill.Level)))
|
||||
{
|
||||
repository.Add(skill);
|
||||
added = true;
|
||||
}
|
||||
|
||||
repository.CommitChanges();
|
||||
if (added)
|
||||
repository.CommitChanges();
|
||||
|
||||
return repository.GetAll<Skill>().Include(x => x.SalesPackage).ToList();
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue