reupload + update

This commit is contained in:
SpiReCZ
2015-12-21 20:16:17 +01:00
parent 665eb9e605
commit 600fab255f
38 changed files with 8140 additions and 2 deletions

View File

@ -1,2 +1,75 @@
# BattlEyeFiltersTool
BEFT was created to help server owners update BE filters easily.
# BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
<EFBFBD> by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
version: 0.8.1.0
I won't provide support for the people that uses the tool in any other way that its meant to be used.
---
Support threads: http://www.exilemod.com/topic/7038-battleye-filters-tool/
If you find this application useful then please consider making a donation via Paypal as a thank you:
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WKE8JUXGUGGXA
---
This BattlEye Filters Tool was created to help server owners update BE filters easily.
In order to use this tool you need to add your basic filters set ( Exile or Infistar ) to the "BattlEye_BasicSet" folder and your additional filters ( for your MODs/Scripts ) to "BattlEye_AddSet" folder.
When you hit "Load Files" button the program will automatically load both sets to memory and merge them. To save your files hit "Save Files" button.
You can also use the "Flush Files" button to delete merged files from memory.
The files are usually saved in the default "BattlEye" folder. Otherwise it saves to the same folder that the application is in.
Things you need to know about making the additional BE filters:
1: This program compares BE index ( example: "7 execVM") from AddSet in BasicSet so you need to make the additional set (AddSet)
in the same format as BasicSet (they don't have to be on matching line numbers). When it finds a match it will add the additional filters to the BasicSet line.
If the BE index is not found ( example: "3 execVM" ) it will add it to the end of the file as new line.
2: The program compares the match of filename without extension from BasicSet to AddSet.
eg: BattlEye_BasicSet\Scripts.txt & BattlEye_AddSet\ScriptsBlaExampleBlaBla.txt
3: There is an option in the program to use only "knownBeFiles.txt". The program contains the default set of BE filters files names in memory. When the checkBox is checked it creates the files using the default files names if the file does not already exist. If the file exists it loads the new files names to the whitelist in program memory.
4: The BE filters files must be .txt
For further infomation visit the support thread. I won't provide any support if you don't use the program as instructed.
5: Don't merge Exile BE filters with Infistar's BE filters. Use one or another as BasicSet. Which means don't merge filters that are already in BasicSet.
6: Tool works fine if you use it right.
---
Future implementations:
- saving selected filepath of the selected folder
- catching possible exceptions
- more features
---
changelog:
v0.8.1.0
- recompiled required DLLs
- some minor fixes
- code structural changes
v0.8.0.2
- added nulling for removed objects & modified clear of list
- rewrite of code to move it from MainWindow logic
v0.8.0.1
- fixed lines multiplication bug
v0.8
- initial public test Release
- requires .NET 4.6
- there are examples of usage inside folders

BIN
bin/BattlEyeFiltersTool.exe Normal file

Binary file not shown.

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
© by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
-->
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/>
</startup>
</configuration>

View File

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<asmv1:assemblyIdentity name="BattlEyeFiltersTool.exe" version="0.8.1.0" publicKeyToken="f675fc03558f6556" language="neutral" processorArchitecture="msil" type="win32" />
<description asmv2:iconFile="beft.ico" asmv2:publisher="SpiRe" asmv2:product="BattlEye Filters Tool" xmlns="urn:schemas-microsoft-com:asm.v1" />
<application />
<entryPoint>
<assemblyIdentity name="BattlEyeFiltersTool" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
<commandLine file="BattlEyeFiltersTool.exe" parameters="" />
</entryPoint>
<co.v1:useManifestForTrust xmlns="urn:schemas-microsoft-com:asm.v1" />
<trustInfo>
<security>
<applicationRequestMinimum>
<PermissionSet version="1" class="System.Security.NamedPermissionSet" Name="LocalIntranet" Description="Default rights given to applications on the local intranet" Unrestricted="true" ID="Custom" SameSite="site" />
<defaultAssemblyRequest permissionSetReference="Custom" />
</applicationRequestMinimum>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
Specifying requestedExecutionLevel element will disable file and registry virtualization.
Remove this element if your application requires this virtualization for backwards
compatibility.
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentOS>
<osVersionInfo>
<os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
</osVersionInfo>
</dependentOS>
</dependency>
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="BattlEyeFiltersTool.exe" size="992680">
<assemblyIdentity name="BattlEyeFiltersTool" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>Umx9cpVxWzjsM9Wvx+Bru3pJhamiwHhr0cv5O/QTm7k=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MahApps.Metro.dll" size="849920">
<assemblyIdentity name="MahApps.Metro" version="1.1.2.0" publicKeyToken="F4FB5A3C4D1E5B4F" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>r5R2dAFxVrruWw/REoZQ811Lpi4VZdh9iu/gIyH0I8U=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Windows.Interactivity.dll" size="55904">
<assemblyIdentity name="System.Windows.Interactivity" version="4.5.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>k/vFnkiAr8nxNsOsCXatp/P6p8rO3OXIJLM3y8qdLr8=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<file name="BattlEyeFiltersTool.exe.config" size="499">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>p8/8cJ1a2GNa46QrreTY/7VDhu7/eoHCEVAzDzEpcng=</dsig:DigestValue>
</hash>
</file>
<file name="beft.ico" size="299031">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>OG9rQipEPjVcvDk095qiwRxcsQHM7BNqzqNWMJW0ljA=</dsig:DigestValue>
</hash>
</file>
<file name="readme.txt" size="3235">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>R2cycL1oBwftZrbLWWP2HsM2jvRK5Mvoiz8PsFQ0EN4=</dsig:DigestValue>
</hash>
</file>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- A list of the Windows versions that this application has been tested on and is
is designed to work with. Uncomment the appropriate elements and Windows will
automatically selected the most compatible environment. -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
</application>
</compatibility>
<publisherIdentity name="CN=MSI-X1\SpiRe" issuerKeyHash="8dcfa502d63cf0c0bb3dde0bc38cbe6db59ca8d1" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>V/t0v2SRzNKCJ6kFBn4JGZU2kPSjznfgMhRS3F1txEg=</DigestValue></Reference></SignedInfo><SignatureValue>dTMXZ0s3TH4OKH57CL2I9ym4GPVX6I0OiPvZw06ycYtwFGmcNlP0uKnkQUb3UuT47r0yoLSxWa146Mj4RdwWG3UedDYHM/5b1rNpH9nUCbNy7u0ijPPR8z8WMADb+ee9/RXoTip/TKg2P+9Gwwvnlp9IWzKKJ48PMIDyuVB9qK0=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>zWNoZ3vz0k0/IX5DOdSctmXqbLj95EK6ZTHmnJwg84BTHGGFcMSXvcvVtIkicftfPePZZcrspeNTJF5ZjdhlWBROKtgaBAtjPl2I7pVq0Ip4T2NtPLCNpaBEnH6YcGx/cfuuB/kLJCRSq0FPiCsTG8TZYUFwSejCRbcZyt8C4fs=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="48c46d5ddc521432e077cea3f490369519097e0605a92782d2cc9164bf74fb57" Description="" Url=""><as:assemblyIdentity name="BattlEyeFiltersTool.exe" version="0.8.1.0" publicKeyToken="f675fc03558f6556" language="neutral" processorArchitecture="msil" type="win32" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=MSI-X1\SpiRe</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>XWKDRfoqWMhGPEhU6xbB1JJ1ZIhdjdP1yJ5Ik0+RLFs=</DigestValue></Reference></SignedInfo><SignatureValue>pV76puIy8H19FWK4rbATLqIprNGr0lOdrWdlAkqwC0w3vB2fimesaiGn2u05DvDVrSaOo4WHRvP0Vys+uOdvmWSCvjL+TUyrxOhz3bShzbci95YO+ia3k6x+RXpadinPFeJjy7PSgNtXdFYSgbIh0SKENxpVgDjWW6b/IsUsOCo=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>zWNoZ3vz0k0/IX5DOdSctmXqbLj95EK6ZTHmnJwg84BTHGGFcMSXvcvVtIkicftfPePZZcrspeNTJF5ZjdhlWBROKtgaBAtjPl2I7pVq0Ip4T2NtPLCNpaBEnH6YcGx/cfuuB/kLJCRSq0FPiCsTG8TZYUFwSejCRbcZyt8C4fs=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIByTCCATKgAwIBAgIQGtlmgX38L5NIn6/+ADxwKjANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDHhgATQBTAEkALQBYADEAXABTAHAAaQBSAGUwHhcNMTUxMDMxMTY1NTU3WhcNMTYxMDMwMjI1NTU3WjAjMSEwHwYDVQQDHhgATQBTAEkALQBYADEAXABTAHAAaQBSAGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM1jaGd789JNPyF+QznUnLZl6my4/eRCumUx5pycIPOAUxxhhXDEl73L1bSJInH7Xz3j2WXK7KXjUyReWY3YZVgUTirYGgQLYz5diO6VatCKeE9jbTywjaWgRJx+mHBsf3H7rgf5CyQkUqtBT4grExvE2WFBcEnowkW3GcrfAuH7AgMBAAEwDQYJKoZIhvcNAQELBQADgYEAEdJVuON0zzENktECNuTfgrdAc/kT45TvIEAVcNysBURAGEvxbY4W5sKvWv0GAIm4Nwxijs+dre/nJX+VNO8D0am76y+E133++nvrINgjnVSKBku+OMIFZLPI6WJ0KomwmTNMR4YJvwVwir8mur1VFBjRfakSfJoQoLmk4ANP69s=</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>

BIN
bin/MahApps.Metro.dll Normal file

Binary file not shown.

Binary file not shown.

75
bin/readme.txt Normal file
View File

@ -0,0 +1,75 @@
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
<EFBFBD> by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
version: 0.8.1.0
I won't provide support for the people that uses the tool in any other way that its meant to be used.
---
Support threads: http://www.exilemod.com/topic/7038-battleye-filters-tool/
If you find this application useful then please consider making a donation via Paypal as a thank you:
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WKE8JUXGUGGXA
---
This BattlEye Filters Tool was created to help server owners update BE filters easily.
In order to use this tool you need to add your basic filters set ( Exile or Infistar ) to the "BattlEye_BasicSet" folder and your additional filters ( for your MODs/Scripts ) to "BattlEye_AddSet" folder.
When you hit "Load Files" button the program will automatically load both sets to memory and merge them. To save your files hit "Save Files" button.
You can also use the "Flush Files" button to delete merged files from memory.
The files are usually saved in the default "BattlEye" folder. Otherwise it saves to the same folder that the application is in.
Things you need to know about making the additional BE filters:
1: This program compares BE index ( example: "7 execVM") from AddSet in BasicSet so you need to make the additional set (AddSet)
in the same format as BasicSet (they don't have to be on matching line numbers). When it finds a match it will add the additional filters to the BasicSet line.
If the BE index is not found ( example: "3 execVM" ) it will add it to the end of the file as new line.
2: The program compares the match of filename without extension from BasicSet to AddSet.
eg: BattlEye_BasicSet\Scripts.txt & BattlEye_AddSet\ScriptsBlaExampleBlaBla.txt
3: There is an option in the program to use only "knownBeFiles.txt". The program contains the default set of BE filters files names in memory. When the checkBox is checked it creates the files using the default files names if the file does not already exist. If the file exists it loads the new files names to the whitelist in program memory.
4: The BE filters files must be .txt
For further infomation visit the support thread. I won't provide any support if you don't use the program as instructed.
5: Don't merge Exile BE filters with Infistar's BE filters. Use one or another as BasicSet. Which means don't merge filters that are already in BasicSet.
6: Tool works fine if you use it right.
---
Future implementations:
- saving selected filepath of the selected folder
- catching possible exceptions
- more features
---
changelog:
v0.8.1.0
- recompiled required DLLs
- some minor fixes
- code structural changes
v0.8.0.2
- added nulling for removed objects & modified clear of list
- rewrite of code to move it from MainWindow logic
v0.8.0.1
- fixed lines multiplication bug
v0.8
- initial public test Release
- requires .NET 4.6
- there are examples of usage inside folders

View File

@ -0,0 +1,28 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BattlEyeFiltersTool", "BattlEyeFiltersTool\BattlEyeFiltersTool.csproj", "{4DD5C6AC-F1C2-49AF-8FD7-CA4046675039}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BattlEyeFiltersTool.Tests", "BattlEyeFiltersTool.Tests\BattlEyeFiltersTool.Tests.csproj", "{0544CCF3-3990-421B-A070-341C875701E8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4DD5C6AC-F1C2-49AF-8FD7-CA4046675039}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4DD5C6AC-F1C2-49AF-8FD7-CA4046675039}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4DD5C6AC-F1C2-49AF-8FD7-CA4046675039}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4DD5C6AC-F1C2-49AF-8FD7-CA4046675039}.Release|Any CPU.Build.0 = Release|Any CPU
{0544CCF3-3990-421B-A070-341C875701E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0544CCF3-3990-421B-A070-341C875701E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0544CCF3-3990-421B-A070-341C875701E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0544CCF3-3990-421B-A070-341C875701E8}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
© by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
-->
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/>
</startup>
</configuration>

