Code Monkey home page Code Monkey logo

pingplugin's Introduction

Download count

PingPlugin

A ping display plugin for Dalamud.

This plugin provides a ping monitor and graph that show your latest ping and your average ping over a configurable number of steps.

Screenshots

Screenshot Screenshot Screenshot

Usage

  • /ping - Show/hide the ping monitor.
  • /pinggraph - Show/hide the ping graph.
  • /pingconfig - Open the configuration from chat.

Configuration

Screenshot

  • Lock plugin windows: This prevents you from accidentally dragging the windows around, but still allows you to hover over the graph and collapse it.
  • Click through plugin windows: This ignores plugin window clicks, instead treating them as game clicks.
  • Hide overlays during cutscenes: It's what it says on the tin.
  • Minimal display: This turns the monitor from a 3-line display into a 1-line display, omitting the current server's IP address.
  • Hide errors: If you like, this prevents errors from being displayed, which expand the monitor by one line temporarily. Though it's not recommended to hide errors, most errors are just one-time server timeouts, and can be safely ignored.
  • Recorded pings: This is the number of pings that are displayed in the graph and averaged over. Increasing this will increase the computational load of the plugin negligibly.
  • Monitor Color: The color of the monitor text.
  • Error Color: The color of the error text.
  • Monitor Opacity: How see-through the monitor background is.
  • Language: Current options include English, Japanese, Spanish, and German. Feel free to PR additional translations!

pingplugin's People

Contributors

bluefissure avatar caraxi avatar chunderbolt avatar diyagi avatar goaaats avatar karashiiro avatar krude avatar mogsfriend avatar shadywhite avatar

Stargazers

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

Watchers

 avatar  avatar

pingplugin's Issues

Latency gets stuck sometimes?

See title, I got a report that it's stuck at 11ms for some reason. It doesn't seem to be related to the function signature being used.

Ping display resets to upper left corner.

I'm not sure when it happens but I notice the ping display keeps resetting to the upper left corner. I have to go in the options all the time to unlock it and drag it back to my preferred position.

No Ping/IP showing after updating to v2.0

Hi, I just updated to 2.0 on windows 10, no VPN (steam version) and I always see 0ms ping now and no IP address in connected to:

I'm also on the crystal datacenter

I found this stack trace in my dalamud log:

2022-01-28 17:13:08.421 -05:00 [ERR] Unobserved exception in Task.
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (Object reference not set to an instance of an object.)
---> System.NullReferenceException: Object reference not set to an instance of an object.
at PingPlugin.PingTrackers.PingTracker.AddressUpdateLoop(CancellationToken token) in K:\arashiiro\PingTrackers\PingTracker.cs:line 68
--- End of inner exception stack trace ---
2022-01-28 17:13:08.429 -05:00 [INF] LASTEXCEPTION:eyJXaGVuIjoiMjAyMi0wMS0yOFQxNzoxMzowOC40MjY5OC0wNTowMCIsIkluZm8iOiJTeXN0ZW0uQWdncmVnYXRlRXhjZXB0aW9uOiBBIFRhc2sncyBleGNlcHRpb24ocykgd2VyZSBub3Qgb2JzZXJ2ZWQgZWl0aGVyIGJ5IFdhaXRpbmcgb24gdGhlIFRhc2sgb3IgYWNjZXNzaW5nIGl0cyBFeGNlcHRpb24gcHJvcGVydHkuIEFzIGEgcmVzdWx0LCB0aGUgdW5vYnNlcnZlZCBleGNlcHRpb24gd2FzIHJldGhyb3duIGJ5IHRoZSBmaW5hbGl6ZXIgdGhyZWFkLiAoT2JqZWN0IHJlZmVyZW5jZSBub3Qgc2V0IHRvIGFuIGluc3RhbmNlIG9mIGFuIG9iamVjdC4pXHJcbiAtLS0+IFN5c3RlbS5OdWxsUmVmZXJlbmNlRXhjZXB0aW9uOiBPYmplY3QgcmVmZXJlbmNlIG5vdCBzZXQgdG8gYW4gaW5zdGFuY2Ugb2YgYW4gb2JqZWN0LlxyXG4gICBhdCBQaW5nUGx1Z2luLlBpbmdUcmFja2Vycy5QaW5nVHJhY2tlci5BZGRyZXNzVXBkYXRlTG9vcChDYW5jZWxsYXRpb25Ub2tlbiB0b2tlbikgaW4gSzpcXGFyYXNoaWlyb1xcUGluZ1RyYWNrZXJzXFxQaW5nVHJhY2tlci5jczpsaW5lIDY4XHJcbiAgIC0tLSBFbmQgb2YgaW5uZXIgZXhjZXB0aW9uIHN0YWNrIHRyYWNlIC0tLSIsIkNvbnRleHQiOiJVbm9ic2VydmVkIGV4Y2VwdGlvbiBpbiBUYXNrLiJ9
2022-01-28 17:13:08.429 -05:00 [ERR] Unobserved exception in Task.
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (Value cannot be null. (Parameter 'address'))
---> System.ArgumentNullException: Value cannot be null. (Parameter 'address')
at System.Net.NetworkInformation.Ping.CheckArgs(IPAddress address, Int32 timeout, Byte[] buffer, PingOptions options)
at PingPlugin.PingTrackers.ComponentModelPingTracker.PingLoop(CancellationToken token) in K:\arashiiro\PingTrackers\ComponentModelPingTracker.cs:line 23
--- End of inner exception stack trace ---

