This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
MatthewC529's profile picture

CC Autotyper [v3.0.1 WinFix] [HTTP Workaround][GUI]

Started by MatthewC529, 25 December 2014 - 07:07 AM
MatthewC529 #1
Posted 25 December 2014 - 08:07 AM


CC Autotyper v3.0.1

M&P Final w/ Windows Fix



A Replacement to Mudkip Autotyper

Now with Pausing and Terminating Keybindings, AutoComplete, Minification and a GUI!



With the introduction of minification, I must thank Mathias Bynens for his wonderful luamin utility.

This Application Requires Java 8 or above. Windows versions are distributed with the Java SE 8 update 40 Runtime Environment. This is to allow for a cleaner, native-ish GUI and to allow access to the Nashorn Scripting Engine allowing leverage of JavaScript scripts.

The niche Autotyper program, completely re-written under a new brand. This program is currently entirely written in Java and JavaScript and operates around your Minecraft instance. Simply execute the program as desired and move to the Minecraft window, from there it will start type out the file it was given into the game!

It's quite simple to run anyway. Eventually I will throw in a batch script and shell script just for fun. When there is a GUI, the program will be available as an executable (for Windows and Unix) and will launch directly into a more friendly GUI. As of v2.0a this is via JavaFX providing a much more consistent and friendly user experience, although a Swing version is provided should JavaFX not be available.

Currently this is meant to produce functional programs, not readable programs. Therefore, comments and whitespace are mostly stripped out. Indenting I will look into adding back in. It's fast and has worked on the 3 programs I have tried so far:
  1. Adavanced Calculator by Cranium
  2. Milkshake GUI Proof Of Concept by lednerg
  3. Bubbles! by KingofGamesYami
Download: GitHub Releases
Source : CCAutotyper GitHub
Changes : GitHub Changelog
Issues : GitHub Issues

Executable Shell Script (Unix) and Windows Executables Available. Follow the proceeding instructions for commandline execution.

How To:

java -jar ccautotyper.jar [file|url|paste|gui] <location> [-wait] [-inDelay]
// Usage available through:
java -jar ccautotyper.jar

// Example (20 ms Input Delay, 5 second Wait):
java -jar ccautotyper.jar paste JCR8YTww -inDelay 20 -wait 5
// or
java -jar ccautotyper.jar gui

As of v0.2a pressing alt + P will toggle pausing and alt +S will terminate the autotyper see release for details.

It is recommended you let the program go to completion, the Robot will continue to type once you leave the Window. I will see if I can do anything about that but it's difficult to listen for arbitrary keypresses outside of a Java GUI in Java. Looking for changes in Window Focus is unlikely but possible… But not without a GUI.



Parameter Descriptions:


The Required Parameters (In Specific Order):

[file|url|paste|gui] <location>

[indent=1][flag|url|paste|gui] - Simply choose one of the 3 selections. File indicates a file will be given on the local file system. 'url' indicates a VALID URL will be given. 'paste' indicates a Pastebin Code will be given. Putting 'gui' does not require a location and should be the only argument.[/indent]

[indent=1]<location> - This is dependent on the flag selection. For 'file' a Path is given (relative or absolute), for 'url' a valid URL is supplied (e.g. http://www.computercraft.info), for 'paste' a valid Pastebin code is given (i.e. JCR8YTww [Which is the 'Bubbles!' Program]).[/indent]

The Optional Parameters (No Specific Order):

[indent=1][-wait] - A flag to indicate how long the Autotyper should wait before parsing the file and typing.[/indent]
[indent=1]Example: '-wait 5' will wait 5 seconds. [Default: 10][/indent]

[indent=1][-inDelay] - A flag to indicate how long the Autotyper should wait between keypresses. In milliseconds. You might say "1 millisecond of couse!" but this does not always work if Minecraft is expriencing severe FPS and input lag. Minecraft is pretty good… I can run at 10 milliseconds but the default is 40 milliseconds. Which can be a while. [Default: 40][/indent]



Copyright 2014 Matthew Crocco under the GPL v3
What does this mean, you ask? Here is a TL;DR Legal Summary
But seriously, feel free to create derivatives of this work as long as you keep it Open Source and Free.




Technical Details will be found on GitHub for those interested when I get to it. It's unfortunate my super-fast Copy and Paste solution failed…

Any and All Issues or Requests should be posted on GitHub… but I will check here of course. :)/>