View File

@ -0,0 +1,26 @@
<!--
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
© by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
-->
<Application x:Class="BattlEyeFiltersTool.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:BattlEyeFiltersTool"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Resources/Icons.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>

View File

@ -0,0 +1,25 @@
/*
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
© by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
*/
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace BattlEyeFiltersTool
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
}
}

View File

@ -0,0 +1,224 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{4DD5C6AC-F1C2-49AF-8FD7-CA4046675039}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>BattlEyeFiltersTool</RootNamespace>
<AssemblyName>BattlEyeFiltersTool</AssemblyName>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<IsWebBootstrapper>false</IsWebBootstrapper>
<TargetFrameworkProfile />
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>false</MapFileExtensions>
<ProductName>BattlEye Filters Tool</ProductName>
<PublisherName>SpiRe</PublisherName>
<ApplicationRevision>1</ApplicationRevision>
<ApplicationVersion>0.8.1.%2a</ApplicationVersion>
<UseApplicationTrust>true</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut>
<ExcludeDeploymentUrl>true</ExcludeDeploymentUrl>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<StartupObject>
</StartupObject>
</PropertyGroup>
<PropertyGroup>
<TargetZone>LocalIntranet</TargetZone>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>true</GenerateManifests>
</PropertyGroup>
<PropertyGroup />
<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>
<PropertyGroup>
<ManifestCertificateThumbprint>556C48B532E4106C74D852A129BD94357FFA22B1</ManifestCertificateThumbprint>
</PropertyGroup>
<PropertyGroup>
<SignAssembly>true</SignAssembly>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>beft.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup>
<ManifestKeyFile>
</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
<AssemblyOriginatorKeyFile>
</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="MahApps.Metro, Version=1.1.2.0, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL">
<HintPath>..\packages\MahApps.Metro.1.1.2.0\lib\net45\MahApps.Metro.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\MahApps.Metro.1.1.2.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Directories.cs" />
<Compile Include="FileObject.cs" />
<Compile Include="Merger.cs" />
<Compile Include="KnownBeFiles.cs" />
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="InfoFlyout.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Resources\Icons.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="InfoFlyout.xaml.cs">
<DependentUpon>InfoFlyout.xaml</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="BattlEyeFiltersTool.licenseheader" />
<None Include="packages.config">
<SubType>Designer</SubType>
</None>
<None Include="Properties\app.manifest" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<AppDesigner Include="Properties\" />
<Resource Include="Resources\Entypo.ttf" />
</ItemGroup>
<ItemGroup>
<None Include="App.config">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.6">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.6 %28x86 and x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\exilemod.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="beft.ico" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\WindowsIcons-license.txt" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\Entypo-license.txt" />
</ItemGroup>
<ItemGroup>
<Content Include="readme.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishUrlHistory>publish\</PublishUrlHistory>
<InstallUrlHistory />
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>en-US</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,78 @@
/*
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
© by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
*/
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace BattlEyeFiltersTool
{
public static class Directories
{
private static MainWindow mainWindow;
public static string mainDirPath;
public static void DirectoriesInit(MainWindow mainWindowInstance)
{
mainWindow = mainWindowInstance;
}
public static string GetPath(int folderType)
{
string dirPath;
// First run or changed Path Handler
if (mainDirPath == null || !Directory.Exists(mainDirPath))
{
dirPath = Directory.GetCurrentDirectory() + "\\BattlEye";
CheckIfFolderExists(dirPath);
CheckIfFolderExists(dirPath + "\\BattlEye_BasicSet");
CheckIfFolderExists(dirPath + "\\BattlEye_AddSet");
mainDirPath = dirPath;
try
{
mainWindow.pathTextBlock.Text = dirPath;
}
catch (NullReferenceException) { }
}
else
{
// Else we can use directory which is already set
dirPath = mainDirPath;
}
// returns needed string
switch (folderType)
{
case 0: return dirPath + "\\BattlEye_BasicSet";
case 1: return dirPath + "\\BattlEye_AddSet";
case 2: return dirPath;
default: return Directory.GetCurrentDirectory();
}
}
public static void CheckIfFolderExists(string dirPath)
{
try
{
if (!Directory.Exists(dirPath))
{
Directory.CreateDirectory(dirPath);
}
}
catch (ArgumentNullException e)
{
// Shouldn't happen ever
System.Windows.MessageBox.Show("Something terrible happend. \n" + e + " \n " + e.InnerException + "", "CheckIfFolderExists Exception catched", MessageBoxButton.OK);
}
}
}
}

