Giter VIP home page Giter VIP logo

playertrack's Introduction

PlayerTrack

Keep track of players you meet.

Description

PlayerTrack helps you keep a record of who you meet and the content you played together. Organize players into categories, keep notes, and track them across name/world changes. Customization options include colors, icons, nameplates, and alerts.

How to Use

  • Install through XIVLauncher/Dalamud.
  • Use /ptrack to open the main window.
  • Use /ptrackconfig to open settings.

Libraries Used

playertrack's People

Contributors

ajisaimirai avatar crowdin-bot avatar kalilistic avatar thakyz avatar wrath16 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

playertrack's Issues

Blacklist registration

Would you like to be able to open the context menu from the blacklist and add the target player to "PlayerTrack"?
I couldn't add the BL person to "PlayerTrack" unless I met him in the content or saw him again in the city, so it would be very helpful if possible.

[Feature Request] Context Menu option for applicable "(Unable to Retrieve)" Character Entries

When a character is no longer available - resulting in their entry stating "(Unable to Retrieve)" - the context menu has no PlayerTrack option. Considering these entries still receive relevant tagging such as Friend Group markings, I was hopeful PlayerTrack could still function with these them. I would appreciate being able to check these against information I've kept in PlayerTrack.

If there are concerns with allowing this, I am curious to hear those reasons.

Plugin fails to initialize with LiteDB ENSURE: page type must be data page error

PlayerTrack - 2.5.1.0