Cant install/update

Logged in now and it says it failed to update the plugin and it wont install again.

PingPlugin under WINE reports 0ms latency, causes high winedevice.exe load

OS: Pop!_OS 21.04 + WINE 6.21 GloriousEggroll

Howdy folks. I'm one of those crackpot Linux users out there. I've had pretty good success with PingPlugin prior to Endwalker, but since this patch, things have been real silly all over the place, and I've been tracing issues. Most recent one seems to surround PingPlugin.

Since Endwalker, PingPlugin has been returning 0ms, which my assumption was that SE had disabled ICMP Echo to save any resources they could, and didn't think much of it. However, I've also had a lot of hitching and other issues recently related to sound, so I've been tracing quite a bit of weird performance issues, and it's been a bit of a mess to trace. After checking the active issues however, and seeing the other open issues, I'm lead to believe there's actually a defect there, and likely some sort of WINE nuance that will need to be accounted for to get things working okay again.

I'm going to see if there's some additional debug info I can pull out for you to help with this, as I know as this issue stands there's not much to go off of, and the likelihood that you have a test environment to work with is low here. Regardless, LMK if there's anything targeted I can to to pull more data out for you. Thanks!

[Loading Bug] DTR doesn't start

This is an issue with the recent multithreading changes in dalamud.
Some parts of dalamud, like the DTR bar, have no guards against multiple plugins trying to register at the same time, with the end result being that one of the plugins not survives the register process.

Triggers are a) fast maschine b) bad timing on load.
For me it happens every single game start, so that i'm forced to disable and enable PingPlugin after load.

My fix for betterplaytime was to catch the exception and try again, same as if the name is already used.

Hide during cutscenes?

Hello,

I noticed that the Ping Plugin stays active during things like cutscenes and loading screens etc. where other plugins like FPS plugin disappear. Is this something that could be implemented?

Thanks.

Ping does Not work with the OCE DC

Hi There, Ping does not detect ping for the OCE Datacentre. It does detect the IP just shows a latency of 0. Screen Shot attached. Not a big issue, Just thought I would point it out. Thanks for your hard work.

image

Not working with Mudfish even with FastConnect disabled

Since the last update it isn't working for me anymore while using mudfish, I don't have FastConnect enabled.
I tried by using mudfish's default client and also through proxifier.

After the update it only shows the ping as 0ms (which I'm aware it's what happens when FastConnect is enabled), it's also connecting to localhost (127.0.0.1)

Before the update it used to work normally while using mudfish through proxifier.

Font Scale Resizes Config Window

Currently, the Font Scale slider resizes the Config window as well as the Ping Monitor window.. This makes it difficult to change the size of the monitor window since the config window that the font scale slider is on keeps moving as it resizes itself.. It would be helpful if the Config window always stayed the same size, especially since it's not likely to be always open like the monitor window is..

An option to attach to Server Info Hud Element