View File

@ -0,0 +1,29 @@
/*
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
© by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
*/
using System.Collections.Generic;
namespace BattlEyeFiltersTool
{
// Expanded File Object which is usually BasicSet + BasicSet data + lately AddSet data
public class FileObject : FileObjectBasic
{
public List<string> Lines { get; set; }
}
// Basic File Object which is usually AddSet
public class FileObjectBasic
{
public string Name
{
get { return NameWithoutExt + Extension; }
}
public string NameWithoutExt { get; set; }
public string Extension { get; set; }
public string Path { get; set; }
}
}

View File

@ -0,0 +1,45 @@
<!--
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
© by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
-->
<Page x:Class="BattlEyeFiltersTool.InfoFlyout"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:BattlEyeFiltersTool"
mc:Ignorable="d"
d:DesignHeight="270" d:DesignWidth="525" >
<Grid Margin="15,0,15,0">
<Button x:Name="imageBtn" Click="exilemod_click" Margin="386,224,-0.2,10.4" Padding="0,0,0,0" Foreground="{x:Null}" BorderBrush="{x:Null}" Background="{x:Null}" >
<Image x:Name="image" HorizontalAlignment="Left" Height="30" VerticalAlignment="Top" Width="100" Source="Resources/exilemod.png"/>
</Button>
<Label x:Name="copyright" Content="© by SpiRe 2015" HorizontalAlignment="Left" Margin="197.5,242,0,0" VerticalAlignment="Top" Height="25"/>
<TextBlock x:Name="textBlock" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Height="194" Width="495" Foreground="White" Margin="0,0,-0.2,0"><Run Text="BattlEyeFiltersTool "/><Run Text="aka BEFT "/><Run Text="was created to help server owners with updating BE filters easily.&#xA;&#xA;"/><Run Text="Merger - merging BasicSet of BE filters ( Exile or InfiSTAR not both ) and AddSet of filter files for mods and scripts ( IgiLoad, A3XAI, etc.. )"/><LineBreak/><Run/><LineBreak/><Run Text="Compiler - \o"/><LineBreak/><Run/><LineBreak/><Run Text="Updater - o/"/><LineBreak/><Run/><Run Text="&#xA;For other infomations see readme.txt file or visit support threads."/><LineBreak/><Run/><LineBreak/><Run Text="If you found this application useful "/><Run Text="please consider as"/><Run Text=" a simple t"/><Run Text="hank"/><Run Text=" you"/><Run Text="."/></TextBlock>
<TextBlock x:Name="textBlock2" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Height="51" Width="138" Foreground="White" Margin="0,211,0,0">
Support threads:<LineBreak/>
<Hyperlink Click="exilethread_click">
<Hyperlink.Style>
<Style TargetType="Hyperlink" BasedOn="{StaticResource {x:Type Hyperlink}}">
<Setter Property="Foreground" Value="#0C0"/>
</Style>
</Hyperlink.Style>
EXILEMOD.COM
</Hyperlink>
<LineBreak/>
<Hyperlink Click="bithread_click" IsEnabled="False">
<Hyperlink.Style>
<Style TargetType="Hyperlink" BasedOn="{StaticResource {x:Type Hyperlink}}">
<Setter Property="Foreground" Value="#0C0"/>
</Style>
</Hyperlink.Style>
FORUMS.BISTUDIO.COM
</Hyperlink>
</TextBlock>
<Label x:Name="version" Content="version 0.8.1.0" HorizontalAlignment="Left" Margin="410,199,-0.2,0" VerticalAlignment="Top" Height="25"/>
</Grid>
</Page>

