jamztheman / maptool Goto Github PK
View Code? Open in Web Editor NEWThis project forked from rptools/maptool
Now Infused with Nerps!
Home Page: http://maptool.nerps.net
License: GNU Affero General Public License v3.0
This project forked from rptools/maptool
Now Infused with Nerps!
Home Page: http://maptool.nerps.net
License: GNU Affero General Public License v3.0
Sentry client was not properly configured for "Releases".
Sentry will now properly tie version tag info to Git commit SHA and add MapTool version tag.
To be able to store multiple token images per token. In addition, have a macro to be able to switch those images.
Having to depend on many tables (or one huge one that they all share) to pull this off is just silly (imagine having 45 RPToks that can change shape).
The way I see it, everything token related should be inside the RPTok, including their multiple images - not externally in tables, that may not even exist in your current campaign..
I get the following error with 1.4.4.0 build on OS X and Linux Mint whenever the Resource Library window is visible. It happens on startup and then everytime I try and click anything.
java.lang.NullPointerException at net.rptools.maptool.client.ui.assetpanel.ImageFileImagePanelModel.getImage(ImageFileImagePanelModel.java:162) at net.rptools.lib.swing.ImagePanel.paintComponent(ImagePanel.java:183) at javax.swing.JComponent.paint(JComponent.java:1056) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JViewport.paint(JViewport.java:728) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1047) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JLayeredPane.paint(JLayeredPane.java:586) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintChildren(JComponent.java:889) at javax.swing.JComponent.paint(JComponent.java:1065) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210) at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:290) at javax.swing.RepaintManager.paint(RepaintManager.java:1272) at javax.swing.JComponent._paintImmediately(JComponent.java:5158) at javax.swing.JComponent.paintImmediately(JComponent.java:4969) at javax.swing.RepaintManager$4.run(RepaintManager.java:831) at javax.swing.RepaintManager$4.run(RepaintManager.java:814) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738) at javax.swing.RepaintManager.access$1200(RepaintManager.java:64) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:38) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
NOTE: This was using the standalone JAR file download.
Attempting to use Edit/Preferences produces the following:
java.lang.UnsatisfiedLinkError: jdk.packager.services.userjvmoptions.LauncherUserJvmOptions._getUserJvmOptionKeys()[Ljava/lang/String;
at jdk.packager.services.userjvmoptions.LauncherUserJvmOptions._getUserJvmOptionKeys(Native Method)
at jdk.packager.services.userjvmoptions.LauncherUserJvmOptions.getUserJVMOptions(LauncherUserJvmOptions.java:128)
at net.rptools.maptool.util.UserJvmPrefs.getJvmOption(UserJvmPrefs.java:75)
at net.rptools.maptool.client.ui.PreferencesDialog.setInitialState(PreferencesDialog.java:871)
at net.rptools.maptool.client.ui.PreferencesDialog.<init>(PreferencesDialog.java:292)
at net.rptools.maptool.client.AppActions$13.execute(AppActions.java:575)
at net.rptools.maptool.client.AppActions$ClientAction.actionPerformed(AppActions.java:2828)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at de.muntjak.tinylookandfeel.TinyMenuItemUI.doClick(Unknown Source)
at de.muntjak.tinylookandfeel.TinyMenuItemUI$MouseInputHandler.mouseReleased(Unknown Source)
...
1.4.4.1 no longer shows the Edit>Preferences menu option on OS X.
It was there in 1.4.4.0 and is still there in 1.4.4.1 on Windows.
When i first launched the 1.4.4.0.exe, I loaded a framework that was throwing stack errors. I changed the settings within the preferences to 2024 512 3. Since then I am unable to launch the .exe because it gives me a error saying Failed to Create JVM followed by a Failed to Launch JVM. I have tried to uninstall maptools but it gives same errors even after reinstalling. I am assuming there may be some left over pref files that I am missing.
Side note, I can launch it with the .jar file. I guess since it uses different java files?
Updated spotless to 3.7.0 and added background image for macos install process
Allow player owned tokens without "sight" to move within any area other player owned tokens can "see".
Reason/example: Wizard summoned spell token, ie Flaming Sphere, doesn't have sight but Wizard needs to be able to move token when Individual FoW is on.
Maps with large background images and large numbers (like 40+) of light sources are reasonably usable in 1.3b91. There is a slight lag when moving tokens but it's less than a few seconds.
The same map, loaded into 1.4.4, is completely unusable. There is a delay of 40-90 seconds between dragging a token and the map being updated to reflect the movement.
Steps to reproduce:
Expand current native walker methods to implement A* pathfinding taking VBL (and future terrain costs) into account.
1.4.1.7 and 1.4.3.20 (note: this problem does not exist in 1.3B91)
Simply put, when lighting is turn on or off on a token (GM side), the changes are not immediately reflected on the client side until a token is clicked.
Settings I used in test:
Start Server: Strict Token Ownership and Restricted Player Impersonation were checked. I also tried both I.View On and Off with no difference.
MT Vision: Night
FOW: On
VBL: Yes, rooms were all traced with VBL.
Steps:
Reported by dorpond
To replicate: Click on the left side of a token and drag it left, now drag it right - do the same when you click on the right side of the token.
*Looks like what it is doing is onClick->drag it's using the tokens 0,0 position of the cell vs where the mouse button is clicked.
As it is, it is too confusing. If an owner is already selected and we check 'All Players', it won't save and nothing happens. Observing who has ownership will still show the previous owner and 'All Players' is not checked, even though we checked it and saved it.
The only way All Players stays checked after a save, is if all previous owners are unchecked first.
I just think this area could use improvement.
Options:
https://sentry.io/nerps/nerps-maptool/issues/400070924/
IllegalArgumentException: Width (0) and height (1) cannot be <= 0
at net.rptools.maptool.client.ui.drawpanel.DrawablesPanel.drawDrawables(DrawablesPanel.java:93)
at net.rptools.maptool.client.ui.drawpanel.DrawablesPanel.paintComponent(DrawablesPanel.java:85)
at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:38)
...
(33 additional frame(s) were not displayed)
Width (0) and height (1) cannot be <= 0
If no lights are on a map, players can see npc movement through soft fow!
Add it!
When I open Edit>>>Preferences>>>Start Settings and input the desired numbers setting they won't stay there. As soon as I click on the next setting it disappears. Went back to version 1.4.3.20, as this was causing stack overflow problems.
I say that the 1.4.4.0 branch had fixes for the adding a new state error that I keep receiving on 1.4.3.20, so I thought I would give it a try. I did gradlew build and it completed without errors. I found in the build/distributions folder a tar file, which I extracted. I changed directory to the extracted dir and ran ./bin/MapTool. The program seems to load alright, but when I go to Edit --> Preferences, I get the following error:
java.lang.UnsatisfiedLinkError: no packager in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at jdk.packager.services.userjvmoptions.LauncherUserJvmOptions.<clinit>(LauncherUserJvmOptions.java:53)
at jdk.packager.services.UserJvmOptionsService.getUserJVMDefaults(UserJvmOptionsService.java:58)
at net.rptools.maptool.util.UserJvmPrefs.getJvmOption(UserJvmPrefs.java:60)
at net.rptools.maptool.client.ui.PreferencesDialog.setInitialState(PreferencesDialog.java:873)
at net.rptools.maptool.client.ui.PreferencesDialog.<init>(PreferencesDialog.java:294)
at net.rptools.maptool.client.AppActions$13.execute(AppActions.java:575)
at net.rptools.maptool.client.AppActions$ClientAction.actionPerformed(AppActions.java:2828)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at de.muntjak.tinylookandfeel.TinyMenuItemUI.doClick(Unknown Source)
at de.muntjak.tinylookandfeel.TinyMenuItemUI$MouseInputHandler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2237)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2295)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
at java.awt.Container.dispatchEventImpl(Container.java:2281)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:38)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
The message on the console output seems to repeat the above:
Logging stacktrace to Sentry.IO! :: no packager in java.library.path
What packager is this talking about? A Google search of "no packager in java.library.path" doesn't return anything helpful. Is this a depend that needs to be added to gradle.build so it's bundled with it?
When saving token and token images, file save dialog defaults to app directory and should default to last save location. Also, changing save 'type" resets directory location.
Add a screen capture utility like TokenTool and allow as texture.
Useful to copy background of map and paste over secret doors or other markings baked into a map.
This enhancement adds a new property to lights called lumens.
A negative value, say -20, will subtract "light", therefore creating darkness. Lights are processed in absolute order, so lets say you have the following:
(0) The torch light will first be drawn
(20) The darkness will then draw over the torch light (covering it up)
(60) Daylight will then draw over the darkness
(100) Finally, the Deeper Darkness will draw over everything else so far defined.
V1.4.3.20
Really simple to reproduce:
Now, this bug will no long rear its head, during this instance of MT - I can open other campaigns and everything will work fine. This issue only seems to happen one time during a new instance of MT.
Per the wiki
As of 1.3.b63 there appears to be a bug in which token states are not rendered properly after calling sendToBack or bringToFront. As a work-around, macros should change the token ordering first, then turn states on or off.
First, thanks for your contributions to this!
I tried to launch Maptools on my Mac running High Sierra, and it fails silently. I did some searching and it might be due to https://stackoverflow.com/questions/46438558/unable-to-launch-jwrapper-under-macos-high-sierra.
Thanks!
Opening BoT campaign with jvm default stack size caused fatal error...
https://sentry.io/nerps/nerps-maptool/issues/338315719/
StackOverflowError: None
at java.util.regex.Pattern$CharProperty$1.isSatisfiedBy(Pattern.java:3771)
at java.util.regex.Pattern$7.isSatisfiedBy(Pattern.java:5271)
at java.util.regex.Pattern$CharProperty.match(Pattern.java:3776)
at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
...
(1019 additional frame(s) were not displayed)
I get this error first time I disconnect from the server while hosting:
java.lang.NullPointerException at net.rptools.maptool.util.UPnPUtil.closePort(UPnPUtil.java:207) at net.rptools.maptool.client.MapTool.disconnect(MapTool.java:1108) at net.rptools.maptool.client.MapTool.stopServer(MapTool.java:984) at net.rptools.maptool.client.AppActions.disconnectFromServer(AppActions.java:2007) at net.rptools.maptool.client.AppActions$57.execute(AppActions.java:1999) at net.rptools.maptool.client.AppActions$ClientAction.actionPerformed(AppActions.java:2828) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369) at de.muntjak.tinylookandfeel.TinyMenuItemUI.doClick(Unknown Source) at de.muntjak.tinylookandfeel.TinyMenuItemUI$MouseInputHandler.mouseReleased(Unknown Source) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6578) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3343) at java.desktop/java.awt.Component.processEvent(Component.java:6343) at java.desktop/java.awt.Container.processEvent(Container.java:2259) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4961) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2317) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4793) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4539) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4480) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2303) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2758) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4793) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766) at java.desktop/java.awt.EventQueue.access$500(EventQueue.java:97) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:717) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:711) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:89) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:99) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:739) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:737) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:89) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:736) at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:38) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:199) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Second time everything goes through fine I got this problem in the 1.4.4.0 also.
Add mechanism to check for a new MapTool version on every load and prompt user to either download it or direct them to the page... Possibly auto-update...
Reported by: Wolph42
Token menu, vbl tab at the bottom "hide preivew"
Campaign properties, sight tab: no new line before "distance = y - Distance...."
Token opacity value in the token editor initially says "1" and changes to "100%" as soon as you interact with it.
Reported here: http://forums.rptools.net/viewtopic.php?f=3&t=27164
Looks like lights with no ownership are not updating the FoW properly when moved. Looks to be an issue with new 'ownership' code.
Add an automated error reporting tool that sends stacktraces and debug info to Sentry.io for analysis!
No personal data is sent, only Java Stacktraces and if you have a MapTool server, the server settings (no passwords are sent).
*Note: Opeing issue retroactively for tracking and awareness.
There was a change in Java 9 that causes the AppUpdate check to fail and as such 1.4.4.1 will not prompt to download new releases from GitHub when available.
This function is fixed and will resume working in 1.4.4.2.
Currently, if multiple light sources overlap on the same grid point, the colors combine. It can be hard to tell exactly which light sources are overlapping.
I propose adding an optional keyword border to light definitions, which would create a 1 pixel wide black border at the edge of the light source.
Here's an example: 3 overlapping auras are indistinct and it's not obvious if the signpost token is covered by 1 or 2 auras.
With the border keyword, it's obvious that the signpost is covered by 2 auras.
When I draw with the MT drawing tools, I draw using a variety of textures on my map. In addition, I might spend many days (or weeks) drawing a map to completion.
Sometimes I want to draw again, but I forgot where I have it in my Resource Library and what version of that specific texture it was (my texture library is huge, sometimes even having 50/100/200 of each texture! (which I would also love to see a texture scaler built in to MT to eliminate the need for multiple pixel versions of each assets)).
Request: In the texture picker within our current drawing tool, if we also had a list of all the textures we are currently using on that map and could choose from on of them, that would be awesome, and speed up the GM's job of getting that next session ready.
ImageManager is attempting to load non-image assets (hero lab statblocks). Need to put some logic around this!
16:26:21.405 (ImageManager.java:318) [pool-6-thread-1] ERROR net.rptools.maptool.util.ImageManager - BackgroundImageLoader.run(D:\Google Drive\Map Tool Resources\Clint\WrathofRighteous\Players\Wrath.por/200/Grayson Darkhammer,6e0926e8e1440b068c3f6a5014a7bf80): image not resolved
java.io.IOException: Could not load image
at net.rptools.lib.image.ImageUtil.bytesToImage(ImageUtil.java:279) ~[bin/:?]
at net.rptools.maptool.util.ImageManager$BackgroundImageLoader.run(ImageManager.java:316) [bin/:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_152]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_152]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_152]
Reported by Wolph42
In 1.4.3.20, the yellow vbl turned on for a long stretched token is rotated a bit
https://files.slack.com/files-pri/T0RQMKMEK-F6LKWFT7S/download/jamz_bugged_campaign_file.cmpgn
Create a snipping tool like the one Trevor added to TokenTool, so that we can snip part of a bound map and instantly make that a object/background texture or drawable, so that we can now use that when adding/modifying to the map.
Use cases:
Currently there is no way to set token property Owned by All, you can only set individual ownership.
Proposed macro function setOwnedByAll(boolean [,tokenID]) returns boolean
Reported by paulstrait
One other issue: When I try to add a new state and upload a new image, I get a java.lang.ArrayIndexOutOfBoundsException. I can take an old state I already have and modify it. Also if I try to create a new state that doesn't involve an image (e.g., a dot), the 'Add' button is grayed out.
When you add a new "state" you can now "insert" that state anywhere in the list. But it looks like I forgot to initialize the array index when that dialog loads. A workaround is to simply click up the list anywhere and then add the new state and it should work. (then move it down if you want it at the bottom)
Updating JRE to use java 9 for packaging
Transition from jWrapper to Oracle javapackager.
Pros:
Cons
Reported: http://forums.rptools.net/viewtopic.php?f=3&t=27164
When you move a light source which has bright and dim light radii, the light is sometimes (apparently randomly) displayed correctly or at other times the bright light extends to the radius that the dim light was supposed to. This problem didn't occur using maptool 1.4.0.0 on the same OS, so seems to have crept into the code recently.
Add macro to take screenshots and auto save them to...? Directory next to chat log saves?
Request by KataH @ http://forums.rptools.net/viewtopic.php?f=4&t=27311&p=267675#p267675
...add just a single line of Text to the TokenTool image. This way you could use the same image but have text, like at the bottom of the image, such as Standing, Sitting, Kneeling, Crawling, Prone, etc.
A nice clean font like Arial or such plus a way to size it as well (because if it gets to small it will be unreadable)...
Vision already has this setting, need to add "offset" to lights/auras so cones can also offset to match vision.
Need to add tokenOpacity and any other new fields to export class to strip out.
Hi, I seem to running into an error with the latest version of Maptool. The symptom is Maptool simply fails to launch; I double click the MapTool.exe file, and nothing at all happens. This happened immediately after I adjusted the minimum and maximum memory and the stack size. I assume I entered incompatible values, and that is somehow causing Maptool to fail to load. Things I have tried so far include re-installing Maptool, deleting the .maptool folder in my users folder, and deleting the MapTool folder in the Appdata\Local folder. MapTool version 1.4.3.20 still seem to work just fine for me. I hope this feedback helps to identify the issue, Thanks.
Reported via Forums:
http://forums.rptools.net/viewtopic.php?f=60&t=23681&p=268865#p268861
Regarding UPnP, I don't need to use it! Just a very minor, circumventable annoyance/non-optimal thing. I can just port forward and it's just as well as long as my local IP doesn't change - or I can just put up with having to disconnect twice, which is really not a huge strain. Here's the full error text when disconnecting with UPnP on:
1.4.1.8 doesn't have this issue. 1.4.0.5 doesn't seem to work with port forwarding on my particular router at all, but that's a different problem.
Router: Netgear WNDR3700
Stacktrace
java.lang.NullPointerException
at net.rptools.maptool.util.UPnPUtil.closePort(UPnPUtil.java:207)
at net.rptools.maptool.client.MapTool.disconnect(MapTool.java:1108)
at net.rptools.maptool.client.MapTool.stopServer(MapTool.java:984)
at net.rptools.maptool.client.AppActions.disconnectFromServer(AppActions.java:2007)
at net.rptools.maptool.client.AppActions$57.execute(AppActions.java:1999)
at net.rptools.maptool.client.AppActions$ClientAction.actionPerformed(AppActions.java:2828)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at de.muntjak.tinylookandfeel.TinyMenuItemUI.doClick(Unknown Source)
at de.muntjak.tinylookandfeel.TinyMenuItemUI$MouseInputHandler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2237)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2295)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
at java.awt.Container.dispatchEventImpl(Container.java:2281)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:38)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
The default darkvision definition be changed to [b]Darkvision: circle r60[/b] (i.e. remove the 'distance=62.5' part), so that darkvision doesn't limit player sight during the daytime. The default definition means that a player with darkvision (e.g. an elf) can't see very far when Map->Vision is set to 'Day', which is counter intuitive.
Reported: http://forums.rptools.net/viewtopic.php?f=3&t=27164&p=267900#p267900
Begin migration of MapTool to Java FX!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.