I've tried dozens of times to set the color and size to match this hud element, but cannot seem to do so, but I thought, if the Orchestrion plugin song titles can be attached to it seamlessly and SimpleTweaks time format manipulation than surely this one can as well image

Incorrect target IP after using VPN

It is fine if doesn't use VPN, can track correct gaia data centre IP \119.252.37.20
When using VPN i.e. Exitlag, it will track \124.150.157.38, which is a se server but not gaia data centre IP.
image

what is the difference between the ping tracker source?

whats the difference between com/win32 api/game packet?
i tried all of them but all of them give a different ping
the game packet specifically has a much higher ping
which one is the most accurate?

also is there any difference if i use server bar display?

Plugin has always showed 0ms; no VPN, but on Pop!_OS Linux.

I am curious if your plugin is dependent on Windoze or the command prompt to make itself work.

I installed FFXIV several weeks ago from the Lutris FFXIV + Laucher option and almost everything has been working perfectly, aside from this.
ffxiv_01112022_042419_369

So the game and its engine should be running on Lutris WINE, if that means anywhat to you!
I wish the best luck for your project, and would you please let I know if there is anything I can do to assist you in getting this working?
Thanks!

Not hiding overlay with HUD

I have installed the Ping Plugin 1.5.0.1 via XLPlugins and whether I turn on or turn off "Hide overlays with HUD", the overlay does not hide when I press the hide HUD hotkey. Other overlays (like the FPS Overlay) do. It's quite bothersome because it also shows up in in-game screenshots.

Update for 6.2

Please update the DalamudApi to 7 if no further changes are needed

2.0.1.0 Stacktrace

Win 10/Steam Client/No VPN

2022-01-28 18:50:29.589 -05:00 [ERR] Unobserved exception in Task.
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (Object reference not set to an instance of an object.)
---> System.NullReferenceException: Object reference not set to an instance of an object.
at PingPlugin.PingTrackers.PingTracker.AddressUpdateLoop(CancellationToken token) in K:\arashiiro\PingTrackers\PingTracker.cs:line 68
--- End of inner exception stack trace ---

[Enhancement] Packet Loss display

Summary

Would it be possible to include a line showing the users current packet loss?

This would be very useful to those that aren't close to the server in identifying possible network issues they might be experiencing

[Bug] Disappearing Ping

After zoning a few times the ping disappeared off my Server bar it shows up if i change how its displayed. So i know its there but wont come back till i relog see Pic

Ping does not match latency from the TCP connection of the ffxiv process

To the best of my knowledge, the "realest" latency one has with the FFXIV servers is the TCP connection latency used by the FFXIV process, and it can be found in Windows in the Resource Monitor.

When checking if the ping shown in the plugin matches, I found that 90% of the time in my case, the latency is different (see attached screenshot).

image

Since I have no knowledge of C# I have no idea what exactly you are "pinging" but the value shown by the plugin matches what I get when doing a ping in a terminal and not the ping from the actual connection, which to the best of my knowledge is far more useful.

I guess this issue is more of a question at the moment.

Pingplugin and Proxifier not working

Hi, I noticed Pingplugin shows 0ms and showing 127.0.0.1 while using proxifier, it was working before EW patch.

image

While turning off proxifier pingplugin works fine. I alreay reinstalled the plugin multiple times . not sure what to do for it to work :(

Thank you.

Possible bug in Win32APIPingTracker

This looks wrong...

private static long GetAddressLastRTT(long address)
{
    var hopCount = 0UL;
    var rtt = 0UL;
    NetUtils.GetRTTAndHopCount((ulong)address, ref hopCount, 51, ref rtt);
    return (long)hopCount;
}

Shouldn't that method return (long)rtt instead?

Ping shows 0ms (linux, wine)

I appear to be having this previous issue
PingPlugin: 2.2.4.0
Wine: lutris-fshack-6.21-5
The IP shows correctly but the ping shows 0ms.
Pinging the IP from my terminal shows expected response, ~100ms

image

$ ping 124.150.157.23
PING 124.150.157.23 (124.150.157.23) 56(84) bytes of data.
64 bytes from 124.150.157.23: icmp_seq=1 ttl=51 time=122 ms

In my case it was working a few months ago (sorry not sure exact dates) but after a game update, if I remember correctly, it started reporting 0ms.
At that time I left it but would like to get it working if possible.
I see it was previously resolved by updating sigScanner.ScanText 4b59642, but I don't know enough about how this works to figure out if that is the problem now or what it should be if so.

Happy to provide any more information if it helps.
Thanks for the plugin!

Ping is higher than Resource Monitor values

See title. Resource Monitor values, however, are not possible to get directly without administrator privileges. I can attempt to use GetHopCountAndRTT again, but I don't know if this will actually give different results. It also requires getting into complicated error conditions on Wine etc., because it may give an output of 0 without producing an actual error. I prefer keeping things simple so that I don't need to do acrobatics just to make ping work everywhere.

Documentation:
https://docs.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getrttandhopcount
https://source.winehq.org/WineAPI/GetRTTAndHopCount.html

Better tracking for gaming VPN users

For gaming VPN users, I'm pulling a value that is roughly two times ping from memory and using that as the ping value. The other, more accurate methods of tracking ping do not work because gaming VPNs deliberately disrupt them (it's part of how they work). Feel free to drop some links if you know of any alternative ping tracking methods that work with gaming VPNs.

