Compare commits

..

1 Commits
main ... dev

Author SHA1 Message Date
3dce2b463a Begin adding ban list 2024-11-05 23:30:32 -05:00
44 changed files with 774 additions and 5653 deletions

397
Cargo.lock generated
View File

@ -68,9 +68,9 @@ dependencies = [
[[package]] [[package]]
name = "anstream" name = "anstream"
version = "0.6.18" version = "0.6.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338"
dependencies = [ dependencies = [
"anstyle", "anstyle",
"anstyle-parse", "anstyle-parse",
@ -83,9 +83,9 @@ dependencies = [
[[package]] [[package]]
name = "anstyle" name = "anstyle"
version = "1.0.10" version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" checksum = "8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56"
[[package]] [[package]]
name = "anstyle-parse" name = "anstyle-parse"
@ -166,7 +166,7 @@ checksum = "16c242549da57042726709f322919e546a55b4fab244291b400d49fa39b25bc3"
dependencies = [ dependencies = [
"ahash 0.8.11", "ahash 0.8.11",
"bincode", "bincode",
"hashbrown 0.15.1", "hashbrown 0.15.0",
"log", "log",
"ron", "ron",
"serde", "serde",
@ -193,7 +193,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -353,9 +353,9 @@ checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da"
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.1.36" version = "1.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baee610e9452a8f6f0a1b6194ec09ff9e2d85dea54432acdae41aa0761c95d70" checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f"
dependencies = [ dependencies = [
"shlex", "shlex",
] ]
@ -372,12 +372,6 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "cfg_aliases"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
[[package]] [[package]]
name = "chrono" name = "chrono"
version = "0.4.38" version = "0.4.38"
@ -557,7 +551,7 @@ checksum = "1234e1717066d3c71dcf89b75e7b586299e41204d361db56ec51e6ded5014279"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -580,7 +574,7 @@ dependencies = [
"ident_case", "ident_case",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -591,7 +585,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
dependencies = [ dependencies = [
"darling_core", "darling_core",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -645,7 +639,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -693,7 +687,7 @@ dependencies = [
"heck", "heck",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -714,7 +708,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -735,7 +729,7 @@ dependencies = [
"darling", "darling",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -790,9 +784,9 @@ dependencies = [
[[package]] [[package]]
name = "fdeflate" name = "fdeflate"
version = "0.3.6" version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07c6f4c64c1d33a3111c4466f7365ebdcc37c5bd1ea0d62aae2e3d722aacbedb" checksum = "d8090f921a24b04994d9929e204f50b498a33ea6ba559ffaa05e04f7ee7fb5ab"
dependencies = [ dependencies = [
"simd-adler32", "simd-adler32",
] ]
@ -938,7 +932,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -1054,9 +1048,9 @@ dependencies = [
[[package]] [[package]]
name = "hashbrown" name = "hashbrown"
version = "0.15.1" version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb"
[[package]] [[package]]
name = "heck" name = "heck"
@ -1226,9 +1220,9 @@ dependencies = [
[[package]] [[package]]
name = "hyper-util" name = "hyper-util"
version = "0.1.10" version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b"
dependencies = [ dependencies = [
"bytes", "bytes",
"futures-channel", "futures-channel",
@ -1266,124 +1260,6 @@ dependencies = [
"cc", "cc",
] ]
[[package]]
name = "icu_collections"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"
dependencies = [
"displaydoc",
"yoke",
"zerofrom",
"zerovec",
]
[[package]]
name = "icu_locid"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
dependencies = [
"displaydoc",
"litemap",
"tinystr",
"writeable",
"zerovec",
]
[[package]]
name = "icu_locid_transform"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"
dependencies = [
"displaydoc",
"icu_locid",
"icu_locid_transform_data",
"icu_provider",
"tinystr",
"zerovec",
]
[[package]]
name = "icu_locid_transform_data"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"
[[package]]
name = "icu_normalizer"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"
dependencies = [
"displaydoc",
"icu_collections",
"icu_normalizer_data",
"icu_properties",
"icu_provider",
"smallvec",
"utf16_iter",
"utf8_iter",
"write16",
"zerovec",
]
[[package]]
name = "icu_normalizer_data"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"
[[package]]
name = "icu_properties"
version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5"
dependencies = [
"displaydoc",
"icu_collections",
"icu_locid_transform",
"icu_properties_data",
"icu_provider",
"tinystr",
"zerovec",
]
[[package]]
name = "icu_properties_data"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"
[[package]]
name = "icu_provider"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"
dependencies = [
"displaydoc",
"icu_locid",
"icu_provider_macros",
"stable_deref_trait",
"tinystr",
"writeable",
"yoke",
"zerofrom",
"zerovec",
]
[[package]]
name = "icu_provider_macros"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.87",
]
[[package]] [[package]]
name = "ident_case" name = "ident_case"
version = "1.0.1" version = "1.0.1"
@ -1402,30 +1278,19 @@ dependencies = [
[[package]] [[package]]
name = "idna" name = "idna"
version = "1.0.3" version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
dependencies = [ dependencies = [
"idna_adapter", "unicode-bidi",
"smallvec", "unicode-normalization",
"utf8_iter",
]
[[package]]
name = "idna_adapter"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71"
dependencies = [
"icu_normalizer",
"icu_properties",
] ]
[[package]] [[package]]
name = "image" name = "image"
version = "0.25.5" version = "0.25.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b" checksum = "bc144d44a31d753b02ce64093d532f55ff8dc4ebf2ffb8a63c0dda691385acae"
dependencies = [ dependencies = [
"bytemuck", "bytemuck",
"byteorder-lite", "byteorder-lite",
@ -1442,7 +1307,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da"
dependencies = [ dependencies = [
"equivalent", "equivalent",
"hashbrown 0.15.1", "hashbrown 0.15.0",
"rayon", "rayon",
] ]
@ -1589,12 +1454,6 @@ version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
[[package]]
name = "litemap"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704"
[[package]] [[package]]
name = "lock_api" name = "lock_api"
version = "0.4.12" version = "0.4.12"
@ -1782,7 +1641,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -1858,9 +1717,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
[[package]] [[package]]
name = "ordered-float" name = "ordered-float"
version = "4.5.0" version = "4.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c65ee1f9701bf938026630b455d5315f490640234259037edb259798b3bcf85e" checksum = "83e7ccb95e240b7c9506a3d544f10d935e142cc90b0a1d56954fb44d89ad6b97"
dependencies = [ dependencies = [
"num-traits", "num-traits",
] ]
@ -2072,11 +1931,10 @@ dependencies = [
[[package]] [[package]]
name = "quinn-udp" name = "quinn-udp"
version = "0.5.7" version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b"
dependencies = [ dependencies = [
"cfg_aliases",
"libc", "libc",
"once_cell", "once_cell",
"socket2", "socket2",
@ -2290,9 +2148,9 @@ dependencies = [
[[package]] [[package]]
name = "rustls" name = "rustls"
version = "0.23.16" version = "0.23.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993"
dependencies = [ dependencies = [
"once_cell", "once_cell",
"ring", "ring",
@ -2464,22 +2322,22 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.214" version = "1.0.213"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.214" version = "1.0.213"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -2502,7 +2360,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -2668,12 +2526,6 @@ dependencies = [
"windows-sys 0.59.0", "windows-sys 0.59.0",
] ]
[[package]]
name = "stable_deref_trait"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]] [[package]]
name = "static_assertions" name = "static_assertions"
version = "1.1.0" version = "1.1.0"
@ -2699,7 +2551,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"rustversion", "rustversion",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -2727,26 +2579,15 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.87" version = "2.0.85"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"unicode-ident", "unicode-ident",
] ]
[[package]]
name = "synstructure"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.87",
]
[[package]] [[package]]
name = "tap" name = "tap"
version = "1.0.1" version = "1.0.1"
@ -2755,22 +2596,22 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "1.0.68" version = "1.0.65"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5"
dependencies = [ dependencies = [
"thiserror-impl", "thiserror-impl",
] ]
[[package]] [[package]]
name = "thiserror-impl" name = "thiserror-impl"
version = "1.0.68" version = "1.0.65"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -2799,7 +2640,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"
dependencies = [ dependencies = [
"displaydoc", "displaydoc",
"zerovec",
] ]
[[package]] [[package]]
@ -2841,7 +2681,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -2926,7 +2766,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -3081,27 +2921,15 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]] [[package]]
name = "url" name = "url"
version = "2.5.3" version = "2.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
dependencies = [ dependencies = [
"form_urlencoded", "form_urlencoded",
"idna 1.0.3", "idna 0.5.0",
"percent-encoding", "percent-encoding",
] ]
[[package]]
name = "utf16_iter"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
[[package]]
name = "utf8_iter"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
[[package]] [[package]]
name = "utf8parse" name = "utf8parse"
version = "0.2.2" version = "0.2.2"
@ -3140,7 +2968,7 @@ dependencies = [
[[package]] [[package]]
name = "veloren-client" name = "veloren-client"
version = "0.16.0" version = "0.16.0"
source = "git+https://gitlab.com/veloren/veloren?tag=weekly#2dd493e3bc2fc0b274e48e283e9476c7178594d2" source = "git+https://gitlab.com/veloren/veloren?branch=master#348095ac8b3a57bf7a45518123b761d82667715c"
dependencies = [ dependencies = [
"authc", "authc",
"byteorder", "byteorder",
@ -3166,7 +2994,7 @@ dependencies = [
[[package]] [[package]]
name = "veloren-client-i18n" name = "veloren-client-i18n"
version = "0.13.0" version = "0.13.0"
source = "git+https://gitlab.com/veloren/veloren?tag=weekly#2dd493e3bc2fc0b274e48e283e9476c7178594d2" source = "git+https://gitlab.com/veloren/veloren?branch=master#348095ac8b3a57bf7a45518123b761d82667715c"
dependencies = [ dependencies = [
"deunicode", "deunicode",
"fluent", "fluent",
@ -3184,7 +3012,7 @@ dependencies = [
[[package]] [[package]]
name = "veloren-common" name = "veloren-common"
version = "0.10.0" version = "0.10.0"
source = "git+https://gitlab.com/veloren/veloren?tag=weekly#2dd493e3bc2fc0b274e48e283e9476c7178594d2" source = "git+https://gitlab.com/veloren/veloren?branch=master#348095ac8b3a57bf7a45518123b761d82667715c"
dependencies = [ dependencies = [
"approx", "approx",
"bitflags 2.6.0", "bitflags 2.6.0",
@ -3224,7 +3052,7 @@ dependencies = [
[[package]] [[package]]
name = "veloren-common-assets" name = "veloren-common-assets"
version = "0.10.0" version = "0.10.0"
source = "git+https://gitlab.com/veloren/veloren?tag=weekly#2dd493e3bc2fc0b274e48e283e9476c7178594d2" source = "git+https://gitlab.com/veloren/veloren?branch=master#348095ac8b3a57bf7a45518123b761d82667715c"
dependencies = [ dependencies = [
"assets_manager", "assets_manager",
"dot_vox", "dot_vox",
@ -3239,7 +3067,7 @@ dependencies = [
[[package]] [[package]]
name = "veloren-common-base" name = "veloren-common-base"
version = "0.10.0" version = "0.10.0"
source = "git+https://gitlab.com/veloren/veloren?tag=weekly#2dd493e3bc2fc0b274e48e283e9476c7178594d2" source = "git+https://gitlab.com/veloren/veloren?branch=master#348095ac8b3a57bf7a45518123b761d82667715c"
dependencies = [ dependencies = [
"directories-next", "directories-next",
"tracing", "tracing",
@ -3248,7 +3076,7 @@ dependencies = [
[[package]] [[package]]
name = "veloren-common-ecs" name = "veloren-common-ecs"
version = "0.10.0" version = "0.10.0"
source = "git+https://gitlab.com/veloren/veloren?tag=weekly#2dd493e3bc2fc0b274e48e283e9476c7178594d2" source = "git+https://gitlab.com/veloren/veloren?branch=master#348095ac8b3a57bf7a45518123b761d82667715c"
dependencies = [ dependencies = [
"specs", "specs",
"tracing", "tracing",
@ -3258,7 +3086,7 @@ dependencies = [
[[package]] [[package]]
name = "veloren-common-i18n" name = "veloren-common-i18n"
version = "0.1.0" version = "0.1.0"
source = "git+https://gitlab.com/veloren/veloren?tag=weekly#2dd493e3bc2fc0b274e48e283e9476c7178594d2" source = "git+https://gitlab.com/veloren/veloren?branch=master#348095ac8b3a57bf7a45518123b761d82667715c"
dependencies = [ dependencies = [
"hashbrown 0.14.5", "hashbrown 0.14.5",
"rand", "rand",
@ -3268,7 +3096,7 @@ dependencies = [
[[package]] [[package]]
name = "veloren-common-net" name = "veloren-common-net"
version = "0.10.0" version = "0.10.0"
source = "git+https://gitlab.com/veloren/veloren?tag=weekly#2dd493e3bc2fc0b274e48e283e9476c7178594d2" source = "git+https://gitlab.com/veloren/veloren?branch=master#348095ac8b3a57bf7a45518123b761d82667715c"
dependencies = [ dependencies = [
"bincode", "bincode",
"flate2", "flate2",
@ -3286,7 +3114,7 @@ dependencies = [
[[package]] [[package]]
name = "veloren-common-state" name = "veloren-common-state"
version = "0.10.0" version = "0.10.0"
source = "git+https://gitlab.com/veloren/veloren?tag=weekly#2dd493e3bc2fc0b274e48e283e9476c7178594d2" source = "git+https://gitlab.com/veloren/veloren?branch=master#348095ac8b3a57bf7a45518123b761d82667715c"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"bytes", "bytes",
@ -3308,7 +3136,7 @@ dependencies = [
[[package]] [[package]]
name = "veloren-common-systems" name = "veloren-common-systems"
version = "0.10.0" version = "0.10.0"
source = "git+https://gitlab.com/veloren/veloren?tag=weekly#2dd493e3bc2fc0b274e48e283e9476c7178594d2" source = "git+https://gitlab.com/veloren/veloren?branch=master#348095ac8b3a57bf7a45518123b761d82667715c"
dependencies = [ dependencies = [
"itertools", "itertools",
"ordered-float", "ordered-float",
@ -3326,7 +3154,7 @@ dependencies = [
[[package]] [[package]]
name = "veloren-network" name = "veloren-network"
version = "0.3.0" version = "0.3.0"
source = "git+https://gitlab.com/veloren/veloren?tag=weekly#2dd493e3bc2fc0b274e48e283e9476c7178594d2" source = "git+https://gitlab.com/veloren/veloren?branch=master#348095ac8b3a57bf7a45518123b761d82667715c"
dependencies = [ dependencies = [
"async-channel", "async-channel",
"async-trait", "async-trait",
@ -3351,7 +3179,7 @@ dependencies = [
[[package]] [[package]]
name = "veloren-network-protocol" name = "veloren-network-protocol"
version = "0.6.1" version = "0.6.1"
source = "git+https://gitlab.com/veloren/veloren?tag=weekly#2dd493e3bc2fc0b274e48e283e9476c7178594d2" source = "git+https://gitlab.com/veloren/veloren?branch=master#348095ac8b3a57bf7a45518123b761d82667715c"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"bitflags 2.6.0", "bitflags 2.6.0",
@ -3365,7 +3193,7 @@ dependencies = [
[[package]] [[package]]
name = "veloren-world" name = "veloren-world"
version = "0.10.0" version = "0.10.0"
source = "git+https://gitlab.com/veloren/veloren?tag=weekly#2dd493e3bc2fc0b274e48e283e9476c7178594d2" source = "git+https://gitlab.com/veloren/veloren?branch=master#348095ac8b3a57bf7a45518123b761d82667715c"
dependencies = [ dependencies = [
"arr_macro", "arr_macro",
"bincode", "bincode",
@ -3448,7 +3276,7 @@ dependencies = [
"once_cell", "once_cell",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -3470,7 +3298,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
"wasm-bindgen-backend", "wasm-bindgen-backend",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -3576,7 +3404,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -3587,7 +3415,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
] ]
[[package]] [[package]]
@ -3776,18 +3604,6 @@ dependencies = [
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
[[package]]
name = "write16"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
[[package]]
name = "writeable"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
[[package]] [[package]]
name = "wyz" name = "wyz"
version = "0.5.1" version = "0.5.1"
@ -3797,30 +3613,6 @@ dependencies = [
"tap", "tap",
] ]
[[package]]
name = "yoke"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5"
dependencies = [
"serde",
"stable_deref_trait",
"yoke-derive",
"zerofrom",
]
[[package]]
name = "yoke-derive"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.87",
"synstructure",
]
[[package]] [[package]]
name = "zerocopy" name = "zerocopy"
version = "0.7.35" version = "0.7.35"
@ -3839,28 +3631,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.87", "syn 2.0.85",
]
[[package]]
name = "zerofrom"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55"
dependencies = [
"zerofrom-derive",
]
[[package]]
name = "zerofrom-derive"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.87",
"synstructure",
] ]
[[package]] [[package]]
@ -3869,28 +3640,6 @@ version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
[[package]]
name = "zerovec"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079"
dependencies = [
"yoke",
"zerofrom",
"zerovec-derive",
]
[[package]]
name = "zerovec-derive"
version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.87",
]
[[package]] [[package]]
name = "zune-core" name = "zune-core"
version = "0.4.12" version = "0.4.12"

View File

@ -5,13 +5,13 @@ edition = "2021"
[dependencies] [dependencies]
tokio = "1.38.0" tokio = "1.38.0"
veloren-common = { git = "https://gitlab.com/veloren/veloren", tag = "weekly", features = [ veloren-common = { git = "https://gitlab.com/veloren/veloren", branch = "master", features = [
"no-assets", "no-assets",
] } ] }
veloren-common-net = { git = "https://gitlab.com/veloren/veloren", tag = "weekly" } veloren-common-net = { git = "https://gitlab.com/veloren/veloren", branch = "master" }
veloren-client = { git = "https://gitlab.com/veloren/veloren", tag = "weekly" } veloren-client = { git = "https://gitlab.com/veloren/veloren", branch = "master" }
veloren-world = { git = "https://gitlab.com/veloren/veloren", tag = "weekly" } veloren-world = { git = "https://gitlab.com/veloren/veloren", branch = "master" }
veloren-client-i18n = { git = "https://gitlab.com/veloren/veloren", tag = "weekly" } veloren-client-i18n = { git = "https://gitlab.com/veloren/veloren", branch = "master" }
toml = "0.8.14" toml = "0.8.14"
serde = { version = "1.0.203", features = ["derive"] } serde = { version = "1.0.203", features = ["derive"] }
log = "0.4.22" log = "0.4.22"

View File

@ -1233,4 +1233,39 @@
secondary: Simple(None, "common.abilities.vampire.executioner.doublestrike"), secondary: Simple(None, "common.abilities.vampire.executioner.doublestrike"),
abilities: [], abilities: [],
), ),
Custom("Goblin Thug"): (
primary: Simple(None, "common.abilities.custom.goblin_thug.doublestrike"),
secondary: Simple(None, "common.abilities.custom.goblin_thug.doublestrike"),
abilities: [],
),
Custom("Goblin Chucker"): (
primary: Simple(None, "common.abilities.custom.goblin_chucker.throw"),
secondary: Simple(None, "common.abilities.custom.goblin_chucker.throw"),
abilities: [],
),
Custom("Goblin Ruffian"): (
primary: Simple(None, "common.abilities.custom.goblin_ruffian.stab"),
secondary: Simple(None, "common.abilities.custom.goblin_ruffian.stab"),
abilities: [],
),
Custom("Green Legoom"): (
primary: Simple(None, "common.abilities.custom.green_legoom.doublestrike"),
secondary: Simple(None, "common.abilities.custom.green_legoom.doublestrike"),
abilities: [],
),
Custom("Ochre Legoom"): (
primary: Simple(None, "common.abilities.custom.ochre_legoom.dash"),
secondary: Simple(None, "common.abilities.custom.ochre_legoom.dash"),
abilities: [],
),
Custom("Purple Legoom"): (
primary: Simple(None, "common.abilities.custom.purple_legoom.doublestrike"),
secondary: Simple(None, "common.abilities.custom.purple_legoom.doublestrike"),
abilities: [],
),
Custom("Red Legoom"): (
primary: Simple(None, "common.abilities.custom.red_legoom.doublestrike"),
secondary: Simple(None, "common.abilities.custom.red_legoom.doublestrike"),
abilities: [],
),
}) })

View File

@ -16,7 +16,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.1)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),
@ -36,7 +36,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.1)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),
@ -56,7 +56,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.2)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),

View File

@ -16,7 +16,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.1)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),
@ -36,7 +36,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.1)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),
@ -56,7 +56,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.2)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),

View File

@ -16,7 +16,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.1)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),
@ -36,7 +36,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.1)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),
@ -56,7 +56,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.2)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),

View File

@ -0,0 +1,18 @@
BasicRanged(
energy_cost: 0,
buildup_duration: 0.75,
recover_duration: 0.75,
projectile: (
kind: Blunt,
attack: Some((
damage: 4,
energy: 0,
)),
),
projectile_body: Object(Pebble),
projectile_light: None,
projectile_speed: 18.0,
num_projectiles: Value(2),
projectile_spread: 0.2,
move_efficiency: 0.3,
)

View File

@ -0,0 +1,18 @@
BasicMelee(
energy_cost: 0,
buildup_duration: 0.2,
swing_duration: 0.05,
hit_timing: 0.4,
recover_duration: 0.375,
melee_constructor: (
kind: Stab(
damage: 5,
poise: 2,
knockback: 0,
energy_regen: 0,
),
range: 3,
angle: 15,
),
ori_modifier: 1.0,
)

View File

@ -0,0 +1,45 @@
ComboMelee2(
strikes: [
(
melee_constructor: (
kind: Bash(
damage: 4,
poise: 1,
knockback: 0,
energy_regen: 0,
),
range: 3.5,
angle: 50.0,
),
buildup_duration: 0.6,
swing_duration: 0.25,
hit_timing: 0.5,
recover_duration: 0.25,
movement: (
swing: Some(Forward(0.5)),
),
ori_modifier: 0.65,
),
(
melee_constructor: (
kind: Bash(
damage: 6,
poise: 1,
knockback: 0,
energy_regen: 0,
),
range: 4.0,
angle: 30.0,
),
buildup_duration: 1,
swing_duration: 0.4,
hit_timing: 0.5,
recover_duration: 1.2,
movement: (
swing: Some(Forward(0.5)),
),
ori_modifier: 0.65,
),
],
energy_cost_per_strike: 0,
)

View File

@ -0,0 +1,45 @@
ComboMelee2(
strikes: [
(
melee_constructor: (
kind: Bash(
damage: 5,
poise: 2,
knockback: 0,
energy_regen: 0,
),
range: 3.5,
angle: 50.0,
),
buildup_duration: 0.6,
swing_duration: 0.25,
hit_timing: 0.5,
recover_duration: 0.25,
movement: (
swing: Some(Forward(0.5)),
),
ori_modifier: 0.65,
),
(
melee_constructor: (
kind: Bash(
damage: 8,
poise: 3,
knockback: 0,
energy_regen: 0,
),
range: 4.0,
angle: 30.0,
),
buildup_duration: 1,
swing_duration: 0.4,
hit_timing: 0.5,
recover_duration: 1.2,
movement: (
swing: Some(Forward(0.5)),
),
ori_modifier: 0.65,
),
],
energy_cost_per_strike: 0,
)

View File

@ -16,7 +16,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.15)), swing: Some(Forward(0.05)),
), ),
ori_modifier: 0.65, ori_modifier: 0.65,
), ),
@ -36,7 +36,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.1)), swing: Some(Forward(0.05)),
), ),
ori_modifier: 0.65, ori_modifier: 0.65,
), ),
@ -56,7 +56,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.8, recover_duration: 0.8,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.1)),
), ),
ori_modifier: 0.65, ori_modifier: 0.65,
), ),

View File

@ -0,0 +1,28 @@
DashMelee(
energy_cost: 0.0,
melee_constructor: (
kind: Stab(
damage: 5.0,
poise: 3.0,
knockback: 2.0,
energy_regen: 0.0,
),
scaled: Some((
kind: Stab(
damage: 5.0,
poise: 3.0,
knockback: 2.0,
energy_regen: 0.0,
))),
range: 5.0,
angle: 45.0,
),
energy_drain: 0,
forward_speed: 5.0,
buildup_duration: 1.2,
charge_duration: 0.4,
swing_duration: 0.1,
recover_duration: 1.2,
ori_modifier: 0.3,
auto_charge: false,
)

View File

@ -0,0 +1,45 @@
ComboMelee2(
strikes: [
(
melee_constructor: (
kind: Stab(
damage: 5,
poise: 2,
knockback: 0,
energy_regen: 0,
),
range: 3.5,
angle: 50.0,
),
buildup_duration: 0.6,
swing_duration: 0.25,
hit_timing: 0.5,
recover_duration: 0.25,
movement: (
swing: Some(Forward(0.5)),
),
ori_modifier: 0.65,
),
(
melee_constructor: (
kind: Stab(
damage: 8,
poise: 3,
knockback: 0,
energy_regen: 0,
),
range: 4.0,
angle: 30.0,
),
buildup_duration: 1,
swing_duration: 0.4,
hit_timing: 0.5,
recover_duration: 1.2,
movement: (
swing: Some(Forward(0.5)),
),
ori_modifier: 0.65,
),
],
energy_cost_per_strike: 0,
)

View File

@ -0,0 +1,45 @@
ComboMelee2(
strikes: [
(
melee_constructor: (
kind: Bash(
damage: 5,
poise: 2,
knockback: 0,
energy_regen: 0,
),
range: 3.5,
angle: 50.0,
),
buildup_duration: 0.6,
swing_duration: 0.25,
hit_timing: 0.5,
recover_duration: 0.25,
movement: (
swing: Some(Forward(0.5)),
),
ori_modifier: 0.65,
),
(
melee_constructor: (
kind: Bash(
damage: 8,
poise: 3,
knockback: 0,
energy_regen: 0,
),
range: 4.0,
angle: 30.0,
),
buildup_duration: 1,
swing_duration: 0.4,
hit_timing: 0.5,
recover_duration: 1.2,
movement: (
swing: Some(Forward(0.5)),
),
ori_modifier: 0.65,
),
],
energy_cost_per_strike: 0,
)

View File

@ -16,7 +16,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.1)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),
@ -36,7 +36,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.1)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),
@ -56,7 +56,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.2)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),