View File

@ -0,0 +1,49 @@
/*
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
© by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace BattlEyeFiltersTool
{
/// <summary>
/// Interaction logic for InfoFlyout.xaml
/// </summary>
public partial class InfoFlyout : Page
{
public InfoFlyout()
{
InitializeComponent();
}
// Links
private void exilemod_click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process.Start("http://exilemod.com");
}
private void exilethread_click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process.Start("http://www.exilemod.com/topic/7038-battleye-filters-tool/");
}
private void bithread_click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process.Start("https://forums.bistudio.com/");
}
}
}

View File

@ -0,0 +1,47 @@
/*
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
© by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
*/
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace BattlEyeFiltersTool
{
public static class KnownBeFiles
{
// Predefined FileNames
public static List<string> knownBeFiles = new List<string>
{
"attachTo.txt", "createVehicle.txt", "deleteVehicle.txt", "mpeventhandler.txt",
"publicvariable.txt", "publicVariableVal.txt", "remotecontrol.txt", "remoteexec.txt",
"scripts.txt", "selectplayer.txt", "setpos.txt", "setVariable.txt", "setVariableVal.txt",
"teamswitch.txt", "waypointcondition.txt", "waypointstatement.txt"
};
public static void CheckKnownBeFilesExists()
{
string dirPath = Directories.GetPath(666) + "\\knownBeFiles.txt";
if (!File.Exists(dirPath))
{
// If config file doesn't exist we create it in the folder with .exe
File.WriteAllLines(dirPath, knownBeFiles);
}
else
{
string[] tempKnownBeFiles = File.ReadAllLines(dirPath);
// Add Additional File Names to the List if the file exists
foreach (string tempKnownBeFile in tempKnownBeFiles)
{
if (!knownBeFiles.Any(tempKnownBeFile.Contains) && System.IO.Path.GetExtension(tempKnownBeFile) == ".txt")
{
knownBeFiles.Add(tempKnownBeFile);
}
}
}
}
}
}

View File