Ping extremely low on 2.1.0.0

Win 10/Steam Client/No VPNs

Ping for me on this version is usually showing just 1/3/5ms whereas normally my server ping is around 75ms

Seeing this in my log file:

2022-02-02 15:10:58.372 -05:00 [ERR] Unobserved exception in Task.
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (Object reference not set to an instance of an object.)
 ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at PingPlugin.PingTrackers.PingTracker.UpdateSeAddress() in K:\arashiiro\PingTrackers\PingTracker.cs:line 150
   at PingPlugin.PingTrackers.PingTracker.AddressUpdateLoop(CancellationToken token)
   --- End of inner exception stack trace ---
2022-02-02 15:10:58.373 -05:00 [INF] LASTEXCEPTION:eyJXaGVuIjoiMjAyMi0wMi0wMlQxNToxMDo1OC4zNzM4NTExLTA1OjAwIiwiSW5mbyI6IlN5c3RlbS5BZ2dyZWdhdGVFeGNlcHRpb246IEEgVGFzaydzIGV4Y2VwdGlvbihzKSB3ZXJlIG5vdCBvYnNlcnZlZCBlaXRoZXIgYnkgV2FpdGluZyBvbiB0aGUgVGFzayBvciBhY2Nlc3NpbmcgaXRzIEV4Y2VwdGlvbiBwcm9wZXJ0eS4gQXMgYSByZXN1bHQsIHRoZSB1bm9ic2VydmVkIGV4Y2VwdGlvbiB3YXMgcmV0aHJvd24gYnkgdGhlIGZpbmFsaXplciB0aHJlYWQuIChPYmplY3QgcmVmZXJlbmNlIG5vdCBzZXQgdG8gYW4gaW5zdGFuY2Ugb2YgYW4gb2JqZWN0LilcclxuIC0tLT4gU3lzdGVtLk51bGxSZWZlcmVuY2VFeGNlcHRpb246IE9iamVjdCByZWZlcmVuY2Ugbm90IHNldCB0byBhbiBpbnN0YW5jZSBvZiBhbiBvYmplY3QuXHJcbiAgIGF0IFBpbmdQbHVnaW4uUGluZ1RyYWNrZXJzLlBpbmdUcmFja2VyLlVwZGF0ZVNlQWRkcmVzcygpIGluIEs6XFxhcmFzaGlpcm9cXFBpbmdUcmFja2Vyc1xcUGluZ1RyYWNrZXIuY3M6bGluZSAxNTBcclxuICAgYXQgUGluZ1BsdWdpbi5QaW5nVHJhY2tlcnMuUGluZ1RyYWNrZXIuQWRkcmVzc1VwZGF0ZUxvb3AoQ2FuY2VsbGF0aW9uVG9rZW4gdG9rZW4pXHJcbiAgIC0tLSBFbmQgb2YgaW5uZXIgZXhjZXB0aW9uIHN0YWNrIHRyYWNlIC0tLSIsIkNvbnRleHQiOiJVbm9ic2VydmVkIGV4Y2VwdGlvbiBpbiBUYXNrLiJ9
2022-02-02 15:10:58.373 -05:00 [ERR] Unobserved exception in Task.
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (Object reference not set to an instance of an object.)
 ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at PingPlugin.PingTrackers.PingTracker.UpdateSeAddress() in K:\arashiiro\PingTrackers\PingTracker.cs:line 150
   at PingPlugin.PingTrackers.PingTracker.AddressUpdateLoop(CancellationToken token)
   --- End of inner exception stack trace ---