Most Recent Changesv3.0.0 M&amp;P to v3.0.1 WinFix

[Notes]
  • Resolves bug on windows machines where attempts to set POSIX permissions on cache files would cause an exception.
  • Improved minification performance using cached files and Google Good Fast Hash as found in the hidden .cctyper-cache directory
    • This is a statically sized evicting queue removing the Least Recently Accessed files when space is needed
  • Better LuaString repair method using regular expressions
  • Tooltip Updates for final release

v2.1.1 to v3.0.0 – Minification and Polish Update, It's been a while.

[Primary]
  • New 'scripts' directory in which any non-java scripts will be stored for use later on
    • Primarily included as of this update to allow for use of luamin
  • Minification of Lua Code is now possible (to reduce character count and speed up the typing process) using luamin through nashorn
  • Files downloaded from Pastebin or some URL are now stored in a '.cctyper-cache' hidden directory (Up to 20 files are stored)
    • This likely warrants an uninstall script to handle removing any hidden directories/files
  • Fixes for autotyping in which Multi-line comments and in-line comments were not handled correctly
    • This was likely due to API restructuring and not an ages old bug
  • Small fix to try and ensure that icons appear in Ubuntu-based OS' on load, not on show
  • Multiple URL (non-pastebin) files are now cached, moved away from calling them all "cc-auto-file" and now uses a random crc32c based naming system
[Notable]
  • Cleaned up certain text snafus
  • Added a minification checkbox which has it's state saved between each instance
  • Added tooltips to certain things of importance such as the minification check box, location field, menubar buttons (top left)
  • Code Preview now loads Minified code instead of original code so that the user may deem if the Minification was worth it or too dangerous
  • New links to the Github Page and the Developer Website on the Copyright dialog
[Minor/Internal]
  • New 'minify' package where any minification APIs will reside, currently this is all centralized in a single 'Minifier' class that uses luamin to minify Lua Code using the Nashorn Scripting Engine.
  • Moved setAppIcons to Resources instead of FXAutotyperWindow
  • Further documentation effort… hopefully some day….
  • Reticulated splines
  • New TimedTooltip that allows modificaiton of the Open Time (time between hover and showing the tooltip) using Reflection to create a TooltipBehavior
  • New WebLink that puts the basic function of a Hyperlink in one call. Creates a Hyperlink with a URL location to go to using HostServices or something similar
  • More debug information as well as more readable documentation (i.e. Loading and Saving Preferences)
  • FXGuiUtils.buildLongAlert now allows you to specify a list of Nodes to include at the bottom of the dialog
  • GuiAccessors must now provide a openSite method that opens a URL in a web browser
  • TypingMethodology fixed to handle spaces, comments and multi-line comments correctly
  • Console.empty() now prints an empty line
  • Web Files (non-pastebin) are now stored in the cache using a Random filename that is dervied from the result of CRC32C and then turned into a hex string
    • Much better than just "cc-auto-file"
  • Cleaned up legacy stuff, especially in the console interface. Swing needs to be cleaned.
  • Updated libraries as necessary and ensured compatibility
Edited on 19 July 2015 - 08:49 PM
Lyqyd #2
Posted 26 December 2014 - 11:35 PM
This is the correct location for this topic.
MatthewC529 #3
Posted 27 December 2014 - 12:13 AM
This is the correct location for this topic.