View File

@ -16,7 +16,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.1)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),
@ -36,7 +36,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.1)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),
@ -56,7 +56,7 @@ ComboMelee2(
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.6, recover_duration: 0.6,
movement: ( movement: (
swing: Some(Forward(0.5)), swing: Some(Forward(0.2)),
), ),
ori_modifier: 0.7, ori_modifier: 0.7,
), ),

View File

@ -0,0 +1,18 @@
#![enable(implicit_some)]
(
name: Name("Bloodservant"),
body: RandomWith("bloodservant"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.calendar.halloween.halloween_bloodservant"),
inventory: (
loadout: Inline((
active_hands: InHands((Item("common.items.npc_weapons.biped_small.vampire.bloodservant_axe"), None)),
inherit: Asset("common.loadout.dungeon.vampire.bloodservant"),
)), ),
agent: (
idle_wander_factor: 0.0,
aggro_range_multiplier: 2.0,
),
meta: [],
)

View File

@ -0,0 +1,11 @@
#![enable(implicit_some)]
(
name: Name("Strigoi"),
body: RandomWith("strigoi"),
alignment: Alignment(Wild),
loot: LootTable("common.loot_tables.calendar.halloween.halloween_strigoi"),
inventory: (
loadout: FromBody,
),
meta: [],
)

View File

@ -0,0 +1,12 @@
#![enable(implicit_some)]
(
name: Name("Goblin Chucker"),
body: RandomWith("goblin_chucker"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.creature.biped_small.goblin"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.world.goblin.goblin_chucker"),
)), ),
meta: [],
)