2022-06-06 15:12:45.887 -07:00 [ERR] [PlayerTrack] Failed to initialize plugin.
System.Exception: LiteDB ENSURE: page type must be data page
   at LiteDB.Constants.ENSURE(Boolean conditional, String message)
   at LiteDB.Engine.DataPage..ctor(PageBuffer buffer)
   at LiteDB.Engine.BasePage.ReadPage[T](PageBuffer buffer)
   at LiteDB.Engine.Snapshot.ReadPage[T](UInt32 pageID, FileOrigin& origin, Int64& position, Int32& walVersion)
   at LiteDB.Engine.Snapshot.GetPage[T](UInt32 pageID, FileOrigin& origin, Int64& position, Int32& walVersion)
   at LiteDB.Engine.DataService.Read(PageAddress address)+MoveNext()
   at LiteDB.Engine.BufferReader..ctor(IEnumerable`1 source, Boolean utcDate)
   at LiteDB.Engine.DatafileLookup.Load(PageAddress rawId)
   at LiteDB.Engine.BasePipe.LoadDocument(IEnumerable`1 nodes)+MoveNext()
   at LiteDB.Engine.QueryPipe.Select(IEnumerable`1 source, BsonExpression select)+MoveNext()
   at LiteDB.Engine.QueryExecutor.<>c__DisplayClass10_0.<<ExecuteQuery>g__RunQuery|0>d.MoveNext()
   at LiteDB.BsonDataReader.Read()
   at LiteDB.LiteQueryable`1.ToDocuments()+MoveNext()
   at System.Linq.Enumerable.SelectEnumerableIterator`2.ToList()
   at PlayerTrack.PlayerService.MergeKeyDuplicates()
   at PlayerTrack.PlayerService.LoadPlayers()
   at PlayerTrack.PlayerService..ctor(PlayerTrackPlugin plugin)
   at PlayerTrack.PlayerTrackPlugin.<.ctor>b__5_0()

Related issue with LiteDB?
mbdavid/LiteDB#1940

2.0 Release Features

These are features I'd like to add eventually if possible. I'd be happy to take PRs if someone is interested on working on any of these.

  • Sync with Friends List
  • Sync with Blacklist

Location formatting errors

Any duty using a - character in the name results in ???? being displayed in the location field. Example below with Tam-Tara Hard.
image

Auto-delete players / delete categories

a setting that automatically removes people that are only in the default category and haven't been seen in more than a certain time, like 2 weeks or so.. cause that list is getting loooong for me. ideally I could pick which categories to cull even.

Sync with FreeCompany

Sync category with free company members so you don't need to manually add/remove.

1.0 Release Features

Features that I'd like to complete before officially releasing to master.

  • Add characters manually
  • Alerts
  • More Content Filters (e.g. Ex Trials)
  • Mark Favorites
  • Confirmation popups for resetting/deleting
  • Hide overlay when loading game

Doesn't seem possible to manually add players?

I know this was previously a feature, being able to search for a player by name and homeworld, but I can't find any such ability now. I have a friend on my list who changed their name but hasn't been picked up by the lodestone change detection (does it only apply when I encounter them and the plugin tries to track them?) and I'd like to manually remove the old entry and add their new name.

Enemy entities being erroneously tracked

Hi there! I've been getting some weird data in my PlayerTrack list. You can see here:

image

When I click on these, the plugin gets very sad and almost always crashes shortly after. I can't remove them via rightclick -> delete.

Whatever's caused this should be investigated, and ideally with some way to remove the data form those who have been affected.

Disable game titles, more control over category/custom titles

I love the feature to override the ingame titles with custom stuff, but it only works when the regular ingame titles are visible. I don't care to see these game titles though as they are just meaningless bloat to me. Also, currently you can either have custom&category title override, or neither.

Would it be possible to give us more granular control over the titles? I'd imagine:

  • In the category tab, split up the "Enable nameplate titles" into "Override Nameplate Title with Category Name" and "Override Nameplate Title with Custom Title", with the latter obviously having higher priority if both are set.
  • add a new option (either globally in the nameplate settings or as another column in the category settings) to hide regular ingame titles on the nameplate if they have one and neither the category or custom override is set.

Thanks for all your great work!

bugs / enhancements

Putting these here for now so I don't forget.

  • have a setting to lock the playertracker window
  • If you enable the overlay in settings, close the overlay with the 'x' button, you need to DISABLE the overlay to turn it back on.
  • String buffer out of memory error
  • Improve dispose
  • force a save / window reopen after using reset
  • changing category color by color palette doesn't update existing players until restart
  • Manually added users are never verified until you restart the game
  • Add version upgrade backups
  • would love an option to set a default view when you load up. Would love for mine to be set to 'Favorites' when I load it up.

Can't reproduce

  • Bozja NPCs in all players list
  • player track doesn't seem to be displaying anyone in recent players list (likely clearing after instances)
  • Encounter time and maybe other fields aren't always updated properly until you restart the game

Failed to initialize plugin

Cannot get PlayerTrack to work, upon installing the following is output into Dalamud log:

2022-01-17 18:17:53.297 +02:00 [INF] [PLUGINM] Installed plugin PlayerTrack (testing=False)
2022-01-17 18:17:53.297 +02:00 [INF] [PLUGINM] Loading plugin PlayerTrack
2022-01-17 18:17:53.314 +02:00 [INF] [LOCALPLUGIN] Loading PlayerTrack.dll
2022-01-17 18:17:53.316 +02:00 [INF] [LOCALPLUGIN] Finished loading PlayerTrack.dll
2022-01-17 18:17:53.368 +02:00 [ERR] Command /playertrackexloc is already registered.
2022-01-17 18:17:53.718 +02:00 [ERR] [PlayerTrack] Failed to find default category so making one
System.InvalidOperationException: Sequence contains no matching element
   at System.Linq.ThrowHelper.ThrowNoMatchException()
   at System.Linq.Enumerable.First[TSource](IEnumerable`1 source, Func`2 predicate)
   at PlayerTrack.CategoryService.GetDefaultCategory()
2022-01-17 18:17:53.719 +02:00 [ERR] [PlayerTrack] Failed to initialize plugin.
System.InvalidOperationException: Sequence contains no elements
   at System.Linq.ThrowHelper.ThrowNoElementsException()
   at System.Linq.Enumerable.Max[TSource](IEnumerable`1 source, Func`2 selector)
   at PlayerTrack.CategoryService.NextID()
   at PlayerTrack.CategoryService.GetDefaultCategory()
   at PlayerTrack.CategoryService..ctor(PlayerTrackPlugin plugin)
   at PlayerTrack.PlayerTrackPlugin.<.ctor>b__4_0()

The chat commands do not work and there is not cog button on the plugin listing. Tried enabling and disabling, no difference.

All other plugins (10+) I've tested work without issues.

Context menu option to force-pull lodestone data to check for name/homeworld changes?

In the player list context menu, you can target/focus/examine a player if in range, open their lodestone page in your browser, change their category, and remove their entry. Can an option be added to force the plugin to retrieve their data from the lodestone to check for name or homeworld changes as well? Maybe even a way to bulk-update all players in a category, at least for non-default categories?

Notice: Context Menus Removed for Now

Context Menus are removed for now as they broke with the patch. I hope to add them again.

These include the menu items that show when you right clicked on a player:

  • Add/Show Info
  • Open Lodestone
  • Set Category

Optimization is necessary

I've been using this plugin for quite some time now; 453 days according to the oldest encounter entry I have. With considerable usage since then, the size of the pluginConfigs folder ballooned to 3.25 GB, which seems to be causing issues in the game itself. The plugin frequently causes the game to freeze for up to two seconds, and whenever a player with a large amount of stored encounters changes their information (name/homeworld), the game freezes for up to 10 seconds

Crash with base game context menu items in friends list

image
image

These settings will crash the game if you try to click "Assign Friend Group" on a friend in the friends list. I haven't tested any other configuration. Works fine without setting the context menu items position though.

Duplicate encounters

Saw duplicate encounters in a 24man but not consistently happening. Might've been actors re-spawned and were far enough way?

Add Processing option to only Add / Update Players and Add New Encounters for Known Players (Friends, FC, etc.)

Currently, the only options for automatic Processing is within certain duty types or "Always," the latter being far more detrimental than beneficial as any player in range is stored and the database can quickly grow out of control.

I propose a checkbox for Always mode which isolates tracked players to Friends, Party Members, Free Company Members, Linkshell Members, Cross World Linkshell Members, and so on. This would avoid rapid, unending growth and only automatically add users who are likely to have relevancy to the user.

My reason for this request is that I would benefit from having PlayerTrack remind me of my most recent encounters with users on my friends list, as a way of determining who to clear from it. However, this is only tracked if I enter a duty with them, which - with the large amount of casual friends - is uncommon for me.

Typeahead for Existing Tags and Search

I would be great if typeahead for inputting in existing tags when inputting tags for each character.

Which can work along side two things.
Search by Tag will be easier if it also included a typeahead.
Have a page dump of all your tags.

Access violation on title screen

Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at Dalamud.DrunkenToad.GameObjectExtensions.IsValidPlayerCharacter(Dalamud.Game.ClientState.Objects.Types.GameObject)
at PlayerTrack.ActorManager.b__20_0(Dalamud.Game.ClientState.Objects.Types.GameObject)
at System.Linq.Enumerable+WhereSelectArrayIterator`2[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ToList()
at PlayerTrack.ActorManager.GetPlayerCharacters()
at PlayerTrack.ActorManager.OnTimerElapsed(System.Object, System.Timers.ElapsedEventArgs)
at System.Timers.Timer.MyTimerCallback(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.TimerQueueTimer.CallCallback(Boolean)
at System.Threading.TimerQueueTimer.Fire(Boolean)
at System.Threading.TimerQueue.FireNextTimers()

Add instructions on how to use plugin

Currently the Dalamud plugin installer listing for this plugin features no settings button and the descriptions in both the plugin listing and here on GitHub list no chat commands. No window pops up on install either. Frankly, I have no clue on how to operate this plugin and I can't be the only one?

Japanese Lodestone Locale

The Japanese Lodestone Locale should be "jp" not "ja".

For example, "https://ja.finalfantasyxiv.com/lodestone/character/12345678"
should be changed to "https://jp.finalfantasyxiv.com/lodestone/character/12345678"

Add more localization strings

Some strings right now like main drop down list are not localized. Would probably need to convert them off simple enums.

Global UI scaling doesn't work properly for some UI elements

I've noticed it mostly with dropdowns and the Search feature - here's what it looks like at 1.15.

image

You can see the dropdown's arrow is beginning to get cut off. Here's the UI at 1.4.

image

The dropdown arrow is gone, and the Search button is close to being inaccessible. At 1.6 it is inaccessible.

image

This should be a simple matter of adjusting UI element positioning constraints.

Bulk delete.

A Feature for players who left both options on "Always"

it has cluttered up the selection, especially after a world transfer it might be worth deleting for example everyone without a note / tags or all members of a category.

Current Players don't always refresh

Something like a refresh button for current players section would be really helpful, please.
For example, when someone teleports away it doesn't refresh and you need to use the drop-down to something like recent players and back to current players for it to refresh manually.

Location instead of note

I have enabled the alerts with notes, but in the alert the location is the last thing instead of the note.

Plugin version: v1.1.66

For example:
[PlayerTrack] Playername last seen 1d ago: The Tower at Paradigm's Breach

[Feature Request] Pat Me implementation

The "Pat Me" plugin exist. I think it would be great to have a counter for the linked character.
Or maybe have it be built in.

Right now that only counts but doesn't seem to keep a record on who did and how many times by that individual.

Different settings/categories for different alts

I dunno if PlayerTrack already has a feature like this, but I would like to see the ability to use different settings/categories set for when you are on different characters (like one category for friends of one RP character, another category for friends of an alt RP character, etc)

Though something like this would probably require multiple categories set to one player too...

Add Stats Page

Add a stats page (total players, ratio of cat girls).... let me know if there's any fun stats you'd like to see.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.