@ -0,0 +1,126 @@
<!--
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
© by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
-->
<Controls:MetroWindow x:Class="BattlEyeFiltersTool.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns:local="clr-namespace:BattlEyeFiltersTool"
mc:Ignorable="d"
Title="BattlEye Filters Tool"
Height="350" Width="525"
ResizeMode="CanMinimize"
Background="#FF2E3036"
WindowTitleBrush="#FF1F2025"
SaveWindowPosition="True"
TitleCaps="False"
BorderThickness="0"
GlowBrush="#FF1F2025"
RightWindowCommandsOverlayBehavior="Always"
NonActiveBorderBrush="{x:Null}"
NonActiveGlowBrush="Black"
NonActiveWindowTitleBrush="#FF2E3036"
ShowIconOnTitleBar="True" Icon="beft.ico"
>
<Grid>
<TabControl x:Name="tabControl" Height="321" VerticalAlignment="Top" Margin="0,0,0.4,-0.2">
<TabItem Header="Merger">
<Grid Margin="0,0,-0.2,0">
<ListView x:Name="listView_FileList" HorizontalAlignment="Left" Margin="10,19,0,10" Width="178" Background="#FF1F2025" BorderBrush="{x:Null}">
<ListView.Resources>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="Visibility" Value="Collapsed" />
</Style>
<DataTemplate x:Key="IconTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
</Grid>
</DataTemplate>
</ListView.Resources>
<ListView.View>
<GridView>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
</GridView>
</ListView.View>
</ListView>
<TextBlock x:Name="pathTextBlock" Text="Unknown Path, please select Path" Margin="32,0,0,0" Foreground="White" TextTrimming="CharacterEllipsis" Height="20" VerticalAlignment="Top" HorizontalAlignment="Left" Width="391"/>
<Button x:Name="selectFolder" Content="Browse" Margin="428,0,10.2,243" Click="selectFolder_click" Background="#FF1F2025" BorderBrush="#FF1F2025" Height="26" VerticalAlignment="Bottom"/>
<Button x:Name="reloadKnownBeFiles" Content="Reload" Margin="428,0,10.2,210" VerticalAlignment="Bottom" RenderTransformOrigin="0.669,-0.711" IsEnabled="False" Click="reloadKnownBeFiles_Click" Visibility="Visible" Background="#FF1F2025" BorderBrush="#FF1F2025"/>
<Button x:Name="loadFiles" Content="Load Files" Margin="0,0,170,10" Click="loadFiles_click" Background="#FF1F2025" BorderBrush="#FF1F2025" HorizontalAlignment="Right" Width="75" Height="26" VerticalAlignment="Bottom"/>
<Button x:Name="flushFiles" Content="Flush Files" Margin="0,0,90,10" Click="flushFiles_click" Background="#FF1F2025" BorderBrush="#FF1F2025" IsEnabled="False" RenderTransformOrigin="0.52,1.055" HorizontalAlignment="Right" Width="75" Height="26" VerticalAlignment="Bottom"/>
<Button x:Name="saveFiles" Content="Save Files" Margin="0,0,10,10" Click="saveFiles_click" Background="#FF1F2025" BorderBrush="#FF1F2025" RenderTransformOrigin="2.835,0.367" IsEnabled="False" Height="26" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="75"/>
<CheckBox x:Name="knownBeFilesCheckBox" Content="use knownBeFiles.txt list only" Margin="244,45,0,0" BorderBrush="White" Controls:ControlsHelper.MouseOverBorderBrush="#FF7F7F7F" Checked="knownBeFilesCheckBox_Checked" Unchecked="knownBeFilesCheckBox_Unchecked" IsChecked="True" Controls:ToggleButtonHelper.ContentDirection="RightToLeft" Height="18" VerticalAlignment="Top" HorizontalAlignment="Left" Width="179"/>
<TextBlock x:Name="pathTextBlock_Copy" Text="DIR:" Margin="9,0,0,0" Foreground="White" TextTrimming="CharacterEllipsis" Height="20" VerticalAlignment="Top" HorizontalAlignment="Left" Width="23"/>
</Grid>
</TabItem>
<TabItem Header="Compiler" IsEnabled="False">
<Grid/>
</TabItem>
<TabItem Header="Updater" IsEnabled="False">
<Grid/>
</TabItem>
</TabControl>
</Grid>
<Controls:MetroWindow.RightWindowCommands>
<Controls:WindowCommands>
<Button x:Name="donateBtn" Click="donate_click">
<StackPanel Orientation="Horizontal">
<Rectangle Width="15" Height="15"
Fill="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}">
<Rectangle.OpacityMask>
<VisualBrush Stretch="Fill" Visual="{StaticResource appbar_paypal}" />
</Rectangle.OpacityMask>
</Rectangle>
<TextBlock Margin="4 0 0 0" VerticalAlignment="Center" Text="Donate"/>
</StackPanel>
</Button>
<Button x:Name="webBtn" Click="github_click">
<StackPanel Orientation="Horizontal">
<Rectangle Width="15" Height="15"
Fill="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}">
<Rectangle.OpacityMask>
<VisualBrush Stretch="Fill" Visual="{StaticResource appbar_globe}" />
</Rectangle.OpacityMask>
</Rectangle>
<TextBlock Margin="4 0 0 0" VerticalAlignment="Center" Text="GitHub"/>
</StackPanel>
</Button>
<Button x:Name="infoBtn" Click="info_click">
<StackPanel Orientation="Horizontal">
<Rectangle Width="7.5" Height="15"
Fill="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}">
<Rectangle.OpacityMask>
<VisualBrush Stretch="Fill" Visual="{StaticResource appbar_information}" />
</Rectangle.OpacityMask>
</Rectangle>
<TextBlock Margin="4 0 0 0" VerticalAlignment="Center" Text="Info"/>
</StackPanel>
</Button>
</Controls:WindowCommands>
</Controls:MetroWindow.RightWindowCommands>
<Controls:MetroWindow.Flyouts>
<Controls:FlyoutsControl>
<Controls:Flyout x:Name="infoFlyout"
AreAnimationsEnabled="True"
Margin="0 0 0 0"
Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Controls:MetroWindow}, Path=ActualWidth}"
Header="Informations"
Position="Right"
FocusedElement="{Binding ElementName=firstTB}"
Background="#FF2E3036"
>
<Frame Source="InfoFlyout.xaml"/>
<!-- <Frame Source="InfoFlyout.xaml"/> -->
</Controls:Flyout>
</Controls:FlyoutsControl>
</Controls:MetroWindow.Flyouts>
</Controls:MetroWindow>

View File

@ -0,0 +1,129 @@
/*
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
© by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
*/
using System.Windows;
using System.Windows.Forms;
using System.IO;
using MahApps.Metro.Controls;
namespace BattlEyeFiltersTool
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : MetroWindow
{
private MainWindow mainWindow;
public MainWindow()
{
mainWindow = this;
// Reference for the MainWindow in other classes
Directories.DirectoriesInit(mainWindow);
Merger.MergerInit(mainWindow);
InitializeComponent();
}
// CheckBoxes
private void knownBeFilesCheckBox_Checked(object sender, RoutedEventArgs e)
{
reloadKnownBeFiles.IsEnabled = true;
KnownBeFiles.CheckKnownBeFilesExists();
}
private void knownBeFilesCheckBox_Unchecked(object sender, RoutedEventArgs e)
{
reloadKnownBeFiles.IsEnabled = false;
}
private void reloadKnownBeFiles_Click(object sender, RoutedEventArgs e)
{
KnownBeFiles.CheckKnownBeFilesExists();
}
// Buttons
private void info_click(object sender, RoutedEventArgs e)
{
// Flyout switch open/close
if (this.infoFlyout.IsOpen == false)
{
this.infoFlyout.IsOpen = true;
}
else
{
this.infoFlyout.IsOpen = false;
}
}
private void selectFolder_click(object sender, RoutedEventArgs e)
{
var dialog = new FolderBrowserDialog();
DialogResult result = dialog.ShowDialog();
if (Directory.Exists(dialog.SelectedPath))
{
Directories.mainDirPath = dialog.SelectedPath;
pathTextBlock.Text = dialog.SelectedPath;
}
else // Fuse for folder which doesn't exist
{
//while (!Directory.Exists(dialog.SelectedPath))
//{
if (System.Windows.MessageBox.Show("Selected Directory \"" + System.IO.Path.GetFileName(dialog.SelectedPath) + "\" doesn't exists! Do you want to create the directory ?", "Create Directories Confirmation", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
{
Directories.CheckIfFolderExists(dialog.SelectedPath);
Directories.mainDirPath = dialog.SelectedPath;
pathTextBlock.Text = dialog.SelectedPath;
}
else
{
pathTextBlock.Text = Directories.mainDirPath;
}
//}
}
}
private void loadFiles_click(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 2; i++)
{
Directories.CheckIfFolderExists(Directories.GetPath(i));
Merger.GetFiles(Directories.GetPath(i), i);
}
if (listView_FileList.Items.Count > 0)
{
selectFolder.IsEnabled = false;
loadFiles.IsEnabled = false;
flushFiles.IsEnabled = true;
saveFiles.IsEnabled = true;
}
}
private void flushFiles_click(object sender, RoutedEventArgs e)
{
for (int i = 0; i < listView_FileList.Items.Count; i++)
{
listView_FileList.Items[i] = null;
}
listView_FileList.Items.Clear();
if (listView_FileList.Items.Count == 0)
{
selectFolder.IsEnabled = true;
loadFiles.IsEnabled = true;
flushFiles.IsEnabled = false;
saveFiles.IsEnabled = false;
}
}
private void saveFiles_click(object sender, RoutedEventArgs e)
{
Merger.SaveToFiles(Directories.GetPath(2));
}
// Links
private void donate_click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process.Start("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WKE8JUXGUGGXA");
}
private void github_click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process.Start("https://github.com/SpiReCZ/BattlEyeFiltersTool");
}
}
}

