Commit Graph

293 Commits

Author SHA1 Message Date
ice_iix a40cd43a2e Update to use crate:: for current crate, for Rust 2018 edition
From `cargo fix --edition`, see https://rust-lang-nursery.github.io/edition-guide/print.html#the-crate-keyword-refers-to-the-current-crate
2018-11-04 12:06:00 -08:00
ice_iix db02f9e790 Update try!() to new ? syntax for Rust 2018 edition
Not automatically updated, see https://users.rust-lang.org/t/why-does-cargo-fix-replace-try-with-r-try-instead-of/21972/3
There are other tools to replace it, btu this is what I used:
find src -name '*.rs' -exec perl -MRegexp::Common -0777 -pe'$bp=$RE{balanced}{-parens=>"()"}; s/try\!($bp)/substr($1, 1, length($1) - 2) . "?"/ges' -i {} \;
2018-11-04 11:48:51 -08:00
ice_iix fc18e9836f Remove anonymous trait parameters, name _ for Rust 2018
https://rust-lang-nursery.github.io/edition-guide/rust-2018/trait-system/no-anon-params.html
2018-11-04 11:48:34 -08:00
ice_iix f6a56f5b86 Use non-colliding variable name dynamic_texture instead of dyn (now a keyword) 2018-11-04 11:31:28 -08:00
iceiix 1589a29685
Remove use of OpenSSL for RSA PKCS1 encryption (#12). Closes #2
* Add handwritten RSA PKCS1 encryption using num-bigint and simple_asn1

* Add more logging to compare OpenSSL with/without side-by-side

* Log message and ciphertext in hex

* Print N and e as hexadecimal integers

* Fix bad encryption caused by zeros in PKCS1 padding

PS field in https://tools.ietf.org/html/rfc8017#section-7.2.1
Must be nonzero

* Use rand fill instead of rand_bytes

* Remove OpenSSL!

* Update CI scripts and docs to not install OpenSSL

* Remove copying OpenSSL DLLs (libeay and ssleay) in AppVeyor script

* Change rsa_public_encrypt_pkcs1 to return a Result<Vec<u8>, String>

* Add error checking, returning Err<String> on failure; RFC comments

* Add the required message representative range checking

* Use expect() instead of unwrap() on from_der

* Map the ASN.1 error to a String to return it from rsa_public_encrypt_pkcs1() instead of panicking

* Move RSA to a new crate, rsa_public_encrypt_pkcs1

https://github.com/iceiix/rsa_public_encrypt_pkcs1

* Update to rsa_public_encrypt_pkcs1 with simple_asn 0.1.0

https://github.com/iceiix/rsa_public_encrypt_pkcs1/issues/1

* Update to published version of rsa_public_encrypt_pkcs1, 0.1.0

* Remove unnecessarily added blank line

* Remove libssl-dev from .travis.yml
2018-11-04 09:40:51 -08:00
iceiix 90aaeaf16a
Support beta Rust release. Closes #8 (#11)
* Remove seemingly unneeded const on MetadataKey<T> new

* Change biome temperature/moisture to integer, x100 to remove floating-point so can use within stable 'const fn'

* Remove unstable const_fn feature, now using stable const fn: see https://www.reddit.com/r/rust/comments/9msqfn/const_fn_soon_on_stable_rust/

* Test on Rust beta (awaiting 1.31 release for stable)

* Update readme for beta Rust support
2018-11-02 16:57:23 -07:00
iceiix 6d88ce23ec Switch to RustCrypto for Cfb8 symmetric crypto, instead of OpenSSL (#10) (#2)
* Encrypt with both RustCrypto cfb8 and OpenSSL

* Switch to RustCrypto for decrypting

* Show encryption for both RustCrypto and OpenSSL, for comparison...

* Correct off-by-one error in encryption, cfb8 doesn't need extra byte

* Remove OpenSSL for symmetric crypto

* Update Cargo.lock
2018-11-01 20:46:21 -07:00
ice_iix c36d0706ac Remove obsolete comment 2018-10-29 17:10:08 -07:00
ice_iix 56a1cb2b76 Fix logging with set_boxed_logger, add std feature to dep
https://github.com/rust-lang-nursery/log/issues/303
2018-10-28 19:45:57 -07:00
ice_iix 51a5e3ed5c Update to rust-openssl 0.10.15 (from 0.7.8)
Major API change, the last of the outdated dependencies
Closes https://github.com/iceiix/steven/issues/4

Note: would still like to replace the last usages of the OpenSSL crate
https://github.com/iceiix/steven/issues/2 but it is needed for CFB8
until a replacement is available (maybe https://github.com/RustCrypto/stream-ciphers/issues/4)
2018-10-27 19:56:34 -07:00
ice_iix 80c740c1c5 Update to cgmath 0.16.1, collision 0.18.0
https://github.com/iceiix/steven/issues/4
2018-10-27 18:11:26 -07:00
iceiix b17f296ab4
Replace hyper with reqwest (#7)
An old version of hyper was used before (0.8.0), in the process of updating to hyper 0.12.11, found this higher-level replacement/wrapper, reqwest 0.9.4 which is simpler to use than the latest hyper and serves the purpose of a simple HTTP client well

* Begin updating to hyper 0.12.11

https://github.com/iceiix/steven/issues/4#issuecomment-425759778

* Use type variables for hyper::Client

* Fix setting header syntax, Content-Type: application/json, 17->13

* Parse strings into URLs with url.parse::<hyper::Uri>().unwrap()

b20971cb4e/examples/client.rs (L25)

* Use hyper::Request::post() then client.request() since client.post() removed

* wait() on the ResponseFuture to get the Result

* try! to unwrap the Result

* status() is now a method

* Concatenate body chunks unwrap into bytes, then parse JSON from byte slice, instead of from_reader which didn't compile

* Replace send() with wait() on ResponseFuture

* Parse HeaderValue to u64

* Slices implement std::io::Read trait

* Read into_bytes() instead of read_to_end()

* Disable boxed logger for now to workaround 'expected function, found macro'

* Remove unnecessary mutability, warnings

* Hack to parse twice to avoid double move

* Use hyper-rustls pure Rust implementation for TLS for HTTPS in hyper

* Start converting to reqwest: add Protocol::Error and reqwest::Error conversion

* Use reqwest, replacing hyper, in protocol

* Convert resources to use reqwest instead of hyper

* Convert skin download to reqwest, instead of hyper

* Remove hyper

* Revert unnecessary variable name change req/body to reduce diff

* Revert unnecessary whitespace change to reduce diff, align indentation on .

* Fix authenticating to server, wrong method and join URL

* Update Cargo.lock
2018-10-27 17:03:34 -07:00
iceiix de6cd2044e
Update to serde_json 1.0 (#6)
* Replace find() with get()

* Update for renamed as_string->as_str and as_boolean->as_bool

https://github.com/serde-rs/json/releases/tag/v0.8.0
Value::as_string() has been renamed to as_str() and Value::as_boolean() has been renamed to as_bool() to improve consistency
https://github.com/serde-rs/json/issues/126

* No serde_json::Value::I64/U64/F64 anymore, only Number

* Update from lookup() to pointer(), using JSON pointer syntax

https://github.com/iceiix/steven/pull/6#issuecomment-432472123

* Remove unused and removed ObjectBuilder import

* Use into_iter().collect() to convert BTreeMap to serde_json::Map

* Change parse_rules to accept serde_json::Map instead of BTreeMap

* Remove unused serde_json macro_use

* Update Cargo.lock
2018-10-23 18:47:21 -07:00
ice_iix edbed5e319 Check glGetError() in rendering loop
For investigating https://github.com/iceiix/steven/issues/5
No errors seen
2018-10-07 13:53:50 -07:00
ice_iix ed5d48f136 Clamp NUM_SAMPLES glTexImage2DMultisample at GL_MAX_SAMPLES, since not all systems support >1 see https://github.com/iceiix/steven/issues/5#issuecomment-427669426 2018-10-07 10:08:24 -07:00
iceiix cceb1768b1 Panic on incomplete framebuffer so can see where it was called with RUST_BACKTRACE=1 2018-10-07 09:43:00 -07:00
ice_iix 7731117e4f Check framebuffer statuses before rendering and unbinding
No errors, so not the cause of https://github.com/iceiix/steven/issues/5
2018-10-07 08:00:07 -07:00
ice_iix 84c682b177 Check framebuffer status later not immediately after binding
No errors https://github.com/iceiix/steven/issues/5
2018-10-06 13:58:16 -07:00
ice_iix 3a32710b17 Check framebuffer status after each bind
For https://github.com/iceiix/steven/issues/5
GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
2018-10-06 13:28:19 -07:00
ice_iix 7503b90667 Use the RustCrypto sha-1 crate instead of sha1
For https://github.com/iceiix/steven/issues/2#issuecomment-425769562
2018-10-03 18:28:05 -07:00
ice_iix d2b59fbd10 Update to rand 0.5.5 for https://github.com/iceiix/steven/issues/4
Useful guide: https://github.com/rust-random/rand/blob/master/UPDATING.md
2018-09-30 19:05:20 -07:00
ice_iix c688836a16 Use hex module for hex decoding, removing deprecated rustc-serialize for https://github.com/iceiix/steven/issues/4 2018-09-30 18:14:36 -07:00
ice_iix e988c64376 Use base64 crate for base64 instead of deprecated rustc-serialize, for https://github.com/iceiix/steven/issues/4 2018-09-30 17:58:40 -07:00
ice_iix fe99910550 Update to image 0.20.0 2018-09-30 17:21:05 -07:00
ice_iix 43f6565fa5 Update to log 0.4.5
https://github.com/iceiix/steven/issues/4
2018-09-30 16:36:00 -07:00
ice_iix fd2c51eac4 Update to flate2 1.0.2
https://github.com/iceiix/steven/issues/4
2018-09-30 16:19:24 -07:00
ice_iix 562ab9dbc4 Remove unused username field in Server. Closes https://github.com/iceiix/steven/issues/1 2018-09-30 00:25:07 -07:00
ice_iix d6fa1d0a0b Fix warning: unnecessary parentheses around function argument, new in nightly-2018-02-15 2018-09-29 23:28:38 -07:00
ice_iix 6eaf1688f4 Remove time crate in favor of std::time, removing last usage in main
Combined with these changes, which also convert to std::time:
47aeb83da2 logo text
2f861f815a light updates
9677f8ae9c server ping
2018-09-29 23:11:47 -07:00
ice_iix 9677f8ae9c Use std::time for server ping, getting closer to eliminating use of 'time' crate, https://github.com/iceiix/steven/issues/3 2018-09-29 22:57:55 -07:00
ice_iix 2f861f815a Use std::time for 5ms light updates instead of time crate
More progress on https://github.com/iceiix/steven/issues/3
2018-09-29 22:36:55 -07:00
ice_iix 163556fbf1 Use sha1 module for hashing instead of openssl, part of https://github.com/iceiix/steven/issues/2 2018-09-29 22:23:48 -07:00
ice_iix 47aeb83da2 Use std::time instead of time crate for logo text, progress on https://github.com/iceiix/steven/issues/3 2018-09-29 20:01:13 -07:00
ice_iix fbd71ea8ce Fix warning: variable does not need to be mutable, in nightly-2017-08-31
https://github.com/iceiix/steven/issues/3
2018-09-29 18:42:13 -07:00
ice_iix d704edaf81 Comment out dead code to avoid warning, for https://github.com/iceiix/steven/issues/1 2018-09-29 17:53:01 -07:00
ice_iix 84cbc3d00e Fix illegal use of floating point in pattern, https://github.com/iceiix/steven/issues/1 https://github.com/rust-lang/rust/issues/41620 2018-09-29 17:50:02 -07:00
ice_iix fa8f7bb9b9 Increase sample count to 2 to fix/workaround rendering issue #74 https://github.com/Thinkofname/steven/issues/74 2018-09-29 17:31:16 -07:00
iceiix b399b74adb Update to rust-sdl2 0.31.0 2018-09-29 13:56:52 -07:00
iceiix 743aaac4cd Enable SDL hint to workaround SDL_SetRelativeMouseMode broken on Linux
Fixes https://github.com/Thinkofname/steven/issues/73
See https://bugzilla.libsdl.org/show_bug.cgi?id=2150
2018-09-29 13:39:20 -07:00
Matthew Collins 2e99712cc8 Update rust-sdl to fix a bug (Fixes #69) 2017-05-14 10:04:34 +01:00
satoshinm 2f950a749c Fix use of deprecated Rc:would_unwrap 2017-05-14 09:58:34 +01:00
Techcable 1e8c3582ed Update to Minecraft 1.11 (Fixes #63) 2016-12-09 14:32:02 +00:00
llogiq 5e0c041a71 Fixed another batch of clippy warnings
Those are mostly readability-related. Also did a cargo update.
2016-09-15 15:15:52 +01:00
Techcable 555b646696 Update to minecraft 1.10.2 2016-07-10 12:23:59 +01:00
Kyle Wood 8d95965d40 Enable paste in textboxes 2016-04-26 00:50:16 +01:00
Thinkofname 6e33c3cc36 Fix the text boxes in the server edit screen not being focusable 2016-04-26 00:31:47 +01:00
Thinkofname 2e3d9a0a4b Fix skins reverting to default on reload 2016-04-25 13:45:13 +01:00
Thinkofname 61829c055a Fix a crash caused by trying to load a skin whilst missing vanilla resources 2016-04-25 13:31:24 +01:00
Thinkofname 4436736dce Download vanilla assets (sounds/locales) and load as a pack 2016-04-25 13:21:30 +01:00
Thinkofname 3b7d2cb8ee Fix default textures being replaced with the missing texture on reload 2016-04-25 12:05:57 +01:00
Thinkofname f23c16bff2 Update client url and add an in-game progress bar for the download (Fixes #22) 2016-04-24 23:22:10 +01:00
Thinkofname f8be801eac Improve biome color handling 2016-04-24 20:09:24 +01:00
Thinkofname 88d43c615a Move the disconnected message to the foreground 2016-04-24 14:05:21 +01:00
Thinkofname a7caa50b6f Rewrite the UI system (Closes #12) 2016-04-24 12:29:25 +01:00
Thinkofname b0c54a3561 Don't leak the block targeting model when disconnecting from a server 2016-04-22 00:01:38 +01:00
Thinkofname 5f725a843b Teleport entities when they are far from their target position 2016-04-21 23:24:01 +01:00
Thinkofname 287867dbcd Add a collidable flag to Material 2016-04-21 21:47:39 +01:00
Thinkofname 3038596b27 Simplify chunk loading 2016-04-21 21:20:28 +01:00
Thinkofname 9c816c7ea1 Implement interaction with blocks 2016-04-21 20:25:58 +01:00
Thinkofname 98422678a3 Add block targeting 2016-04-21 19:53:47 +01:00
Thinkofname d719e117ad Work around a block mapping bug 2016-04-21 13:38:49 +01:00
Thinkofname df37ec283d Handle errors when fetching skins better 2016-04-21 13:09:20 +01:00
Thinkofname feb7ea1630 Fix a crash caused by duplicate block mappings 2016-04-21 12:55:42 +01:00
Thinkofname 50ded118f3 Remove a leftover comment 2016-04-21 11:43:42 +01:00
Thinkofname edf6f34a0b Separate the console and console vars. Removes the need to lock on the console to read vars 2016-04-21 11:40:50 +01:00
Thinkofname 380a844272 Implement a background for the option menus 2016-04-21 11:00:05 +01:00
Thinkofname ebc11224e7 Fix the player's body glitching when moving 2016-04-20 22:16:40 +01:00
Thinkofname 23e779c0d7 Make BlockSnapshots use BlockStorage 2016-04-20 21:52:04 +01:00
Thinkofname 94bfc1493b Make the storage system used for chunk sections reusable 2016-04-20 21:52:04 +01:00
Thinkofname b25b565b8a Default vsync to disabled 2016-04-16 21:57:38 +01:00
Thinkofname 380f549454 Fix a large number of warnings 2016-04-16 21:44:05 +01:00
Thinkofname cc481d55bb Fix multiple skin rendering issues (Fixes #43) 2016-04-16 21:44:05 +01:00
TheUnnamedDude f349d516f2 Implement frame limit and configurable vsync (Fixes #29) 2016-04-10 22:05:05 +01:00
Thinkofname 75fb828a89 Simplify model rendering 2016-04-09 21:49:39 +01:00
Thinkofname a7c586b2e9 Optimize the types used for blocks.
Reduces the size of a block from 16 bytes -> 8 bytes on my 64 bit machine.
2016-04-09 13:48:42 +01:00
Thinkofname bb82798ab8 Disable ticking completely when disconnected from a server 2016-04-09 11:43:44 +01:00
Thinkofname a644f3ac8f Handle unused uniforms and attributes better 2016-04-09 11:08:17 +01:00
Thinkofname d5a6eb36db Fix an attribute being larger than needed 2016-04-09 10:46:00 +01:00
TheUnnamedDude 4c590f8184 Add a options/pause menu (Closes #4) 2016-04-09 09:56:55 +01:00
Thinkofname 2acfa47491 Reduce the distance the camera lags behind the player's actual position 2016-04-09 01:11:33 +01:00
Thinkofname e35a122305 Rework movement to improve compatibility with servers using NoCheatPlus (Fixes #35) 2016-04-09 00:40:35 +01:00
Thinkofname 1df78ad1c9 Fix handling of pitch for teleports/moves 2016-04-08 22:33:35 +01:00
Thinkofname 0e23e1d86f Fix entities not correctly being removed on switching servers 2016-04-08 21:39:00 +01:00
Thinkofname 1f91a10678 Fix teleports having the look direction inverted 2016-04-08 21:35:08 +01:00
Thinkofname bfbd4fe05a Clean up the protocol implementation to use generics instead of trait objects 2016-04-08 18:46:07 +01:00
Thinkofname fc82b62a04 Send a MC|Brand plugin message when joining servers 2016-04-08 18:30:05 +01:00
Thinkofname d8bdf94da2 Improve checks to see if an entity is moving 2016-04-08 17:58:00 +01:00
Scetch 1781d74ca0 Fix models to reflect Direction index changes. 2016-04-08 12:55:30 -04:00
Scetch 64ec2e4d3b Cleaning up blocks a little bit. 2016-04-08 11:30:41 -04:00
Thinkofname accf01e1fb Fix the skin processing thread crashing on shutdown 2016-04-08 11:48:26 +01:00
Thinkofname 6cfef5af2d Fix clicking causing the camera to flick 2016-04-08 11:44:23 +01:00
Thinkofname 3e8de93759 Make light effect entities 2016-04-08 11:08:21 +01:00
Thinkofname 027134f4c6 Better handling for unused blocks found during chunk load (Fixes #34) 2016-04-08 01:48:45 +01:00
Thinkofname d8b90b74bc Support being kicked from servers 2016-04-08 01:41:26 +01:00
Thinkofname 51ec66ec5c Don't clean up air blocks from the block map on chunk load (Fixes #34) 2016-04-08 01:18:08 +01:00
Thinkofname a0ae0465b0 Don't over resize chunk sections 2016-04-08 01:01:28 +01:00
Thinkofname ff83cd7367 Remove dead code from the last commit 2016-04-08 00:21:57 +01:00
Thinkofname 456411c816 Fix model rescaling 2016-04-07 23:55:18 +01:00
Thinkofname 548c98edf8 Add basic nameplates to players 2016-04-07 21:30:20 +01:00
Thinkofname ea23219993 Remove debug logging from skin fetching 2016-04-07 20:44:21 +01:00