View File

@ -0,0 +1,12 @@
#![enable(implicit_some)]
(
name: Name("Goblin Ruffian"),
body: RandomWith("goblin_ruffian"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.creature.biped_small.goblin"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.world.goblin.goblin_ruffian"),
)), ),
meta: [],
)

View File

@ -0,0 +1,12 @@
#![enable(implicit_some)]
(
name: Name("Goblin Thug"),
body: RandomWith("goblin_thug"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.creature.biped_small.goblin"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.world.goblin.goblin_thug"),
)), ),
meta: [],
)

View File

@ -0,0 +1,12 @@
#![enable(implicit_some)]
(
name: Name("Green Legoom"),
body: RandomWith("green_legoom"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.creature.biped_small.legoom"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.world.legoom.green_legoom"),
)), ),
meta: [],
)

View File

@ -0,0 +1,12 @@
#![enable(implicit_some)]
(
name: Name("Ochre Legoom"),
body: RandomWith("ochre_legoom"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.creature.biped_small.legoom"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.world.legoom.ochre_legoom"),
)), ),
meta: [],
)

View File

@ -0,0 +1,12 @@
#![enable(implicit_some)]
(
name: Name("Purple Legoom"),
body: RandomWith("purple_legoom"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.creature.biped_small.legoom"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.world.legoom.purple_legoom"),
)), ),
meta: [],
)