View File

@ -0,0 +1,211 @@
/*
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
© by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
*/
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Windows;
namespace BattlEyeFiltersTool
{
public static class Merger
{
public static List<object> files = new List<object>();
private static MainWindow mainWindow;
public static void MergerInit(MainWindow mainWindowInstance)
{
mainWindow = mainWindowInstance;
}
public static void GetFiles(string dirPath, int folderType)
{
try
{
// Get Info about DIR then files in that DIR
DirectoryInfo dirInfo = new DirectoryInfo(dirPath);
FileInfo[] filesInfo = dirInfo.GetFiles("*.txt");
// input subfolders
if (folderType == 0 || folderType == 1)
{
foreach (var fileInfo in filesInfo)
{
// Create object for every File / every valid file
if (mainWindow.knownBeFilesCheckBox.IsChecked == true && folderType == 0)
{
if (KnownBeFiles.knownBeFiles.Any(fileInfo.Name.Contains))
{
createFileObject(fileInfo, ref folderType);
}
}
else
{
createFileObject(fileInfo, ref folderType);
}
}
}
}
catch (ArgumentNullException e)
{
// This shouldn't happen ever
System.Windows.MessageBox.Show("Something terrible happend. \n" + e + " \n " + e.InnerException + "", "GetFiles Exception catched", MessageBoxButton.OK);
}
}
private static void createFileObject(FileInfo file, ref int folderType)
{
// Create BasicSet file
if (folderType == 0)
{
FileObject fileObject = new FileObject
{
NameWithoutExt = System.IO.Path.GetFileNameWithoutExtension(file.FullName),
Extension = file.Extension,
Path = file.FullName,
Lines = new List<string>()
};
files.Add(fileObject);
mainWindow.listView_FileList.Items.Add(fileObject);
LoadDataFromBaseFile(fileObject);
}
// Create AddSet file
else
{
FileObject fileObjectBasic = new FileObject
{
NameWithoutExt = System.IO.Path.GetFileNameWithoutExtension(file.FullName),
Extension = file.Extension,
Path = file.FullName
};
mainWindow.listView_FileList.Items.Add(fileObjectBasic);
LoadDataFromAddFile(fileObjectBasic);
}
}
public static void LoadDataFromBaseFile(FileObject fileObject)
{
try
{
string[] tempLines = File.ReadAllLines(fileObject.Path);
// Fill the object with data
foreach (string line in tempLines)
{
fileObject.Lines.Add(line);
}
}
catch (ArgumentNullException e)
{
// This shouldn't happen ever
System.Windows.MessageBox.Show("Something terrible happend. \n" + e + " \n " + e.InnerException + "", "LoadDataFromBaseFile Exception catched", MessageBoxButton.OK);
}
}
public static void LoadDataFromAddFile(FileObject fileObjectBasic)
{
foreach (FileObject file in files)
{
// Check for file names match but not for exact match
if (Regex.IsMatch(fileObjectBasic.Name, file.NameWithoutExt) && fileObjectBasic.NameWithoutExt != file.NameWithoutExt)
{
string[] addLines = File.ReadAllLines(fileObjectBasic.Path);
foreach (string addLine in addLines)
{
try
{
// exclude one line comments
if (addLine.IndexOf('/', 0) != 0 && addLine.IndexOf('/', 1) != 1)
{
int endBeIndex = GetEndBeIndex(addLine);
string beIndex = addLine.Substring(0, endBeIndex);
MergeData(addLine, endBeIndex, beIndex, file);
}
} catch(ArgumentOutOfRangeException e)
{
// not needed, used for skip fault lines
//System.Windows.MessageBox.Show("Something terrible happend. \n" + e + " \n " + e.InnerException + "", "LoadDataFromAddFile Exception catched", MessageBoxButton.OK);
}
}
}
}
}
// Return end of BE index for further comparison of strings
private static int GetEndBeIndex(string addLine)
{
int endBeIndex = 1;
try
{
int beIndexPointer = addLine.IndexOf('"');
if (addLine.IndexOf(' ') == beIndexPointer - 1)
{
endBeIndex = beIndexPointer - 1;
}
else if (addLine.IndexOf('=') == beIndexPointer - 1)
{
if (addLine.IndexOf('!') == beIndexPointer - 2)
{
endBeIndex = beIndexPointer - 3;
}
else if (addLine.IndexOf(' ') == beIndexPointer - 2)
{
endBeIndex = beIndexPointer - 2;
}
}
else if (addLine.IndexOf('!') == beIndexPointer - 1)
{
endBeIndex = beIndexPointer - 2;
}
return endBeIndex;
}
catch (NullReferenceException)
{
// Shouldn't happen but we return 0 because we dont want to have BE index
return 0;
}
}
private static void MergeData(string addLine, int endBeIndex, string beIndex, FileObject file)
{
Boolean matchFound = false;
string addBeFilters = addLine.Substring(endBeIndex);
// Check for matches for every line except one line comments
for (int i = 0; i < file.Lines.Count; i++)
{
if (addLine.IndexOf('/', 0) != 0 && addLine.IndexOf('/', 1) != 1)
{
// Get BE index for current line in Additional file
int endBaseBeIndex = GetEndBeIndex(file.Lines[i]);
// create substring without BE index that will be added to the end of the line if match is found
string baseBeIndex = file.Lines[i].Substring(0, endBaseBeIndex);
if (Regex.IsMatch(baseBeIndex, beIndex))
{
matchFound = true;
file.Lines[i] = file.Lines[i] + addBeFilters;
break;
}
}
}
if (matchFound == false)
{
// We haven't found match in all lines of file so we add whole line = BE index + BE filters
// Can be also the case where you have difference in the starting number of BE index which is fine
file.Lines.Add(addLine);
}
}
public static void SaveToFiles(string dirPath)
{
// Save all files
foreach (FileObject file in files)
{
Directories.CheckIfFolderExists(dirPath);
File.WriteAllLines(dirPath + "\\" + file.Name, file.Lines);
}
}
}
}