Wasn't sure in which area it would be more useful.
This sub-forum may be overly specific to program developers while the intended audience is any user who needs a workaround. I only posted it here because the idea is a re-write/re-work of Mudkip's Autotyper in this same forum.
Lyqyd #4
Posted 27 December 2014 - 12:52 AM
Yeah, this is the best area for external tools to be used to make working with CC programs easier. This is where emulator programs have historically been posted, for example. The Programs section itself should only have ComputerCraft programs posted in it.
MatthewC529 #5
Posted 27 December 2014 - 04:53 AM
Yeah, this is the best area for external tools to be used to make working with CC programs easier. This is where emulator programs have historically been posted, for example. The Programs section itself should only have ComputerCraft programs posted in it.

Understood. Much appreciated. :)/>
MatthewC529 #6
Posted 28 December 2014 - 12:45 AM
Just made a few important changes for v1.0a.
  • Brand New GUI (Will be refined further) that is available by using the Shell Script or Executable provided. Alternatively using the 'gui' flag.
  • Further retouching of the Autotyping speed and responsiveness to Keybindings.
  • Icons! Albeit temporary.
  • Executables, thanks to Bash and Launch4j
  • Lots of GUI Refinement…. Lots and lots of testing and simplification. Though "Location Memory" still needs to be implemented
Following through with the new Executables, there are now 2 files available per release (as of 1.0a):
  1. CCAutotyper-{VERSION}-win32.exe (A Self-Extracting Archive with the Windows Executable)
  2. CCAutotyper-{VERSION}.zip (Standard ZIP Archive including the Executable Bash Script. Does not include the Windows Executable.)
May split the Zip into Windows and Non-Windows Versions but that seems redundant.
MudkipTheEpic #7
Posted 29 December 2014 - 01:26 AM
Nice! I didn't think anyone actually saw my Autotyper, let alone try to improve it! :ph34r:/>
MatthewC529 #8
Posted 29 December 2014 - 02:49 AM
Nice! I didn't think anyone actually saw my Autotyper, let alone try to improve it! :ph34r:/>