View File

@ -0,0 +1,12 @@
#![enable(implicit_some)]
(
name: Name("Red Legoom"),
body: RandomWith("red_legoom"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.creature.biped_small.legoom"),
inventory: (
loadout: Inline((
inherit: Asset("common.loadout.world.legoom.red_legoom"),
)), ),
meta: [],
)

View File

@ -591,6 +591,111 @@
Simple( Simple(
"common.items.npc_armor.biped_small.harlequin.pants.harlequin", "common.items.npc_armor.biped_small.harlequin.pants.harlequin",
): "common-items-npc_armor-biped_small-harlequin-pants-harlequin", ): "common-items-npc_armor-biped_small-harlequin-pants-harlequin",
Simple(
"common.items.npc_armor.biped_small.goblin_thug.chest.goblin_thug",
): "common-items-npc_armor-biped_small-goblin_thug-chest-goblin_thug",
Simple(
"common.items.npc_armor.biped_small.goblin_thug.foot.goblin_thug",
): "common-items-npc_armor-biped_small-goblin_thug-foot-goblin_thug",
Simple(
"common.items.npc_armor.biped_small.goblin_thug.hand.goblin_thug",
): "common-items-npc_armor-biped_small-goblin_thug-hand-goblin_thug",
Simple(
"common.items.npc_armor.biped_small.goblin_thug.head.goblin_thug",
): "common-items-npc_armor-biped_small-goblin_thug-head-goblin_thug",
Simple(
"common.items.npc_armor.biped_small.goblin_thug.pants.goblin_thug",
): "common-items-npc_armor-biped_small-goblin_thug-pants-goblin_thug",
Simple(
"common.items.npc_armor.biped_small.goblin_chucker.chest.goblin_chucker",
): "common-items-npc_armor-biped_small-goblin_chucker-chest-goblin_chucker",
Simple(
"common.items.npc_armor.biped_small.goblin_chucker.foot.goblin_chucker",
): "common-items-npc_armor-biped_small-goblin_chucker-foot-goblin_chucker",
Simple(
"common.items.npc_armor.biped_small.goblin_chucker.hand.goblin_chucker",
): "common-items-npc_armor-biped_small-goblin_chucker-hand-goblin_chucker",
Simple(
"common.items.npc_armor.biped_small.goblin_chucker.head.goblin_chucker",
): "common-items-npc_armor-biped_small-goblin_chucker-head-goblin_chucker",
Simple(
"common.items.npc_armor.biped_small.goblin_chucker.pants.goblin_chucker",
): "common-items-npc_armor-biped_small-goblin_chucker-pants-goblin_chucker",
Simple(
"common.items.npc_armor.biped_small.goblin_ruffian.chest.goblin_ruffian",
): "common-items-npc_armor-biped_small-goblin_ruffian-chest-goblin_ruffian",
Simple(
"common.items.npc_armor.biped_small.goblin_ruffian.foot.goblin_ruffian",
): "common-items-npc_armor-biped_small-goblin_ruffian-foot-goblin_ruffian",
Simple(
"common.items.npc_armor.biped_small.goblin_ruffian.hand.goblin_ruffian",
): "common-items-npc_armor-biped_small-goblin_ruffian-hand-goblin_ruffian",
Simple(
"common.items.npc_armor.biped_small.goblin_ruffian.head.goblin_ruffian",
): "common-items-npc_armor-biped_small-goblin_ruffian-head-goblin_ruffian",
Simple(
"common.items.npc_armor.biped_small.goblin_ruffian.pants.goblin_ruffian",
): "common-items-npc_armor-biped_small-goblin_ruffian-pants-goblin_ruffian",
Simple(
"common.items.npc_armor.biped_small.green_legoom.chest.green_legoom",
): "common-items-npc_armor-biped_small-green_legoom-chest-green_legoom",
Simple(
"common.items.npc_armor.biped_small.green_legoom.foot.green_legoom",
): "common-items-npc_armor-biped_small-green_legoom-foot-green_legoom",
Simple(
"common.items.npc_armor.biped_small.green_legoom.hand.green_legoom",
): "common-items-npc_armor-biped_small-green_legoom-hand-green_legoom",
Simple(
"common.items.npc_armor.biped_small.green_legoom.head.green_legoom",
): "common-items-npc_armor-biped_small-green_legoom-head-green_legoom",
Simple(
"common.items.npc_armor.biped_small.green_legoom.pants.green_legoom",
): "common-items-npc_armor-biped_small-green_legoom-pants-green_legoom",
Simple(
"common.items.npc_armor.biped_small.ochre_legoom.chest.ochre_legoom",
): "common-items-npc_armor-biped_small-ochre_legoom-chest-ochre_legoom",
Simple(
"common.items.npc_armor.biped_small.ochre_legoom.foot.ochre_legoom",
): "common-items-npc_armor-biped_small-ochre_legoom-foot-ochre_legoom",
Simple(
"common.items.npc_armor.biped_small.ochre_legoom.hand.ochre_legoom",
): "common-items-npc_armor-biped_small-ochre_legoom-hand-ochre_legoom",
Simple(
"common.items.npc_armor.biped_small.ochre_legoom.head.ochre_legoom",
): "common-items-npc_armor-biped_small-ochre_legoom-head-ochre_legoom",
Simple(
"common.items.npc_armor.biped_small.ochre_legoom.pants.ochre_legoom",
): "common-items-npc_armor-biped_small-ochre_legoom-pants-ochre_legoom",
Simple(
"common.items.npc_armor.biped_small.purple_legoom.chest.purple_legoom",
): "common-items-npc_armor-biped_small-purple_legoom-chest-purple_legoom",
Simple(
"common.items.npc_armor.biped_small.purple_legoom.foot.purple_legoom",
): "common-items-npc_armor-biped_small-purple_legoom-foot-purple_legoom",
Simple(
"common.items.npc_armor.biped_small.purple_legoom.hand.purple_legoom",
): "common-items-npc_armor-biped_small-purple_legoom-hand-purple_legoom",
Simple(
"common.items.npc_armor.biped_small.purple_legoom.head.purple_legoom",
): "common-items-npc_armor-biped_small-purple_legoom-head-purple_legoom",
Simple(
"common.items.npc_armor.biped_small.purple_legoom.pants.purple_legoom",
): "common-items-npc_armor-biped_small-purple_legoom-pants-purple_legoom",
Simple(
"common.items.npc_armor.biped_small.red_legoom.chest.red_legoom",
): "common-items-npc_armor-biped_small-red_legoom-chest-red_legoom",
Simple(
"common.items.npc_armor.biped_small.red_legoom.foot.red_legoom",
): "common-items-npc_armor-biped_small-red_legoom-foot-red_legoom",
Simple(
"common.items.npc_armor.biped_small.red_legoom.hand.red_legoom",
): "common-items-npc_armor-biped_small-red_legoom-hand-red_legoom",
Simple(
"common.items.npc_armor.biped_small.red_legoom.head.red_legoom",
): "common-items-npc_armor-biped_small-red_legoom-head-red_legoom",
Simple(
"common.items.npc_armor.biped_small.red_legoom.pants.red_legoom",
): "common-items-npc_armor-biped_small-red_legoom-pants-red_legoom",
Simple( Simple(
"common.items.npc_armor.crustacean.karkatha", "common.items.npc_armor.crustacean.karkatha",
): "common-items-npc_armor-crustacean-karkatha", ): "common-items-npc_armor-crustacean-karkatha",
@ -1203,6 +1308,9 @@
Simple( Simple(
"common.items.armor.misc.head.cat_capuche", "common.items.armor.misc.head.cat_capuche",
): "armor-misc-head-cat_capuche", ): "armor-misc-head-cat_capuche",
Simple(
"common.items.armor.misc.head.scarlet_spectacles",
): "armor-misc-head-scarlet_spectacles",
Simple( Simple(
"common.items.armor.misc.pants.hunting", "common.items.armor.misc.pants.hunting",
): "armor-misc-pants-grayscale", ): "armor-misc-pants-grayscale",
@ -2505,6 +2613,27 @@
Simple( Simple(
"common.items.npc_weapons.biped_small.vampire.bloodmoon_heiress_sword", "common.items.npc_weapons.biped_small.vampire.bloodmoon_heiress_sword",
): "common-items-npc_weapons-biped_small-vampire-bloodmoon_heiress_sword", ): "common-items-npc_weapons-biped_small-vampire-bloodmoon_heiress_sword",
Simple(
"common.items.npc_weapons.unique.goblin_thug_club",
): "common-items-npc_weapons-unique-goblin_thug_club",
Simple(
"common.items.npc_weapons.unique.goblin_chucker",
): "common-items-npc_weapons-unique-goblin_chucker",
Simple(
"common.items.npc_weapons.unique.goblin_ruffian_knife",
): "common-items-npc_weapons-unique-goblin_ruffian_knife",
Simple(
"common.items.npc_weapons.unique.green_legoom_rake",
): "common-items-npc_weapons-unique-green_legoom_rake",
Simple(
"common.items.npc_weapons.unique.ochre_legoom_spade",
): "common-items-npc_weapons-unique-ochre_legoom_spade",
Simple(
"common.items.npc_weapons.unique.purple_legoom_pitchfork",
): "common-items-npc_weapons-unique-purple_legoom_pitchfork",
Simple(
"common.items.npc_weapons.unique.red_legoom_hoe",
): "common-items-npc_weapons-unique-red_legoom_hoe",
Simple( Simple(
"common.items.npc_weapons.bow.bipedlarge-velorite", "common.items.npc_weapons.bow.bipedlarge-velorite",
): "common-items-npc_weapons-bow-bipedlarge-velorite", ): "common-items-npc_weapons-bow-bipedlarge-velorite",

View File

@ -0,0 +1,9 @@
#![enable(implicit_some)]
(
head: Item("common.items.npc_armor.biped_small.goblin_chucker.head.goblin_chucker"),
chest: Item("common.items.npc_armor.biped_small.goblin_chucker.chest.goblin_chucker"),
gloves: Item("common.items.npc_armor.biped_small.goblin_chucker.hand.goblin_chucker"),
legs: Item("common.items.npc_armor.biped_small.goblin_chucker.pants.goblin_chucker"),
feet: Item("common.items.npc_armor.biped_small.goblin_chucker.foot.goblin_chucker"),
active_hands: InHands((Item("common.items.npc_weapons.unique.goblin_chucker"), None)),
)

View File

@ -0,0 +1,9 @@
#![enable(implicit_some)]
(
head: Item("common.items.npc_armor.biped_small.goblin_ruffian.head.goblin_ruffian"),
chest: Item("common.items.npc_armor.biped_small.goblin_ruffian.chest.goblin_ruffian"),
gloves: Item("common.items.npc_armor.biped_small.goblin_ruffian.hand.goblin_ruffian"),
legs: Item("common.items.npc_armor.biped_small.goblin_ruffian.pants.goblin_ruffian"),
feet: Item("common.items.npc_armor.biped_small.goblin_ruffian.foot.goblin_ruffian"),
active_hands: InHands((Item("common.items.npc_weapons.unique.goblin_ruffian_knife"), None)),
)

View File

@ -0,0 +1,9 @@
#![enable(implicit_some)]
(
head: Item("common.items.npc_armor.biped_small.goblin_thug.head.goblin_thug"),
chest: Item("common.items.npc_armor.biped_small.goblin_thug.chest.goblin_thug"),
gloves: Item("common.items.npc_armor.biped_small.goblin_thug.hand.goblin_thug"),
legs: Item("common.items.npc_armor.biped_small.goblin_thug.pants.goblin_thug"),
feet: Item("common.items.npc_armor.biped_small.goblin_thug.foot.goblin_thug"),
active_hands: InHands((Item("common.items.npc_weapons.unique.goblin_thug_club"), None)),
)

View File

@ -0,0 +1,9 @@
#![enable(implicit_some)]
(
head: Item("common.items.npc_armor.biped_small.green_legoom.head.green_legoom"),
chest: Item("common.items.npc_armor.biped_small.green_legoom.chest.green_legoom"),
gloves: Item("common.items.npc_armor.biped_small.green_legoom.hand.green_legoom"),
legs: Item("common.items.npc_armor.biped_small.green_legoom.pants.green_legoom"),
feet: Item("common.items.npc_armor.biped_small.green_legoom.foot.green_legoom"),
active_hands: InHands((Item("common.items.npc_weapons.unique.green_legoom_rake"), None)),
)

View File

@ -0,0 +1,9 @@
#![enable(implicit_some)]
(
head: Item("common.items.npc_armor.biped_small.ochre_legoom.head.ochre_legoom"),
chest: Item("common.items.npc_armor.biped_small.ochre_legoom.chest.ochre_legoom"),
gloves: Item("common.items.npc_armor.biped_small.ochre_legoom.hand.ochre_legoom"),
legs: Item("common.items.npc_armor.biped_small.ochre_legoom.pants.ochre_legoom"),
feet: Item("common.items.npc_armor.biped_small.ochre_legoom.foot.ochre_legoom"),
active_hands: InHands((Item("common.items.npc_weapons.unique.ochre_legoom_spade"), None)),
)

View File

@ -0,0 +1,9 @@
#![enable(implicit_some)]
(
head: Item("common.items.npc_armor.biped_small.purple_legoom.head.purple_legoom"),
chest: Item("common.items.npc_armor.biped_small.purple_legoom.chest.purple_legoom"),
gloves: Item("common.items.npc_armor.biped_small.purple_legoom.hand.purple_legoom"),
legs: Item("common.items.npc_armor.biped_small.purple_legoom.pants.purple_legoom"),
feet: Item("common.items.npc_armor.biped_small.purple_legoom.foot.purple_legoom"),
active_hands: InHands((Item("common.items.npc_weapons.unique.purple_legoom_pitchfork"), None)),
)

View File

@ -0,0 +1,9 @@
#![enable(implicit_some)]
(
head: Item("common.items.npc_armor.biped_small.red_legoom.head.red_legoom"),
chest: Item("common.items.npc_armor.biped_small.red_legoom.chest.red_legoom"),
gloves: Item("common.items.npc_armor.biped_small.red_legoom.hand.red_legoom"),
legs: Item("common.items.npc_armor.biped_small.red_legoom.pants.red_legoom"),
feet: Item("common.items.npc_armor.biped_small.red_legoom.foot.red_legoom"),
active_hands: InHands((Item("common.items.npc_weapons.unique.red_legoom_hoe"), None)),
)

View File

@ -0,0 +1,5 @@
[
(7.0, Item("common.items.food.honeycorn")),
(2.5, Item("common.items.food.pumpkin_spice_brew")),
(0.5, Item("common.items.armor.misc.head.scarlet_spectacles")),
]

View File

@ -0,0 +1,5 @@
[
(4.0, MultiDrop(Item("common.items.food.pumpkin_spice_brew"), 1, 2)),
(5.0, MultiDrop(Item("common.items.food.honeycorn"), 1, 2)),
(1.0, Item("common.items.armor.misc.head.facegourd")),
]

View File

@ -0,0 +1,5 @@
[
(2.0, MultiDrop(Item("common.items.crafting_ing.stones"), 1, 2)),
(1.0, Item("common.items.food.meat.beast_small_raw")),
(1.0, Item("common.items.crafting_ing.hide.animal_hide")),
]

View File

@ -0,0 +1,8 @@
[
(2.0, MultiDrop(Item("common.items.flowers.plant_fiber"), 1, 2)),
(2.0, MultiDrop(Item("common.items.flowers.wild_flax"), 1, 2)),
(2.0, MultiDrop(Item("common.items.crafting_ing.twigs"), 1, 2)),
(1.0, Item("common.items.food.carrot")),
(1.0, Item("common.items.food.lettuce")),
(1.0, Item("common.items.food.tomato")),
]

View File

@ -1265,6 +1265,34 @@
keyword: "harlequin", keyword: "harlequin",
generic: "Harlequin" generic: "Harlequin"
), ),
goblin_thug: (
keyword: "goblin_thug",
generic: "Goblin Thug",
),
goblin_chucker: (
keyword: "goblin_chucker",
generic: "Goblin Chucker",
),
goblin_ruffian: (
keyword: "goblin_ruffian",
generic: "Goblin Ruffian",
),
green_legoom: (
keyword: "green_legoom",
generic: "Green Legoom",
),
ochre_legoom: (
keyword: "ochre_legoom",
generic: "Ochre Legoom",
),
purple_legoom: (
keyword: "purple_legoom",
generic: "Purple Legoom",
),
red_legoom: (
keyword: "red_legoom",
generic: "Red Legoom",
),
) )
), ),
fish_small: ( fish_small: (

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +0,0 @@
[Desktop Entry]
Type=Application
Name=Veloren
Comment=Veloren is a multiplayer voxel RPG written in Rust
Comment[de]=Veloren ist ein in Rust geschriebenes Mehrspieler Voxel RPG
Exec=veloren-voxygen
Categories=Game;Simulation;
Keywords=veloren;sandbox;world;blocks;nodes;multiplayer;roleplaying;
Icon=net.veloren.veloren
Terminal=false

View File

@ -1,9 +1,12 @@
position = [17725.5, 14946.5, 239.0] position = [17725.5, 14946.5, 239.0]
orientation = 45 orientation = 45
announcement = "Buying cheese, selling potions and other stuff." announcement = "Buying cheese, selling potions and other stuff."
ban_list = ["And_i", "ErrorUsernameUnfound"]
[buy_prices] [buy_prices]
"food.cheese" = 50 "food.cheese" = 50
"consumable.potion_minor" = 100
"mineral.ingot.orichalcum" = 6_000
[sell_prices] [sell_prices]
# Armor # Armor
@ -93,6 +96,7 @@ announcement = "Buying cheese, selling potions and other stuff."
"armor.misc.head.cat_capuche" = 700_000 "armor.misc.head.cat_capuche" = 700_000
"armor.misc.head.facegourd" = 250_000 "armor.misc.head.facegourd" = 250_000
"armor.misc.head.hare_hat" = 100_000 "armor.misc.head.hare_hat" = 100_000
"armor.misc.head.hog_hood" = 10_000
"armor.misc.head.mitre" = 10_000 "armor.misc.head.mitre" = 10_000
"armor.misc.head.winged_coronet" = 30_000 "armor.misc.head.winged_coronet" = 30_000
"calendar.christmas.armor.misc.head.woolly_wintercap" = 250_000 "calendar.christmas.armor.misc.head.woolly_wintercap" = 250_000
@ -113,6 +117,7 @@ announcement = "Buying cheese, selling potions and other stuff."
"mineral.ingot.bloodsteel" = 3_000 "mineral.ingot.bloodsteel" = 3_000
"mineral.ingot.orichalcum" = 8_000 "mineral.ingot.orichalcum" = 8_000
"mineral.ingot.gold" = 5_000 "mineral.ingot.gold" = 5_000
"mineral.ingot.silver" = 5_000
"mineral.ore.ancient_gold" = 10_000 "mineral.ore.ancient_gold" = 10_000
# Food # Food

View File

@ -57,6 +57,7 @@ pub struct Bot {
buy_prices: PriceList, buy_prices: PriceList,
sell_prices: PriceList, sell_prices: PriceList,
trade_mode: TradeMode, trade_mode: TradeMode,
ban_list: Vec<String>,
previous_trade: Option<PendingTrade>, previous_trade: Option<PendingTrade>,
previous_trade_receipt: Option<Reciept>, previous_trade_receipt: Option<Reciept>,
@ -81,6 +82,7 @@ impl Bot {
position: Option<[f32; 3]>, position: Option<[f32; 3]>,
orientation: Option<f32>, orientation: Option<f32>,
announcement: Option<String>, announcement: Option<String>,
ban_list: Vec<String>,
) -> Result<Self, String> { ) -> Result<Self, String> {
info!("Connecting to veloren"); info!("Connecting to veloren");
@ -149,6 +151,7 @@ impl Bot {
localization: LocalizationHandle::load_expect("en"), localization: LocalizationHandle::load_expect("en"),
buy_prices, buy_prices,
sell_prices, sell_prices,
ban_list,
trade_mode: TradeMode::Trade, trade_mode: TradeMode::Trade,
previous_trade: None, previous_trade: None,
previous_trade_receipt: None, previous_trade_receipt: None,
@ -250,13 +253,29 @@ impl Bot {
} else { } else {
return Ok(true); return Ok(true);
}; };
let sender_alias = self
.find_player_alias(&sender)
.ok_or("Failed to find player alias")?;
let sender_uuid = self
.find_uuid(&sender)
.ok_or("Failed to find player UUID")?
.to_string();
let is_sender_admin =
|| self.is_user_admin(sender_alias) || self.is_user_admin(&sender_uuid);
let is_sender_banned =
|| self.is_user_banned(sender_alias) || self.is_user_banned(&sender_uuid);
let content = message.content().as_plain().unwrap_or_default(); let content = message.content().as_plain().unwrap_or_default();
let mut split_content = content.split(' '); let mut split_content = content.split(' ');
let command = split_content.next().unwrap_or_default(); let command = split_content.next().unwrap_or_default();
let price_correction_message = "Use the format 'price [search_term]'"; let price_correction_message = "Use the format 'price [search_term]'";
if is_sender_banned() {
return Ok(true);
}
let correction_message = match command { let correction_message = match command {
"admin_access" => { "admin_access" => {
if self.is_user_admin(&sender)? && !self.client.is_trading() { if is_sender_admin() && !self.client.is_trading() {
info!("Providing admin access"); info!("Providing admin access");
self.previous_trade = None; self.previous_trade = None;
@ -270,7 +289,7 @@ impl Bot {
} }
} }
"announce" => { "announce" => {
if self.is_user_admin(&sender)? { if is_sender_admin() {
self.handle_announcement()?; self.handle_announcement()?;
self.last_announcement = Instant::now(); self.last_announcement = Instant::now();
@ -286,7 +305,7 @@ impl Bot {
None None
} }
"ori" => { "ori" => {
if self.is_user_admin(&sender)? { if is_sender_admin() {
if let Some(new_rotation) = split_content.next() { if let Some(new_rotation) = split_content.next() {
let new_rotation = new_rotation let new_rotation = new_rotation
.parse::<f32>() .parse::<f32>()
@ -311,7 +330,7 @@ impl Bot {
None None
} }
"pos" => { "pos" => {
if self.is_user_admin(&sender)? { if is_sender_admin() {
if let (Some(x), Some(y), Some(z)) = ( if let (Some(x), Some(y), Some(z)) = (
split_content.next(), split_content.next(),
split_content.next(), split_content.next(),
@ -332,7 +351,7 @@ impl Bot {
} }
} }
"sort" => { "sort" => {
if self.is_user_admin(&sender)? { if is_sender_admin() {
if let Some(sort_count) = split_content.next() { if let Some(sort_count) = split_content.next() {
let sort_count = sort_count let sort_count = sort_count
.parse::<u8>() .parse::<u8>()
@ -914,19 +933,13 @@ impl Bot {
} }
/// Determines if the Uid belongs to an admin. /// Determines if the Uid belongs to an admin.
fn is_user_admin(&self, uid: &Uid) -> Result<bool, String> { fn is_user_admin(&self, alias_or_uuid: &String) -> bool {
let sender_name = self.find_player_alias(uid).ok_or("Failed to find name")?; self.admins.contains(alias_or_uuid)
if self.admins.contains(sender_name) {
Ok(true)
} else {
let sender_uuid = self
.find_uuid(uid)
.ok_or("Failed to find uuid")?
.to_string();
Ok(self.admins.contains(&sender_uuid))
} }
/// Determines if the Uid belongs to a banned player.
fn is_user_banned(&self, alias_or_uuid: &String) -> bool {
self.ban_list.contains(alias_or_uuid)
} }
/// Moves the character to the configured position and orientation. /// Moves the character to the configured position and orientation.

View File

@ -27,6 +27,7 @@ pub struct Config {
pub announcement: Option<String>, pub announcement: Option<String>,
pub buy_prices: PriceList, pub buy_prices: PriceList,
pub sell_prices: PriceList, pub sell_prices: PriceList,
pub ban_list: Vec<String>,
} }
#[derive(Deserialize)] #[derive(Deserialize)]
@ -70,9 +71,7 @@ impl<'de> Visitor<'de> for PriceListVisitor {
while let Some((key, value)) = map.next_entry::<String, u32>()? { while let Some((key, value)) = map.next_entry::<String, u32>()? {
let item_id = match key.splitn(3, '|').collect::<Vec<&str>>().as_slice() { let item_id = match key.splitn(3, '|').collect::<Vec<&str>>().as_slice() {
[material, primary, secondary] => { [material, primary, secondary] => {
let material = material.parse::<Material>().map_err(|error| { let material = material.parse::<Material>().map_err(de::Error::custom)?;
de::Error::custom(format!("Failed to parse material: {}", error))
})?;
let mut primary = primary.to_string(); let mut primary = primary.to_string();
let mut secondary = secondary.to_string(); let mut secondary = secondary.to_string();

View File

@ -45,6 +45,7 @@ fn main() {
config.position, config.position,
config.orientation, config.orientation,
config.announcement, config.announcement,
config.ban_list,
) )
.expect("Failed to create bot"); .expect("Failed to create bot");