View File

@ -0,0 +1,68 @@
/*
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
© by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
*/
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("BattlEyeFiltersTool")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("BattlEyeFiltersTool")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
//In order to begin building localizable applications, set
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
//inside a <PropertyGroup>. For example, if you are using US english
//in your source files, set the <UICulture> to en-US. Then uncomment
//the NeutralResourceLanguage attribute below. Update the "en-US" in
//the line below to match the UICulture setting in the project file.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page,
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page,
// app, or any theme specific resource dictionaries)
)]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: InternalsVisibleTo("BattlEyeFiltersTool.Tests")]
[assembly: InternalsVisibleTo("BattlEyeFiltersTool.Explorables")]
[assembly: InternalsVisibleTo("BattlEyeFiltersTool.Tests1")]
[assembly: InternalsVisibleTo("BattlEyeFiltersTool.Tests2")]

View File

@ -0,0 +1,83 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace BattlEyeFiltersTool.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("BattlEyeFiltersTool.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon beft {
get {
object obj = ResourceManager.GetObject("beft", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap exilemod {
get {
object obj = ResourceManager.GetObject("exilemod", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="beft" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\beft.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="exilemod" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\exilemod.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace BattlEyeFiltersTool.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
Specifying requestedExecutionLevel element will disable file and registry virtualization.
Remove this element if your application requires this virtualization for backwards
compatibility.
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true" />
</applicationRequestMinimum>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- A list of the Windows versions that this application has been tested on and is
is designed to work with. Uncomment the appropriate elements and Windows will
automatically selected the most compatible environment. -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
</application>
</compatibility>
<!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need
to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should
also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config. -->
<!--
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
-->
<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
<!--
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
-->
</assembly>

View File

@ -0,0 +1,3 @@
Entypo (http://www.entypo.com/) is created by Daniel Bruce and released under the Creative Commons, Share Alike/Attribution license.
http://creativecommons.org/licenses/by-sa/3.0/

View File

@ -0,0 +1,15 @@
<ResourceDictionary x:Class="resources_icons_xaml"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Canvas x:Key="appbar_globe" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="44.3333" Height="44.3333" Canvas.Left="15.8333" Canvas.Top="15.8333" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 38,15.8333C 50.2423,15.8333 60.1667,25.7577 60.1667,38C 60.1667,50.2423 50.2423,60.1667 38,60.1667C 25.7577,60.1667 15.8333,50.2423 15.8333,38C 15.8333,25.7577 25.7577,15.8333 38,15.8333 Z M 38,19C 37.0389,19 36.0944,19.0714 35.1716,19.2091C 34.9741,19.6392 34.8333,20.1113 34.8333,20.5833C 34.8333,22.1667 33.25,19 31.6667,22.1667C 30.0833,25.3333 31.6667,22.1667 31.6667,25.3333C 31.6667,26.9167 29.3752,25.771 30.0833,26.125C 31.6667,26.9167 31.6667,26.9167 30.0833,28.5C 30.0833,28.5 26.9167,26.9167 26.9167,28.5C 26.9167,30.0833 25.3333,30.0833 23.75,30.0833C 22.1667,30.0833 23.75,33.25 22.1667,33.25C 20.9493,33.25 21.6039,31.3779 20.5322,30.5126C 20.1248,31.4618 19.7925,32.4508 19.5428,33.4722C 20.6099,34.4283 20.7886,38.2053 22.1667,39.5834C 23.75,38 23.75,39.5834 25.3333,39.5834C 26.9167,39.5834 26.9167,39.5834 27.7083,41.1667C 29.2917,41.1667 30.0833,42.75 31.6667,44.3333C 33.25,45.9167 36.4166,45.9167 36.4166,47.5C 36.4166,49.0833 34.8333,47.5 34.8333,50.6667C 34.8333,52.25 34.8333,52.25 33.25,52.25C 32.2531,52.25 31.2561,54.1331 30.6544,55.528C 32.9142,56.4761 35.3959,57 38,57C 43.3179,57 48.1255,54.8153 51.5742,51.2944L 50.6666,49.4792C 50.6666,49.4792 52.6458,46.3125 51.0625,44.7292C 49.4791,43.1459 49.4791,41.5625 49.4791,41.5625C 49.4791,41.5625 46.3125,44.7292 44.7291,43.1458C 43.1458,41.5625 43.1458,43.1458 41.5625,39.9792C 39.9791,36.8125 43.1458,35.2292 43.1458,35.2292C 43.1458,35.2292 43.1458,32.0625 44.7291,32.0625C 46.3125,32.0625 47.8958,28.8959 51.0625,32.0625C 51.0625,32.0625 52.8924,30.8426 55.4814,30.5444C 54.6693,28.6428 53.5561,26.9006 52.2016,25.3777C 51.9172,25.5822 51.545,25.7292 51.0625,25.7292C 49.4791,25.7292 52.6458,28.8959 51.0625,28.8959C 49.4791,28.8959 49.4791,27.3125 47.8958,27.3125C 46.3125,27.3125 46.3125,28.8959 44.7291,30.4792C 43.1458,32.0625 44.7291,30.4792 43.1458,28.8959C 41.5625,27.3125 46.3125,28.8959 44.7291,27.3125C 43.1458,25.7292 46.3125,25.7292 46.3125,24.1459C 46.3125,22.904 48.2605,22.6362 49.1008,22.5784C 48.187,21.9195 47.2124,21.3398 46.3125,20.9792C 47.8958,22.5625 44.7291,24.1459 43.1458,24.1459C 41.6585,24.1459 42.9653,21.3518 43.1294,19.7005C 41.4977,19.2441 39.7773,19 38,19 Z M 19,38C 19,43.5885 21.4127,48.6134 25.2533,52.09L 23.75,49.0833C 22.1667,49.0833 21.375,45.5209 21.375,43.9375C 21.375,42.6669 20.8651,41.6512 21.4821,40.4812C 19.2482,38.2376 20.5833,39.454 20.5833,38C 20.5833,37.2463 19.8657,36.4925 19.1137,35.9096C 19.0385,36.5961 19,37.2935 19,38 Z "/>
</Canvas>
<Canvas x:Key="appbar_information" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="14.2499" Height="38.0001" Canvas.Left="31.6666" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 31.6666,30.0834L 42.7499,30.0834L 42.7499,33.2501L 42.7499,52.2501L 45.9165,52.2501L 45.9165,57.0001L 31.6666,57.0001L 31.6666,52.2501L 34.8332,52.2501L 34.8332,34.8335L 31.6666,34.8335L 31.6666,30.0834 Z M 38.7917,19C 40.9778,19 42.75,20.7722 42.75,22.9583C 42.75,25.1445 40.9778,26.9167 38.7917,26.9167C 36.6055,26.9167 34.8333,25.1445 34.8333,22.9583C 34.8333,20.7722 36.6055,19 38.7917,19 Z "/>
</Canvas>
<Canvas x:Key="appbar_paypal" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="45.125" Height="45.9167" Canvas.Left="15.0417" Canvas.Top="14.25" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 60.1667,29.2917C 60.1667,36.7245 53.7867,45.9167 45.9167,45.9167L 33.8894,45.9167L 30.875,60.1667L 19.7917,60.1667L 20.3778,57.3958L 28.8958,57.3958L 31.9103,43.1458L 43.9375,43.1458C 51.8076,43.1458 58.1875,33.9536 58.1875,26.5208C 58.1875,24.9629 57.9072,23.606 57.3917,22.4342C 59.1358,24.0552 60.1667,26.3039 60.1667,29.2917 Z M 23.75,14.25L 41.1667,14.25L 42.75,14.25L 42.75,14.2902C 49.8749,14.66 55.4167,19 55.4167,24.5417C 55.4167,33.25 49.0367,41.1667 41.1667,41.1667L 29.5352,41.1667L 26.5208,55.4167L 15.0417,55.4167L 23.75,14.25 Z M 44.7292,26.9167C 44.5447,24.7031 43.3967,23.5626 41.5809,22.9583L 33.387,22.9584L 31.0425,34.0417L 37.2032,34.0417C 41.8973,32.6131 44.7292,29.5115 44.7292,26.9167 Z "/>
</Canvas>
</ResourceDictionary>

View File

@ -0,0 +1,62 @@
# License
Please carefully understand the license and download the latest icons at ModernUIIcons.com.
## Understand Your Rights
No Attribution and No Derived Works
http://creativecommons.org/licenses/by-nd/3.0/ *
- If your project is open source include this license file in the source.
- Nothing is needed in the front facing project (UNLESS you
are using any of the icons listed below in the attribution section).
- Commercial use is not only allowed but encouraged. If it is an icon
in the attribution list below, you still need to attribute those!
- Do not distribute the entire package (I've allowed this dozens of
times for open source projects, but email me first).
## Creator
- Austin Andrews (@templarian)
## Contributor**
- Jay Zawrotny (@JayZawrotny)
- A Bunch
- Oren Nachman
- appbar.chevron.down
- appbar.chevron.up
- appbar.chevron.left
- appbar.chevron.right
## Derived Works
- Alex Peattie
- Social: http://www.alexpeattie.com/projects/justvector_icons/
## Attribution***
- Kris Vandermotten (@kvandermotten)
- appbar.medical.pulse
- Constantin Kichinsky (@kichinsky)
- appbar.currency.rubles
- appbar.currency.grivna
- Massimo Savazzi (@msavazzi)
- List of missing exported icons
- Proletkult Graphik, from The Noun Project
- appbar.draw.pen (inspired)
- Olivier Guin, from The Noun Project
- appbar.draw.marker
- Gibran Bisio, from The Noun Project
- appbar.draw.bucket
Andrew Forrester, from The Noun Project
- appbar.fingerprint
* The license is for attribution, but this is not required.
** Developers and designers that emailed Templarian the source .design icons to be added into the package. PNGs also accepted, but may take longer to be added.
*** Icons I've copied so closely you want to attribute them and are also under the CC license.
Contact
- http://templarian.com/
- admin[@]templarian[.]com
* Does not apply to copyrighted logos
- Skype
- Facebook
- Twitter
- etc...

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MahApps.Metro" version="1.1.2.0" targetFramework="net46" />
<package id="MahApps.Metro.Resources" version="0.4.0.0" targetFramework="net46" />
</packages>

View File

@ -0,0 +1,75 @@
BattlEye Filters Tool
https://github.com/SpiReCZ/BattlEyeFiltersTool
<EFBFBD> by SpiRe 2015
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
version: 0.8.1.0
I won't provide support for the people that uses the tool in any other way that its meant to be used.
---
Support threads: http://www.exilemod.com/topic/7038-battleye-filters-tool/
If you find this application useful then please consider making a donation via Paypal as a thank you:
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WKE8JUXGUGGXA
---
This BattlEye Filters Tool was created to help server owners update BE filters easily.
In order to use this tool you need to add your basic filters set ( Exile or Infistar ) to the "BattlEye_BasicSet" folder and your additional filters ( for your MODs/Scripts ) to "BattlEye_AddSet" folder.
When you hit "Load Files" button the program will automatically load both sets to memory and merge them. To save your files hit "Save Files" button.
You can also use the "Flush Files" button to delete merged files from memory.
The files are usually saved in the default "BattlEye" folder. Otherwise it saves to the same folder that the application is in.
Things you need to know about making the additional BE filters:
1: This program compares BE index ( example: "7 execVM") from AddSet in BasicSet so you need to make the additional set (AddSet)
in the same format as BasicSet (they don't have to be on matching line numbers). When it finds a match it will add the additional filters to the BasicSet line.
If the BE index is not found ( example: "3 execVM" ) it will add it to the end of the file as new line.
2: The program compares the match of filename without extension from BasicSet to AddSet.
eg: BattlEye_BasicSet\Scripts.txt & BattlEye_AddSet\ScriptsBlaExampleBlaBla.txt
3: There is an option in the program to use only "knownBeFiles.txt". The program contains the default set of BE filters files names in memory. When the checkBox is checked it creates the files using the default files names if the file does not already exist. If the file exists it loads the new files names to the whitelist in program memory.
4: The BE filters files must be .txt
For further infomation visit the support thread. I won't provide any support if you don't use the program as instructed.
5: Don't merge Exile BE filters with Infistar's BE filters. Use one or another as BasicSet. Which means don't merge filters that are already in BasicSet.
6: Tool works fine if you use it right.
---
Future implementations:
- saving selected filepath of the selected folder
- catching possible exceptions
- more features
---
changelog:
v0.8.1.0
- recompiled required DLLs
- some minor fixes
- code structural changes
v0.8.0.2
- added nulling for removed objects & modified clear of list
- rewrite of code to move it from MainWindow logic
v0.8.0.1
- fixed lines multiplication bug
v0.8
- initial public test Release
- requires .NET 4.6
- there are examples of usage inside folders

File diff suppressed because it is too large Load Diff