It's a useful little thing! If you want even a super long program like Milkshake GUI you can even if HTTP Mode is off! Albeit with more time than pastebin get. I had offered a long time ago on your post to fix up some code and to add a GUI but then I got involved in other Java work. I have time due to the Holidays and decided to just re-write it since it's been a while (Hope that doesn't offend you!).

Currently I am looking at ways of using JNI to auto-focus the Minecraft Window and possibly detect when the window is not focused. But that is going to require a bit of time if I don't find a Cross-platform Native Library to do it for me. Though this program currently isn't just isolated to CC Programs. So I might end up figuring that it is self-limiting. We will see.

I was never very good at designing or implementing GUI's, much better at the functionality of the parts, but I think this is pretty good until I improve it. JNativeHooks was a life-saver to capture Global Key Press events.

Feel free to take a look at the source.
MatthewC529 #9
Posted 02 January 2015 - 08:31 PM
Sizeable Update

v1.0a -> v1.2b (v1.2b was competing with other versions in-dev)

Summary:
[indent=1]This update finally implements many features that were on my To-Do List. Location History w/ AutoCompletion is now implemened, A Confirmation Dialog (which is optional) is included that is toggleable. Upon submitting a valid request a dialog will appear that will display the text in the File with the option to Approve or Reject and to switch between Syntax for non-CC files. Lua is selected by default. Generally Text Input Fields are improved with better Undo/Redo thanks to RSyntaxTextArea/RTextArea. The "i" button now leads to the GitHub Readme.[/indent]

Change Log (Found on Github) :

Primary:
  • AutoComplete on Location using Ctrl + Space with a history size of 50 locations. Should be plenty.
  • Code Confirmation as an optional setting. Brings up a display with syntax highlighting to approve or reject.
  • Improved Undo/Redo Ability
  • Improved Text Components thanks to RSytanxTextArea and RTextArea as well as AutoComplete
Notable:
  • Information Button now leads to Github Readme Page via Default Browser
  • Pre-loads 3 Locations used in testing.
    • Bubbles! by KingofGamesYami
    • Milkshake GUI Proof of Concept by lednerg
    • Advanced Calculator by Cranium
Minor/Internal:
  • Inclusion of RSyntaxTextArea Library by Fifesoft
  • Inclusion of AutoComplete Library by Fifesoft
  • Improvements to MemoryUnit.java, adding conversions to and from SI Units and Non-SI Units as well as conversions between SI and Non-SI.
  • LocationHandler.URL now does the same HTTP Response check that LocationHandler.PASTE does.
  • System.out is now overridden to ignore any messages that just contain "Yo" which was prompted by RSyntaxTextArea not removing a Test Line. This should not impact Console calls.
  • Foundations for a JavaFX GUI Implementation
Edited on 02 January 2015 - 07:32 PM
MatthewC529 #10
Posted 10 January 2015 - 05:07 AM
Update to v2.0a

Now uses JavaFX with even further refined autotyping.
See Changelog for details. See Github Commits for detailed list of line-by-line changes.

!!Resolves Issues #1 and #2 and #3 on GitHub, Fixes Fatal NullPointerException Crash when using GUI!!
Edited on 10 January 2015 - 05:55 PM
MatthewC529 #11
Posted 30 March 2015 - 07:04 AM
It's been a while, and I don't know how useful this is but some things bother me and I need to polish them (lest I feel like I left a half-baked app), so unless this was rendered useless by something else. Here is the next update:

v2.0a w/ Patch -> v2.1.0

Primary
  • New Versioning: MAJOR.MINOR.REVISION
  • Cleaner way of handling the transition from GUI Event Handling to the Autotyping Task, no longer is there an obvious unresponsive window during autotyping
  • New Identification Scheme for Locations in the Location History list. (Local File:, Web URL:, and Pastebin:)
  • Auto-Completion no longer displays annoying empty pop-up lists
  • Application is Now Java 1.8 (Windows Users have a 1.8 JRE bundled with their executable)
Notable:
  • Autotyper Window is now hidden during autotyping
  • Foundations for notifying the user of the countdown to autotyping.

Please see the Github Repository for a full change log as well as source code and a full commit history.
Possseidon #12
Posted 31 March 2015 - 07:31 PM
I just got an amazing idea to make this work pretty much instantly!

Instead of typing every single letter, which obviously needs a lot of time, why not just convert every "\n", that can't get pasted by ComputerCraft, into some placeholder, copy the \n-less encoded text with ctrl-C as one line and let a computercraft program decode it again just using the paste event you get from ctrl-V

Should be possible in my opinion, as long as you find a character, that you can use for the placeholder thingy.
That would probably be the fastest method I can think of ^^

If you see any reason why this wouldn't work, please tell me :)/>

Edit:

Thought about it a bit more, any if that doesn't work, you could do something that mixes both ideas a bit.
Make your program not type the charachters individually. Make it copy a whole line into the system-clipboard, and then don't simulate every single letter, but simulate a ctrl-V into ComputerCraft.
Then simulate a "return key" to get into the next line and do all that for every line. Should be, if done correctly, way faster than typing.

From my own expirience:
I'm programming in Delphi (you probably don't know that langauage… don't worry :P/> ) and once made a chat-spambot that had at first the same principle like your program.
Like typing every single letter, pressing return, typing all letters again, pressing return and so on, to spam whatever chat you want.
After some time, since it was kinda slow, I got that idea of copying the text into the clipboard as well and suddenly my spambot became like incredibly fast and 500% more anyoing xD
Edited on 31 March 2015 - 05:43 PM
SquidDev #13
Posted 31 March 2015 - 10:06 PM
-snip-

From memory the text is limited at 255 characters per paste event. Using paste events is faster than lots of chars so part of what you have said is still implementable.
Possseidon #14
Posted 01 April 2015 - 11:18 AM
-snip-

From memory the text is limited at 255 characters per paste event. Using paste events is faster than lots of chars so part of what you have said is still implementable.

Wow your right… tested it and the limit isn't even 255/256 but 128 o_O
Well… there is still my second idea of pasting line by line. And if (for some weird reason) a line is longer than 128 it has to get split.
Wojbie #15
Posted 01 April 2015 - 11:27 AM
Line longer than 128 characters? More common than you think.
Possseidon #16
Posted 01 April 2015 - 12:25 PM
Line longer than 128 characters? More common than you think.
Wow! You're right! xD
Even though I program with 2 space-indent and have pretty good formating there are 4 lines in my current project (noptepad), that are longer than 128 chars.
MatthewC529 #17
Posted 03 April 2015 - 01:08 AM
More cleanup in preparation for a larger re-write, next update should include some experiment with speeding up the typing process without making the auto-typed content useless.

v2.1.0 to v2.1.1 (too few visible changes to warrant a minor update)


[Noticeable]
  • General improvements to AutoCompletion (All those things stated in last update now actually work)
  • Alt, Alt-P and Alt-S were broken at some stage in my last cleanup, now they work as expected
  • Updating to New Versions now cause all Preferences to be overwritten to avoid incompatible KV Pairs
    • This means that the new version will not remember your previous settings at all
  • AutoCompletion no longer does a prefix lookup, now it searches for any occurrence at any point in the result.
    • i.e. Typing 'ste' will return all 'Pastebin' results since 'ste' appears in the middle of Pastebin

[Codebase]
  • Continued Cleanup and Conversion to clean Java 8 Functional Idioms
  • The 'caused' flag no longer does anything in AutoCompleteTextField, that was replaced with a Key EventHandler and Mouse EventHandler attached to the ListView
  • AutoCompleteTextField is just generally nicer to read since more procedures have been moved to their own methods
  • SwingKeyboard and FXKeyboard now implement a Queue to allow interaction with the JNativeHooks Dispatch Thread
  • More To-Do's as clean-up continues. Might repalce AutoCompletion with ControlsFX. Why re-invent the wheel?
  • AutoCompletion requires a re-structuring or removal, it is not very plug-and-play. (too few interfaces)
  • Continued attempts to remove Static Variables and the horrible Singleton Pattern…
  • Removed useless @InDev annotation, Renamed InformedOutcome to Outcome, Other Renamings (see commit)
  • Moved all popup.show() calls to AutoCompleteTextField.showPopup(), same for popup.hide() and hidePopup()
  • All calls in FXAutotyperWindow from AutoCompeleteTextField.addData are filtered through saveToHistory now
    • Prevents Duplicate Entries in AutoCompleteTextField
  • Checking if a location already is saved is now done through Google Commons' Hashing Functions
  • Continued Documentation Effort

MatthewC529 #18
Posted 03 April 2015 - 01:16 AM
Line longer than 128 characters? More common than you think.
Wow! You're right! xD
Even though I program with 2 space-indent and have pretty good formating there are 4 lines in my current project (noptepad), that are longer than 128 chars.

This is the primary problem, I had played around with using the clipboard but it proved easier and faster to make a solution that made use of AWT's Robot and the Glass UI Robot to emulate the keyboard and commit a variety of keystrokes. It is absolutely 10x faster to copy and paste from the clipboard but the primary problem is the character limit and that you have to be careful to not break the lua interpeter when you split lines up. Not that it is at all impossible.

I plan on exploring other options now that I have more time but my FXKeyboard and SwingKeyboard implementations have been working fine as is and Minecraft has (in my tests) handled the 1 ms keystrokes. Though ccemuredux does not (I imagine there is some discrepancy between how Minecraft handles inputs and how LibGDX/LWJGL does and although I use both very frequently I would not be able to say definitively why since the ccemuredux source i unavailable).

Feel free to recommend more things or, if you have the knowledge and the will, feel free to contribute to the repository via pull requests. The codebase is currently being re-written (since I actually have free time now) to be more easily maintainable and usable. It was written as a quick tool and was great for that, but now that I want to extend it… the lack of interfaces and a concrete API is somewhat of a hell. Moving to Java 8 has helped and so has diligent refactoring but I have a lot to change. Hell, I plan to replace my basic AutoCompletion implementation with ControlsFX's implementation…

Re-inventing the wheel is never a good idea… Documentation is and I did not do enough of that.
Edited on 02 April 2015 - 11:34 PM
Possseidon #19
Posted 03 April 2015 - 09:51 AM
It is absolutely 10x faster to copy and paste from the clipboard but the primary problem is the character limit and that you have to be careful to not break the lua interpeter when you split lines up.
Wut? Splitting lines up is a problem in your opinion? Just don't press return between two spilts? xD Or am I misunderstanding/forgetting something?
Edited on 03 April 2015 - 09:50 AM
MatthewC529 #20
Posted 03 April 2015 - 04:19 PM
-snip-
Wut? Splitting lines up is a problem in your opinion? Just don't press return between two spilts? xD Or am I misunderstanding/forgetting something?

I was referencing that I never actually tried splitting if then, for do, function, etc. statements onto multiple lines. After doing a quick test when I woke up to see your reply this morning, the Lua interpeter is a lot better than I thought… though to be fair I think splitting your statements onto multiple lines (except for if then else variable initialization) is just insanely bad practice so I never did that. Nice to know it works though, again I will be playing with this and a few other ideas this week.

Truly I was happy to find this worked:

function
hello
(text)
print(text)
end

if
true
then
hello("hi")
else
hello("Confused")
end
Possseidon #21
Posted 03 April 2015 - 04:28 PM
-snip-
Wut? Splitting lines up is a problem in your opinion? Just don't press return between two spilts? xD Or am I misunderstanding/forgetting something?

I was referencing that I never actually tried splitting if then, for do, function, etc. statements onto multiple lines. After doing a quick test when I woke up to see your reply this morning, the Lua interpeter is a lot better than I thought… though to be fair I think splitting your statements onto multiple lines (except for if then else variable initialization) is just insanely bad practice so I never did that. Nice to know it works though, again I will be playing with this and a few other ideas this week.

Truly I was happy to find this worked:

function
hello
(text)
print(text)
end

if
true
then
hello("hi")
else
hello("Confused")
end
Is it just me, or are you not quit understanding what I mean by splitting?

I don't mean splitting one long line into multiple lines. I just mean, if you have a line with >128 chars you put the first 128 chars into the clipboard and simulate a paste, then you put the rest (if it is less 128 chars) in and then finally press return and you still have everything in one line and don't have to worry that the Lua interpreter will get confused since it pastes the file exactly like it was before. Is that so hard to understand? xD
MatthewC529 #22
Posted 03 April 2015 - 04:43 PM
Is it just me, or are you not quit understanding what I mean by splitting?

I don't mean splitting one long line into multiple lines. I just mean, if you have a line with >128 chars you put the first 128 chars into the clipboard and simulate a paste, then you put the rest (if it is less 128 chars) in and then finally press return and you still have everything in one line and don't have to worry that the Lua interpreter will get confused since it pastes the file exactly like it was before. Is that so hard to understand? xD

if you don't have some pre-conceived notion that didn't work when I tried it, yes. But that pre-conceived notion is wrong so I do get what you mean now, I am just extremely tired, a lot going on personally so my mind is in a million places despite my break. Fixing this program is a nice relaxation time. So apologies if there was a misunderstanding but… again… I will be playing around with a few things. And some additional features for the GUI itself.

Thanks.
MatthewC529 #23
Posted 24 May 2015 - 08:42 AM
Important Update, Get Newest Version Here, Changes Copied from Github Changelog:

v2.1.1 to v3.0.0 – Minification and Polish Update, It's been a while.

[Primary]
  • New 'scripts' directory in which any non-java scripts will be stored for use later on
    • Primarily included as of this update to allow for use of luamin
  • Minification of Lua Code is now possible (to reduce character count and speed up the typing process) using luamin through nashorn
  • Files downloaded from Pastebin or some URL are now stored in a '.cctyper-cache' hidden directory (Up to 20 files are stored)
    • This likely warrants an uninstall script to handle removing any hidden directories/files
  • Fixes for autotyping in which Multi-line comments and in-line comments were not handled correctly
    • This was likely due to API restructuring and not an ages old bug
  • Small fix to try and ensure that icons appear in Ubuntu-based OS' on load, not on show
  • Multiple URL (non-pastebin) files are now cached, moved away from calling them all "cc-auto-file" and now uses a random crc32c based naming system
[Notable]
  • Cleaned up certain text snafus
  • Added a minification checkbox which has it's state saved between each instance
  • Added tooltips to certain things of importance such as the minification check box, location field, menubar buttons (top left)
  • Code Preview now loads Minified code instead of original code so that the user may deem if the Minification was worth it or too dangerous
  • New links to the Github Page and the Developer Website on the Copyright dialog
[Minor/Internal]
  • New 'minify' package where any minification APIs will reside, currently this is all centralized in a single 'Minifier' class that uses luamin to minify Lua Code using the Nashorn Scripting Engine.
  • Moved setAppIcons to Resources instead of FXAutotyperWindow
  • Further documentation effort… hopefully some day….
  • Reticulated splines
  • New TimedTooltip that allows modificaiton of the Open Time (time between hover and showing the tooltip) using Reflection to create a TooltipBehavior
  • New WebLink that puts the basic function of a Hyperlink in one call. Creates a Hyperlink with a URL location to go to using HostServices or something similar
  • More debug information as well as more readable documentation (i.e. Loading and Saving Preferences)
  • FXGuiUtils.buildLongAlert now allows you to specify a list of Nodes to include at the bottom of the dialog
  • GuiAccessors must now provide a openSite method that opens a URL in a web browser
  • TypingMethodology fixed to handle spaces, comments and multi-line comments correctly
  • Console.empty() now prints an empty line
  • Web Files (non-pastebin) are now stored in the cache using a Random filename that is dervied from the result of CRC32C and then turned into a hex string
    • Much better than just "cc-auto-file"
  • Cleaned up legacy stuff, especially in the console interface. Swing needs to be cleaned.
  • Updated libraries as necessary and ensured compatibility
Edited on 24 May 2015 - 06:43 AM
MatthewC529 #24
Posted 19 July 2015 - 10:59 PM
Important Update for Windows Users: Fixes Bug that causes minification to ALWAYS fail (New Version Here)

A few GUI updates and performance updates are included though those who are on Solaris, Linux, Mac, etc. are not required to download this. Windows users MUST if they wish to minify lua files for faster typing.

The tl;dr of why? On my linux machine I forgot to account for non-POSIX file permissions. Attempting to apply POSIX permissions to windows files causes an exception, resulting in a minification error. This adds a special case for non-POSIX machines and resolves the issue.

Quick Changelog Summary:
[Notes]
  • Resolves bug on windows machines where attempts to set POSIX permissions on cache files would cause an exception.
  • Improved minification performance using cached files and Google Good Fast Hash as found in the hidden .cctyper-cache directory
    • This is a statically sized evicting queue removing the Least Recently Accessed files when space is needed
  • Better LuaString repair method using regular expressions
  • Tooltip Updates for final release
This is likely to be my last post on this topic, this IS the final version and only bugfixes will be done with nothing posted here except a thread title and thread content update that doesn't push this to the top of the forum. I have other things I want/need to do… and maybe a neat CC API that is non-button related (for once!)
Orcculus #25
Posted 02 February 2016 - 03:03 PM
Great program. could really do with support for UK (and maybe other) keyboard layouts.
Stevan #26
Posted 02 September 2017 - 02:06 AM
umm, i have a problem with the code: [html][/html]

im using windows 8.1