2022-02-02 15:10:58.374 -05:00 [INF] LASTEXCEPTION:eyJXaGVuIjoiMjAyMi0wMi0wMlQxNToxMDo1OC4zNzM5NzcyLTA1OjAwIiwiSW5mbyI6IlN5c3RlbS5BZ2dyZWdhdGVFeGNlcHRpb246IEEgVGFzaydzIGV4Y2VwdGlvbihzKSB3ZXJlIG5vdCBvYnNlcnZlZCBlaXRoZXIgYnkgV2FpdGluZyBvbiB0aGUgVGFzayBvciBhY2Nlc3NpbmcgaXRzIEV4Y2VwdGlvbiBwcm9wZXJ0eS4gQXMgYSByZXN1bHQsIHRoZSB1bm9ic2VydmVkIGV4Y2VwdGlvbiB3YXMgcmV0aHJvd24gYnkgdGhlIGZpbmFsaXplciB0aHJlYWQuIChPYmplY3QgcmVmZXJlbmNlIG5vdCBzZXQgdG8gYW4gaW5zdGFuY2Ugb2YgYW4gb2JqZWN0LilcclxuIC0tLT4gU3lzdGVtLk51bGxSZWZlcmVuY2VFeGNlcHRpb246IE9iamVjdCByZWZlcmVuY2Ugbm90IHNldCB0byBhbiBpbnN0YW5jZSBvZiBhbiBvYmplY3QuXHJcbiAgIGF0IFBpbmdQbHVnaW4uUGluZ1RyYWNrZXJzLlBpbmdUcmFja2VyLlVwZGF0ZVNlQWRkcmVzcygpIGluIEs6XFxhcmFzaGlpcm9cXFBpbmdUcmFja2Vyc1xcUGluZ1RyYWNrZXIuY3M6bGluZSAxNTBcclxuICAgYXQgUGluZ1BsdWdpbi5QaW5nVHJhY2tlcnMuUGluZ1RyYWNrZXIuQWRkcmVzc1VwZGF0ZUxvb3AoQ2FuY2VsbGF0aW9uVG9rZW4gdG9rZW4pXHJcbiAgIC0tLSBFbmQgb2YgaW5uZXIgZXhjZXB0aW9uIHN0YWNrIHRyYWNlIC0tLSIsIkNvbnRleHQiOiJVbm9ic2VydmVkIGV4Y2VwdGlvbiBpbiBUYXNrLiJ9
2022-02-02 15:10:58.374 -05:00 [ERR] Unobserved exception in Task.
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (Object reference not set to an instance of an object.)
 ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at PingPlugin.PingTrackers.PingTracker.UpdateSeAddress() in K:\arashiiro\PingTrackers\PingTracker.cs:line 150
   at PingPlugin.PingTrackers.PingTracker.AddressUpdateLoop(CancellationToken token)
   --- End of inner exception stack trace ---

materia dc

it seems the plugins is not showing on materia DC server info bar.. it working fine on elemental DC

Ping suddenly showing as much higher after update

After update ping will now spike wildly. For the last 2 months, it has been between 12-15 without ever going over 15, it is now at 60 minimum, with spikes to 200. Looking at resource manager, it is sitting steadily at 13 without moving.

I'm not sure which to believe, or if my internet just decided to have ping for the first time.

IP address pings to 127.0.0.1 when getting disconnected

It seems like this issues has been happening since v2.0.2.0 and a version before that version. Every time I get disconnected, the plugin will ping 127.0.0.1 instead of the server, even switching and logging in on different datacenter doesn't fix it. The only way to fix it is to restart the game or disable/reenable the plugin in-game. I don't know which version it was, but the version during/that was used for 6.05 patch works without any problem (it evens pings the datacenter on the main menu without the need to log into your character). This issue still happens when I'm not using any VPN.

I'm not a developer so I am not able to provide any useful log files, but if it really needed, I will learn and try to generate one.

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.